a lot of tweaks to make mobile faster.
This commit is contained in:
@@ -23,13 +23,13 @@
|
||||
|
||||
(defn close [screen {:keys [selected-item] :as entities} script-started? dragged-out?]
|
||||
(log/info "closing inventory")
|
||||
(screen! @(resolve 'advent.screens.scene/scene) :on-reactivate :came-from-inventory? dragged-out?)
|
||||
(screen! @(resolve 'advent.screens.scene/hud) :on-reactivate :script-started? script-started? :item selected-item)
|
||||
(screen! @(resolve 'advent.screens.scene/scene) :on-reactivate { :came-from-inventory? dragged-out?})
|
||||
(screen! @(resolve 'advent.screens.scene/hud) :on-reactivate { :script-started? script-started? :item selected-item})
|
||||
(-> entities
|
||||
(assoc-in [:tweens :fade-out] (tween/tween :fade-out screen [:opacity] 1.0 0.0 0.2 :ease tween/ease-out-cubic
|
||||
:finish #(assoc % :shown? false)))))
|
||||
|
||||
(defn mouse-down [screen [entities]]
|
||||
(defn mouse-down [screen entities]
|
||||
(let [[x y] (utils/unproject screen)
|
||||
selected-entity (first (filter #((:box %) x y) (vals (:items entities))))]
|
||||
(assoc entities :selected-item (:item selected-entity))))
|
||||
@@ -40,7 +40,7 @@
|
||||
(< y 80)
|
||||
(> y 880)))
|
||||
|
||||
(defn mouse-drag [screen [{:keys [selected-item] :as entities}]]
|
||||
(defn mouse-drag [screen {:keys [selected-item] :as entities}]
|
||||
(when (interactable? entities)
|
||||
(let [[x y] (utils/unproject screen)
|
||||
hovered-entity (first (filter #((:box %) x y) (vals (:items entities))))]
|
||||
@@ -58,7 +58,7 @@
|
||||
(assoc entities :hovered-item (:item hovered-entity) :dragged? true)))))
|
||||
|
||||
|
||||
(defn mouse-move [screen [entities]]
|
||||
(defn mouse-move [screen entities]
|
||||
(let [[x y] (utils/unproject screen)
|
||||
hovered-entity (first (filter #((:box %) x y) (vals (:items entities))))]
|
||||
(assoc entities :hovered-item (:item hovered-entity))))
|
||||
@@ -66,8 +66,7 @@
|
||||
(defn left-click [screen {:keys [selected-item hovered-item dragged?] :as entities}]
|
||||
(let [room-entities (-> @(resolve 'advent.screens.scene/scene)
|
||||
:entities
|
||||
deref
|
||||
first)]
|
||||
deref)]
|
||||
|
||||
(log/info "chose inventory item" selected-item)
|
||||
(println selected-item hovered-item dragged?)
|
||||
@@ -79,7 +78,7 @@
|
||||
(dissoc entities :selected-item :dragged?)
|
||||
|
||||
(or (not hovered-item) (= selected-item hovered-item))
|
||||
(do (screen! @(resolve 'advent.screens.scene/scene) :on-chose-item :item selected-item)
|
||||
(do (screen! @(resolve 'advent.screens.scene/scene) :on-chose-item { :item selected-item})
|
||||
(close screen entities false false))
|
||||
:else
|
||||
(when-let [interaction-script (or ((or (:scripts selected-item) (constantly nil)) (:value hovered-item))
|
||||
@@ -92,7 +91,7 @@
|
||||
room-entities (-> @(resolve 'advent.screens.scene/scene)
|
||||
:entities
|
||||
deref
|
||||
first)
|
||||
)
|
||||
ego (get-in room-entities [:room :entities :ego])]
|
||||
(when selected-item
|
||||
(((:get-script ego) selected-item [0 0]) room-entities)
|
||||
@@ -132,7 +131,7 @@
|
||||
:hovered-text hovered-text}))
|
||||
|
||||
:on-render
|
||||
(fn [{:keys [^FitViewport viewport] :as screen} [{:keys [shown? tweens] :as entities}]]
|
||||
(fn [{:keys [^FitViewport viewport] :as screen} {:keys [shown? tweens] :as entities}]
|
||||
(.apply viewport)
|
||||
(let [entities (utils/apply-tweens screen entities tweens)
|
||||
opacity (get-in entities [:opacity])
|
||||
@@ -156,7 +155,7 @@
|
||||
(render! screen [(:hovered-text entities)]))
|
||||
entities))
|
||||
|
||||
:show-screen (fn [{items :items :as screen} [entities]]
|
||||
:show-screen (fn [{items :items :as screen} entities]
|
||||
(log/info "showing inventory")
|
||||
(when-not (:shown? entities)
|
||||
(-> entities
|
||||
@@ -188,7 +187,7 @@
|
||||
:on-touch-dragged mouse-drag
|
||||
:on-touch-down mouse-down
|
||||
|
||||
:on-touch-up (fn [screen [entities]]
|
||||
:on-touch-up (fn [screen entities]
|
||||
(when (interactable? entities)
|
||||
(if (= (button-code :left) (:button screen))
|
||||
(left-click screen entities)
|
||||
|
||||
Reference in New Issue
Block a user