fixing bugs.

This commit is contained in:
Bryce Covert
2017-04-11 06:23:26 -07:00
parent e208b96335
commit 2837f9ed4b
3 changed files with 29 additions and 16 deletions

View File

@@ -192,6 +192,7 @@
(let [new-anim (find-animation entity anim)] (let [new-anim (find-animation entity anim)]
(if (and anim (not= new-anim (:anim entity))) (if (and anim (not= new-anim (:anim entity)))
(assoc entity (assoc entity
:force-rerender true
:anim new-anim :anim new-anim
:anim-start (:total-time screen)) :anim-start (:total-time screen))
entity)))) entity))))

View File

@@ -855,10 +855,12 @@
(if anim-loop? (if anim-loop?
(get-looped-animation-point anim last-animated-time) (get-looped-animation-point anim last-animated-time)
last-animated-time))] last-animated-time))]
(if (= current-frame-index (:current-frame-index entity) (:previous-frame-index entity)) (if (and (= current-frame-index (:current-frame-index entity) (:previous-frame-index entity))
(not (:force-rerender entity)))
entity entity
(merge (assoc entity (merge (assoc entity
:object (.getKeyFrame ^Animation anim (- total-time anim-start) anim-loop?) :object (.getKeyFrame ^Animation anim (- total-time anim-start) anim-loop?)
:force-rerender nil
:current-frame-index current-frame-index :current-frame-index current-frame-index
:previous-frame-index previous-frame-index :previous-frame-index previous-frame-index
:origin-x (or (-> entity :anim-origins (get anim) (nth 0)) :origin-x (or (-> entity :anim-origins (get anim) (nth 0))
@@ -1819,6 +1821,15 @@
:else :else
nil)) nil))
(defn update-hud-active [screen entities options]
(let [[x y] (utils/unproject screen options)
hovered-inventory? (utils/intersects? (:inventory entities) [x y])
hovered-close? (utils/intersects? (:close entities) [x y])
hovered-save? (utils/intersects? (:save entities) [x y])]
(screen! scene :hud-active? { :hud-active? (or hovered-close? hovered-inventory? hovered-save?)})))
(defscreen hud (defscreen hud
:on-show :on-show
(fn [screen entities options] (fn [screen entities options]
@@ -1959,16 +1970,17 @@
:on-touch-down :on-touch-down
(fn [screen entities options] (fn [screen entities options]
(let [[x y] (utils/unproject screen options) (update-hud-active screen entities options))
hovered-inventory? (utils/intersects? (:inventory entities) [x y])
hovered-close? (utils/intersects? (:close entities) [x y]) :on-touch-dragged
hovered-save? (utils/intersects? (:save entities) [x y])] (fn [screen entities options]
(update-hud-active screen entities options))
(screen! scene :hud-active? { :hud-active? (or hovered-close? hovered-inventory? hovered-save?)})))
:on-mouse-moved :on-mouse-moved
(fn [screen entities options] (fn [screen entities options]
(update-hud-active screen entities options)
(let [[x y] (utils/unproject screen options) (let [[x y] (utils/unproject screen options)
hovered-inventory? (utils/intersects? (:inventory entities) [x y]) hovered-inventory? (utils/intersects? (:inventory entities) [x y])
hovered-close? (utils/intersects? (:close entities) [x y]) hovered-close? (utils/intersects? (:close entities) [x y])
@@ -1994,8 +2006,7 @@
entities) entities)
entities (grow-hud screen entities :close false) entities (grow-hud screen entities :close false)
entities (grow-hud screen entities :save false)] entities (grow-hud screen entities :save false)]
entities entities))))
))))
:on-touch-up :on-touch-up

View File

@@ -524,7 +524,8 @@
(get-in entities [:state :hud-active?]) (get-in entities [:state :hud-active?])
(-> entities (-> entities
(assoc-in [:cursor :override] nil)) (assoc-in [:cursor :override] nil)
(assoc-in [:label :text] ""))
(and mouse-override (:only-script mouse-override)) (and mouse-override (:only-script mouse-override))
(-> entities (-> entities