override tweaks.

This commit is contained in:
2014-12-15 07:10:06 -08:00
parent 089f9954be
commit 854e3c6b20
3 changed files with 27 additions and 15 deletions

View File

@@ -38,17 +38,16 @@
(actions/talk entities :ego "I don't know what to do with that."))))})
(defn find-override [screen entities [x y]]
(first (filter #(and ((:mouse-in? %) entities x y)
(:cursor %))
(get-in entities [:room :interactions]))))
(defn click-inventory [screen entities]
(when (not (get-in entities [:actions :script-running?]))
(if (= (get-in entities [:cursor :current] ) :main)
(do
(screen! inventory-screen :show-screen :items (map (entities :all-items) (get-in entities [:state :inventory])))
(assoc-in entities [:state :active?] false))
(-> entities
(assoc-in [:state :active?] false)
(assoc-in [:cursor :override] nil)))
(assoc-in entities [:cursor :current] :main))))
@@ -278,7 +277,8 @@
:cursor {:id "cursor"
:current :main
:last :main
:override nil}
:override nil
:last-pos [0 0]}
:all-items (assoc items/items :object nil)
:room (as-> (get rooms (:last-room (get-state))) room
(assoc-in room [:entities :ego] (get-ego screen (:start-pos room) ((:scale-fn room) (:start-pos room)))))
@@ -334,11 +334,8 @@
:on-mouse-moved
(fn [screen [entities]]
(when (get-in entities [:state :active?])
(let [{:keys [x y]} (input->screen screen {:x (:input-x screen) :y (:input-y screen)})]
(if-let [mouse-override (find-override screen entities [x y])]
(assoc-in entities [:cursor :override] (:cursor mouse-override))
(assoc-in entities [:cursor :override] nil)))))
(let [pos (input->screen screen {:x (:input-x screen) :y (:input-y screen)})]
(utils/update-override (assoc-in entities [:cursor :last-pos] [(:x pos) (:y pos)]))))
:on-touch-up (fn [screen [entities]]
(if (= (button-code :right)
@@ -351,7 +348,9 @@
(assoc-in entities [:state :active?] false))
:on-reactivate (fn [screen [entities]]
(assoc-in entities [:state :active?] true))
(-> entities
(assoc-in [:state :active?] true)
(assoc-in [:cursor :override] nil)))
:on-chose-item (fn [{:keys [item]} [entities]]
(assoc-in entities [:cursor :current] item))