Add tiled-map functions

This commit is contained in:
oakes
2014-01-04 20:59:02 -05:00
parent 33367be7aa
commit a139c0757f
2 changed files with 23 additions and 9 deletions

View File

@@ -4,7 +4,7 @@
[com.badlogic.gdx.graphics Camera Color GL20 OrthographicCamera
PerspectiveCamera Texture]
[com.badlogic.gdx.graphics.g2d Animation SpriteBatch TextureRegion]
[com.badlogic.gdx.maps MapLayers]
[com.badlogic.gdx.maps MapLayer MapLayers]
[com.badlogic.gdx.maps.tiled TiledMap TiledMapTileLayer TmxMapLoader]
[com.badlogic.gdx.maps.tiled.renderers
BatchTiledMapRenderer

View File

@@ -24,17 +24,31 @@
(.draw ^Stage renderer)))
(defn tiled-map-layer
[{:keys [^BatchTiledMapRenderer renderer]} ^String layer]
[{:keys [^BatchTiledMapRenderer renderer]} layer]
(assert renderer)
(-> renderer .getMap .getLayers (.get layer)))
(if (isa? (type layer) MapLayer)
layer
(-> renderer .getMap .getLayers (.get layer))))
(defn tiled-map-layers
[{:keys [^BatchTiledMapRenderer renderer]}]
(assert renderer)
(let [layers (-> renderer .getMap .getLayers)]
(for [i (range (.getCount layers))]
(.get layers i))))
(defn tiled-map-layer-name
[screen layer]
(.getName ^MapLayer (tiled-map-layer screen layer)))
(defn tiled-map-layer-names
[screen]
(for [layer (tiled-map-layers screen)]
(tiled-map-layer-name screen layer)))
(defn tiled-map-cell
[{:keys [^BatchTiledMapRenderer renderer] :as screen} layer x y]
(assert renderer)
(-> (if (or (string? layer) (number? layer))
^TiledMapTileLayer (tiled-map-layer screen layer)
^TiledMapTileLayer layer)
(.getCell x y)))
[screen layer x y]
(.getCell ^TiledMapTileLayer (tiled-map-layer screen layer) x y))
(defmulti renderer :type :default nil)