;;; Catbird Game Engine ;;; Copyright © 2022 David Thompson ;;; ;;; Licensed under the Apache License, Version 2.0 (the "License"); ;;; you may not use this file except in compliance with the License. ;;; You may obtain a copy of the License at ;;; ;;; http://www.apache.org/licenses/LICENSE-2.0 ;;; ;;; Unless required by applicable law or agreed to in writing, software ;;; distributed under the License is distributed on an "AS IS" BASIS, ;;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ;;; See the License for the specific language governing permissions and ;;; limitations under the License. ;;; Commentary: ;; ;; 2D game nodes. ;; ;;; Code: (define-module (catbird node-2d) #:use-module (catbird asset) #:use-module (catbird camera) #:use-module (catbird cached-slots) #:use-module (catbird mixins) #:use-module (catbird node) #:use-module (catbird observer) #:use-module (chickadee) #:use-module (chickadee math) #:use-module (chickadee math bezier) #:use-module (chickadee math easings) #:use-module (chickadee math matrix) #:use-module (chickadee math rect) #:use-module (chickadee math vector) #:use-module (chickadee graphics 9-patch) #:use-module (chickadee graphics blend) #:use-module (chickadee graphics color) #:use-module (chickadee graphics engine) #:use-module (chickadee graphics framebuffer) #:use-module (chickadee graphics particles) #:use-module ((chickadee graphics path) #:prefix path:) #:use-module (chickadee graphics sprite) #:use-module (chickadee graphics text) #:use-module (chickadee graphics texture) #:use-module (chickadee graphics tile-map) #:use-module (chickadee graphics viewport) #:use-module (chickadee scripting) #:use-module (ice-9 match) #:use-module (oop goops) #:use-module (rnrs base) #:export ( aggregate-bounding-box align-bottom align-left align-right align-top center center-in-parent center-horizontal center-horizontal-in-parent center-vertical center-vertical-in-parent default-height default-width expire-local-matrix fit-to-children follow-bezier-path local-bounding-box local-height local-matrix local-origin-x local-origin-y local-width local-x local-y move-by move-to on-child-resize origin origin-x origin-y place-above place-at place-at-x place-at-y place-below place-left place-right position-x position-y rotate-by rotate-to rotation scale scale-by scale-to scale-x scale-y shear shear-x shear-y teleport world-bounding-box world-matrix world->local texture source-rect blend-mode tint atlas index frames frame-duration animations frame-duration current-animation start-time change-animation <9-patch> top-margin bottom-margin left-margin right-margin batch painter