(define-module (game) #:use-module (chickadee graphics color) #:use-module (chickadee graphics font) #:use-module (chickadee graphics texture) #:use-module (chickadee graphics viewport) #:use-module (chickadee math vector) #:use-module (chickadee scripting) #:use-module (ice-9 match) #:use-module (oop goops) #:use-module (srfi srfi-1) #:use-module (starling asset) #:use-module (starling gui) #:use-module (starling kernel) #:use-module (starling node) #:use-module (starling node-2d) #:use-module (starling ring-buffer) #:use-module (starling scene) #:duplicates (merge-generics replace warn-override-core warn last) #:export (launch-game)) ;;; ;;; Constants ;;; (define window-width 1280) (define window-height 720) (define game-width 640) (define game-height 360) (define player-display-name "") ;;; ;;; Assets ;;; (define-asset dialog-box-texture (load-image "assets/images/dialog-box.png")) (define-asset button-press-texture (load-image "assets/images/button-press.png")) (define-asset darkness (load-image "assets/images/darkness.png")) (define-asset lightness (load-image "assets/images/lightness.png")) (define-asset room-background (load-image "assets/images/room.png")) (define-asset door-lock-texture (load-image "assets/images/door-lock.png")) (define-asset pin-entry-background (load-image "assets/images/pin-entry-background.png")) (define-asset door-texture (load-image "assets/images/door.png")) (define-asset terminal-texture (load-image "assets/images/terminal.png")) (define-asset terminal-background (load-image "assets/images/terminal-background.png")) (define-asset control-panel-texture (load-image "assets/images/control-panel.png")) (define-asset fridge-texture (load-image "assets/images/fridge.png")) (define-asset window-texture (load-image "assets/images/window.png")) (define-asset notebook-texture (load-image "assets/images/notebook.png")) (define-asset notebook-background (load-image "assets/images/notebook-background.png")) (define-asset monogram-font (load-font "assets/fonts/monogram_extended.ttf" 12)) (define-asset monogram-font-big (load-font "assets/fonts/monogram_extended.ttf" 24)) (define-asset old-fax-font (load-font "assets/fonts/old-fax.ttf" 12)) ;;; ;;; Text Box ;;; (define-class () (text #:accessor text #:init-keyword #:text #:init-value "" #:watch? #t)) (define-method (on-change (text-box ) slot-name old new) (case slot-name ((text) (let ((l (& text-box text))) (when l (set! (text l) new)))) (else (next-method)))) (define-method (apply-theme (text-box )) (next-method) (replace text-box (make