Add and rename REPL functions

This commit is contained in:
oakes
2014-07-31 21:10:27 -04:00
parent e196600efe
commit dba57240dd

View File

@@ -1,26 +1,45 @@
(ns play-clj.repl
(:require [play-clj.core :refer :all]))
(defn entities
(defn s
"Returns the screen map in `screen-object`.
(s main-screen)"
[screen-object]
(-> screen-object :screen deref))
(defn s!
"Associates values to the screen map in `screen-object`. Returns the new
screen map.
(s! main-screen :camera (orthographic))"
[screen-object & args]
(apply swap! (:screen screen-object) assoc args))
(defn e
"Returns the entities in `screen-object`, optionally filtered by a supplied
function.
(entities main-screen :player)"
(e main-screen :player)"
([screen-object]
(-> screen-object :entities deref))
([screen-object filter-fn]
(filter filter-fn (entities screen-object))))
(filter filter-fn (e screen-object))))
(defn entities!
"Associates values to the entities in `screen-object` that match the supplied
function.
(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.
(entities! main-screen :player :health 10)"
[screen-object filter-fn & args]
(on-gl (swap! (:entities screen-object)
(fn [entities]
(for [e entities]
(if (filter-fn e)
(apply assoc e args)
e)))))
(entities screen-object filter-fn))
(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]
(for [e entities]
(if (filter-fn e)
(apply assoc e args)
e))))
(e screen-object filter-fn)))