From 505655ea0170f09da4569ace830266d9f86aecf6 Mon Sep 17 00:00:00 2001 From: Remington Covert Date: Thu, 16 Apr 2015 08:50:46 -0700 Subject: [PATCH] better scaling but not perfect. --- desktop/src-common/advent/screens/rooms.clj | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/desktop/src-common/advent/screens/rooms.clj b/desktop/src-common/advent/screens/rooms.clj index 05cee966..61d47df9 100644 --- a/desktop/src-common/advent/screens/rooms.clj +++ b/desktop/src-common/advent/screens/rooms.clj @@ -9,11 +9,17 @@ (defn make-entity [id entity] (merge entity {:mouse-in? (fn [entities x y] - (let [{entity-x :x entity-y :y width :width scale-x :scale-x scale-y :scale-y height :height region :object} (get-in entities [:room :entities id]) + (let [{entity-x :x entity-y :y width :width scale-x :scale-x scale-y :scale-y origin-x :origin-x origin-y :origin-y height :height region :object} (get-in entities [:room :entities id]) width (or width (if (instance? TextureRegion region ) (.getRegionWidth region) 0)) - height (or height (if (instance? TextureRegion region ) (.getRegionHeight region) 0))] - ((zone/box entity-x entity-y (+ entity-x (* width (or 1 scale-x))) (+ entity-y (* height (or scale-y 1)))) x y)))} + height (or height (if (instance? TextureRegion region ) (.getRegionHeight region) 0)) + entity-x (- entity-x (* (or origin-x 0) + (or scale-x 1))) + entity-y (- entity-y (* (or origin-y 0) + (or scale-y 1)))] + ((zone/box entity-x entity-y + (+ entity-x (* width (or 1 scale-x))) + (+ entity-y (* height (or scale-y 1)))) x y)))} (when (or (:scripts entity) (:script entity)) {:get-script (fn [cursor [x y]] (if (= :main cursor)