probably bugs, but faster.
This commit is contained in:
@@ -29,8 +29,8 @@
|
||||
(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]
|
||||
(let [[x y] (utils/unproject screen)
|
||||
(defn mouse-down [screen entities options]
|
||||
(let [[x y] (utils/unproject screen options)
|
||||
selected-entity (first (filter #((:box %) x y) (vals (:items entities))))]
|
||||
(assoc entities :selected-item (:item selected-entity))))
|
||||
|
||||
@@ -40,9 +40,9 @@
|
||||
(< y 80)
|
||||
(> y 880)))
|
||||
|
||||
(defn mouse-drag [screen {:keys [selected-item] :as entities}]
|
||||
(defn mouse-drag [screen {:keys [selected-item] :as entities} options]
|
||||
(when (interactable? entities)
|
||||
(let [[x y] (utils/unproject screen)
|
||||
(let [[x y] (utils/unproject screen options)
|
||||
hovered-entity (first (filter #((:box %) x y) (vals (:items entities))))]
|
||||
(cond
|
||||
(and selected-item (mouse-outside-inventory? [x y]))
|
||||
@@ -58,12 +58,12 @@
|
||||
(assoc entities :hovered-item (:item hovered-entity) :dragged? true)))))
|
||||
|
||||
|
||||
(defn mouse-move [screen entities]
|
||||
(let [[x y] (utils/unproject screen)
|
||||
(defn mouse-move [screen entities options]
|
||||
(let [[x y] (utils/unproject screen options)
|
||||
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 dragged?] :as entities}]
|
||||
(defn left-click [screen {:keys [selected-item hovered-item dragged?] :as entities} options]
|
||||
(let [room-entities (-> @(resolve 'advent.screens.scene/scene)
|
||||
:entities
|
||||
deref)]
|
||||
@@ -86,7 +86,7 @@
|
||||
(interaction-script room-entities)
|
||||
(close screen entities true false)))))
|
||||
|
||||
(defn right-click [screen {:keys [selected-item] :as entities} ]
|
||||
(defn right-click [screen {:keys [selected-item] :as entities} options]
|
||||
(let [
|
||||
room-entities (-> @(resolve 'advent.screens.scene/scene)
|
||||
:entities
|
||||
@@ -110,7 +110,7 @@
|
||||
|
||||
(defscreen inventory-screen
|
||||
:on-show
|
||||
(fn [screen entities]
|
||||
(fn [screen entities options]
|
||||
(utils/setup-viewport screen 1280 960)
|
||||
|
||||
(let [hovered-text (assoc (label "Hello" (style :label (utils/get-font "ego/font.fnt") (color :white)) :set-font-scale 0.25) :x 0 :y 850 :width 1280 )]
|
||||
@@ -131,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} options]
|
||||
(.apply viewport)
|
||||
(let [entities (utils/apply-tweens screen entities tweens)
|
||||
opacity (get-in entities [:opacity])
|
||||
@@ -155,7 +155,7 @@
|
||||
(render! screen [(:hovered-text entities)]))
|
||||
entities))
|
||||
|
||||
:show-screen (fn [{items :items :as screen} entities]
|
||||
:show-screen (fn [screen entities {:keys [items]}]
|
||||
(log/info "showing inventory")
|
||||
(when-not (:shown? entities)
|
||||
(-> entities
|
||||
@@ -187,11 +187,11 @@
|
||||
:on-touch-dragged mouse-drag
|
||||
:on-touch-down mouse-down
|
||||
|
||||
:on-touch-up (fn [screen entities]
|
||||
:on-touch-up (fn [screen entities options]
|
||||
(when (interactable? entities)
|
||||
(if (= (button-code :left) (:button screen))
|
||||
(left-click screen entities)
|
||||
(right-click screen entities))))
|
||||
(if (= (button-code :left) (:button options))
|
||||
(left-click screen entities options)
|
||||
(right-click screen entities options))))
|
||||
|
||||
:on-resize (fn [{:keys [width height ^FitViewport viewport] :as screen} entities]
|
||||
:on-resize (fn [{:keys [^FitViewport viewport] :as screen} entities {:keys [width height]}]
|
||||
(.update viewport width height true)))
|
||||
|
||||
Reference in New Issue
Block a user