Clean up defscreen
This commit is contained in:
@@ -62,8 +62,8 @@
|
|||||||
(screen-fn))
|
(screen-fn))
|
||||||
|
|
||||||
(defn defscreen*
|
(defn defscreen*
|
||||||
[{:keys [screen entities
|
[screen entities
|
||||||
on-show on-render on-hide on-pause on-resize on-resume on-timer]
|
{:keys [on-show on-render on-hide on-pause on-resize on-resume on-timer]
|
||||||
:as options}]
|
:as options}]
|
||||||
(let [execute-fn! (fn [func & {:keys [] :as options}]
|
(let [execute-fn! (fn [func & {:keys [] :as options}]
|
||||||
(when func
|
(when func
|
||||||
@@ -88,8 +88,8 @@
|
|||||||
; set the initial values in the screen map
|
; set the initial values in the screen map
|
||||||
(update-fn! assoc
|
(update-fn! assoc
|
||||||
[:total-time 0
|
[:total-time 0
|
||||||
:update-fn! update-fn!
|
|
||||||
:execute-fn! execute-fn!
|
:execute-fn! execute-fn!
|
||||||
|
:update-fn! update-fn!
|
||||||
:on-timer on-timer
|
:on-timer on-timer
|
||||||
:input-listeners (input-listeners options execute-fn!)
|
:input-listeners (input-listeners options execute-fn!)
|
||||||
:ui-listeners (ui-listeners options execute-fn!)])
|
:ui-listeners (ui-listeners options execute-fn!)])
|
||||||
@@ -473,18 +473,14 @@ keywords and functions in pairs."
|
|||||||
(assert (= 0 (count (remove keyword? (keys (apply hash-map options))))) s))
|
(assert (= 0 (count (remove keyword? (keys (apply hash-map options))))) s))
|
||||||
`(let [fn-syms# (->> (for [[k# v#] ~(apply hash-map options)]
|
`(let [fn-syms# (->> (for [[k# v#] ~(apply hash-map options)]
|
||||||
[k# (intern *ns* (symbol (str '~n "-" (name k#))) v#)])
|
[k# (intern *ns* (symbol (str '~n "-" (name k#))) v#)])
|
||||||
flatten
|
(into {}))
|
||||||
(apply hash-map))
|
|
||||||
map-sym# (symbol (str '~n "-map"))
|
map-sym# (symbol (str '~n "-map"))
|
||||||
|
screen# (deref (or (resolve map-sym#)
|
||||||
|
(intern *ns* map-sym# (atom {}))))
|
||||||
entities-sym# (symbol (str '~n "-entities"))
|
entities-sym# (symbol (str '~n "-entities"))
|
||||||
syms# (assoc fn-syms#
|
entities# (deref (or (resolve entities-sym#)
|
||||||
:screen (deref
|
(intern *ns* entities-sym# (atom []))))]
|
||||||
(or (resolve map-sym#)
|
(def ~n (defscreen* screen# entities# fn-syms#))))
|
||||||
(intern *ns* map-sym# (atom {}))))
|
|
||||||
:entities (deref
|
|
||||||
(or (resolve entities-sym#)
|
|
||||||
(intern *ns* entities-sym# (atom [])))))]
|
|
||||||
(def ~n (defscreen* syms#))))
|
|
||||||
|
|
||||||
(defn defgame*
|
(defn defgame*
|
||||||
[{:keys [on-create]}]
|
[{:keys [on-create]}]
|
||||||
|
|||||||
Reference in New Issue
Block a user