looking better on an inventory front.
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
[clojure.tools.logging :as log]
|
||||
[clojure.pprint]
|
||||
[advent.pathfind]
|
||||
[advent.actions :as actions]
|
||||
[advent.zone :as zone]
|
||||
[advent.tween :as tween]
|
||||
[advent.utils :as utils])
|
||||
@@ -37,8 +38,9 @@
|
||||
(-> entities
|
||||
(assoc-in [:items selected-item :x] (- x 32))
|
||||
(assoc-in [:items selected-item :y] (- y 32))
|
||||
(assoc :dragged? true)
|
||||
(assoc :hovered-item (:item hovered-entity)))
|
||||
(assoc entities :hovered-item (:item hovered-entity)))))
|
||||
(assoc entities :hovered-item (:item hovered-entity) :dragged? true))))
|
||||
|
||||
|
||||
(defn mouse-move [screen [entities]]
|
||||
@@ -46,7 +48,7 @@
|
||||
hovered-entity (first (filter #((:box %) x y) (vals (:items entities))))]
|
||||
(assoc entities :hovered-item (:item hovered-entity))))
|
||||
|
||||
(defn left-click [screen {:keys [selected-item hovered-item] :as entities}]
|
||||
(defn left-click [screen {:keys [selected-item hovered-item dragged?] :as entities}]
|
||||
(let [room-entities (-> @(resolve 'advent.screens.scene/scene)
|
||||
:entities
|
||||
deref
|
||||
@@ -54,14 +56,22 @@
|
||||
current-cursor (get-in room-entities [:cursor :current])]
|
||||
|
||||
(log/info "chose inventory item" selected-item)
|
||||
(if selected-item
|
||||
(if (= :main current-cursor)
|
||||
(do (screen! @(resolve 'advent.screens.scene/scene) :on-chose-item :item selected-item)
|
||||
(close screen entities false))
|
||||
(when-let [interaction-script ((or (:scripts selected-item) (constantly nil)) (:value current-cursor))]
|
||||
(interaction-script room-entities)
|
||||
(close screen entities true)))
|
||||
(close screen entities false))))
|
||||
(println selected-item hovered-item dragged?)
|
||||
(cond (not selected-item)
|
||||
(close screen entities false)
|
||||
|
||||
(and (= selected-item hovered-item)
|
||||
dragged?)
|
||||
(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)
|
||||
(close screen entities false))
|
||||
:else
|
||||
(when-let [interaction-script (or ((or (:scripts selected-item) (constantly nil)) (:value hovered-item))
|
||||
(actions/get-script entities (actions/talk entities :ego "I'm not sure how those go together.")))]
|
||||
(interaction-script room-entities)
|
||||
(close screen entities true)))))
|
||||
|
||||
(defn right-click [screen {:keys [selected-item] :as entities} ]
|
||||
(let [
|
||||
|
||||
Reference in New Issue
Block a user