a lot of stuff to get rid of reflection.

This commit is contained in:
Bryce Covert
2016-08-03 20:32:03 -07:00
parent 197165b663
commit 3d69fc0b65
13 changed files with 86 additions and 88 deletions

View File

@@ -136,7 +136,7 @@
current-zoom (get-in entities [:cam :zoom] 1.0) current-zoom (get-in entities [:cam :zoom] 1.0)
;; don't zoom if it's a subtle difference ;; don't zoom if it's a subtle difference
target-zoom (if (< (Math/abs (- target-zoom current-zoom)) target-zoom (if (< (Math/abs (double (- target-zoom current-zoom)))
0.07) 0.07)
current-zoom current-zoom
target-zoom) target-zoom)
@@ -402,11 +402,11 @@
target-y (get-in entities [:room :entities target-id :y]) target-y (get-in entities [:room :entities target-id :y])
target-x (get-in entities [:room :entities target-id :x]) target-x (get-in entities [:room :entities target-id :x])
width (or (get-in entities [:room :entities target-id :width]) width (or (get-in entities [:room :entities target-id :width])
(.getRegionWidth (get-in entities [:room :entities target-id :object]))) (texture! (get-in entities [:room :entities target-id]) :get-region-width))
origin-x (get-in entities [:room :entities target-id :origin-x]) origin-x (get-in entities [:room :entities target-id :origin-x])
target-x (if (nil? origin-x) (+ target-x (/ width 2)) target-x ) target-x (if (nil? origin-x) (+ target-x (/ width 2)) target-x )
height (or (get-in entities [:room :entities target-id :height]) height (or (get-in entities [:room :entities target-id :height])
(.getRegionHeight (get-in entities [:room :entities target-id :object]))) (texture! (get-in entities [:room :entities target-id]) :get-region-height))
scaled (get-in entities [:room :entities target-id :scaled]) scaled (get-in entities [:room :entities target-id :scaled])
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)

View File

@@ -77,9 +77,10 @@
ty (long ty)] ty (long ty)]
(if (= 0 (nth (nth my-map tx) ty)) (if (= 0 (nth (nth my-map tx) ty))
nil nil
(let [cost-so-far ^java.util.HashMap (java.util.HashMap. {play-loc 0}) (let [^java.util.HashMap cost-so-far (java.util.HashMap.)
came-from ^java.util.HashMap (java.util.HashMap.) _ (.put cost-so-far play-loc 0)
fronteir ^java.util.PriorityQueue (java.util.PriorityQueue. (/ (* 320 240) scale) cost-comparator)] ^java.util.HashMap came-from (java.util.HashMap.)
^java.util.PriorityQueue fronteir (java.util.PriorityQueue. (/ (* 320 240) scale) cost-comparator)]
(.offer fronteir [0 play-loc]) (.offer fronteir [0 play-loc])
(loop [current-loc (.poll fronteir)] (loop [current-loc (.poll fronteir)]
(if (or (nil? current-loc) (if (or (nil? current-loc)

View File

@@ -203,6 +203,6 @@
: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 viewport]} entities] :on-resize (fn [{:keys [width height ^FitViewport viewport]} entities]
(.update viewport width height))) (.update viewport width height)))

View File

@@ -57,14 +57,11 @@
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)
bg (drawable :nine-patch (:object p))
tr (bitmap-font! font :get-region) tr (bitmap-font! font :get-region)
scale (/ scale 2) scale (/ scale 2)
scale (or (min (max scale 0.2) 0.25) 0.25) scale (or (min (max scale 0.2) 0.25) 0.25)
tx (.getTexture tr) _ (.setFilter (.getTexture tr) Texture$TextureFilter/Linear Texture$TextureFilter/Linear)
_ (texture! tx :set-filter Texture$TextureFilter/Linear Texture$TextureFilter/Linear)
style (style :label font color) style (style :label font color)
#_#__ (set! (.background style) bg)
[source-x source-y] [x y] [source-x source-y] [x y]
[x y] (scene-world->talk-world scene-viewport [source-x [x y] (scene-world->talk-world scene-viewport [source-x
@@ -100,7 +97,7 @@
(dissoc entities (or id :fg-actions))) (dissoc entities (or id :fg-actions)))
:on-resize (fn [{:keys [viewport width height]} entities] :on-resize (fn [{:keys [^FitViewport viewport width height]} entities]
(.update viewport width height))) (.update viewport width height)))
(def choice-height 40) (def choice-height 40)
@@ -125,10 +122,9 @@
(let [font (bitmap-font "ego/font.fnt" ) (let [font (bitmap-font "ego/font.fnt" )
tr (bitmap-font! font :get-region) tr (bitmap-font! font :get-region)
scale 1 scale 1
tx (.getTexture tr)
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)
_ (texture! tx :set-filter Texture$TextureFilter/Linear Texture$TextureFilter/Linear)] _ (.setFilter (.getTexture tr) Texture$TextureFilter/Linear Texture$TextureFilter/Linear)]
{:state {:object nil {:state {:object nil
:callback nil :callback nil
:choices [] :choices []
@@ -182,7 +178,7 @@
(style-label e (get-in entities [:state :font]) [x y])) (style-label e (get-in entities [:state :font]) [x y]))
entities)) entities))
:on-resize (fn [{:keys [width height viewport]} entities] :on-resize (fn [{:keys [width height ^FitViewport viewport]} entities]
(.update viewport width height))) (.update viewport width height)))
(defscreen toast-screen (defscreen toast-screen
@@ -206,11 +202,9 @@
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)
bg (drawable :nine-patch (:object p))
tr (bitmap-font! font :get-region) tr (bitmap-font! font :get-region)
tx (.getTexture tr) _ (.setFilter (.getTexture tr) Texture$TextureFilter/Linear Texture$TextureFilter/Linear)
_ (texture! tx :set-filter Texture$TextureFilter/Linear Texture$TextureFilter/Linear)
style (style :label font (color :red)) style (style :label font (color :red))
[x y] [(/ 1280 2) (/ 960 2)] [x y] [(/ 1280 2) (/ 960 2)]
@@ -230,5 +224,5 @@
(dissoc entities :dialogue)) (dissoc entities :dialogue))
:on-resize (fn [{:keys [viewport width height]} entities] :on-resize (fn [{:keys [^FitViewport viewport width height]} entities]
(.update viewport width height))) (.update viewport width height)))

