;;; Catbird Game Engine ;;; Copyright © 2022 David Thompson ;;; ;;; Catbird is free software: you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation, either version 3 of the License, or ;;; (at your option) any later version. ;;; ;;; Catbird is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;;; General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with Catbird. If not, see . ;;; 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 resize 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 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