mouse cursor doesn't stay highlighted.
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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})
|
||||||
|
|||||||
Reference in New Issue
Block a user