aboutsummaryrefslogtreecommitdiff
path: root/tests/engine-test.scm
diff options
context:
space:
mode:
Diffstat (limited to 'tests/engine-test.scm')
-rw-r--r--tests/engine-test.scm44
1 files changed, 42 insertions, 2 deletions
diff --git a/tests/engine-test.scm b/tests/engine-test.scm
index 2c9d6d5..aa44964 100644
--- a/tests/engine-test.scm
+++ b/tests/engine-test.scm
@@ -85,7 +85,7 @@
(import scheme (chicken base) defstruct)
(import downstroke-entity)
(defstruct camera x y)
- (defstruct scene entities tilemap tileset camera tileset-texture camera-target background)
+ (defstruct scene entities tilemap tileset camera tileset-texture camera-target background engine-update)
;; Mock camera-follow - returns a new camera
(define (camera-follow camera entity viewport-w viewport-h)
(update-camera camera
@@ -97,7 +97,15 @@
(cond
((null? entities) #f)
((member tag (entity-ref (car entities) #:tags '())) (car entities))
- (else (loop (cdr entities)))))))
+ (else (loop (cdr entities))))))
+ (define (scene-map-entities scene . procs)
+ (let loop ((ps procs) (es (scene-entities scene)))
+ (if (null? ps)
+ (update-scene scene entities: es)
+ (loop (cdr ps) (map (car ps) es)))))
+ (define (scene-transform-entities scene proc)
+ (update-scene scene entities: (proc (scene-entities scene))))
+ (define (sync-groups entities) entities))
(import downstroke-world)
;; --- Real deps ---
@@ -105,6 +113,25 @@
(include "assets.scm")
(import downstroke-assets)
+;; --- Physics module (mock) ---
+(module downstroke-physics *
+ (import scheme (chicken base))
+ (define (apply-acceleration e s d) e)
+ (define (apply-gravity e s d) e)
+ (define (apply-velocity-x e s d) e)
+ (define (apply-velocity-y e s d) e)
+ (define (resolve-tile-collisions-x e s d) e)
+ (define (resolve-tile-collisions-y e s d) e)
+ (define (detect-on-solid e s d) e)
+ (define (resolve-entity-collisions es) es))
+(import downstroke-physics)
+
+;; --- Tween module (mock) ---
+(module downstroke-tween *
+ (import scheme (chicken base))
+ (define (step-tweens e s d) e))
+(import downstroke-tween)
+
;; --- Renderer module (mock) ---
(module downstroke-renderer *
(import scheme (chicken base))
@@ -262,4 +289,17 @@
(test-assert "states is a hash-table" (hash-table? (game-states game)))
(test-equal "active-state defaults to #f" #f (game-active-state game))))
+(test-group "scene engine-update"
+ (test-equal "scene engine-update defaults to #f"
+ #f
+ (scene-engine-update (make-scene entities: '() tilemap: #f camera-target: #f)))
+ (let* ((my-eu (lambda (game dt) #t))
+ (s (make-scene entities: '() tilemap: #f camera-target: #f engine-update: my-eu)))
+ (test-assert "custom engine-update stored on scene"
+ (procedure? (scene-engine-update s))))
+ (let ((s (make-scene entities: '() tilemap: #f camera-target: #f engine-update: 'none)))
+ (test-equal "engine-update: 'none disables pipeline"
+ 'none
+ (scene-engine-update s))))
+
(test-end "engine")