correct cursor logic, scared animation update, choosable volume.
This commit is contained in:
@@ -129,13 +129,7 @@
|
||||
(:cursor %))
|
||||
(get-in entities [:room :interactions]))))
|
||||
|
||||
(defn update-override [entities]
|
||||
(if (get-in entities [:state :active?])
|
||||
(let [last-pos (get-in entities [:cursor :last-pos])]
|
||||
(if-let [mouse-override (find-override entities last-pos)]
|
||||
(assoc-in entities [:cursor :override] (:cursor mouse-override))
|
||||
(assoc-in entities [:cursor :override] nil)))
|
||||
entities))
|
||||
|
||||
|
||||
(defn remove-interaction [entities id]
|
||||
(update-in entities [:room :interactions] (fn [i] (remove #(= id (:id %)) i))))
|
||||
@@ -180,12 +174,30 @@
|
||||
(.apply viewport)
|
||||
[cam viewport stage]))
|
||||
|
||||
(defn unproject [screen]
|
||||
(let [pj (.unproject (:viewport screen) (vector-2 (:input-x screen) (:input-y screen)))
|
||||
x (.x pj)
|
||||
y (.y pj)]
|
||||
[x y]))
|
||||
(defn unproject
|
||||
([screen]
|
||||
(unproject screen [(:input-x screen) (:input-y screen)]) )
|
||||
([screen [x y]]
|
||||
(let [pj (.unproject ^FitViewport (:viewport screen) (vector-2 x y))
|
||||
x (.x pj)
|
||||
y (.y pj)]
|
||||
[x y])))
|
||||
|
||||
(defn project
|
||||
([screen [x y]]
|
||||
(let [pj (.project ^FitViewport (:viewport screen) (vector-2 x y))
|
||||
x (.x pj)
|
||||
y (.y pj)]
|
||||
[x y])))
|
||||
|
||||
(defn contains-point? [x1 y1 width height x y]
|
||||
(and (< x1 x (+ x1 width))
|
||||
(< y1 y (+ y1 height))))
|
||||
|
||||
(defn update-override [screen entities]
|
||||
(let [last-pos (unproject screen (get-in entities [:cursor :last-pos]))]
|
||||
(if (get-in entities [:state :active?])
|
||||
(if-let [mouse-override (find-override entities last-pos)]
|
||||
(assoc-in entities [:cursor :override] (:cursor mouse-override))
|
||||
(assoc-in entities [:cursor :override] nil))
|
||||
entities)))
|
||||
|
||||
Reference in New Issue
Block a user