(define-module (community-garden view) #:use-module (catbird asset) #:use-module (catbird input-map) #:use-module (catbird mode) #:use-module (catbird node) #:use-module (catbird node-2d) #:use-module ((catbird scene) #:select (current-scene)) #:use-module (chickadee config) #:use-module (chickadee graphics color) #:use-module (chickadee graphics path) #:use-module (chickadee graphics text) #:use-module (chickadee graphics texture) #:use-module (chickadee math vector) #:use-module (chickadee scripting) #:use-module (community-garden garden-bed) #:use-module (community-garden plant) #:use-module (goblins) #:use-module (ice-9 atomic) #:use-module (ice-9 match) #:use-module (oop goops) #:use-module (srfi srfi-43) #:export (%window-width %window-height )) (define %window-width 1024) (define %window-height 768) (define %tile-width 64.0) (define %tile-height 64.0) (define font-file (scope-datadir "fonts/Inconsolata-Regular.otf")) (define-asset (title-font (f font-file)) (load-font f 24)) (define-asset (plant-tile-font (f font-file)) (load-font f 32)) (define-asset (sunflower-texture (f "assets/images/sunflower.png")) (load-image f)) (define-asset (cabbage-texture (f "assets/images/cabbage.png")) (load-image f)) (define-class () (tile-x #:getter tile-x #:init-keyword #:tile-x) (tile-y #:getter tile-y #:init-keyword #:tile-y)) (define-class () (vat #:getter vat #:init-keyword #:vat) (user #:getter user #:init-keyword #:user) (name-box #:getter name-box #:init-keyword #:name-box) (garden-bed-box #:getter garden-bed-box #:init-keyword #:garden-bed-box) (prev-garden #:accessor prev-garden #:init-value #f) (tiles #:accessor tiles #:init-value #()) (read-only? #:getter read-only? #:init-keyword #:read-only? #:init-value #t)) (define-method (garden-bed (garden )) (atomic-box-ref (garden-bed-box garden))) (define-method (garden-name (garden )) (atomic-box-ref (name-box garden))) (define-method (on-boot (garden )) (define title (make