From f47319a8f8f59125735dabb5c701c89f6975a76e Mon Sep 17 00:00:00 2001 From: oakes Date: Wed, 12 Feb 2014 18:45:03 -0500 Subject: [PATCH] Don't convert coordinates for non-isometric screens --- src/play_clj/core_graphics.clj | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/play_clj/core_graphics.clj b/src/play_clj/core_graphics.clj index 9e827c8..e01c5f9 100644 --- a/src/play_clj/core_graphics.clj +++ b/src/play_clj/core_graphics.clj @@ -377,12 +377,20 @@ specify which layers to render with or without (int (.getTileWidth layer)) (int (.getTileHeight layer)))) +(defn ^:private isometric? + "Internal use only" + [{:keys [renderer] :as screen}] + (or (isa? (type renderer) IsometricTiledMapRenderer) + (isa? (type renderer) IsometricStaggeredTiledMapRenderer))) + (defn ^:private split-layer "Internal use only" [screen layer-name] (let [^TiledMapTileLayer l (tiled-map-layer screen layer-name)] (reduce (fn [layers {:keys [x y] :as map-tile}] - (let [screen-tile (isometric->screen screen map-tile) + (let [screen-tile (if (isometric? screen) + (isometric->screen screen map-tile) + map-tile) new-layer (or (->> layers (filter #(= y (:y %))) first) (assoc screen-tile :layer (create-layer l)))] (->> (tiled-map-layer! l :get-cell x y)