diff --git a/src/play_clj/core_global.clj b/src/play_clj/core_global.clj index 8d5b37c..a5a138f 100644 --- a/src/play_clj/core_global.clj +++ b/src/play_clj/core_global.clj @@ -145,63 +145,3 @@ [object k & options] `(let [^Sound object# ~object] (u/call! object# ~k ~@options))) - -; assets - -(defn ^:private loader-init - "Internal use only" - [k] - (cond - (contains? #{:atlas-tmx-map :tmx-map} k) - (u/gdx :maps :tiled (str (u/key->pascal k) "Loader.")) - (contains? #{:g3d-model :obj} k) - (u/gdx :graphics :g3d :loader (str (u/key->pascal k) "Loader.")) - :else - (u/gdx :assets :loaders (str (u/key->pascal k) "Loader.")))) - -(defmacro loader - "Returns a subclass of [AsynchronousAssetLoader](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/assets/loaders/AsynchronousAssetLoader.html) - - (loader :atlas-tmx-map \"map.atlas\") - (loader :tmx-map \"map.tmx\") - (loader :obj \"model.obj\") - (loader :g3d-model \"cube.g3dj\") - (loader :bitmap-font \"arial.fnt\") - (loader :music \"song.ogg\") - (loader :pixmap \"background.png\") - (loader :skin \"uiskin.json\") - (loader :sound \"hit.ogg\") - (loader :texture \"monster.png\")" - [type resolver & options] - `(let [object# (~(loader-init type) ~resolver)] - (u/calls! object# ~@options))) - -(defmacro loader! - "Calls a single method in a subclass of [AsynchronousAssetLoader](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/assets/loaders/AsynchronousAssetLoader.html) - - (loader! object :load \"map.tmx\")" - [object & options] - `(u/call! ~object ~@options)) - -(defn asset-manager* - "The function version of `asset-manager`" - ([] - (AssetManager.)) - ([resolver] - (AssetManager. resolver))) - -(defmacro asset-manager - "Returns an [AssetManager](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/assets/AssetManager.html) - - (asset-manager)" - [& options] - `(let [^AssetManager object# (asset-manager*)] - (u/calls! object# ~@options))) - -(defmacro asset-manager! - "Calls a single method in an `asset-manager` - - (asset-manager! object :clear)" - [object k & options] - `(let [^AssetManager object# ~object] - (u/call! object# ~k ~@options))) diff --git a/src/play_clj/core_graphics.clj b/src/play_clj/core_graphics.clj index c776b73..b375bb8 100644 --- a/src/play_clj/core_graphics.clj +++ b/src/play_clj/core_graphics.clj @@ -543,10 +543,3 @@ remains in tact (let [^Camera camera (u/get-obj screen :camera)] (set! (. camera far) n) (.update camera))) - -; misc - -(defmacro usage - "Returns a static field in [VertexAttributes.Usage](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/graphics/VertexAttributes.Usage.html)" - [k] - `~(u/gdx-field :graphics "VertexAttributes$Usage" (u/key->pascal k))) diff --git a/src/play_clj/core_utils.clj b/src/play_clj/core_utils.clj index f49ffdb..80cec8a 100644 --- a/src/play_clj/core_utils.clj +++ b/src/play_clj/core_utils.clj @@ -1,5 +1,7 @@ (in-ns 'play-clj.core) +; static fields + (defmacro scaling "Returns a static field from [Scaling](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/utils/Scaling.html) @@ -14,6 +16,13 @@ [k] `~(u/gdx-field :utils :Scaling k)) +(defmacro usage + "Returns a static field in [VertexAttributes.Usage](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/graphics/VertexAttributes.Usage.html)" + [k] + `~(u/gdx-field :graphics "VertexAttributes$Usage" (u/key->pascal k))) + +; timers + (defn ^:private task* "Internal use only." [{:keys [execute-fn! on-timer]} id] @@ -63,3 +72,63 @@ found" (.stop timer) (update-fn! update-in [[:timers] dissoc id]) timer)) + +; assets + +(defn ^:private loader-init + "Internal use only" + [k] + (cond + (contains? #{:atlas-tmx-map :tmx-map} k) + (u/gdx :maps :tiled (str (u/key->pascal k) "Loader.")) + (contains? #{:g3d-model :obj} k) + (u/gdx :graphics :g3d :loader (str (u/key->pascal k) "Loader.")) + :else + (u/gdx :assets :loaders (str (u/key->pascal k) "Loader.")))) + +(defmacro loader + "Returns a subclass of [AsynchronousAssetLoader](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/assets/loaders/AsynchronousAssetLoader.html) + + (loader :atlas-tmx-map \"map.atlas\") + (loader :tmx-map \"map.tmx\") + (loader :obj \"model.obj\") + (loader :g3d-model \"cube.g3dj\") + (loader :bitmap-font \"arial.fnt\") + (loader :music \"song.ogg\") + (loader :pixmap \"background.png\") + (loader :skin \"uiskin.json\") + (loader :sound \"hit.ogg\") + (loader :texture \"monster.png\")" + [type resolver & options] + `(let [object# (~(loader-init type) ~resolver)] + (u/calls! object# ~@options))) + +(defmacro loader! + "Calls a single method in a subclass of [AsynchronousAssetLoader](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/assets/loaders/AsynchronousAssetLoader.html) + + (loader! object :load \"map.tmx\")" + [object & options] + `(u/call! ~object ~@options)) + +(defn asset-manager* + "The function version of `asset-manager`" + ([] + (AssetManager.)) + ([resolver] + (AssetManager. resolver))) + +(defmacro asset-manager + "Returns an [AssetManager](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/assets/AssetManager.html) + + (asset-manager)" + [& options] + `(let [^AssetManager object# (asset-manager*)] + (u/calls! object# ~@options))) + +(defmacro asset-manager! + "Calls a single method in an `asset-manager` + + (asset-manager! object :clear)" + [object k & options] + `(let [^AssetManager object# ~object] + (u/call! object# ~k ~@options)))