probably bugs, but faster.

This commit is contained in:
Bryce Covert
2016-08-05 17:07:21 -07:00
parent 8dd00098ad
commit 5296ff3c74
8 changed files with 108 additions and 107 deletions

View File

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