indicates uninteractable ui.

This commit is contained in:
Bryce Covert
2015-11-05 21:39:04 -08:00
parent b6613a5106
commit 2d042e5efe
2 changed files with 27 additions and 7 deletions

View File

@@ -1323,6 +1323,12 @@ void main ()
(.update viewport width height true))
)
(defn hud-interactable? []
(let [[scene-entities] (-> scene :entities deref)]
(and (not (get-in scene-entities [:actions :script-running?]))
(get-in scene-entities [:state :active?])
(= 0.0 (get-in scene-entities [:fade :opacity])))))
(defscreen hud
:on-show
(fn [screen entities]
@@ -1347,9 +1353,25 @@ void main ()
:on-render
(fn [{:keys [^FitViewport viewport] :as screen} [entities]]
(.apply viewport)
(let [entities (utils/apply-tweens screen entities (:tweens entities))]
(let [entities (utils/apply-tweens screen entities (:tweens entities))
hud-interactable? (hud-interactable?)
entities (if hud-interactable?
(as-> entities entities
(update-in entities [:save] assoc :r 1.0 :g 1.0 :b 1.0 )
(update-in entities [:inventory] assoc :r 1.0 :g 1.0 :b 1.0 ))
(as-> entities entities
(update-in entities [:save] assoc :r 0.75 :g 0.75 :b 0.75)
(update-in entities [:inventory] assoc :r 0.75 :g 0.75 :b 0.75)
(grow-hud screen entities :save false)
(grow-hud screen entities :inventory false)))]
#_(label! (:fps entities) :set-text (str (game :fps)))
(render! screen [ (:save entities) (:inventory entities) (:close entities)])
(render! screen [ (if hud-interactable?
(:save entities)
(assoc (:save entities) :opacity 0.5))
(if hud-interactable?
(:inventory entities)
(assoc (:inventory entities) :opacity 0.5))
(:close entities)])
entities))
:on-resize
@@ -1363,13 +1385,13 @@ void main ()
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?))
(cond hovered-inventory?
(cond (and hovered-inventory? (hud-interactable?))
(grow-hud screen entities :inventory true)
hovered-close?
(grow-hud screen entities :close true)
hovered-save?
(and hovered-save? (hud-interactable?))
(grow-hud screen entities :save true)
:else
@@ -1391,7 +1413,7 @@ void main ()
(utils/intersects? (:close entities) [x y])
(screen! scene :on-menu)
(utils/intersects? (:save entities) [x y])
(and (utils/intersects? (:save entities) [x y]) (hud-interactable?))
(screen! scene :on-save)
:else

View File

@@ -438,5 +438,3 @@
:on-resize (fn [{:keys [viewport width height]} [entities]]
(.update viewport width height false)
nil))