a lot of stuff to get rid of reflection.
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)))
|
||||||
|
|
||||||
|
|||||||
@@ -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)))
|
||||||
|
|||||||
@@ -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)))
|
||||||
|
|
||||||
|
|||||||
@@ -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)))
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)))
|
||||||
|
|
||||||
|
|||||||
@@ -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))
|
||||||
%))))))
|
%))))))
|
||||||
|
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
@@ -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")))
|
||||||
|
|||||||
Reference in New Issue
Block a user