Define the screen methods as top-level vars to allow refreshing when namespace is reloaded
This commit is contained in:
@@ -17,7 +17,7 @@
|
|||||||
(load "core_global")
|
(load "core_global")
|
||||||
(load "core_render")
|
(load "core_render")
|
||||||
|
|
||||||
(defn- dummy [_])
|
(defn- dummy [& args])
|
||||||
|
|
||||||
(defn defscreen*
|
(defn defscreen*
|
||||||
[{:keys [on-show on-render on-hide on-pause on-resize on-resume]
|
[{:keys [on-show on-render on-hide on-pause on-resize on-resume]
|
||||||
@@ -44,8 +44,13 @@
|
|||||||
(resume [] (on-resume @screen)))))
|
(resume [] (on-resume @screen)))))
|
||||||
|
|
||||||
(defmacro defscreen
|
(defmacro defscreen
|
||||||
[name & {:keys [] :as options}]
|
[n & {:keys [] :as options}]
|
||||||
`(defonce ~name (defscreen* ~options)))
|
`(->> (for [[k# v#] ~options]
|
||||||
|
[k# (intern *ns* (symbol (str '~n "-" (name k#))) v#)])
|
||||||
|
flatten
|
||||||
|
(apply hash-map)
|
||||||
|
defscreen*
|
||||||
|
(def ~n)))
|
||||||
|
|
||||||
(defn defgame*
|
(defn defgame*
|
||||||
[{:keys [on-create] :or {on-create dummy}}]
|
[{:keys [on-create] :or {on-create dummy}}]
|
||||||
|
|||||||
Reference in New Issue
Block a user