Remove loader macros and improve docstrings
This commit is contained in:
@@ -13,13 +13,11 @@
|
|||||||
"gdx-array-map!" :methods}
|
"gdx-array-map!" :methods}
|
||||||
"AssetManager" {"asset-manager" :methods
|
"AssetManager" {"asset-manager" :methods
|
||||||
"asset-manager!" :methods}
|
"asset-manager!" :methods}
|
||||||
"AtlasTmxMapLoader" {"loader! :atlas-tmx-map" :methods}
|
|
||||||
"Audio" {"audio!" :methods}
|
"Audio" {"audio!" :methods}
|
||||||
"Bezier" {"bezier" :methods
|
"Bezier" {"bezier" :methods
|
||||||
"bezier!" :methods}
|
"bezier!" :methods}
|
||||||
"BitmapFont" {"bitmap-font" :methods
|
"BitmapFont" {"bitmap-font" :methods
|
||||||
"bitmap-font!" :methods}
|
"bitmap-font!" :methods}
|
||||||
"BitmapFontLoader" {"loader! :bitmap-font" :methods}
|
|
||||||
"BlendingAttribute" {"attribute :blending" :constructors
|
"BlendingAttribute" {"attribute :blending" :constructors
|
||||||
"attribute-type :blending" :static-fields
|
"attribute-type :blending" :static-fields
|
||||||
"attribute! :blending" :static-methods}
|
"attribute! :blending" :static-methods}
|
||||||
@@ -86,7 +84,6 @@
|
|||||||
"FrictionJointDef" {"joint-def :friction" :fields}
|
"FrictionJointDef" {"joint-def :friction" :fields}
|
||||||
"Frustum" {"frustum" :methods
|
"Frustum" {"frustum" :methods
|
||||||
"frustum!" :methods}
|
"frustum!" :methods}
|
||||||
"G3dModelLoader" {"loader! :g3d-model" :methods}
|
|
||||||
"GearJointDef" {"joint-def :gear" :fields}
|
"GearJointDef" {"joint-def :gear" :fields}
|
||||||
"GeometryUtils" {"geometry!" :static-methods}
|
"GeometryUtils" {"geometry!" :static-methods}
|
||||||
"GestureDetector" {"gesture-detector!" :methods}
|
"GestureDetector" {"gesture-detector!" :methods}
|
||||||
@@ -146,9 +143,7 @@
|
|||||||
"model-builder!" :methods}
|
"model-builder!" :methods}
|
||||||
"ModelInstance" {"model" :methods
|
"ModelInstance" {"model" :methods
|
||||||
"model!" :methods}
|
"model!" :methods}
|
||||||
"ModelLoader" {"loader! :model" :methods}
|
|
||||||
"MouseJointDef" {"joint-def :mouse" :fields}
|
"MouseJointDef" {"joint-def :mouse" :fields}
|
||||||
"MusicLoader" {"loader! :music" :methods}
|
|
||||||
"Net" {"net!" :methods}
|
"Net" {"net!" :methods}
|
||||||
"NinePatch" {"nine-patch" :methods
|
"NinePatch" {"nine-patch" :methods
|
||||||
"nine-patch!" :methods}
|
"nine-patch!" :methods}
|
||||||
@@ -157,14 +152,12 @@
|
|||||||
"orthogonal-tiled-map!" :methods}
|
"orthogonal-tiled-map!" :methods}
|
||||||
"OrthographicCamera" {"orthographic" :methods
|
"OrthographicCamera" {"orthographic" :methods
|
||||||
"orthographic!" :methods}
|
"orthographic!" :methods}
|
||||||
"ObjLoader" {"loader! :obj" :methods}
|
|
||||||
"ParticleEffect" {"particle-effect" :methods
|
"ParticleEffect" {"particle-effect" :methods
|
||||||
"particle-effect!" :methods}
|
"particle-effect!" :methods}
|
||||||
"PerspectiveCamera" {"perspective" :methods
|
"PerspectiveCamera" {"perspective" :methods
|
||||||
"perspective!" :methods}
|
"perspective!" :methods}
|
||||||
"Pixmap" {"pixmap" :methods
|
"Pixmap" {"pixmap" :methods
|
||||||
"pixmap!" :methods}
|
"pixmap!" :methods}
|
||||||
"PixmapLoader" {"loader! :pixmap" :methods}
|
|
||||||
"Plane" {"plane" :methods
|
"Plane" {"plane" :methods
|
||||||
"plane!" :methods}
|
"plane!" :methods}
|
||||||
"Plane.PlaneSide" {"plane-side" :static-fields}
|
"Plane.PlaneSide" {"plane-side" :static-fields}
|
||||||
@@ -203,12 +196,10 @@
|
|||||||
"ShapeRenderer.ShapeType" {"shape-type" :static-fields}
|
"ShapeRenderer.ShapeType" {"shape-type" :static-fields}
|
||||||
"Skin" {"skin" :methods
|
"Skin" {"skin" :methods
|
||||||
"skin!" :methods}
|
"skin!" :methods}
|
||||||
"SkinLoader" {"loader! :skin" :methods}
|
|
||||||
"Slider" {"slider" :methods
|
"Slider" {"slider" :methods
|
||||||
"slider!" :methods}
|
"slider!" :methods}
|
||||||
"Sound" {"sound" :methods
|
"Sound" {"sound" :methods
|
||||||
"sound!" :methods}
|
"sound!" :methods}
|
||||||
"SoundLoader" {"loader! :sound" :methods}
|
|
||||||
"Sphere" {"sphere" :methods
|
"Sphere" {"sphere" :methods
|
||||||
"sphere!" :methods}
|
"sphere!" :methods}
|
||||||
"SplitPane.SplitPaneStyle" {"style :split-pane" :constructors}
|
"SplitPane.SplitPaneStyle" {"style :split-pane" :constructors}
|
||||||
@@ -230,14 +221,12 @@
|
|||||||
"TextField" {"text-field" :methods
|
"TextField" {"text-field" :methods
|
||||||
"text-field!" :methods}
|
"text-field!" :methods}
|
||||||
"TextField.TextFieldStyle" {"style :text-field" :constructors}
|
"TextField.TextFieldStyle" {"style :text-field" :constructors}
|
||||||
"TextureLoader" {"loader! :texture" :methods}
|
|
||||||
"TextureMapObject" {"map-object :texture" :methods}
|
"TextureMapObject" {"map-object :texture" :methods}
|
||||||
"TextureRegion" {"texture" :methods
|
"TextureRegion" {"texture" :methods
|
||||||
"texture!" :methods}
|
"texture!" :methods}
|
||||||
"TextureRegionDrawable" {"drawable :texture-region" :constructors}
|
"TextureRegionDrawable" {"drawable :texture-region" :constructors}
|
||||||
"Tree" {"tree" :methods
|
"Tree" {"tree" :methods
|
||||||
"tree!" :methods}
|
"tree!" :methods}
|
||||||
"TmxMapLoader" {"loader! :tmx-map" :methods}
|
|
||||||
"Touchpad.TouchpadStyle" {"style :touchpad" :constructors}
|
"Touchpad.TouchpadStyle" {"style :touchpad" :constructors}
|
||||||
"TiledMap" {"tiled-map" :methods
|
"TiledMap" {"tiled-map" :methods
|
||||||
"tiled-map!" :methods}
|
"tiled-map!" :methods}
|
||||||
|
|||||||
@@ -7,7 +7,10 @@
|
|||||||
InputMultiplexer InputProcessor Net Preferences Screen]
|
InputMultiplexer InputProcessor Net Preferences Screen]
|
||||||
[com.badlogic.gdx.audio Sound]
|
[com.badlogic.gdx.audio Sound]
|
||||||
[com.badlogic.gdx.assets AssetManager]
|
[com.badlogic.gdx.assets AssetManager]
|
||||||
[com.badlogic.gdx.assets.loaders AsynchronousAssetLoader]
|
[com.badlogic.gdx.assets.loaders AsynchronousAssetLoader
|
||||||
|
ParticleEffectLoader]
|
||||||
|
[com.badlogic.gdx.assets.loaders.resolvers
|
||||||
|
InternalFileHandleResolver]
|
||||||
[com.badlogic.gdx.files FileHandle]
|
[com.badlogic.gdx.files FileHandle]
|
||||||
[com.badlogic.gdx.graphics Camera Color GL20 OrthographicCamera
|
[com.badlogic.gdx.graphics Camera Color GL20 OrthographicCamera
|
||||||
PerspectiveCamera Pixmap Pixmap$Format PixmapIO Texture
|
PerspectiveCamera Pixmap Pixmap$Format PixmapIO Texture
|
||||||
|
|||||||
@@ -55,7 +55,14 @@ complicated shapes. If you use `assoc` to set the overall :x and :y of the
|
|||||||
; create an empty shape, then set it to a green rectangle
|
; create an empty shape, then set it to a green rectangle
|
||||||
(shape (shape :filled)
|
(shape (shape :filled)
|
||||||
:set-color (color :green)
|
:set-color (color :green)
|
||||||
:rect 0 0 10 30)"
|
:rect 0 0 10 30)
|
||||||
|
; create a green rectangle at 10,10 and rotate it 45 degrees
|
||||||
|
(assoc (shape :filled
|
||||||
|
:set-color (color :green)
|
||||||
|
:rect 0 0 10 30)
|
||||||
|
:x 10
|
||||||
|
:y 10
|
||||||
|
:angle 45)"
|
||||||
[type & options]
|
[type & options]
|
||||||
(when (seq (clojure.set/intersection #{:begin :end} (set options)))
|
(when (seq (clojure.set/intersection #{:begin :end} (set options)))
|
||||||
(-> "No need to call :begin or :end, because it's done for you."
|
(-> "No need to call :begin or :end, because it's done for you."
|
||||||
|
|||||||
@@ -135,70 +135,15 @@ found."
|
|||||||
|
|
||||||
; assets
|
; assets
|
||||||
|
|
||||||
(defn ^:private loader-class
|
|
||||||
[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 [AssetLoader](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/assets/loaders/AssetLoader.html).
|
|
||||||
|
|
||||||
(loader :atlas-tmx-map (resolver :internal-file-handle))
|
|
||||||
(loader :bitmap-font (resolver :internal-file-handle))
|
|
||||||
(loader :g3d-model (resolver :internal-file-handle))
|
|
||||||
(loader :model (resolver :internal-file-handle))
|
|
||||||
(loader :music (resolver :internal-file-handle))
|
|
||||||
(loader :obj (resolver :internal-file-handle))
|
|
||||||
(loader :pixmap (resolver :internal-file-handle))
|
|
||||||
(loader :skin (resolver :internal-file-handle))
|
|
||||||
(loader :sound (resolver :internal-file-handle))
|
|
||||||
(loader :texture (resolver :internal-file-handle))
|
|
||||||
(loader :tmx-map (resolver :internal-file-handle))
|
|
||||||
(loader :tmx-map
|
|
||||||
(resolver :internal-file-handle)
|
|
||||||
(load [file-name] nil))"
|
|
||||||
[type resolver & options]
|
|
||||||
`(proxy [~(loader-class type)] [~resolver] ~@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 :tmx-map :load \"map.tmx\")"
|
|
||||||
[object type & options]
|
|
||||||
`(let [^AsynchronousAssetLoader object# ~object]
|
|
||||||
(u/call! object# ~@options)))
|
|
||||||
|
|
||||||
(defn ^:private resolver-class
|
|
||||||
[k]
|
|
||||||
(u/gdx :assets :loaders :resolvers (str (u/key->pascal k) "Resolver")))
|
|
||||||
|
|
||||||
(defmacro resolver
|
|
||||||
"Returns an implementation of [FileHandleResolver](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/assets/loaders/FileHandleResolver.html).
|
|
||||||
|
|
||||||
(resolver :internal-file-handle)
|
|
||||||
(resolver :internal-file-handle
|
|
||||||
(resolve [file-name]
|
|
||||||
(files! :internal file-name)))"
|
|
||||||
[type & options]
|
|
||||||
`(proxy [~(resolver-class type)] [] ~@options))
|
|
||||||
|
|
||||||
(defn ^:private set-loaders!
|
(defn ^:private set-loaders!
|
||||||
([am]
|
([am]
|
||||||
(set-loaders! am (resolver :internal-file-handle)))
|
(set-loaders! am (InternalFileHandleResolver.)))
|
||||||
([^AssetManager am res]
|
([^AssetManager am res]
|
||||||
(->> (loader :tmx-map res)
|
(.setLoader am TiledMap (TmxMapLoader. res))
|
||||||
(.setLoader am TiledMap))
|
(.setLoader am ParticleEffect (proxy [ParticleEffectLoader] [res]
|
||||||
(->> (loader :particle-effect
|
(load [am file-name fh param]
|
||||||
res
|
(doto (ParticleEffect.)
|
||||||
(load [am file-name fh param]
|
(.load fh (.parent fh))))))))
|
||||||
(doto (ParticleEffect.)
|
|
||||||
(.load fh (.parent fh)))))
|
|
||||||
(.setLoader am ParticleEffect))))
|
|
||||||
|
|
||||||
(defn asset-manager*
|
(defn asset-manager*
|
||||||
([]
|
([]
|
||||||
|
|||||||
@@ -64,11 +64,9 @@
|
|||||||
:set-region 0 0 100 100)
|
:set-region 0 0 100 100)
|
||||||
; create a new texture based on an existing one
|
; create a new texture based on an existing one
|
||||||
(texture (texture \"image.png\"))
|
(texture (texture \"image.png\"))
|
||||||
; rotate a texture 45 degress counterclockwise around the bottom-left corner
|
; rotate a texture 45 degress
|
||||||
(assoc (texture \"image.png\")
|
(assoc (texture \"image.png\")
|
||||||
:angle 45
|
:angle 45)"
|
||||||
:origin-x 0
|
|
||||||
:origin-y 0)"
|
|
||||||
[arg & options]
|
[arg & options]
|
||||||
`(let [entity# (texture* ~arg)]
|
`(let [entity# (texture* ~arg)]
|
||||||
(u/calls! ^TextureRegion (u/get-obj entity# :object) ~@options)
|
(u/calls! ^TextureRegion (u/get-obj entity# :object) ~@options)
|
||||||
|
|||||||
Reference in New Issue
Block a user