Add update-gs, which always returns the modified gs and is almost always what you want.

This commit is contained in:
Jeremy Penner 2013-03-18 22:02:16 -04:00
parent dcc5d430e3
commit 7ca348442d

View file

@ -14,6 +14,9 @@
(defmacro with-gs [gs & body]
`(binding [*gamestate* (ref ~gs)] (dosync ~@body)))
(defmacro update-gs [& body]
`(with-gs ~@body (get-gs)))
(defn get-gs [] @*gamestate*)
(defn entity-in [gamestate id] (get-in gamestate [:entities id]))
@ -80,4 +83,4 @@
(defmethod query-index indextype [indextype index query] (or (get index query) #{}))))
(define-id-index :name)
(define-id-index :type)
(define-id-index :type)