View File

@@ -11,7 +11,8 @@
[com.badlogic.gdx.graphics.g2d TextureRegion] [com.badlogic.gdx.graphics.g2d TextureRegion]
[com.badlogic.gdx.utils Align] [com.badlogic.gdx.utils Align]
[com.badlogic.gdx Application Audio Files Game Gdx Graphics Input [com.badlogic.gdx Application Audio Files Game Gdx Graphics Input
InputMultiplexer InputProcessor Net Preferences Screen])) InputMultiplexer InputProcessor Net Preferences Screen]
[com.badlogic.gdx.utils.viewport FitViewport]))
(defscreen fade-screen (defscreen fade-screen
@@ -37,6 +38,6 @@
: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 viewport]} entities] :on-resize (fn [{:keys [width height ^FitViewport viewport]} entities]
(.update viewport width height))) (.update ^FitViewport viewport width height)))

View File

@@ -194,5 +194,5 @@
(left-click screen entities) (left-click screen entities)
(right-click screen entities)))) (right-click screen entities))))
:on-resize (fn [screen entities] :on-resize (fn [{:keys [width height ^FitViewport viewport] :as screen} entities]
(.update (:viewport screen) (:width screen) (:height screen) true))) (.update viewport width height true)))

View File

@@ -550,10 +550,10 @@
(/ (:delta-time screen) (/ (:delta-time screen)
(/ 1.0 60.0))) (/ 1.0 60.0)))
speed (if (< delta-x 0) (- speed) speed) speed (if (< delta-x 0) (- speed) speed)
moved-x (if (< (Math/abs delta-x) speed) moved-x (if (< (Math/abs (int delta-x)) speed)
target-x target-x
(* speed (/ delta-x delta-x) ))] (* speed (/ delta-x delta-x) ))]
(if (< (Math/abs delta-x) speed) (if (< (Math/abs (int delta-x)) speed)
(actions/start-animation screen (actions/start-animation screen
(dissoc e :target-x) (dissoc e :target-x)
:stand) :stand)
@@ -820,7 +820,7 @@
(let [speed 0.009 (let [speed 0.009
pos-f (- (* (:total-time screen) speed) (int (* (:total-time screen) speed))) pos-f (- (* (:total-time screen) speed) (int (* (:total-time screen) speed)))
v (vector-2 0 0) v (vector-2 0 0)
a (catmull-rom-spline! (:path entity) :value-at v pos-f)] a (catmull-rom-spline! ^CatmullRomSpline (:path entity) :value-at v pos-f)]
(assoc entity :x (vector-2! v :x) :y (vector-2! v :y)))))} (assoc entity :x (vector-2! v :x) :y (vector-2! v :y)))))}
:cauldron (rooms/make-entity :cauldron (assoc (animation->texture screen cauldron) :cauldron (rooms/make-entity :cauldron (assoc (animation->texture screen cauldron)
:x 139 :y 73 :baseline 167 :x 139 :y 73 :baseline 167

View File

@@ -107,6 +107,6 @@
(sound! (utils/load-sound "inside-house/close-safe.ogg") :play (utils/current-sound-volume 0.3)) (sound! (utils/load-sound "inside-house/close-safe.ogg") :play (utils/current-sound-volume 0.3))
(close entities))))))) (close entities)))))))
:on-resize (fn [{:keys [width height viewport]} entities] :on-resize (fn [{:keys [width height ^FitViewport viewport]} entities]
(.update viewport width height))) (.update viewport width height)))

