a lot of tweaks to make mobile faster.

This commit is contained in:
Bryce Covert
2016-08-04 08:01:49 -07:00
parent 3d69fc0b65
commit 114408210e
12 changed files with 200 additions and 179 deletions

View File

@@ -3,7 +3,7 @@
<groupId>advent</groupId> <groupId>advent</groupId>
<artifactId>advent</artifactId> <artifactId>advent</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>
<version>0.0.1-SNAPSHOT</version> <version>1.2.2</version>
<name>advent</name> <name>advent</name>
<description>FIXME: write description</description> <description>FIXME: write description</description>
<build> <build>
@@ -72,68 +72,34 @@
<dependency> <dependency>
<groupId>com.badlogicgames.gdx</groupId> <groupId>com.badlogicgames.gdx</groupId>
<artifactId>gdx</artifactId> <artifactId>gdx</artifactId>
<version>1.5.3</version> <version>1.9.3</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.badlogicgames.gdx</groupId> <groupId>com.badlogicgames.gdx</groupId>
<artifactId>gdx-backend-lwjgl</artifactId> <artifactId>gdx-backend-lwjgl</artifactId>
<version>1.5.3</version> <version>1.9.3</version>
</dependency>
<dependency>
<groupId>com.badlogicgames.gdx</groupId>
<artifactId>gdx-box2d</artifactId>
<version>1.5.3</version>
</dependency>
<dependency>
<groupId>com.badlogicgames.gdx</groupId>
<artifactId>gdx-tools</artifactId>
<version>1.5.3</version>
</dependency>
<dependency>
<groupId>com.badlogicgames.gdx</groupId>
<artifactId>gdx-box2d-platform</artifactId>
<version>1.5.3</version>
<classifier>natives-desktop</classifier>
</dependency>
<dependency>
<groupId>com.badlogicgames.gdx</groupId>
<artifactId>gdx-bullet</artifactId>
<version>1.5.3</version>
</dependency>
<dependency>
<groupId>com.badlogicgames.gdx</groupId>
<artifactId>gdx-bullet-platform</artifactId>
<version>1.5.3</version>
<classifier>natives-desktop</classifier>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.badlogicgames.gdx</groupId> <groupId>com.badlogicgames.gdx</groupId>
<artifactId>gdx-platform</artifactId> <artifactId>gdx-platform</artifactId>
<version>1.5.3</version> <version>1.9.3</version>
<classifier>natives-desktop</classifier> <classifier>natives-desktop</classifier>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.clojure</groupId> <groupId>org.clojure</groupId>
<artifactId>clojure</artifactId> <artifactId>clojure</artifactId>
<version>1.6.0</version> <version>1.8.0</version>
</dependency>
<dependency>
<groupId>org.clojure</groupId>
<artifactId>tools.nrepl</artifactId>
<version>0.2.6</version>
<exclusions>
<exclusion>
<groupId>org.clojure</groupId>
<artifactId>clojure</artifactId>
</exclusion>
</exclusions>
<scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>play-clj</groupId> <groupId>play-clj</groupId>
<artifactId>play-clj</artifactId> <artifactId>play-clj</artifactId>
<version>0.4.5-BRYCE</version> <version>0.4.5-BRYCE</version>
</dependency> </dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<dependency> <dependency>
<groupId>org.clojure</groupId> <groupId>org.clojure</groupId>
<artifactId>data.priority-map</artifactId> <artifactId>data.priority-map</artifactId>
@@ -144,6 +110,28 @@
<artifactId>core.async</artifactId> <artifactId>core.async</artifactId>
<version>0.1.338.0-5c5012-alpha</version> <version>0.1.338.0-5c5012-alpha</version>
</dependency> </dependency>
<dependency>
<groupId>org.clojure</groupId>
<artifactId>tools.logging</artifactId>
<version>0.3.1</version>
</dependency>
<dependency>
<groupId>org.im4java</groupId>
<artifactId>im4java</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>org.clojure</groupId>
<artifactId>tools.nrepl</artifactId>
<version>0.2.7</version>
<exclusions>
<exclusion>
<groupId>org.clojure</groupId>
<artifactId>clojure</artifactId>
</exclusion>
</exclusions>
<scope>test</scope>
</dependency>
<dependency> <dependency>
<groupId>clojure-complete</groupId> <groupId>clojure-complete</groupId>
<artifactId>clojure-complete</artifactId> <artifactId>clojure-complete</artifactId>
@@ -156,6 +144,36 @@
</exclusions> </exclusions>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>com.badlogicgames.gdx</groupId>
<artifactId>gdx-tools</artifactId>
<version>1.5.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>play-clj-nrepl</groupId>
<artifactId>play-clj-nrepl</artifactId>
<version>0.1.0</version>
<exclusions>
<exclusion>
<groupId>play-clj</groupId>
<artifactId>play-clj</artifactId>
</exclusion>
</exclusions>
<scope>test</scope>
</dependency>
<dependency>
<groupId>slamhound</groupId>
<artifactId>slamhound</artifactId>
<version>1.5.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.clojure</groupId>
<artifactId>data.csv</artifactId>
<version>0.1.3</version>
<scope>test</scope>
</dependency>
</dependencies> </dependencies>
</project> </project>

View File

