mouse cursor doesn't stay highlighted.

This commit is contained in:
Bryce Covert
2015-08-14 17:40:18 -07:00
parent 76342d30fa
commit 623f63c068
2 changed files with 16 additions and 13 deletions

View File

@@ -677,7 +677,8 @@ void main()
(= active was-active)) (= active was-active))
(let [image-path (if active "cursor_light.png" "cursor.png")] (let [image-path (if active "cursor_light.png" "cursor.png")]
(input! :set-cursor-image (utils/cursor image-path (or (:cursor new-current) new-current)) 0 0))) (input! :set-cursor-image (utils/cursor image-path (or (:cursor new-current) new-current)) 0 0)))
(assoc-in entities [:cursor :last] new-current)) (update-in entities [:cursor ] assoc :last new-current
:was-active active))
entities)) entities))
@@ -824,6 +825,14 @@ void main()
:else :else
[x1 x2])) [x1 x2]))
(defn mouse-moved [{:keys [input-x input-y viewport] :as screen} [entities]]
(if (utils/contains-point? (.getScreenX viewport) (.getScreenY viewport)
(.getScreenWidth viewport) (.getScreenHeight viewport)
input-x input-y)
(utils/update-override screen (assoc-in entities [:cursor :last-pos] [input-x input-y]))
(assoc-in entities [:cursor :override] nil)))
(defscreen scene (defscreen scene
:on-timer :on-timer
(fn [screen [entities]] (fn [screen [entities]]
@@ -1012,13 +1021,10 @@ void main()
(utils/stop-sound snd))) (utils/stop-sound snd)))
:on-mouse-moved :on-mouse-moved
(fn [{:keys [input-x input-y viewport] :as screen} [entities]] mouse-moved
(if (utils/contains-point? (.getScreenX viewport) (.getScreenY viewport)
(.getScreenWidth viewport) (.getScreenHeight viewport)
input-x input-y)
(utils/update-override screen (assoc-in entities [:cursor :last-pos] [input-x input-y])) :on-touch-dragged
(assoc-in entities [:cursor :override] nil))) mouse-moved
:on-touch-up (fn [{:keys [input-x input-y viewport] :as screen} [entities]] :on-touch-up (fn [{:keys [input-x input-y viewport] :as screen} [entities]]
(when (utils/contains-point? (.getScreenX viewport) (.getScreenY viewport) (when (utils/contains-point? (.getScreenX viewport) (.getScreenY viewport)

View File

@@ -246,6 +246,7 @@
(defn update-override [screen entities] (defn update-override [screen entities]
(let [last-pos (unproject screen (get-in entities [:cursor :last-pos])) (let [last-pos (unproject screen (get-in entities [:cursor :last-pos]))
mouse-override (find-override entities last-pos)] mouse-override (find-override entities last-pos)]
(println last-pos)
(cond (cond
(not (get-in entities [:state :active?])) (not (get-in entities [:state :active?]))
entities entities
@@ -253,25 +254,21 @@
(is-unstoppable-script-running screen entities) (is-unstoppable-script-running screen entities)
(-> entities (-> entities
(assoc-in [:cursor :override] :hourglass) (assoc-in [:cursor :override] :hourglass)
(assoc-in [:cursor :was-active] (get-in entities [:cursor :active]))
(assoc-in [:cursor :active] false)) (assoc-in [:cursor :active] false))
(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 [:cursor :was-active] (get-in entities [:cursor :active]))
(assoc-in [:cursor :active] false)) (assoc-in [:cursor :active] false))
mouse-override mouse-override
(-> entities (-> entities
(assoc-in [:cursor :override] (or (:cursor mouse-override) (when (#{:main :active-main} (get-in entities [:cursor :last])) :active-main))) (assoc-in [:cursor :override] (or (:cursor mouse-override) (when (#{:main :active-main} (get-in entities [:cursor :last])) :active-main)))
(assoc-in [:cursor :was-active] (get-in entities [:cursor :active]))
(assoc-in [:cursor :active] true)) (assoc-in [:cursor :active] true))
:else :else
(-> entities (-> entities
(assoc-in [:cursor :override] nil) (assoc-in [:cursor :override] nil)
(assoc-in [:cursor :was-active] (get-in entities [:cursor :active]))
(assoc-in [:cursor :active] false))))) (assoc-in [:cursor :active] false)))))
(def default-night-merge {:r 0.08 :g 0.1 :b 0.36 :multiply-amount 1.0 :hue-amount 1.0}) (def default-night-merge {:r 0.08 :g 0.1 :b 0.36 :multiply-amount 1.0 :hue-amount 1.0})