View File

@@ -1398,7 +1398,7 @@ void main ()
(tween/tween :fade-out screen [:fade :opacity] 0.0 1.0 1.0 (tween/tween :fade-out screen [:fade :opacity] 0.0 1.0 1.0
:finish #(do :finish #(do
(utils/stop-all-sounds! %) (utils/stop-all-sounds! %)
(.clear @(resolve 'advent.core/am)) (asset-manager! @(resolve 'advent.core/am) :clear)
(set-screen! @(resolve 'advent.core/advent) @(resolve 'advent.screens.title/title-screen)) (set-screen! @(resolve 'advent.core/advent) @(resolve 'advent.screens.title/title-screen))
%)))))) %))))))

View File

@@ -151,6 +151,6 @@
(utils/toggle-fullscreen!)) (utils/toggle-fullscreen!))
nil) nil)
:on-resize (fn [{:keys [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

@@ -20,11 +20,11 @@
[advent.version] [advent.version]
) )
(:import [com.badlogic.gdx.graphics Pixmap Pixmap$Filter Texture Texture$TextureFilter Color] (:import [com.badlogic.gdx.graphics Pixmap Pixmap$Filter Texture Texture$TextureFilter Color]
[com.badlogic.gdx.graphics.g2d TextureRegion] [com.badlogic.gdx.graphics.g2d TextureRegion NinePatch]
[play_clj.entities NinePatchEntity] [play_clj.entities NinePatchEntity]
[com.badlogic.gdx.utils.viewport FitViewport] [com.badlogic.gdx.utils.viewport FitViewport]
[com.badlogic.gdx.scenes.scene2d.ui Slider$SliderStyle Widget ButtonGroup TextButton$TextButtonStyle CheckBox$CheckBoxStyle CheckBox Button] [com.badlogic.gdx.scenes.scene2d.ui Slider$SliderStyle Widget ButtonGroup TextButton$TextButtonStyle CheckBox$CheckBoxStyle CheckBox Button ImageButton ScrollPane]
[com.badlogic.gdx.scenes.scene2d Group Actor] [com.badlogic.gdx.scenes.scene2d Group Actor Stage]
[play_clj.entities ActorEntity] [play_clj.entities ActorEntity]
[com.badlogic.gdx.utils Align] [com.badlogic.gdx.utils Align]
[com.badlogic.gdx.scenes.scene2d.utils NinePatchDrawable TextureRegionDrawable BaseDrawable] [com.badlogic.gdx.scenes.scene2d.utils NinePatchDrawable TextureRegionDrawable BaseDrawable]
@@ -54,12 +54,12 @@
(defn style-slider [s mouse-pos] (defn style-slider [s mouse-pos]
(if (utils/intersects? s mouse-pos) (if (utils/intersects? s mouse-pos)
(slider! s :set-style (:hover s)) (slider! s :set-style ^Slider$SliderStyle (:hover s))
(slider! s :set-style (:default s))) (slider! s :set-style ^Slider$SliderStyle (:default s)))
s) s)
(defn center [e] (defn center [e]
(assoc e :x (- (/ 1280 2) (/ (or (:width e) (.getWidth (:object e))) 2)))) (assoc e :x (- (/ 1280 2) (/ (or (:width e) (.getWidth ^Actor (:object e))) 2))))
(defn get-dir [old-x new-x] (defn get-dir [old-x new-x]
@@ -132,7 +132,7 @@
(tween/tween :fade-out-music screen [:volume] 1.0 0.0 1.0))))) (tween/tween :fade-out-music screen [:volume] 1.0 0.0 1.0)))))
(defn button-style [] (defn button-style []
(let [style (skin! (skin "ui/ui.json") :get TextButton$TextButtonStyle) (let [^TextButton$TextButtonStyle style (skin! (skin "ui/ui.json") :get TextButton$TextButtonStyle)
tx (-> style .font .getRegion .getTexture)] tx (-> style .font .getRegion .getTexture)]
(call! ^Texture tx :set-filter Texture$TextureFilter/Linear Texture$TextureFilter/Linear) (call! ^Texture tx :set-filter Texture$TextureFilter/Linear Texture$TextureFilter/Linear)
@@ -160,10 +160,6 @@
(defn make-checkbox (defn make-checkbox
([msg checked & rest] ([msg checked & rest]
(let [s (skin! (skin "ui/ui.json") :get CheckBox$CheckBoxStyle)] (let [s (skin! (skin "ui/ui.json") :get CheckBox$CheckBoxStyle)]
(-> s
.font
)
(doto (merge (check-box msg s) (doto (merge (check-box msg s)
(apply hash-map rest)) (apply hash-map rest))
(set-checkbox-state checked) (set-checkbox-state checked)
@@ -177,7 +173,7 @@
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 0 0 0 0) _ (nine-patch! p :set-padding 0 0 0 0)
bg (drawable :nine-patch (:object p)) bg (drawable :nine-patch ^NinePatch (:object p))
style (style :label font (or col (color 1.0 0.3 0.3 1.0))) style (style :label font (or col (color 1.0 0.3 0.3 1.0)))
#_#__ (set! (.background style) bg)] #_#__ (set! (.background style) bg)]
(-> msg (-> msg
@@ -277,7 +273,7 @@
(every-pred :save #(utils/intersects? % [x y])) (every-pred :save #(utils/intersects? % [x y]))
(vals entities)))) (vals entities))))
(defn saves-table [entities stage] (defn saves-table [entities ^Stage stage]
(let [group (doto (ButtonGroup.) (let [group (doto (ButtonGroup.)
(.setMaxCheckCount 1) (.setMaxCheckCount 1)
(.setMinCheckCount 0) (.setMinCheckCount 0)
@@ -299,7 +295,7 @@
)) ))
save-object)] save-object)]
(.add group (:object btn)) (.add group ^ImageButton (:object btn))
(ActorEntity. (:object btn)))) (ActorEntity. (:object btn))))
save-screenshots (map make-save-screenshot (:saves-list entities)) save-screenshots (map make-save-screenshot (:saves-list entities))
grouped-screenshots (->> (partition-all 2 save-screenshots) grouped-screenshots (->> (partition-all 2 save-screenshots)
@@ -308,7 +304,7 @@
scroll-pane (doto (scroll-pane (table grouped-screenshots) scroll-pane (doto (scroll-pane (table grouped-screenshots)
(skin "ui/ui.json")) (skin "ui/ui.json"))
(scroll-pane! :set-fade-scroll-bars false))] (scroll-pane! :set-fade-scroll-bars false))]
(.setScrollFocus stage (:object scroll-pane)) (.setScrollFocus stage ^ScrollPane (:object scroll-pane))
[scroll-pane [scroll-pane
:colspan 3 :height 190 :pad-bottom 4 :width 472])) :colspan 3 :height 190 :pad-bottom 4 :width 472]))
@@ -444,7 +440,7 @@
:on-ui-changed :on-ui-changed
(fn [{:keys [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)]
@@ -554,6 +550,6 @@
:else :else
entities)))) entities))))
:on-resize (fn [{:keys [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

@@ -5,7 +5,8 @@
) )
(:import [java.nio ByteBuffer CharBuffer] (:import [java.nio ByteBuffer CharBuffer]
[java.io ByteArrayOutputStream] [java.io ByteArrayOutputStream]
[com.badlogic.gdx.graphics PixmapIO$PNG] [com.badlogic.gdx.graphics Pixmap PixmapIO$PNG]
[com.badlogic.gdx.files FileHandle]
)) ))
(def has-steam? (def has-steam?
@@ -37,31 +38,39 @@
(when (SteamAPI/isSteamRunning) (when (SteamAPI/isSteamRunning)
(SteamAPI/runCallbacks)))) (SteamAPI/runCallbacks))))
(defn achievement-fn [f achievement] (if has-steam?
(steamify (eval
(let [stats (atom nil)] '(do
(log/info "Getting stats...") (defn achievement-fn [f achievement]
(reset! stats (SteamUserStats. (reify SteamUserStatsCallback (steamify
(onUserStatsReceived [_ _ _ _] (let [stats (atom nil)]
(f @stats achievement) (log/info "Getting stats...")
) (reset! stats (SteamUserStats. (reify SteamUserStatsCallback
(onUserStatsStored [_ _ _]) (onUserStatsReceived [_ _ _ _]
(onUserAchievementStored [_ _ _ _ _ _])))) (f @stats achievement)
(.requestCurrentStats @stats)))) )
(onUserStatsStored [_ _ _])
(onUserAchievementStored [_ _ _ _ _ _]))))
(.requestCurrentStats @stats))))
(def set-achievement (partial achievement-fn (def set-achievement (partial achievement-fn
(fn [stats achievement] (fn [^SteamUserStats stats ^String achievement]
(log/info "Setting achievement" achievement) (log/info "Setting achievement" achievement)
(.setAchievement stats achievement) (.setAchievement stats achievement)
(.storeStats stats) (.storeStats stats)
(log/info "Done setting achievement" achievement)))) (log/info "Done setting achievement" achievement))))
(def clear-achievement (partial achievement-fn (def clear-achievement (partial achievement-fn
(fn [stats achievement] (fn [^SteamUserStats stats ^String achievement]
(log/info "Clearing achievement" achievement) (log/info "Clearing achievement" achievement)
(.clearAchievement stats achievement) (.clearAchievement stats achievement)
(.storeStats stats) (.storeStats stats)
(log/info "Done clearing achievement" achievement)))) (log/info "Done clearing achievement" achievement)))))
)
(do
(defn set-achievement [achievement])
(defn clear-achievement [achievement])))
(def all-achievements ["PARDON" "EX_CON" "PRO_WRESTLER" "SHEEP_HORDER" "SAFE_AND_SOUND" "DESTINY" "WISE_UP" "BLOODCLOT" "KITTY_KISS"]) (def all-achievements ["PARDON" "EX_CON" "PRO_WRESTLER" "SHEEP_HORDER" "SAFE_AND_SOUND" "DESTINY" "WISE_UP" "BLOODCLOT" "KITTY_KISS"])
@@ -101,11 +110,11 @@
n)) n))
(if is-app-store? (if is-app-store?
(for [save-file (.list (files! :external "saves/") ".edn")] (for [save-file (.list (files! :external "saves/") ".edn")]
(str "saves/" (.name save-file))) (str "saves/" (.name ^FileHandle save-file)))
(for [save-file (.list (files! :local "saves/") ".edn")] (for [save-file (.list (files! :local "saves/") ".edn")]
(str "saves/" (.name save-file)))))) (str "saves/" (.name ^FileHandle save-file))))))
(defn save-screenshot [pm filename] (defn save-screenshot [^Pixmap pm ^String filename]
(steamify (steamify
(let [rs (SteamRemoteStorage. nil) (let [rs (SteamRemoteStorage. nil)
png (PixmapIO$PNG. (* (.getWidth pm) (.getHeight pm) 1.5)) png (PixmapIO$PNG. (* (.getWidth pm) (.getHeight pm) 1.5))

View File

@@ -27,7 +27,7 @@
(let [{:keys [x y]} (input->screen screen {:x (:input-x screen) :y (:input-y screen)})] (let [{:keys [x y]} (input->screen screen {:x (:input-x screen) :y (:input-y screen)})]
(log/info (:input-x screen) (:input-y screen) "->" x y))) (log/info (:input-x screen) (:input-y screen) "->" x y)))
(def +all-cursors+ [:main :wool :mushrooms :carrot :right :down :left :up :flask :flask-with-contents :trophy :ladder :stick :cat-toy :balloon :frog-legs :teddy :portrait :recipe :glass-eye :motivational-tapes :used-earplugs :grass :slobber :flask-with-strength :medal :kiss :sword :hourglass :mandrake :ball-n-chain :key :rope :crowbar :note-1 :ash :sack-lunch :flies :spear :monocle :feather :spell-component :money :charcoal :broken-clock :slingshot :camera :walkie-talkies :alarm-clock :walkie-talkie :flask-water :flask-water-stuff :flask-water-stuff-2 :note-2 :magic-slingshot :active-main :shovel :broom :tune]) (def ^:const +all-cursors+ [:main :wool :mushrooms :carrot :right :down :left :up :flask :flask-with-contents :trophy :ladder :stick :cat-toy :balloon :frog-legs :teddy :portrait :recipe :glass-eye :motivational-tapes :used-earplugs :grass :slobber :flask-with-strength :medal :kiss :sword :hourglass :mandrake :ball-n-chain :key :rope :crowbar :note-1 :ash :sack-lunch :flies :spear :monocle :feather :spell-component :money :charcoal :broken-clock :slingshot :camera :walkie-talkies :alarm-clock :walkie-talkie :flask-water :flask-water-stuff :flask-water-stuff-2 :note-2 :magic-slingshot :active-main :shovel :broom :tune])
(def settings (atom {:music-volume 50.0 (def settings (atom {:music-volume 50.0
:sound-volume 75.0 :sound-volume 75.0
@@ -67,7 +67,7 @@
(defn snapshot-list [] (defn snapshot-list []
(->> (for [filename (steam/list-edn-files)] (->> (for [filename (steam/list-edn-files)]
(try (try
(edn/read-string (String. (steam/get-bytes filename) "UTF-8")) (edn/read-string (String. ^bytes (steam/get-bytes filename) "UTF-8"))
(catch Exception _ nil))) (catch Exception _ nil)))
(filter (every-pred identity :name :id)) (filter (every-pred identity :name :id))
(sort-by (fn [s] (sort-by (fn [s]
@@ -79,7 +79,7 @@
(doall (for [snapshot (snapshot-list)] (doall (for [snapshot (snapshot-list)]
(assoc-in snapshot [:screenshot] (assoc-in snapshot [:screenshot]
(try (let [bytes (steam/get-bytes (:screenshot snapshot))] (try (let [bytes (steam/get-bytes (:screenshot snapshot))]
(Pixmap. bytes 0 (count bytes))) (Pixmap. ^bytes bytes 0 (count bytes)))
(catch Exception e (catch Exception e
(Pixmap. 160 120 Pixmap$Format/RGB888))))))) (Pixmap. 160 120 Pixmap$Format/RGB888)))))))
@@ -122,8 +122,8 @@
(steam/write-bytes (steam/save-file-name id) (.getBytes (pr-str save) "UTF-8")) (steam/write-bytes (steam/save-file-name id) (.getBytes (pr-str save) "UTF-8"))
(on-gl (let [gl-func (fn [] (on-gl (let [gl-func (fn []
(let [_ (Pixmap/setFilter Pixmap$Filter/BiLinear) (let [_ (Pixmap/setFilter Pixmap$Filter/BiLinear)
viewport (-> @ (resolve 'advent.screens.scene/scene) :screen deref :viewport) viewport (-> @ (resolve 'advent.screens.scene/scene) :screen deref :viewport)
[x y w h g-l g-r] [(.getScreenX viewport) (.getScreenY viewport) (.getScreenWidth viewport) (.getScreenHeight viewport)] [x y w h g-l g-r] [(.getScreenX ^FitViewport viewport) (.getScreenY ^FitViewport viewport) (.getScreenWidth ^FitViewport viewport) (.getScreenHeight ^FitViewport viewport)]
pm (ScreenUtils/getFrameBufferPixmap x y w h) pm (ScreenUtils/getFrameBufferPixmap x y w h)
resized (Pixmap. 160 120 Pixmap$Format/RGB888) resized (Pixmap. 160 120 Pixmap$Format/RGB888)
_ (.drawPixmap resized pm 0 0 w h 0 0 160 120)] _ (.drawPixmap resized pm 0 0 w h 0 0 160 120)]
@@ -212,7 +212,7 @@
(texture! frame :flip true false) (texture! frame :flip true false)
frame)))) frame))))
(defn split-texture [file [tile-width tile-height] frames] (defn split-texture [file [^int tile-width ^int tile-height] frames]
(let [sheet (get-texture file) (let [sheet (get-texture file)
sheet-obj ^TextureRegion (:object sheet) sheet-obj ^TextureRegion (:object sheet)
width ^int (int (.getRegionWidth sheet-obj)) width ^int (int (.getRegionWidth sheet-obj))
@@ -222,12 +222,11 @@
:let [new-tex ^TextureRegion (TextureRegion. sheet-obj)]] :let [new-tex ^TextureRegion (TextureRegion. sheet-obj)]]
(do (do
(.setRegion new-tex (.setRegion new-tex
(unchecked-add x (unchecked-multiply tile-width frame)) ^int (unchecked-add x (unchecked-multiply tile-width frame))
y y
tile-width tile-width
tile-height) tile-height)
(->TextureEntity new-tex)))) (->TextureEntity new-tex)))))
)
(defn make-anim [file [w h] speed frames] (defn make-anim [file [w h] speed frames]
(animation speed (split-texture file [w h] frames))) (animation speed (split-texture file [w h] frames)))
@@ -361,7 +360,7 @@
(let [current-action (get-in entities [:fg-actions :current]) (let [current-action (get-in entities [:fg-actions :current])
is-script-running (get-in entities [:fg-actions :script-running?])] is-script-running (get-in entities [:fg-actions :script-running?])]
(and is-script-running (and is-script-running
(not ( #{nil :end :none-but-arrow} (get-in entities [:fg-actions :last-skip-type])))))) (not (#{:end :none-but-arrow} (or (get-in entities [:fg-actions :last-skip-type]) :end))))))
(defn update-override [{:keys [^FitViewport viewport] :as screen} entities] (defn update-override [{:keys [^FitViewport viewport] :as screen} entities]
(let [raw-pos (get-in entities [:cursor :last-pos]) (let [raw-pos (get-in entities [:cursor :last-pos])
@@ -451,16 +450,14 @@
(do (do
(log/info "Making windowed 800x600 decorated window") (log/info "Making windowed 800x600 decorated window")
(System/setProperty "org.lwjgl.opengl.Window.undecorated", "false") (System/setProperty "org.lwjgl.opengl.Window.undecorated", "false")
(.setFullscreenMode Gdx/graphics 800 600))) (.setFullscreenMode Gdx/graphics (.getDisplayMode Gdx/graphics))))
(defmethod make-fullscreen :linux [] (defmethod make-fullscreen :linux []
(let [width (-> Gdx/graphics .getDisplayMode .width) (let [width (-> Gdx/graphics .getDisplayMode .width)
height (-> Gdx/graphics .getDisplayMode .height)] height (-> Gdx/graphics .getDisplayMode .height)]
(log/info "Making fullscreen " width "x" height " as undecorated window") (log/info "Making fullscreen " width "x" height " as undecorated window")
(System/setProperty "org.lwjgl.opengl.Window.undecorated", "true") (System/setProperty "org.lwjgl.opengl.Window.undecorated", "true")
(.setFullscreenMode Gdx/graphics (.setFullscreenMode Gdx/graphics (.getDisplayMode Gdx/graphics))))
width
height)))
(defmethod is-fullscreen? :linux [] (defmethod is-fullscreen? :linux []
(= "true" (System/getProperty "org.lwjgl.opengl.Window.undecorated"))) (= "true" (System/getProperty "org.lwjgl.opengl.Window.undecorated")))