probably bugs, but faster.
This commit is contained in:
@@ -41,18 +41,18 @@
|
||||
|
||||
(defscreen talking-screen
|
||||
:on-show
|
||||
(fn [screen entities]
|
||||
(fn [screen entities options]
|
||||
(utils/setup-viewport screen 1280 960)
|
||||
{})
|
||||
:on-render
|
||||
(fn [{:keys [camera ^FitViewport viewport] :as screen} entities]
|
||||
(fn [{:keys [camera ^FitViewport viewport] :as screen} entities options]
|
||||
(.apply viewport)
|
||||
|
||||
(render! screen (vals entities))
|
||||
entities)
|
||||
|
||||
:on-talk
|
||||
(fn [{:keys [create-talk target-id color text x y scale scene-viewport id] :as screen} entities]
|
||||
(fn [screen entities {:keys [create-talk target-id color text x y scale scene-viewport id]}]
|
||||
(let [font (bitmap-font "ego/font.fnt" )
|
||||
p (NinePatchEntity. (skin! (skin "ui/ui.json") :get-patch "ui-bg"))
|
||||
_ (nine-patch! p :set-padding 25 25 5 15)
|
||||
@@ -79,7 +79,7 @@
|
||||
(assoc entities id talk)))
|
||||
|
||||
:on-update-camera
|
||||
(fn [{:keys [scene-viewport scene-camera viewport] :as screen} entities]
|
||||
(fn [{:keys [^FitViewport viewport] :as screen} entities {:keys [scene-viewport scene-camera]}]
|
||||
(reduce-kv (fn [entities id e]
|
||||
(if (:id e)
|
||||
(let [[x y] (scene-world->talk-world scene-viewport [(:source-x e)
|
||||
@@ -93,11 +93,11 @@
|
||||
entities))
|
||||
|
||||
:stop-talk
|
||||
(fn [{:keys [id] } entities]
|
||||
(fn [screen entities {:keys [id]}]
|
||||
(dissoc entities (or id :fg-actions)))
|
||||
|
||||
|
||||
:on-resize (fn [{:keys [^FitViewport viewport width height]} entities]
|
||||
:on-resize (fn [{:keys [^FitViewport viewport]} entities {:keys [width height]}]
|
||||
(.update viewport width height)))
|
||||
|
||||
(def choice-height 40)
|
||||
@@ -117,7 +117,7 @@
|
||||
|
||||
(defscreen choice-screen
|
||||
:on-show
|
||||
(fn [screen entities]
|
||||
(fn [screen entities options]
|
||||
(utils/setup-viewport screen 1280 960)
|
||||
(let [font (bitmap-font "ego/font.fnt" )
|
||||
tr (bitmap-font! font :get-region)
|
||||
@@ -134,7 +134,7 @@
|
||||
:x 5 :y 5 :width 1270)}}))
|
||||
|
||||
:on-render
|
||||
(fn [{:keys [^FitViewport viewport] :as screen} entities]
|
||||
(fn [{:keys [^FitViewport viewport] :as screen} entities options]
|
||||
(.apply viewport)
|
||||
(when (seq (get-in entities [:state :choices]))
|
||||
(render! screen [(get-in entities [:state :np])])
|
||||
@@ -142,7 +142,7 @@
|
||||
entities)
|
||||
|
||||
:on-present-choices
|
||||
(fn [{:keys [choices callback]} entities]
|
||||
(fn [screen entities {:keys [choices callback]}]
|
||||
(let [choice-count (count choices)
|
||||
font (get-in entities [:state :font])]
|
||||
(-> entities
|
||||
@@ -159,8 +159,8 @@
|
||||
(assoc-in [:state :callback] callback)
|
||||
(assoc-in [:state :np :height] (* choice-height (inc choice-count))))))
|
||||
|
||||
:on-touch-up (fn [screen entities]
|
||||
(let [[x y] (utils/unproject screen)]
|
||||
:on-touch-up (fn [screen entities options]
|
||||
(let [[x y] (utils/unproject screen options)]
|
||||
(when (seq (get-in entities [:state :choices]))
|
||||
(when-let [choice (first (filter #(utils/intersects? % [x y]) (vals entities)))]
|
||||
((get-in entities [:state :callback]) (:index choice))
|
||||
@@ -169,8 +169,8 @@
|
||||
(assoc-in [:state :choices] [])
|
||||
(select-keys [:state]))))))
|
||||
|
||||
:on-mouse-moved (fn [screen entities]
|
||||
(let [[x y] (utils/unproject screen)
|
||||
:on-mouse-moved (fn [screen entities options]
|
||||
(let [[x y] (utils/unproject screen options)
|
||||
entities (assoc-in entities [:state :last-pos] [x y])
|
||||
choice-count (dec (count entities))]
|
||||
(doseq [e (vals entities)
|
||||
@@ -178,17 +178,17 @@
|
||||
(style-label e (get-in entities [:state :font]) [x y]))
|
||||
entities))
|
||||
|
||||
:on-resize (fn [{:keys [width height ^FitViewport viewport]} entities]
|
||||
:on-resize (fn [{:keys [^FitViewport viewport]} entities {:keys [width height]}]
|
||||
(.update viewport width height)))
|
||||
|
||||
(defscreen toast-screen
|
||||
:on-show
|
||||
(fn [screen entities]
|
||||
(fn [screen entities options]
|
||||
(utils/setup-viewport screen 1280 960)
|
||||
{})
|
||||
|
||||
:on-render
|
||||
(fn [{:keys [camera ^FitViewport viewport] :as screen} entities]
|
||||
(fn [{:keys [camera ^FitViewport viewport] :as screen} entities options]
|
||||
(.apply viewport)
|
||||
(let [entities (utils/apply-tweens screen entities (:tweens entities))]
|
||||
(when (:dialogue entities)
|
||||
@@ -197,7 +197,7 @@
|
||||
entities))
|
||||
|
||||
:on-toast
|
||||
(fn [{:keys [message] :as screen} entities]
|
||||
(fn [screen entities {:keys [message]}]
|
||||
(let [font (bitmap-font "ego/font.fnt" )
|
||||
p (nine-patch {:region (:object (utils/get-texture "talk-bg-2.png")) :left 9 :top 9 :right 9 :bottom 9})
|
||||
_ (nine-patch! p :set-padding 25 25 5 15)
|
||||
@@ -220,9 +220,9 @@
|
||||
:finish #(dissoc % :dialogue))))))
|
||||
|
||||
:stop-talk
|
||||
(fn [{:keys [target-id] } entities]
|
||||
(fn [_ entities {:keys [target-id]}]
|
||||
(dissoc entities :dialogue))
|
||||
|
||||
|
||||
:on-resize (fn [{:keys [^FitViewport viewport width height]} entities]
|
||||
:on-resize (fn [{:keys [^FitViewport viewport]} entities {:keys [width height]}]
|
||||
(.update viewport width height)))
|
||||
|
||||
Reference in New Issue
Block a user