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)
;; 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)
current-zoom
target-zoom)
@@ -402,11 +402,11 @@
target-y (get-in entities [:room :entities target-id :y])
target-x (get-in entities [:room :entities target-id :x])
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])
target-x (if (nil? origin-x) (+ target-x (/ width 2)) target-x )
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])
scale-fn (get-in entities [:room :scale-fn])
scale (get-in entities [:room :entities target-id :scale-y] 1)

View File

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

View File

@@ -203,6 +203,6 @@
:on-touch-up (fn [screen [entities]]
(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)))

View File

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

View File

@@ -11,7 +11,8 @@
[com.badlogic.gdx.graphics.g2d TextureRegion]
[com.badlogic.gdx.utils Align]
[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
@@ -37,6 +38,6 @@
:update-fade (fn [{:keys [opacity]} [entities]]
(assoc-in entities [:fade :opacity] opacity))
:on-resize (fn [{:keys [width height viewport]} entities]
(.update viewport width height)))
:on-resize (fn [{:keys [width height ^FitViewport viewport]} entities]
(.update ^FitViewport viewport width height)))

View File

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

View File

@@ -550,10 +550,10 @@
(/ (:delta-time screen)
(/ 1.0 60.0)))
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
(* speed (/ delta-x delta-x) ))]
(if (< (Math/abs delta-x) speed)
(if (< (Math/abs (int delta-x)) speed)
(actions/start-animation screen
(dissoc e :target-x)
:stand)
@@ -820,7 +820,7 @@
(let [speed 0.009
pos-f (- (* (:total-time screen) speed) (int (* (:total-time screen) speed)))
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)))))}
:cauldron (rooms/make-entity :cauldron (assoc (animation->texture screen cauldron)
: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))
(close entities)))))))
:on-resize (fn [{:keys [width height viewport]} entities]
:on-resize (fn [{:keys [width height ^FitViewport viewport]} entities]
(.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
:finish #(do
(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))
%))))))

View File

@@ -151,6 +151,6 @@
(utils/toggle-fullscreen!))
nil)
:on-resize (fn [{:keys [viewport width height]} [entities]]
:on-resize (fn [{:keys [^FitViewport viewport width height]} [entities]]
(.update viewport width height false)
nil))

View File

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

View File

