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] (defmacro with-gs [gs & body]
`(binding [*gamestate* (ref ~gs)] (dosync ~@body))) `(binding [*gamestate* (ref ~gs)] (dosync ~@body)))
(defmacro update-gs [& body]
`(with-gs ~@body (get-gs)))
(defn get-gs [] @*gamestate*) (defn get-gs [] @*gamestate*)
(defn entity-in [gamestate id] (get-in gamestate [:entities id])) (defn entity-in [gamestate id] (get-in gamestate [:entities id]))