]> git.jsancho.org Git - gacela.git/blobdiff - src/system.scm
New way for returning results from systems
[gacela.git] / src / system.scm
index 9654cffbafdb4a059aedfc3f3ef33fc58a10b1b2..5a70cb5010e34f7db8c0905efd22cbc9b91794f3 100644 (file)
 
 ;;; Making systems
 
+(define-record-type entities-changes-type
+  (entities-changes changes)
+  entities-changes?
+  (changes get-entities-changes))
+
 (define* (find-entities-by-components c t)
   (cond ((null? t) '())
        (else
           (lambda* (#:optional (entities2 #f) (components2 #f))
             (let ((e (if (and entities2 components2) entities2 entities))
                   (c (if (and entities2 components2) components2 components)))
-              (modify-entities res e c)))))))))
+              (modify-entities (if (entities-changes? res) (get-entities-changes res) '()) e c)))))))))
 
 (define-syntax define-system
   (syntax-rules ()
        (else
         (apply join-systems systems))))
 
-(export find-entities-by-components
+(export entities-changes
+       entities-changes?
+       get-entities-changes
+       find-entities-by-components
        define-system
        make-system
        join-systems