item interactions are beginning to form.
This commit is contained in:
@@ -14,6 +14,12 @@
|
||||
InputMultiplexer InputProcessor Net Preferences Screen]))
|
||||
|
||||
|
||||
(defn close [entities]
|
||||
(run! @(resolve 'advent.screens.scene/scene) :on-reactivate)
|
||||
(-> entities
|
||||
(assoc :shown? false)
|
||||
(assoc :start-showing? false)))
|
||||
|
||||
|
||||
(defscreen inventory-screen
|
||||
:on-show
|
||||
@@ -74,17 +80,21 @@
|
||||
(assoc entities :highlighted-item (:item selected-entity))
|
||||
(assoc entities :highlighted-item nil))))
|
||||
|
||||
:on-touch-down (fn [screen [entities]]
|
||||
:on-touch-up (fn [screen [entities]]
|
||||
(when (:shown? entities)
|
||||
|
||||
(let [{:keys [highlighted-item]} entities]
|
||||
(let [{:keys [highlighted-item]} entities
|
||||
room-entities (-> @(resolve 'advent.screens.scene/scene)
|
||||
:entities
|
||||
deref
|
||||
first)
|
||||
current-cursor (get-in room-entities [:cursor :current])]
|
||||
(if highlighted-item
|
||||
(run! @(resolve 'advent.screens.scene/scene) :on-chose-item :item highlighted-item)
|
||||
(do
|
||||
(run! @(resolve 'advent.screens.scene/scene) :on-reactivate)
|
||||
(-> entities
|
||||
(assoc :shown? false)
|
||||
(assoc :start-showing? false)))))))
|
||||
(if (= :main current-cursor)
|
||||
(run! @(resolve 'advent.screens.scene/scene) :on-chose-item :item highlighted-item)
|
||||
(when-let [interaction-script ((or (:scripts highlighted-item) (constantly nil)) current-cursor)]
|
||||
(interaction-script room-entities)
|
||||
(close entities)))
|
||||
(close entities)))))
|
||||
|
||||
:on-resize (fn [screen entities]
|
||||
(height! screen 960)
|
||||
|
||||
Reference in New Issue
Block a user