diff --git a/desktop/src-common/advent/screens/scene.clj b/desktop/src-common/advent/screens/scene.clj index f10891e8..6931bf77 100644 --- a/desktop/src-common/advent/screens/scene.clj +++ b/desktop/src-common/advent/screens/scene.clj @@ -42,15 +42,18 @@ (:cursor %)) (get-in entities [:room :interactions])))) -(defn open-inventory [screen entities] - (screen! inventory-screen :show-screen :items (map (entities :all-items) (get-in entities [:state :inventory]))) - (assoc-in entities [:state :active?] false)) +(defn click-inventory [screen entities] + (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)) + (assoc-in entities [:cursor :current] :main))) (defn left-click [screen entities] (let [{:keys [x y]} (input->screen screen {:x (:input-x screen) :y (:input-y screen)})] (if ((:mouse-in? (:inventory entities)) x y) - (open-inventory screen entities) + (click-inventory screen entities) (let [interaction (first (filter #((:mouse-in? %) entities x y) (get-in entities [:room :interactions]))) interacting-entity (first (sort-by (comp - :baseline) (filter #(and (:mouse-in? %)