@@ -108,7 +108,7 @@
(defn force-end [entities current-action key] (defn force-end [entities current-action key]
(do (when current-action (do (when current-action
(put! (get-channel current-action) :end)) (put! (get-channel current-action) :end))
(screen! dialogue/talking-screen :stop-talk :id key) (screen! dialogue/talking-screen :stop-talk {:id key})
(-> entities (-> entities
(assoc-in [key :script-running?] false) (assoc-in [key :script-running?] false)
(assoc-in [key :current] nil) (assoc-in [key :current] nil)
@@ -411,14 +411,14 @@
scale-fn (get-in entities [:room :scale-fn]) scale-fn (get-in entities [:room :scale-fn])
scale (get-in entities [:room :entities target-id :scale-y] 1) scale (get-in entities [:room :entities target-id :scale-y] 1)
height (* scale height)] height (* scale height)]
(screen! dialogue/talking-screen :on-talk :text text (screen! dialogue/talking-screen :on-talk { :text text
:id fg-or-bg :id fg-or-bg
:scene-viewport (:viewport screen) :scene-viewport (:viewport screen)
:x target-x :y (+ target-y height) :x target-x :y (+ target-y height)
:color (or color (get-in entities [:room :entities target-id :talk-color])) :color (or color (get-in entities [:room :entities target-id :talk-color]))
:target-id target-id :target-id target-id
:scale scale) :scale scale})
(if animate? (if animate?
(update-in entities [:room :entities target-id ] #(start-animation screen % (or anim (:talk-override %) :talk))) (update-in entities [:room :entities target-id ] #(start-animation screen % (or anim (:talk-override %) :talk)))
entities))) entities)))
@@ -435,7 +435,7 @@
(terminate [this screen entities] (terminate [this screen entities]
(if wait (if wait
(do (do
(screen! dialogue/talking-screen :stop-talk :id fg-or-bg) (screen! dialogue/talking-screen :stop-talk {:id fg-or-bg})
(if stop? (if stop?
(stop screen entities target-id) (stop screen entities target-id)
entities)) entities))
@@ -471,7 +471,7 @@
dialogue-choices (filter first (partition 2 (:choices node)))] dialogue-choices (filter first (partition 2 (:choices node)))]
(run-action entities (run-action entities
(begin [this screen entities] (begin [this screen entities]
(screen! dialogue/choice-screen :on-present-choices :choices dialogue-choices :callback #(reset! selected-index %)) (screen! dialogue/choice-screen :on-present-choices { :choices dialogue-choices :callback #(reset! selected-index %)})
(assoc-in entities [:state :active?] false)) (assoc-in entities [:state :active?] false))
(continue [this screen entities] entities) (continue [this screen entities] entities)
@@ -540,7 +540,7 @@
(run-action entities (run-action entities
(begin [this screen entities] (begin [this screen entities]
(when-not quiet? (when-not quiet?
(screen! @(resolve 'advent.screens.scene/hud) :on-remove-item :item ((:all-items entities) item))) (screen! @(resolve 'advent.screens.scene/hud) :on-remove-item { :item ((:all-items entities) item)}))
(-> entities (-> entities
(update-in [:state :inventory] #(remove (partial = item) %)))) (update-in [:state :inventory] #(remove (partial = item) %))))
@@ -581,7 +581,7 @@
(run-action entities (run-action entities
(begin [this screen entities] (begin [this screen entities]
(utils/play-sound! screen entities :pickup (constantly 0.3)) (utils/play-sound! screen entities :pickup (constantly 0.3))
(screen! @(resolve 'advent.screens.scene/hud) :on-give-item :item ((:all-items entities) item)) (screen! @(resolve 'advent.screens.scene/hud) :on-give-item { :item ((:all-items entities) item)})
(-> entities (-> entities
(update-in [:state :inventory] #(conj % item)) (update-in [:state :inventory] #(conj % item))
(update-in [:state :obtained-items] #(conj % item)))) (update-in [:state :obtained-items] #(conj % item))))
@@ -697,7 +697,7 @@
(skip-type [this screen entities] (skip-type [this screen entities]
:none)) :none))
(log/info "Entering room " new-background ) (log/info "Entering room " new-background )
(screen! dialogue/talking-screen :stop-talk :id :bg-actions) (screen! dialogue/talking-screen :stop-talk { :id :bg-actions})
(run-action entities (run-action entities
(begin [this screen entities] (begin [this screen entities]
(utils/stop-all-sounds! entities) (utils/stop-all-sounds! entities)

View File

@@ -191,7 +191,7 @@
nil) nil)
:on-render :on-render
(fn [{:keys [^FitViewport viewport] :as screen} [entities]] (fn [{:keys [^FitViewport viewport] :as screen} entities]
(.apply viewport) (.apply viewport)
(let [entities (utils/apply-tweens screen entities (:tweens entities)) (let [entities (utils/apply-tweens screen entities (:tweens entities))
entities (start-message-if-necessary screen entities)] entities (start-message-if-necessary screen entities)]
@@ -200,7 +200,7 @@
entities)) entities))
:on-touch-up (fn [screen [entities]] :on-touch-up (fn [screen entities]
(set-screen! @(resolve 'advent.core/advent) @(resolve 'advent.screens.title/title-screen))) (set-screen! @(resolve 'advent.core/advent) @(resolve 'advent.screens.title/title-screen)))
:on-resize (fn [{:keys [width height ^FitViewport viewport]} entities] :on-resize (fn [{:keys [width height ^FitViewport viewport]} entities]

View File

@@ -45,14 +45,14 @@
(utils/setup-viewport screen 1280 960) (utils/setup-viewport screen 1280 960)
{}) {})
:on-render :on-render
(fn [{:keys [camera ^FitViewport viewport] :as screen} [entities]] (fn [{:keys [camera ^FitViewport viewport] :as screen} entities]
(.apply viewport) (.apply viewport)
(render! screen (vals entities)) (render! screen (vals entities))
entities) entities)
:on-talk :on-talk
(fn [{:keys [create-talk target-id color text x y scale scene-viewport id] :as screen} [entities]] (fn [{:keys [create-talk target-id color text x y scale scene-viewport id] :as screen} entities]
(let [font (bitmap-font "ego/font.fnt" ) (let [font (bitmap-font "ego/font.fnt" )
p (NinePatchEntity. (skin! (skin "ui/ui.json") :get-patch "ui-bg")) p (NinePatchEntity. (skin! (skin "ui/ui.json") :get-patch "ui-bg"))
_ (nine-patch! p :set-padding 25 25 5 15) _ (nine-patch! p :set-padding 25 25 5 15)
@@ -79,7 +79,7 @@
(assoc entities id talk))) (assoc entities id talk)))
:on-update-camera :on-update-camera
(fn [{:keys [scene-viewport scene-camera viewport] :as screen} [ entities]] (fn [{:keys [scene-viewport scene-camera viewport] :as screen} entities]
(reduce-kv (fn [entities id e] (reduce-kv (fn [entities id e]
(if (:id e) (if (:id e)
(let [[x y] (scene-world->talk-world scene-viewport [(:source-x e) (let [[x y] (scene-world->talk-world scene-viewport [(:source-x e)
@@ -93,7 +93,7 @@
entities)) entities))
:stop-talk :stop-talk
(fn [{:keys [id] } [entities]] (fn [{:keys [id] } entities]
(dissoc entities (or id :fg-actions))) (dissoc entities (or id :fg-actions)))
@@ -134,7 +134,7 @@
:x 5 :y 5 :width 1270)}})) :x 5 :y 5 :width 1270)}}))
:on-render :on-render
(fn [{:keys [^FitViewport viewport] :as screen} [entities]] (fn [{:keys [^FitViewport viewport] :as screen} entities]
(.apply viewport) (.apply viewport)
(when (seq (get-in entities [:state :choices])) (when (seq (get-in entities [:state :choices]))
(render! screen [(get-in entities [:state :np])]) (render! screen [(get-in entities [:state :np])])
@@ -142,7 +142,7 @@
entities) entities)
:on-present-choices :on-present-choices
(fn [{:keys [choices callback]} [entities]] (fn [{:keys [choices callback]} entities]
(let [choice-count (count choices) (let [choice-count (count choices)
font (get-in entities [:state :font])] font (get-in entities [:state :font])]
(-> entities (-> entities
@@ -159,7 +159,7 @@
(assoc-in [:state :callback] callback) (assoc-in [:state :callback] callback)
(assoc-in [:state :np :height] (* choice-height (inc choice-count)))))) (assoc-in [:state :np :height] (* choice-height (inc choice-count))))))
:on-touch-up (fn [screen [entities]] :on-touch-up (fn [screen entities]
(let [[x y] (utils/unproject screen)] (let [[x y] (utils/unproject screen)]
(when (seq (get-in entities [:state :choices])) (when (seq (get-in entities [:state :choices]))
(when-let [choice (first (filter #(utils/intersects? % [x y]) (vals entities)))] (when-let [choice (first (filter #(utils/intersects? % [x y]) (vals entities)))]
@@ -169,7 +169,7 @@
(assoc-in [:state :choices] []) (assoc-in [:state :choices] [])
(select-keys [:state])))))) (select-keys [:state]))))))
:on-mouse-moved (fn [screen [entities]] :on-mouse-moved (fn [screen entities]
(let [[x y] (utils/unproject screen) (let [[x y] (utils/unproject screen)
entities (assoc-in entities [:state :last-pos] [x y]) entities (assoc-in entities [:state :last-pos] [x y])
choice-count (dec (count entities))] choice-count (dec (count entities))]
@@ -188,7 +188,7 @@
{}) {})
:on-render :on-render
(fn [{:keys [camera ^FitViewport viewport] :as screen} [entities]] (fn [{:keys [camera ^FitViewport viewport] :as screen} entities]
(.apply viewport) (.apply viewport)
(let [entities (utils/apply-tweens screen entities (:tweens entities))] (let [entities (utils/apply-tweens screen entities (:tweens entities))]
(when (:dialogue entities) (when (:dialogue entities)
@@ -197,7 +197,7 @@
entities)) entities))
:on-toast :on-toast
(fn [{:keys [message] :as screen} [entities]] (fn [{:keys [message] :as screen} entities]
(let [font (bitmap-font "ego/font.fnt" ) (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}) 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) _ (nine-patch! p :set-padding 25 25 5 15)
@@ -220,7 +220,7 @@
:finish #(dissoc % :dialogue)))))) :finish #(dissoc % :dialogue))))))
:stop-talk :stop-talk
(fn [{:keys [target-id] } [entities]] (fn [{:keys [target-id] } entities]
(dissoc entities :dialogue)) (dissoc entities :dialogue))

View File

@@ -31,11 +31,11 @@
:on-render :on-render
(fn [screen [entities]] (fn [screen entities]
(render! screen [(:fade entities)]) (render! screen [(:fade entities)])
entities) entities)
:update-fade (fn [{:keys [opacity]} [entities]] :update-fade (fn [{:keys [opacity]} entities]
(assoc-in entities [:fade :opacity] opacity)) (assoc-in entities [:fade :opacity] opacity))
:on-resize (fn [{:keys [width height ^FitViewport viewport]} entities] :on-resize (fn [{:keys [width height ^FitViewport viewport]} entities]

View File

@@ -23,13 +23,13 @@
(defn close [screen {:keys [selected-item] :as entities} script-started? dragged-out?] (defn close [screen {:keys [selected-item] :as entities} script-started? dragged-out?]
(log/info "closing inventory") (log/info "closing inventory")
(screen! @(resolve 'advent.screens.scene/scene) :on-reactivate :came-from-inventory? dragged-out?) (screen! @(resolve 'advent.screens.scene/scene) :on-reactivate { :came-from-inventory? dragged-out?})
(screen! @(resolve 'advent.screens.scene/hud) :on-reactivate :script-started? script-started? :item selected-item) (screen! @(resolve 'advent.screens.scene/hud) :on-reactivate { :script-started? script-started? :item selected-item})
(-> entities (-> entities
(assoc-in [:tweens :fade-out] (tween/tween :fade-out screen [:opacity] 1.0 0.0 0.2 :ease tween/ease-out-cubic (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))))) :finish #(assoc % :shown? false)))))
(defn mouse-down [screen [entities]] (defn mouse-down [screen entities]
(let [[x y] (utils/unproject screen) (let [[x y] (utils/unproject screen)
selected-entity (first (filter #((:box %) x y) (vals (:items entities))))] selected-entity (first (filter #((:box %) x y) (vals (:items entities))))]
(assoc entities :selected-item (:item selected-entity)))) (assoc entities :selected-item (:item selected-entity))))
@@ -40,7 +40,7 @@
(< y 80) (< y 80)
(> y 880))) (> y 880)))
(defn mouse-drag [screen [{:keys [selected-item] :as entities}]] (defn mouse-drag [screen {:keys [selected-item] :as entities}]
(when (interactable? entities) (when (interactable? entities)
(let [[x y] (utils/unproject screen) (let [[x y] (utils/unproject screen)
hovered-entity (first (filter #((:box %) x y) (vals (:items entities))))] hovered-entity (first (filter #((:box %) x y) (vals (:items entities))))]
@@ -58,7 +58,7 @@
(assoc entities :hovered-item (:item hovered-entity) :dragged? true))))) (assoc entities :hovered-item (:item hovered-entity) :dragged? true)))))
(defn mouse-move [screen [entities]] (defn mouse-move [screen entities]
(let [[x y] (utils/unproject screen) (let [[x y] (utils/unproject screen)
hovered-entity (first (filter #((:box %) x y) (vals (:items entities))))] hovered-entity (first (filter #((:box %) x y) (vals (:items entities))))]
(assoc entities :hovered-item (:item hovered-entity)))) (assoc entities :hovered-item (:item hovered-entity))))
@@ -66,8 +66,7 @@
(defn left-click [screen {:keys [selected-item hovered-item dragged?] :as entities}] (defn left-click [screen {:keys [selected-item hovered-item dragged?] :as entities}]
(let [room-entities (-> @(resolve 'advent.screens.scene/scene) (let [room-entities (-> @(resolve 'advent.screens.scene/scene)
:entities :entities
deref deref)]
first)]
(log/info "chose inventory item" selected-item) (log/info "chose inventory item" selected-item)
(println selected-item hovered-item dragged?) (println selected-item hovered-item dragged?)
@@ -79,7 +78,7 @@
(dissoc entities :selected-item :dragged?) (dissoc entities :selected-item :dragged?)
(or (not hovered-item) (= selected-item hovered-item)) (or (not hovered-item) (= selected-item hovered-item))
(do (screen! @(resolve 'advent.screens.scene/scene) :on-chose-item :item selected-item) (do (screen! @(resolve 'advent.screens.scene/scene) :on-chose-item { :item selected-item})
(close screen entities false false)) (close screen entities false false))
:else :else
(when-let [interaction-script (or ((or (:scripts selected-item) (constantly nil)) (:value hovered-item)) (when-let [interaction-script (or ((or (:scripts selected-item) (constantly nil)) (:value hovered-item))
@@ -92,7 +91,7 @@
room-entities (-> @(resolve 'advent.screens.scene/scene) room-entities (-> @(resolve 'advent.screens.scene/scene)
:entities :entities
deref deref
first) )
ego (get-in room-entities [:room :entities :ego])] ego (get-in room-entities [:room :entities :ego])]
(when selected-item (when selected-item
(((:get-script ego) selected-item [0 0]) room-entities) (((:get-script ego) selected-item [0 0]) room-entities)
@@ -132,7 +131,7 @@
:hovered-text hovered-text})) :hovered-text hovered-text}))
:on-render :on-render
(fn [{:keys [^FitViewport viewport] :as screen} [{:keys [shown? tweens] :as entities}]] (fn [{:keys [^FitViewport viewport] :as screen} {:keys [shown? tweens] :as entities}]
(.apply viewport) (.apply viewport)
(let [entities (utils/apply-tweens screen entities tweens) (let [entities (utils/apply-tweens screen entities tweens)
opacity (get-in entities [:opacity]) opacity (get-in entities [:opacity])
@@ -156,7 +155,7 @@
(render! screen [(:hovered-text entities)])) (render! screen [(:hovered-text entities)]))
entities)) entities))
:show-screen (fn [{items :items :as screen} [entities]] :show-screen (fn [{items :items :as screen} entities]
(log/info "showing inventory") (log/info "showing inventory")
(when-not (:shown? entities) (when-not (:shown? entities)
(-> entities (-> entities
@@ -188,7 +187,7 @@
:on-touch-dragged mouse-drag :on-touch-dragged mouse-drag
:on-touch-down mouse-down :on-touch-down mouse-down
:on-touch-up (fn [screen [entities]] :on-touch-up (fn [screen entities]
(when (interactable? entities) (when (interactable? entities)
(if (= (button-code :left) (:button screen)) (if (= (button-code :left) (:button screen))
(left-click screen entities) (left-click screen entities)

View File

@@ -91,7 +91,7 @@
(assoc-in [:room :entities :coin-flip :opacity] 1.0)))) (assoc-in [:room :entities :coin-flip :opacity] 1.0))))
(actions/walk-straight-to entities :coin-flip [212 90] :update-baseline? false :speed 3.0) (actions/walk-straight-to entities :coin-flip [212 90] :update-baseline? false :speed 3.0)
(screen! dialogue/talking-screen :stop-talk) (screen! dialogue/talking-screen :stop-talk {})
(actions/do-stop entities :ego) (actions/do-stop entities :ego)
(actions/walk-straight-to entities :coin-flip [210 105] :update-baseline? false :speed 1.0) (actions/walk-straight-to entities :coin-flip [210 105] :update-baseline? false :speed 1.0)

View File

@@ -15,32 +15,32 @@
(actions/play-animation entities :ego :start-squat :stop? false) (actions/play-animation entities :ego :start-squat :stop? false)
(Thread/sleep 500) (Thread/sleep 500)
(screen! safe/safe-screen :show-screen (screen! safe/safe-screen :show-screen
:success (actions/get-script entities { :success (actions/get-script entities
(Thread/sleep 500) (Thread/sleep 500)
(actions/play-animation entities :ego :end-squat) (actions/play-animation entities :ego :end-squat)
(if (actions/has-item? entities :recipe) (if (actions/has-item? entities :recipe)
(do (do
(actions/talk entities :ego "I already took everything interesting from there.")) (actions/talk entities :ego "I already took everything interesting from there."))
(do (do
(actions/talk entities :ego "Yes! That worked.") (actions/talk entities :ego "Yes! That worked.")
(actions/talk entities :ego "Let's see here...") (actions/talk entities :ego "Let's see here...")
(actions/play-animation entities :ego :squat) (actions/play-animation entities :ego :squat)
(actions/talk entities :ego "No, that's a recipe to turn someone into a professional dancer...") (actions/talk entities :ego "No, that's a recipe to turn someone into a professional dancer...")
(actions/play-animation entities :ego :squat) (actions/play-animation entities :ego :squat)
(actions/talk entities :ego "Here's a recipe to make everything taste like cotton candy. I'll just put that back.") (actions/talk entities :ego "Here's a recipe to make everything taste like cotton candy. I'll just put that back.")
(actions/play-animation entities :ego :squat) (actions/play-animation entities :ego :squat)
(actions/give entities :recipe) (actions/give entities :recipe)
(actions/talk entities :ego "Aha! Here it is! I found a recipe for a strength potion!") (actions/talk entities :ego "Aha! Here it is! I found a recipe for a strength potion!")
(actions/talk entities :ego "Looks like there's something else in here too...") (actions/talk entities :ego "Looks like there's something else in here too...")
(actions/play-animation entities :ego :squat) (actions/play-animation entities :ego :squat)
(actions/give entities :mandrake) (actions/give entities :mandrake)
(actions/talk entities :ego "Weird. It's some kind of root.")))) (actions/talk entities :ego "Weird. It's some kind of root."))))
:failure (actions/get-script entities :failure (actions/get-script entities
(Thread/sleep 500) (Thread/sleep 500)
(actions/play-animation entities :ego :end-squat) (actions/play-animation entities :ego :end-squat)
(actions/talk entities :ego "I don't think that worked..."))) (actions/talk entities :ego "I don't think that worked..."))})
(actions/update-state entities #(assoc % :active? false))) (actions/update-state entities #(assoc % :active? false)))
(defn do-wizard-dialogue [entities] (defn do-wizard-dialogue [entities]

View File

@@ -20,8 +20,8 @@
(defn close [entities] (defn close [entities]
(screen! @(resolve 'advent.screens.scene/scene) :on-reactivate) (screen! @(resolve 'advent.screens.scene/scene) :on-reactivate {})
(screen! @(resolve 'advent.screens.scene/scene) :on-end-safe) (screen! @(resolve 'advent.screens.scene/scene) :on-end-safe {})
(-> entities (-> entities
(assoc :shown? false) (assoc :shown? false)
(assoc :start-showing? false))) (assoc :start-showing? false)))
@@ -60,14 +60,14 @@
:on-render :on-render
(fn [{:keys [^FitViewport viewport] :as screen} [entities]] (fn [{:keys [^FitViewport viewport] :as screen} entities]
(.apply viewport) (.apply viewport)
(when (:shown? entities) (when (:shown? entities)
(render! screen [(:fade entities) (:safe entities)]) (render! screen [(:fade entities) (:safe entities)])
(render! screen (take (count (:button-choices entities)) (:entered-keys entities)))) (render! screen (take (count (:button-choices entities)) (:entered-keys entities))))
entities) entities)
:show-screen (fn [{:keys [success failure]} [entities]] :show-screen (fn [{:keys [success failure]} entities]
(sound! (utils/load-sound "inside-house/open-safe.ogg") :play (utils/current-sound-volume 0.3)) (sound! (utils/load-sound "inside-house/open-safe.ogg") :play (utils/current-sound-volume 0.3))
(assoc entities (assoc entities
:shown? true :shown? true
@@ -75,10 +75,10 @@
:success success :success success
:failure failure)) :failure failure))
:on-mouse-moved (fn [screen [entities]] :on-mouse-moved (fn [screen entities]
entities) entities)
:on-touch-up (fn [screen [entities]] :on-touch-up (fn [screen entities]
(when (:shown? entities) (when (:shown? entities)
(let [[x y] (utils/unproject screen)] (let [[x y] (utils/unproject screen)]
(if-let [button (get-button [x y])] (if-let [button (get-button [x y])]

View File

@@ -209,7 +209,7 @@ void main ()
(assoc-in entities [:state :active?] false))) (assoc-in entities [:state :active?] false)))
(defn open-inventory [screen entities] (defn open-inventory [screen entities]
(screen! inventory-screen :show-screen :items (map (entities :all-items) (get-in entities [:state :inventory]))) (screen! inventory-screen :show-screen { :items (map (entities :all-items) (get-in entities [:state :inventory]))})
(assoc-in entities [:state :active?] false)) (assoc-in entities [:state :active?] false))
@@ -247,10 +247,10 @@ void main ()
(or (:id interacting-entity) (:id interaction) nil)) (or (:id interacting-entity) (:id interaction) nil))
(get-in entities [:cursor :came-from-inventory?]))) (get-in entities [:cursor :came-from-inventory?])))
((or (when (and interacting-entity (not (:cursor interaction))) ((or (when (and interacting-entity (not (:cursor interaction)))
(do (screen! hud :on-start-script) (do (screen! hud :on-start-script {})
((:get-script interacting-entity) (get-script-selector entities) [x y]))) ((:get-script interacting-entity) (get-script-selector entities) [x y])))
(when interaction (when interaction
(do (screen! hud :on-start-script) (do (screen! hud :on-start-script {})
((:get-script interaction) (or (when (:cursor interaction) :main) ((:get-script interaction) (or (when (:cursor interaction) :main)
(get-script-selector entities)) (get-script-selector entities))
[x y]))) [x y])))
@@ -901,19 +901,20 @@ void main ()
(if anim-loop? (if anim-loop?
(get-looped-animation-point anim ^double (- total-time anim-start delta-time)) (get-looped-animation-point anim ^double (- total-time anim-start delta-time))
(- total-time anim-start delta-time)))] (- total-time anim-start delta-time)))]
(merge entity (animation->texture (update-in screen [:total-time] #(- % anim-start)) (if (= current-frame-index (:current-frame-index entity) (:previous-frame-index entity))
anim entity
anim-loop?) (merge (assoc entity
{:current-frame-index current-frame-index :object (.getKeyFrame ^Animation anim (- total-time anim-start) anim-loop?)
:previous-frame-index previous-frame-index :current-frame-index current-frame-index
:origin-x (or (get-in entity [:anim-origins anim 0]) :previous-frame-index previous-frame-index
(:base-origin-x entity) :origin-x (or (get-in entity [:anim-origins anim 0])
(:origin-x entity)) (:base-origin-x entity)
:origin-y (or (get-in entity [:anim-origins anim 1]) (:origin-x entity))
(:base-origin-y entity) :origin-y (or (get-in entity [:anim-origins anim 1])
(:origin-y entity))} (:base-origin-y entity)
(or (get-in entity [:anim-merges anim]) (:origin-y entity)))
(get-in entity [:anim-merges :default]))))) (or (get-in entity [:anim-merges anim])
(get-in entity [:anim-merges :default]))))))
(defn get-layers [entities] (defn get-layers [entities]
@@ -951,9 +952,12 @@ void main ()
:object nil})) :object nil}))
entities)) entities))
(defn play-sound-if-necessary [screen entities target {:keys [previous-frame-index current-frame-index anim-sound-frames anim x y] :as e}] (defn play-sound-if-necessary [screen entities target {:keys [previous-frame-index current-frame-index anim-sound-frames anim x y] :as e :or {anim-sound-frames {}}}]
(if (and (not= previous-frame-index current-frame-index) (if (and (not= previous-frame-index current-frame-index)
((set (keys anim-sound-frames)) anim)) (anim-sound-frames anim))
(if-let [[snd vol-scale pitch] (get-in anim-sound-frames [anim current-frame-index])] (if-let [[snd vol-scale pitch] (get-in anim-sound-frames [anim current-frame-index])]
(let [snd (if (fn? snd) (let [snd (if (fn? snd)
(snd entities) (snd entities)
@@ -1051,7 +1055,7 @@ void main ()
(assoc e :y (+ (:y e) (:offset-y e))) (assoc e :y (+ (:y e) (:offset-y e)))
e))) e)))
(defn mouse-moved [{:keys [input-x input-y viewport] :as screen} [entities]] (defn mouse-moved [{:keys [input-x input-y viewport] :as screen} entities]
(utils/update-override screen (assoc-in entities [:cursor :last-pos] [input-x input-y]))) (utils/update-override screen (assoc-in entities [:cursor :last-pos] [input-x input-y])))
(defn add-georgia-to-all-rooms [screen rooms] (defn add-georgia-to-all-rooms [screen rooms]
@@ -1083,7 +1087,7 @@ void main ()
(defscreen scene (defscreen scene
:on-timer :on-timer
(fn [screen [entities]] (fn [screen entities]
(when-let [timer-fn (get-in entities [:room :timers (:id screen) 2])] (when-let [timer-fn (get-in entities [:room :timers (:id screen) 2])]
(timer-fn screen entities))) (timer-fn screen entities)))
@@ -1205,7 +1209,7 @@ void main ()
(apply-state screen entities) (apply-state screen entities)
entities))))) entities)))))
:on-resume (fn [screen [{{:keys [current override last active was-active]} :cursor :as entities}]] :on-resume (fn [screen {{:keys [current override last active was-active]} :cursor :as entities}]
(let [current (or override (get-selected-inventory-item) :main) (let [current (or override (get-selected-inventory-item) :main)
image-path (if active "cursor_light.png" "cursor.png")] image-path (if active "cursor_light.png" "cursor.png")]
(graphics! :set-cursor (utils/cursor image-path (or (:cursor current) current)))) (graphics! :set-cursor (utils/cursor image-path (or (:cursor current) current))))
@@ -1220,7 +1224,7 @@ void main ()
nil) nil)
:on-render :on-render
(fn [{:keys [^OrthographicCamera camera ^FitViewport viewport] :as screen} [entities]] (fn [{:keys [^OrthographicCamera camera ^FitViewport viewport] :as screen} entities]
(steam/update) (steam/update)
(.apply viewport) (.apply viewport)
(if (get-in entities [:closing? :value]) (if (get-in entities [:closing? :value])
@@ -1230,7 +1234,7 @@ void main ()
entities (remove-ended-sounds screen entities) entities (remove-ended-sounds screen entities)
layers (get-layers entities) layers (get-layers entities)
all-entities (concat (vals entities) layers (vals (get-in entities [:room :entities])))] all-entities (concat (vals entities) layers (vals (get-in entities [:room :entities])))]
(screen! fade-screen :update-fade :opacity (get-in entities [:fade :opacity])) (screen! fade-screen :update-fade {:opacity (get-in entities [:fade :opacity])})
(doseq [m (vals (get-in entities [:musics]))] (doseq [m (vals (get-in entities [:musics]))]
(when m (when m
(music! m :set-volume (utils/current-music-volume (get-in entities [:volume :value]))))) (music! m :set-volume (utils/current-music-volume (get-in entities [:volume :value])))))
@@ -1249,7 +1253,6 @@ void main ()
entities (update-from-script screen entities :bg-actions) entities (update-from-script screen entities :bg-actions)
entities (update-from-room screen entities) entities (update-from-room screen entities)
entities (update-from-hotspots screen entities) entities (update-from-hotspots screen entities)
entities (assoc-in entities [:room :entities :ego :last-frame] (get-in entities [:room :entities :ego :object]))
entities (update-in entities [:room :entities] (fn [entities] entities (update-in entities [:room :entities] (fn [entities]
(into entities (into entities
@@ -1290,8 +1293,8 @@ void main ()
all-entities (concat (vals entities) layers (vals (get-in entities [:room :entities])))] all-entities (concat (vals entities) layers (vals (get-in entities [:room :entities])))]
(clear!) (clear!)
(screen! talking-screen :on-update-camera :scene-viewport (:viewport screen) :scene-camera (:camera screen)) (screen! talking-screen :on-update-camera { :scene-viewport (:viewport screen) :scene-camera (:camera screen)})
(screen! fade-screen :update-fade :opacity (get-in entities [:fade :opacity])) (screen! fade-screen :update-fade { :opacity (get-in entities [:fade :opacity])})
(when true #_(not (get-in entities [:cam :paused?])) (when true #_(not (get-in entities [:cam :paused?]))
(set! (. camera zoom) (:zoom (:cam entities))) (set! (. camera zoom) (:zoom (:cam entities)))
(set! (.. camera position x) (:x (:cam entities) 160.0)) (set! (.. camera position x) (:x (:cam entities) 160.0))
@@ -1310,10 +1313,10 @@ void main ()
entities)))) entities))))
:on-resize (fn [{:keys [^FitViewport viewport width height]} [entities]] :on-resize (fn [{:keys [^FitViewport viewport width height]} entities]
(.update viewport width height)) (.update viewport width height))
:on-hide (fn [screen [entities]] :on-hide (fn [screen entities]
(doseq [snd (->> (get-in entities [:musics]) (doseq [snd (->> (get-in entities [:musics])
vals vals
(filter identity))] (filter identity))]
@@ -1326,7 +1329,7 @@ void main ()
mouse-moved mouse-moved
:on-touch-down :on-touch-down
(fn [{:keys [input-x input-y ^FitViewport viewport] :as screen} [entities]] (fn [{:keys [input-x input-y ^FitViewport viewport] :as screen} entities]
(when (utils/contains-point? (.getScreenX viewport) (.getScreenY viewport) (when (utils/contains-point? (.getScreenX viewport) (.getScreenY viewport)
(.getScreenWidth viewport) (.getScreenHeight viewport) (.getScreenWidth viewport) (.getScreenHeight viewport)
input-x input-y) input-x input-y)
@@ -1340,7 +1343,7 @@ void main ()
interacting-entity (get-interacting-entity entities x y)] interacting-entity (get-interacting-entity entities x y)]
(assoc-in entities [:cursor :down-target] (or (:id interacting-entity ) (:id interaction) nil)))))) (assoc-in entities [:cursor :down-target] (or (:id interacting-entity ) (:id interaction) nil))))))
:on-touch-up (fn [{:keys [input-x input-y ^FitViewport viewport] :as screen} [entities]] :on-touch-up (fn [{:keys [input-x input-y ^FitViewport viewport] :as screen} entities]
(when (utils/contains-point? (.getScreenX viewport) (.getScreenY viewport) (when (utils/contains-point? (.getScreenX viewport) (.getScreenY viewport)
(.getScreenWidth viewport) (.getScreenHeight viewport) (.getScreenWidth viewport) (.getScreenHeight viewport)
@@ -1348,34 +1351,34 @@ void main ()
(if (= (button-code :right) (if (= (button-code :right)
(:button screen)) (:button screen))
(do (do
(screen! hud :on-return-item)) (screen! hud :on-return-item {}))
(when (and (get-in entities [:state :active?]) (when (and (get-in entities [:state :active?])
(or (not (get-in entities [:state :hud-active?])) (or (not (get-in entities [:state :hud-active?]))
(get-in entities [:fg-actions :script-running?])) (get-in entities [:fg-actions :script-running?]))
(= 0.0 (get-in entities [:fade :opacity]))) (= 0.0 (get-in entities [:fade :opacity])))
(left-click screen entities))))) (left-click screen entities)))))
:on-deactivate (fn [screen [entities]] :on-deactivate (fn [screen entities]
(assoc-in entities [:state :active?] false)) (assoc-in entities [:state :active?] false))
:on-reactivate (fn [{:keys [came-from-inventory?] :as screen} [entities]] :on-reactivate (fn [{:keys [came-from-inventory?] :as screen} entities]
(-> entities (-> entities
(assoc-in [:state :active?] true) (assoc-in [:state :active?] true)
(assoc-in [:cursor :came-from-inventory?] came-from-inventory?))) (assoc-in [:cursor :came-from-inventory?] came-from-inventory?)))
:on-end-safe (fn [screen [entities]] :on-end-safe (fn [screen entities]
((actions/get-script entities ((actions/get-script entities
(actions/play-animation entities :ego :end-squat)) entities) (actions/play-animation entities :ego :end-squat)) entities)
(-> entities (-> entities
(assoc-in [:state :active?] true) (assoc-in [:state :active?] true)
(assoc-in [:cursor :override] nil))) (assoc-in [:cursor :override] nil)))
:on-open-inventory (fn [screen [entities]] :on-open-inventory (fn [screen entities]
(open-inventory screen entities)) (open-inventory screen entities))
:on-click-inventory (fn [screen [entities]] :on-click-inventory (fn [screen entities]
(click-inventory screen entities)) (click-inventory screen entities))
:on-save (fn [screen [entities]] :on-save (fn [screen entities]
(when-not (get-in entities [:fg-actions :script-running?]) (when-not (get-in entities [:fg-actions :script-running?])
(let [date (.format (java.text.SimpleDateFormat. "MM/dd/YY") (java.util.Date.)) (let [date (.format (java.text.SimpleDateFormat. "MM/dd/YY") (java.util.Date.))
save-name (str (-> entities :room :name) " - " date)] save-name (str (-> entities :room :name) " - " date)]
@@ -1383,9 +1386,9 @@ void main ()
(str (.getTime (java.util.Date.))) (str (.getTime (java.util.Date.)))
save-name save-name
date) date)
(screen! toast-screen :on-toast :message (str "Saved \"" save-name "\""))))) (screen! toast-screen :on-toast { :message (str "Saved \"" save-name "\"")}))))
:on-menu (fn [{:keys [viewport] :as screen} [entities]] :on-menu (fn [{:keys [viewport] :as screen} entities]
(when-not (or (get-in entities [:tweens :fade-out]) (when-not (or (get-in entities [:tweens :fade-out])
(get-in entities [:tweens :fade-in])) (get-in entities [:tweens :fade-in]))
@@ -1402,10 +1405,10 @@ void main ()
(set-screen! @(resolve 'advent.core/advent) @(resolve 'advent.screens.title/title-screen)) (set-screen! @(resolve 'advent.core/advent) @(resolve 'advent.screens.title/title-screen))
%)))))) %))))))
:on-start-script (fn [{:keys [script]} [entities]] :on-start-script (fn [{:keys [script]} entities]
(script entities) (script entities)
entities) entities)
:hud-active? (fn [{:keys [hud-active?]} [entities]] :hud-active? (fn [{:keys [hud-active?]} entities]
(assoc-in entities [:state :hud-active?] hud-active?))) () (assoc-in entities [:state :hud-active?] hud-active?))) ()
@@ -1428,7 +1431,7 @@ void main ()
entities))) entities)))
(defn get-selected-inventory-item [] (defn get-selected-inventory-item []
(let [[{{:keys [state state-data]} :inv-fsm}] (-> hud :entities deref)] (let [{{:keys [state state-data]} :inv-fsm} (-> hud :entities deref)]
(and (= state :selected) (and (= state :selected)
state-data))) state-data)))
@@ -1440,7 +1443,7 @@ void main ()
{:label (assoc (label "Demo version - DO NOT COPY" (color :white) ) :y 460 :x 5 :baseline 0 :opacity 0.5)})) {:label (assoc (label "Demo version - DO NOT COPY" (color :white) ) :y 460 :x 5 :baseline 0 :opacity 0.5)}))
:on-render :on-render
(fn [{:keys [^FitViewport viewport] :as screen} [entities]] (fn [{:keys [^FitViewport viewport] :as screen} entities]
(.apply viewport) (.apply viewport)
(render! screen [(:label entities)]) (render! screen [(:label entities)])
entities) entities)
@@ -1451,7 +1454,7 @@ void main ()
) )
(defn hud-interactable? [] (defn hud-interactable? []
(let [[scene-entities] (-> scene :entities deref)] (let [scene-entities (-> scene :entities deref)]
(and (not (get-in scene-entities [:fg-actions :script-running?])) (and (not (get-in scene-entities [:fg-actions :script-running?]))
(get-in scene-entities [:state :active?]) (get-in scene-entities [:state :active?])
(= 0.0 (get-in scene-entities [:fade :opacity]))))) (= 0.0 (get-in scene-entities [:fade :opacity])))))
@@ -1527,7 +1530,7 @@ void main ()
(reify ITransition (reify ITransition
(start-transition [this screen entities] (start-transition [this screen entities]
(screen! scene :on-open-inventory) (screen! scene :on-open-inventory {})
entities) entities)
(transition-done? [this screen entities] (transition-done? [this screen entities]
true))])) true))]))
@@ -1750,9 +1753,9 @@ void main ()
#_#_:fps (assoc (label "" (color :white) ) :x 5 :baseline 0 :opacity 0.1)})) #_#_:fps (assoc (label "" (color :white) ) :x 5 :baseline 0 :opacity 0.1)}))
:on-render :on-render
(fn [{:keys [^FitViewport viewport] :as screen} [entities]] (fn [{:keys [^FitViewport viewport] :as screen} entities]
(.apply viewport) (.apply viewport)
(let [entities (utils/apply-tweens screen entities (:tweens entities)) #_(let [entities (utils/apply-tweens screen entities (:tweens entities))
entities (update-in entities [:inventory] animate screen ) entities (update-in entities [:inventory] animate screen )
hud-interactable? (hud-interactable?) hud-interactable? (hud-interactable?)
entities (if hud-interactable? entities (if hud-interactable?
@@ -1827,7 +1830,7 @@ void main ()
:on-start-script :on-start-script
(fn [_ [entities]] (fn [_ entities]
(println "here") (println "here")
(-> entities (-> entities
(update-in [:inv-fsm :pending-states] conj [:none nil]) (update-in [:inv-fsm :pending-states] conj [:none nil])
@@ -1835,7 +1838,7 @@ void main ()
:on-reactivate :on-reactivate
(fn [{:keys [script-started? item] :as screen} [entities]] (fn [{:keys [script-started? item] :as screen} entities]
(let [selected-item? (and (:value item) (let [selected-item? (and (:value item)
(:cursor item))] (:cursor item))]
(if (and (not script-started?) selected-item?) (if (and (not script-started?) selected-item?)
@@ -1843,16 +1846,16 @@ void main ()
(transition-hud screen entities :none nil)))) (transition-hud screen entities :none nil))))
:on-touch-down :on-touch-down
(fn [screen [entities]] (fn [screen entities]
(let [[x y] (utils/unproject screen) (let [[x y] (utils/unproject screen)
hovered-inventory? ((:mouse-in? (:inventory entities)) x y) hovered-inventory? ((:mouse-in? (:inventory entities)) x y)
hovered-close? (utils/intersects? (:close entities) [x y]) hovered-close? (utils/intersects? (:close entities) [x y])
hovered-save? (utils/intersects? (:save entities) [x y])] hovered-save? (utils/intersects? (:save entities) [x y])]
(screen! scene :hud-active? :hud-active? (or hovered-close? hovered-inventory? hovered-save?)))) (screen! scene :hud-active? { :hud-active? (or hovered-close? hovered-inventory? hovered-save?)})))
#_#_:on-mouse-moved #_#_:on-mouse-moved
(fn [screen [entities]] (fn [screen entities]
(let [[x y] (utils/unproject screen) (let [[x y] (utils/unproject screen)
hovered-inventory? ((:mouse-in? (:inventory entities)) x y) hovered-inventory? ((:mouse-in? (:inventory entities)) x y)
hovered-close? (utils/intersects? (:close entities) [x y]) hovered-close? (utils/intersects? (:close entities) [x y])
@@ -1883,7 +1886,7 @@ void main ()
:on-touch-up :on-touch-up
(fn [screen [entities]] (fn [screen entities]
(if (= (button-code :left) (:button screen)) (if (= (button-code :left) (:button screen))
(let [[x y] (utils/unproject screen)] (let [[x y] (utils/unproject screen)]
(cond (cond
@@ -1897,15 +1900,15 @@ void main ()
(update-in entities [:inv-fsm :pending-states] conj [:none (get-in entities [:inv-fsm :state-data])]) (update-in entities [:inv-fsm :pending-states] conj [:none (get-in entities [:inv-fsm :state-data])])
(do (do
(screen! scene :on-deactivate) (screen! scene :on-deactivate {})
(update-in entities [:inv-fsm :pending-states] conj [:open nil]))) (update-in entities [:inv-fsm :pending-states] conj [:open nil])))
(utils/intersects? (:close entities) [x y]) (utils/intersects? (:close entities) [x y])
(screen! scene :on-menu) (screen! scene :on-menu {})
(and (not (:already-saved? entities)) (utils/intersects? (:save entities) [x y]) (hud-interactable?)) (and (not (:already-saved? entities)) (utils/intersects? (:save entities) [x y]) (hud-interactable?))
(do (do
(screen! scene :on-save) (screen! scene :on-save {})
(assoc entities :already-saved? true)) (assoc entities :already-saved? true))
:else :else

View File

@@ -95,6 +95,7 @@
(defscreen splash-screen (defscreen splash-screen
:on-show :on-show
(fn [screen entities] (fn [screen entities]
(println screen)
(utils/setup-viewport screen 1280 960) (utils/setup-viewport screen 1280 960)
(log/info "Starting splash screen.") (log/info "Starting splash screen.")
@@ -124,7 +125,7 @@
:on-render :on-render
(fn [{:keys [^FitViewport viewport] :as screen} [entities]] (fn [{:keys [^FitViewport viewport] :as screen} entities]
(steam/update) (steam/update)
(.apply viewport) (.apply viewport)
(clear!) (clear!)
@@ -140,7 +141,7 @@
:show-screen (fn [entities] :show-screen (fn [entities]
entities) entities)
:on-touch-up (fn [screen [entities]] :on-touch-up (fn [screen entities]
(if (get-in entities [:current-step :can-skip]) (if (get-in entities [:current-step :can-skip])
(assoc entities :current-step nil :queued-skip? false) (assoc entities :current-step nil :queued-skip? false)
(assoc entities :queued-skip? true))) (assoc entities :queued-skip? true)))
@@ -151,6 +152,6 @@
(utils/toggle-fullscreen!)) (utils/toggle-fullscreen!))
nil) nil)
:on-resize (fn [{:keys [^FitViewport viewport width height]} [entities]] :on-resize (fn [{:keys [^FitViewport viewport width height]} entities]
(.update viewport width height false) (.update viewport width height false)
nil)) nil))

View File

@@ -412,7 +412,7 @@
:on-render :on-render
(fn [{:keys [^FitViewport viewport] :as screen} [entities]] (fn [{:keys [^FitViewport viewport] :as screen} entities]
(steam/update) (steam/update)
(.apply viewport) (.apply viewport)
(clear!) (clear!)
@@ -440,7 +440,7 @@
:on-ui-changed :on-ui-changed
(fn [{:keys [^Actor actor] :as screen} [entities]] (fn [{:keys [^Actor actor] :as screen} entities]
(when-not (get-in entities [:tweens :fade-out]) (when-not (get-in entities [:tweens :fade-out])
(let [e (-> actor .getUserObject) (let [e (-> actor .getUserObject)
actor-key (:key e)] actor-key (:key e)]
@@ -550,6 +550,6 @@
:else :else
entities)))) entities))))
:on-resize (fn [{:keys [^FitViewport viewport width height]} [entities]] :on-resize (fn [{:keys [^FitViewport viewport width height]} entities]
(.update viewport width height false) (.update viewport width height false)
nil)) nil))