Make the filter-fn the first arg to be consistent with filter

This commit is contained in:
oakes
2014-08-02 22:25:57 -04:00
parent 1ed5ff9a2a
commit 40c1bc617a

View File

@@ -20,26 +20,23 @@ screen map.
"Returns the entities in `screen-object`, optionally filtered by a supplied
function.
(e main-screen :player?)"
(e :player? main-screen)
(e texture? main-screen)"
([screen-object]
(-> screen-object :entities deref))
([screen-object filter-fn]
([filter-fn screen-object]
(vec (filter filter-fn (e screen-object)))))
(defn e!
"Resets the entities in `screen-object`, or associates values to the entities
in `screen-object` that match the supplied function. Returns the entities that
were changed.
"Associates values to the entities in `screen-object` that match the supplied
function. Returns the entities that were changed.
(e! main-screen [])
(e! main-screen :player? :health 10)"
([screen-object new-entities]
(reset! (:entities screen-object) new-entities))
([screen-object filter-fn & args]
(swap! (:entities screen-object)
(fn [entities]
(vec (for [e entities]
(if (filter-fn e)
(apply assoc e args)
e)))))
(e screen-object filter-fn)))
(e! :player? main-screen :health 10)"
[filter-fn screen-object & args]
(swap! (:entities screen-object)
(fn [entities]
(vec (for [e entities]
(if (filter-fn e)
(apply assoc e args)
e)))))
(e filter-fn screen-object))