]> git.jsancho.org Git - gacela.git/blobdiff - src/examples/making-systems.scm
New way for returning results from systems
[gacela.git] / src / examples / making-systems.scm
index b3f381decc2fe998b48df3f767909159ba4e3506..545b7e7dd591dfa300c1361ad48175f68dfd4eeb 100644 (file)
 
 (define-component a x y)
 
+(define-system s1 ()
+  (entities-changes
+   (list (new-entity (make-a 1 2))
+        (new-entity (make-a 10 20)))))
+
+(define-system s2 ((with-a (a)))
+  (for-each
+   (lambda (e)
+     (format #t "Key: ~a  Component: ~a~%" (get-key e) (get-component 'a e)))
+   with-a))
+  
 (define (making-systems)
   (let ((entities '())
        (components '()))
-    (receive (e c) (((make-system '() (lambda (e) (list (new-entity (make-a 1 2)) (new-entity (make-a 10 20))))) entities components))
+    (receive (e c) ((s1 entities components))
             (set! entities e)
             (set! components c))
     (format #t "Two new entities with a:~%~a~%~a~%~%" entities components)
 
-    (((make-system '(a) (lambda (e) (display e) (newline) '())) entities components))))
+    ((s2 entities components))))
 
 (export making-systems)