diff options
| author | Gene Pasquet <dev@etenil.net> | 2026-04-05 23:12:54 +0100 |
|---|---|---|
| committer | Gene Pasquet <dev@etenil.net> | 2026-04-05 23:12:54 +0100 |
| commit | b99ada53b715def5492c7d04c0d327fa7048e5d3 (patch) | |
| tree | 9e94dbc8ff863ef09ef18f4be31fb45e085572a4 /tests/engine-test.scm | |
| parent | 027053b11a3a5d861ed2fa2db245388bd95ac246 (diff) | |
Complete implementation
Diffstat (limited to 'tests/engine-test.scm')
| -rw-r--r-- | tests/engine-test.scm | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/tests/engine-test.scm b/tests/engine-test.scm index 67b9942..99bb12f 100644 --- a/tests/engine-test.scm +++ b/tests/engine-test.scm @@ -39,7 +39,13 @@ ;; --- Entity module (mock minimal structs) --- (module downstroke/entity * - (import scheme (chicken base))) + (import scheme (chicken base)) + (define (entity-ref entity key #!optional (default #f)) + (let loop ((plist entity)) + (cond + ((null? plist) (if (procedure? default) (default) default)) + ((eq? (car plist) key) (cadr plist)) + (else (loop (cddr plist))))))) (import downstroke/entity) ;; --- Input module (mock) --- @@ -74,8 +80,20 @@ ;; --- World module (mock) --- (module downstroke/world * (import scheme (chicken base) defstruct) + (import downstroke/entity) (defstruct camera x y) - (defstruct scene entities tilemap camera tileset-texture)) + (defstruct scene entities tilemap camera tileset-texture camera-target) + ;; Mock camera-follow! - just clamps camera position + (define (camera-follow! camera entity viewport-w viewport-h) + (camera-x-set! camera (max 0 (- (entity-ref entity #:x 0) (/ viewport-w 2)))) + (camera-y-set! camera (max 0 (- (entity-ref entity #:y 0) (/ viewport-h 2))))) + ;; Mock scene-find-tagged - finds first entity with matching tag + (define (scene-find-tagged scene tag) + (let loop ((entities (scene-entities scene))) + (cond + ((null? entities) #f) + ((member tag (entity-ref (car entities) #:tags '())) (car entities)) + (else (loop (cdr entities))))))) (import downstroke/world) ;; --- Real deps --- @@ -164,7 +182,8 @@ (scene (make-scene entities: '() tilemap: #f camera: cam - tileset-texture: #f)) + tileset-texture: #f + camera-target: #f)) (g (make-game))) (game-scene-set! g scene) (test-equal "returns scene camera" |