@@ -5,7 +5,8 @@
)
(:import [java.nio ByteBuffer CharBuffer]
[java.io ByteArrayOutputStream]
[com.badlogic.gdx.graphics PixmapIO$PNG]
[com.badlogic.gdx.graphics Pixmap PixmapIO$PNG]
[com.badlogic.gdx.files FileHandle]
))
(def has-steam?
@@ -37,31 +38,39 @@
(when (SteamAPI/isSteamRunning)
(SteamAPI/runCallbacks))))
(defn achievement-fn [f achievement]
(steamify
(let [stats (atom nil)]
(log/info "Getting stats...")
(reset! stats (SteamUserStats. (reify SteamUserStatsCallback
(onUserStatsReceived [_ _ _ _]
(f @stats achievement)
)
(onUserStatsStored [_ _ _])
(onUserAchievementStored [_ _ _ _ _ _]))))
(.requestCurrentStats @stats))))
(if has-steam?
(eval
'(do
(defn achievement-fn [f achievement]
(steamify
(let [stats (atom nil)]
(log/info "Getting stats...")
(reset! stats (SteamUserStats. (reify SteamUserStatsCallback
(onUserStatsReceived [_ _ _ _]
(f @stats achievement)
)
(onUserStatsStored [_ _ _])
(onUserAchievementStored [_ _ _ _ _ _]))))
(.requestCurrentStats @stats))))
(def set-achievement (partial achievement-fn
(fn [stats achievement]
(log/info "Setting achievement" achievement)
(.setAchievement stats achievement)
(.storeStats stats)
(log/info "Done setting achievement" achievement))))
(def set-achievement (partial achievement-fn
(fn [^SteamUserStats stats ^String achievement]
(log/info "Setting achievement" achievement)
(.setAchievement stats achievement)
(.storeStats stats)
(log/info "Done setting achievement" achievement))))
(def clear-achievement (partial achievement-fn
(fn [stats achievement]
(log/info "Clearing achievement" achievement)
(.clearAchievement stats achievement)
(.storeStats stats)
(log/info "Done clearing achievement" achievement))))
(def clear-achievement (partial achievement-fn
(fn [^SteamUserStats stats ^String achievement]
(log/info "Clearing achievement" achievement)
(.clearAchievement stats achievement)
(.storeStats stats)
(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"])
@@ -101,11 +110,11 @@
n))
(if is-app-store?
(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")]
(str "saves/" (.name save-file))))))
(str "saves/" (.name ^FileHandle save-file))))))
(defn save-screenshot [pm filename]
(defn save-screenshot [^Pixmap pm ^String filename]
(steamify
(let [rs (SteamRemoteStorage. nil)
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)})]
(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
:sound-volume 75.0
@@ -67,7 +67,7 @@
(defn snapshot-list []
(->> (for [filename (steam/list-edn-files)]
(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)))
(filter (every-pred identity :name :id))
(sort-by (fn [s]
@@ -79,7 +79,7 @@
(doall (for [snapshot (snapshot-list)]
(assoc-in snapshot [:screenshot]
(try (let [bytes (steam/get-bytes (:screenshot snapshot))]
(Pixmap. bytes 0 (count bytes)))
(Pixmap. ^bytes bytes 0 (count bytes)))
(catch Exception e
(Pixmap. 160 120 Pixmap$Format/RGB888)))))))
@@ -122,8 +122,8 @@
(steam/write-bytes (steam/save-file-name id) (.getBytes (pr-str save) "UTF-8"))
(on-gl (let [gl-func (fn []
(let [_ (Pixmap/setFilter Pixmap$Filter/BiLinear)
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)]
viewport (-> @ (resolve 'advent.screens.scene/scene) :screen deref :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)
resized (Pixmap. 160 120 Pixmap$Format/RGB888)
_ (.drawPixmap resized pm 0 0 w h 0 0 160 120)]
@@ -212,7 +212,7 @@
(texture! frame :flip true false)
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)
sheet-obj ^TextureRegion (:object sheet)
width ^int (int (.getRegionWidth sheet-obj))
@@ -222,12 +222,11 @@
:let [new-tex ^TextureRegion (TextureRegion. sheet-obj)]]
(do
(.setRegion new-tex
(unchecked-add x (unchecked-multiply tile-width frame))
^int (unchecked-add x (unchecked-multiply tile-width frame))
y
tile-width
tile-height)
(->TextureEntity new-tex))))
)
(->TextureEntity new-tex)))))
(defn make-anim [file [w h] speed frames]
(animation speed (split-texture file [w h] frames)))
@@ -361,7 +360,7 @@
(let [current-action (get-in entities [:fg-actions :current])
is-script-running (get-in entities [:fg-actions :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]
(let [raw-pos (get-in entities [:cursor :last-pos])
@@ -451,16 +450,14 @@
(do
(log/info "Making windowed 800x600 decorated window")
(System/setProperty "org.lwjgl.opengl.Window.undecorated", "false")
(.setFullscreenMode Gdx/graphics 800 600)))
(.setFullscreenMode Gdx/graphics (.getDisplayMode Gdx/graphics))))
(defmethod make-fullscreen :linux []
(let [width (-> Gdx/graphics .getDisplayMode .width)
height (-> Gdx/graphics .getDisplayMode .height)]
(log/info "Making fullscreen " width "x" height " as undecorated window")
(System/setProperty "org.lwjgl.opengl.Window.undecorated", "true")
(.setFullscreenMode Gdx/graphics
width
height)))
(.setFullscreenMode Gdx/graphics (.getDisplayMode Gdx/graphics))))
(defmethod is-fullscreen? :linux []
(= "true" (System/getProperty "org.lwjgl.opengl.Window.undecorated")))