Remove unnecessary multi-method

This commit is contained in:
oakes
2014-03-15 20:59:19 -04:00
parent 07c296fee6
commit 6565f9b31c
4 changed files with 23 additions and 46 deletions

View File

@@ -2,7 +2,8 @@
(:require [play-clj.utils :as u])
(:import [com.badlogic.gdx.graphics Texture]
[com.badlogic.gdx.graphics.g2d Animation BitmapFont NinePatch
ParticleEffect TextureAtlas TextureRegion]))
ParticleEffect TextureAtlas TextureRegion]
[play_clj.utils TextureEntity NinePatchEntity ParticleEntity]))
(defmacro bitmap-font
"Returns a [BitmapFont](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/graphics/g2d/BitmapFont.html)
@@ -17,7 +18,7 @@
(defn texture*
"The function version of `texture`"
[arg]
(u/create-entity
(TextureEntity.
(cond
(string? arg)
(-> ^String arg Texture. TextureRegion.)
@@ -52,7 +53,7 @@
(defn nine-patch*
"The function version of `nine-patch`"
[arg]
(u/create-entity
(NinePatchEntity.
(cond
(string? arg)
(-> ^String arg Texture. TextureRegion. NinePatch.)
@@ -89,7 +90,7 @@
(defn particle-effect*
"The function version of `particle-effect`"
[]
(u/create-entity (ParticleEffect.)))
(ParticleEntity. (ParticleEffect.)))
(defmacro particle-effect
"Returns an entity based on [ParticleEffect](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/graphics/g2d/ParticleEffect.html)

View File

@@ -7,7 +7,8 @@
IntAttribute TextureAttribute]
[com.badlogic.gdx.graphics.g3d.model.data ModelData]
[com.badlogic.gdx.graphics.g3d.utils AnimationController
ModelBuilder]))
ModelBuilder]
[play_clj.utils ModelEntity]))
; animation-controller
@@ -77,7 +78,7 @@
(defmacro model
"Returns an entity based on [ModelInstance](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/graphics/g3d/ModelInstance.html)"
[& args]
`(u/create-entity
`(ModelEntity.
(let [arg1# ~(first args)]
(cond
(:object arg1#)

View File

@@ -11,7 +11,8 @@
Tree$Node VerticalGroup WidgetGroup Window]
[com.badlogic.gdx.scenes.scene2d.utils NinePatchDrawable
SpriteDrawable TextureRegionDrawable TiledDrawable]
[com.esotericsoftware.tablelayout Cell]))
[com.esotericsoftware.tablelayout Cell]
[play_clj.utils ActorEntity]))
(defmacro drawable
"Returns a subclass of [BaseDrawable](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/scenes/scene2d/utils/BaseDrawable.html)
@@ -159,14 +160,14 @@ based on the file at `path`
(defn ^:private create-group
"Internal use only"
[^WidgetGroup group children]
(apply add! (u/create-entity group) children))
(apply add! (ActorEntity. group) children))
; check-box
(defn check-box*
"The function version of `check-box`"
[^String text arg]
(u/create-entity (CheckBox. text arg)))
(ActorEntity. (CheckBox. text arg)))
(defmacro check-box
"Returns an entity based on [CheckBox](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/scenes/scene2d/ui/CheckBox.html)
@@ -188,7 +189,7 @@ based on the file at `path`
(defn dialog*
"The function version of `dialog`"
[text arg]
(u/create-entity (Dialog. text arg)))
(ActorEntity. (Dialog. text arg)))
(defmacro dialog
"Returns an entity based on [Dialog](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/scenes/scene2d/ui/Dialog.html)
@@ -231,7 +232,7 @@ based on the file at `path`
(defn image*
"The function version of `image`"
[arg]
(u/create-entity
(ActorEntity.
(cond
(map? arg)
(Image. ^TextureRegion (:object arg))
@@ -259,7 +260,7 @@ based on the file at `path`
(defn image-button*
"The function version of `image-button`"
[arg]
(u/create-entity (ImageButton. arg)))
(ActorEntity. (ImageButton. arg)))
(defmacro image-button
"Returns an entity based on [ImageButton](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/scenes/scene2d/ui/ImageButton.html)
@@ -281,7 +282,7 @@ based on the file at `path`
(defn image-text-button*
"The function version of `image-text-button`"
[^String text arg]
(u/create-entity (ImageTextButton. text arg)))
(ActorEntity. (ImageTextButton. text arg)))
(defmacro image-text-button
"Returns an entity based on [ImageTextButton](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/scenes/scene2d/ui/ImageTextButton.html)
@@ -304,7 +305,7 @@ based on the file at `path`
(defn label*
"The function version of `label`"
[^String text arg]
(u/create-entity
(ActorEntity.
(if (isa? (type arg) Color)
(Label. text (style :label (g2d/bitmap-font) arg))
(Label. text arg))))
@@ -330,7 +331,7 @@ based on the file at `path`
(defn scroll-pane*
"The function version of `scroll-pane`"
[child arg]
(u/create-entity (ScrollPane. (u/get-obj child :object) arg)))
(ActorEntity. (ScrollPane. (u/get-obj child :object) arg)))
(defmacro scroll-pane
"Returns an entity based on [ScrollPane](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/scenes/scene2d/ui/ScrollPane.html)
@@ -352,7 +353,7 @@ based on the file at `path`
(defn select-box*
"The function version of `select-box`"
[items arg]
(u/create-entity (SelectBox. (into-array items) arg)))
(ActorEntity. (SelectBox. (into-array items) arg)))
(defmacro select-box
"Returns an entity based on [SelectBox](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/scenes/scene2d/ui/SelectBox.html)
@@ -377,7 +378,7 @@ based on the file at `path`
[{:keys [min max step vertical?]
:or {min 0 max 10 step 1 vertical? false}}
arg]
(u/create-entity
(ActorEntity.
(Slider. (float min) (float max) (float step) vertical? arg)))
(defmacro slider
@@ -442,7 +443,7 @@ based on the file at `path`
(defn text-button*
"The function version of `text-button`"
[^String text arg]
(u/create-entity (TextButton. text arg)))
(ActorEntity. (TextButton. text arg)))
(defmacro text-button
"Returns an entity based on [TextButton](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/scenes/scene2d/ui/TextButton.html)
@@ -464,7 +465,7 @@ based on the file at `path`
(defn text-field*
"The function version of `text-field`"
[^String text arg]
(u/create-entity (TextField. text arg)))
(ActorEntity. (TextField. text arg)))
(defmacro text-field
"Returns an entity based on [TextField](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/scenes/scene2d/ui/TextField.html)

View File

@@ -194,7 +194,7 @@ new object to be created each time a field is set)
height (float (or height (.getTotalHeight object)))]
(.draw object ^SpriteBatch batch x y width height))))
(defrecord ParticleEffectEntity [object] Entity
(defrecord ParticleEntity [object] Entity
(draw-entity! [{:keys [^ParticleEffect object x y delta-time]} batch]
(let [x (float (or x 0))
y (float (or y 0))
@@ -217,29 +217,3 @@ new object to be created each time a field is set)
(draw-entity! [{:keys [^ModelInstance object]}
{:keys [^ModelBatch renderer ^Environment attributes]}]
(.render renderer object attributes)))
; create-entity
(defmulti create-entity
"Internal use only"
class)
(defmethod create-entity TextureRegion
[obj]
(TextureEntity. obj))
(defmethod create-entity NinePatch
[obj]
(NinePatchEntity. obj))
(defmethod create-entity ParticleEffect
[obj]
(ParticleEffectEntity. obj))
(defmethod create-entity Actor
[obj]
(ActorEntity. obj))
(defmethod create-entity ModelInstance
[obj]
(ModelEntity. obj))