aboutsummaryrefslogtreecommitdiff
path: root/tests/engine-test.scm
diff options
context:
space:
mode:
authorGene Pasquet <dev@etenil.net>2026-04-05 23:12:54 +0100
committerGene Pasquet <dev@etenil.net>2026-04-05 23:12:54 +0100
commitb99ada53b715def5492c7d04c0d327fa7048e5d3 (patch)
tree9e94dbc8ff863ef09ef18f4be31fb45e085572a4 /tests/engine-test.scm
parent027053b11a3a5d861ed2fa2db245388bd95ac246 (diff)
Complete implementation
Diffstat (limited to 'tests/engine-test.scm')
-rw-r--r--tests/engine-test.scm25
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"