item interactions are beginning to form.

This commit is contained in:
2014-10-16 20:51:05 -07:00
parent b0a669be69
commit 5dbf134a43
5 changed files with 36 additions and 16 deletions

View File

@@ -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)