Add tiled-map functions
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user