Beginning to get IOS, Android, and Desktop all working at once. Re-enabling steam.
This commit is contained in:
@@ -53,7 +53,7 @@
|
|||||||
:mobile-dev {
|
:mobile-dev {
|
||||||
:source-paths ["src" "src-common" "src-dev"]
|
:source-paths ["src" "src-common" "src-dev"]
|
||||||
:jvm-opts ["-Duse-repl=true" "-Dui_scale=1.5" "-Dno-steam=true" "-Dclojure.compiler.direct-linking=true" "-Dis-desktop=true" "-Dplatform=desktop"]
|
:jvm-opts ["-Duse-repl=true" "-Dui_scale=1.5" "-Dno-steam=true" "-Dclojure.compiler.direct-linking=true" "-Dis-desktop=true" "-Dplatform=desktop"]
|
||||||
:dependencies [[com.badlogicgames.gdx/gdx-tools "1.5.3"]
|
:dependencies [[com.badlogicgames.gdx/gdx-tools "1.9.4"]
|
||||||
[org.clojure/tools.nrepl "0.2.12"]
|
[org.clojure/tools.nrepl "0.2.12"]
|
||||||
[play-clj-nrepl "0.1.0" :exclusions [play-clj]]
|
[play-clj-nrepl "0.1.0" :exclusions [play-clj]]
|
||||||
[slamhound "1.5.5"]
|
[slamhound "1.5.5"]
|
||||||
@@ -72,7 +72,7 @@
|
|||||||
:steam-dev {
|
:steam-dev {
|
||||||
:source-paths ["src" "src-common" "src-dev"]
|
:source-paths ["src" "src-common" "src-dev"]
|
||||||
:jvm-opts ["-Duse-repl=true" "-Dui_scale=1.0" "-Dis-desktop=true" "-Dplatform=desktop"]
|
:jvm-opts ["-Duse-repl=true" "-Dui_scale=1.0" "-Dis-desktop=true" "-Dplatform=desktop"]
|
||||||
:dependencies [[com.badlogicgames.gdx/gdx-tools "1.5.3"]
|
:dependencies [[com.badlogicgames.gdx/gdx-tools "1.9.4"]
|
||||||
[org.clojure/tools.nrepl "0.2.7"]
|
[org.clojure/tools.nrepl "0.2.7"]
|
||||||
[play-clj-nrepl "0.1.0" :exclusions [play-clj]]
|
[play-clj-nrepl "0.1.0" :exclusions [play-clj]]
|
||||||
[slamhound "1.5.5"]
|
[slamhound "1.5.5"]
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
com.badlogic.gdx.graphics.g2d.BitmapFont: { default-font: { file: ego/font.fnt, scale: 0.5 }, button-font: { file: ego/button-font.fnt }}
|
com.badlogic.gdx.graphics.g2d.BitmapFont: { default-font: { file: ego/font.fnt, scale: 0.5 }, button-font: { file: ego/button-font.fnt, scale: 0.5 }}
|
||||||
com.badlogic.gdx.graphics.Color: {
|
com.badlogic.gdx.graphics.Color: {
|
||||||
button-font-up: {hex: 19003Dff },
|
button-font-up: {hex: 19003Dff },
|
||||||
gray: {hex: 21172Eff },
|
gray: {hex: 21172Eff },
|
||||||
|
|||||||
@@ -43,7 +43,8 @@
|
|||||||
(defgame advent
|
(defgame advent
|
||||||
:on-create
|
:on-create
|
||||||
(fn [this]
|
(fn [this]
|
||||||
(create-game advent)))
|
(steam/init)
|
||||||
|
(create-game advent)))
|
||||||
|
|
||||||
(defn reload []
|
(defn reload []
|
||||||
(on-gl (set-screen! advent title/title-screen)))
|
(on-gl (set-screen! advent title/title-screen)))
|
||||||
|
|||||||
@@ -545,10 +545,12 @@
|
|||||||
(-> e
|
(-> e
|
||||||
(assoc-in [:room :entities :penultimate-black :opacity] 1)
|
(assoc-in [:room :entities :penultimate-black :opacity] 1)
|
||||||
(assoc-in [:cam :paused?] false)
|
(assoc-in [:cam :paused?] false)
|
||||||
(update-in [:room :entities :black-blowup] (fn [b]
|
(update-in [:room :entities (if won? :black-blowup-big
|
||||||
(particle-effect! b :reset)
|
:black-blowup)]
|
||||||
(particle-effect! b :start)
|
(fn [b]
|
||||||
b)))))
|
(particle-effect! b :reset)
|
||||||
|
(particle-effect! b :start)
|
||||||
|
b)))))
|
||||||
|
|
||||||
(println "doing screen shake?")
|
(println "doing screen shake?")
|
||||||
(actions/camera-shake entities 8.0)
|
(actions/camera-shake entities 8.0)
|
||||||
|
|||||||
@@ -145,6 +145,7 @@
|
|||||||
heart (utils/make-anim-seq atlas "heart" [24 24] 0.08 [3])
|
heart (utils/make-anim-seq atlas "heart" [24 24] 0.08 [3])
|
||||||
beat (utils/make-anim-seq atlas "heart" [24 24] 0.08 [0 1 0 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3])
|
beat (utils/make-anim-seq atlas "heart" [24 24] 0.08 [0 1 0 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3])
|
||||||
black-blowup (particle-effect "particles/black-blowup")
|
black-blowup (particle-effect "particles/black-blowup")
|
||||||
|
black-blowup-big (particle-effect "particles/black-blowup-big")
|
||||||
tongue-idle (utils/make-anim-seq atlas "tongue-idle/tongue-idle" [135 145] 0.16 (range 5))
|
tongue-idle (utils/make-anim-seq atlas "tongue-idle/tongue-idle" [135 145] 0.16 (range 5))
|
||||||
tongue-windup (utils/make-anim-seq atlas "tongue-windup" [135 145] 0.16 [0 1 2 3 2 1 2 3 2 1 0 ])
|
tongue-windup (utils/make-anim-seq atlas "tongue-windup" [135 145] 0.16 [0 1 2 3 2 1 2 3 2 1 0 ])
|
||||||
|
|
||||||
@@ -195,6 +196,10 @@
|
|||||||
:black-blowup (assoc black-blowup
|
:black-blowup (assoc black-blowup
|
||||||
:x 222 :y 85
|
:x 222 :y 85
|
||||||
:baseline 241)
|
:baseline 241)
|
||||||
|
|
||||||
|
:black-blowup-big (assoc black-blowup-big
|
||||||
|
:x 222 :y 85
|
||||||
|
:baseline 241)
|
||||||
:hair-0 (assoc (animation->texture screen hair-0)
|
:hair-0 (assoc (animation->texture screen hair-0)
|
||||||
:x 35
|
:x 35
|
||||||
:y 46
|
:y 46
|
||||||
|
|||||||
@@ -1098,7 +1098,10 @@
|
|||||||
(update-in entities [:tweens] dissoc :cam-x :cam-y :cam-zoom))
|
(update-in entities [:tweens] dissoc :cam-x :cam-y :cam-zoom))
|
||||||
|
|
||||||
(defn render [{:keys [^OrthographicCamera camera ^FitViewport viewport ^Stage renderer] :as screen} {{:keys [last-pos ] [cursor-offset-x cursor-offset-y] :offset} :cursor :keys [tweens] :as entities} options]
|
(defn render [{:keys [^OrthographicCamera camera ^FitViewport viewport ^Stage renderer] :as screen} {{:keys [last-pos ] [cursor-offset-x cursor-offset-y] :offset} :cursor :keys [tweens] :as entities} options]
|
||||||
#_(steam/update)
|
(utils/platformify
|
||||||
|
nil
|
||||||
|
nil
|
||||||
|
(steam/update))
|
||||||
(.apply viewport)
|
(.apply viewport)
|
||||||
|
|
||||||
(if (-> entities :closing? :value)
|
(if (-> entities :closing? :value)
|
||||||
|
|||||||
@@ -94,6 +94,7 @@
|
|||||||
(utils/play-music (:pop-music entities))
|
(utils/play-music (:pop-music entities))
|
||||||
(-> entities
|
(-> entities
|
||||||
(assoc-in [:pop-logo :anim-start] (:total-time screen))
|
(assoc-in [:pop-logo :anim-start] (:total-time screen))
|
||||||
|
(assoc-in [:pop-logo :opacity] 1.0)
|
||||||
(assoc-in [:pop-logo :anim] (get-in entities [:pop-logo :main-anim]))))
|
(assoc-in [:pop-logo :anim] (get-in entities [:pop-logo :main-anim]))))
|
||||||
:duration 10.0}]))
|
:duration 10.0}]))
|
||||||
|
|
||||||
@@ -112,12 +113,17 @@
|
|||||||
:on-show
|
:on-show
|
||||||
(fn [screen entities options]
|
(fn [screen entities options]
|
||||||
(let [[screen splash-atlas] (utils/acquire-atlas screen "packed/splash.atlas")
|
(let [[screen splash-atlas] (utils/acquire-atlas screen "packed/splash.atlas")
|
||||||
[screen global-atlas] (utils/acquire-atlas screen "packed/global.atlas")]
|
[screen global-atlas] (utils/acquire-atlas screen "packed/global.atlas")
|
||||||
|
[screen pop-logo-atlas] (if utils/mobile?
|
||||||
|
[screen nil]
|
||||||
|
(utils/acquire-atlas screen "packed-pop-logo/pack.atlas"))]
|
||||||
(utils/setup-viewport screen 1280 960)
|
(utils/setup-viewport screen 1280 960)
|
||||||
(log/info "Starting splash screen.")
|
(log/info "Starting splash screen.")
|
||||||
(graphics! :set-cursor (utils/cursor "cursor.png" :hourglass))
|
(graphics! :set-cursor (utils/cursor "cursor.png" :hourglass))
|
||||||
(let [screen (assoc screen :total-time 0)
|
(let [screen (assoc screen :total-time 0)
|
||||||
pop-anim (make-anim-seq splash-atlas "POPPixelLogo_02" [320 240] 0.05 (repeat 200 0))
|
pop-anim (if utils/mobile?
|
||||||
|
(make-anim-seq splash-atlas "POPPixelLogo_02" [320 240] 0.05 (repeat 200 0))
|
||||||
|
(make-anim-seq pop-logo-atlas "POPPixelLogo_02" [320 240] 0.05 (range 200)))
|
||||||
entities {:background (assoc (utils/atlas->texture global-atlas "black.png")
|
entities {:background (assoc (utils/atlas->texture global-atlas "black.png")
|
||||||
:scale-x 80
|
:scale-x 80
|
||||||
:scale-y 80
|
:scale-y 80
|
||||||
@@ -126,12 +132,12 @@
|
|||||||
:origin-y 0
|
:origin-y 0
|
||||||
:z 0)
|
:z 0)
|
||||||
:pop-logo (assoc (animation->texture screen pop-anim)
|
:pop-logo (assoc (animation->texture screen pop-anim)
|
||||||
:anim pop-anim
|
:main-anim pop-anim
|
||||||
:x 0 :y 0
|
:x 0 :y 0
|
||||||
:origin-x 0 :origin-y 0
|
:origin-x 0 :origin-y 0
|
||||||
:scale-x 4 :scale-y 4
|
:scale-x 4 :scale-y 4
|
||||||
:z 1
|
:z 1
|
||||||
:opacity (if utils/mobile? 0.0 1.0))
|
:opacity 0.0)
|
||||||
:dbhlogo (assoc (utils/atlas->texture splash-atlas "dbh.png") :x 0 :y 0 :origin-x 0 :origin-y 0 :scale-x 4 :scale-y 4 :z 1 :opacity 0.0)
|
:dbhlogo (assoc (utils/atlas->texture splash-atlas "dbh.png") :x 0 :y 0 :origin-x 0 :origin-y 0 :scale-x 4 :scale-y 4 :z 1 :opacity 0.0)
|
||||||
:steps steps
|
:steps steps
|
||||||
:pop-music (utils/make-music "music/POPPixelLogo2Audiomix_mixdown.ogg")
|
:pop-music (utils/make-music "music/POPPixelLogo2Audiomix_mixdown.ogg")
|
||||||
@@ -144,7 +150,10 @@
|
|||||||
|
|
||||||
:on-render
|
:on-render
|
||||||
(fn [{:keys [^FitViewport viewport] :as screen} entities options]
|
(fn [{:keys [^FitViewport viewport] :as screen} entities options]
|
||||||
#_(steam/update)
|
(utils/platformify
|
||||||
|
nil
|
||||||
|
nil
|
||||||
|
(steam/update))
|
||||||
(.apply viewport)
|
(.apply viewport)
|
||||||
(clear!)
|
(clear!)
|
||||||
(let [entities (utils/apply-tweens screen entities (:tweens entities))
|
(let [entities (utils/apply-tweens screen entities (:tweens entities))
|
||||||
|
|||||||
@@ -134,6 +134,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 [^TextButton$TextButtonStyle 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)]
|
||||||
(-> style .font .getData (.setScale utils/button-font-scale))
|
(-> style .font .getData (.setScale utils/button-font-scale))
|
||||||
@@ -149,7 +150,11 @@
|
|||||||
([msg & rest]
|
([msg & rest]
|
||||||
(let [button (merge (text-button msg (button-style))
|
(let [button (merge (text-button msg (button-style))
|
||||||
(apply hash-map rest))]
|
(apply hash-map rest))]
|
||||||
|
(utils/platformify
|
||||||
|
nil
|
||||||
|
nil
|
||||||
|
(doto (text-button! button :get-label)
|
||||||
|
(.setFontScale 0.5)))
|
||||||
(doto button save-object))))
|
(doto button save-object))))
|
||||||
|
|
||||||
|
|
||||||
@@ -164,10 +169,15 @@
|
|||||||
([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 .getData (.setScale utils/title-label-scale))
|
(-> s .font .getData (.setScale utils/title-label-scale))
|
||||||
(doto (merge (check-box msg s)
|
(let [checkbox-entity (merge (check-box msg s)
|
||||||
(apply hash-map rest))
|
(apply hash-map rest))]
|
||||||
(set-checkbox-state checked)
|
(utils/platformify
|
||||||
save-object))))
|
nil
|
||||||
|
nil
|
||||||
|
(doto (check-box! checkbox-entity :get-label)
|
||||||
|
(.setFontScale 0.25)))
|
||||||
|
(set-checkbox-state checkbox-entity checked)
|
||||||
|
(save-object checkbox-entity)))))
|
||||||
|
|
||||||
(defn make-label
|
(defn make-label
|
||||||
([msg]
|
([msg]
|
||||||
@@ -456,7 +466,10 @@
|
|||||||
|
|
||||||
:on-render
|
:on-render
|
||||||
(fn [{:keys [^FitViewport viewport] :as screen} entities options]
|
(fn [{:keys [^FitViewport viewport] :as screen} entities options]
|
||||||
#_(steam/update)
|
(utils/platformify
|
||||||
|
nil
|
||||||
|
nil
|
||||||
|
(steam/update))
|
||||||
(.apply viewport)
|
(.apply viewport)
|
||||||
(clear!)
|
(clear!)
|
||||||
(let [entities (utils/apply-tweens screen entities (:tweens entities))
|
(let [entities (utils/apply-tweens screen entities (:tweens entities))
|
||||||
|
|||||||
@@ -1,59 +1,151 @@
|
|||||||
(ns advent.steam
|
(ns advent.steam
|
||||||
(:require [play-clj.core :refer :all])
|
(:require [play-clj.core :refer :all])
|
||||||
(:import [com.badlogic.gdx.graphics Pixmap PixmapIO$PNG]
|
(:import [java.nio ByteBuffer CharBuffer]
|
||||||
|
[java.io ByteArrayOutputStream]
|
||||||
|
[com.badlogic.gdx.graphics Pixmap PixmapIO$PNG]
|
||||||
[com.badlogic.gdx.files FileHandle]))
|
[com.badlogic.gdx.files FileHandle]))
|
||||||
|
|
||||||
(def has-steam?
|
(def has-steam?
|
||||||
false
|
(if (= "desktop" (System/getProperty "platform"))
|
||||||
)
|
(try
|
||||||
|
(import '[com.codedisaster.steamworks SteamUserStats SteamUserStatsCallback SteamAPI SteamRemoteStorage])
|
||||||
|
true
|
||||||
|
(catch Exception e
|
||||||
|
false))
|
||||||
|
false))
|
||||||
(println "loading steam")
|
(println "loading steam")
|
||||||
|
|
||||||
(def is-app-store? false)
|
(defmacro steamify [steam-version & [regular-version]]
|
||||||
|
(if has-steam?
|
||||||
|
`(if (and has-steam? (not (System/getProperty "no-steam")))
|
||||||
|
~steam-version
|
||||||
|
~regular-version)
|
||||||
|
regular-version))
|
||||||
|
|
||||||
|
(defn init []
|
||||||
|
(steamify
|
||||||
|
(if (SteamAPI/init)
|
||||||
|
(println "Steam initialized")
|
||||||
|
(do
|
||||||
|
(println "Steam not initialized")
|
||||||
|
(def has-steam? false)))))
|
||||||
|
|
||||||
|
(defn update []
|
||||||
|
(steamify
|
||||||
|
(when (SteamAPI/isSteamRunning)
|
||||||
|
(SteamAPI/runCallbacks))))
|
||||||
|
|
||||||
|
(if has-steam?
|
||||||
|
(eval
|
||||||
|
'(do
|
||||||
|
(defn achievement-fn [f achievement]
|
||||||
|
(steamify
|
||||||
|
(let [stats (atom nil)]
|
||||||
|
(println "Getting stats...")
|
||||||
|
(reset! stats (SteamUserStats. (reify SteamUserStatsCallback
|
||||||
|
(onUserStatsReceived [_ _ _ _]
|
||||||
|
(f @stats achievement)
|
||||||
|
)
|
||||||
|
(onUserStatsStored [_ _ _])
|
||||||
|
(onUserAchievementStored [_ _ _ _ _ _]))))
|
||||||
|
(.requestCurrentStats @stats))))
|
||||||
|
|
||||||
|
(def set-achievement (partial achievement-fn
|
||||||
|
(fn [^SteamUserStats stats ^String achievement]
|
||||||
|
(println "Setting achievement" achievement)
|
||||||
|
(.setAchievement stats achievement)
|
||||||
|
(.storeStats stats)
|
||||||
|
(println "Done setting achievement" achievement))))
|
||||||
|
|
||||||
|
(def clear-achievement (partial achievement-fn
|
||||||
|
(fn [^SteamUserStats stats ^String achievement]
|
||||||
|
(println "Clearing achievement" achievement)
|
||||||
|
(.clearAchievement stats achievement)
|
||||||
|
(.storeStats stats)
|
||||||
|
(println "Done clearing achievement" achievement)))))
|
||||||
|
|
||||||
|
)
|
||||||
|
(do
|
||||||
|
(defn set-achievement [achievement])
|
||||||
|
(defn clear-achievement [achievement])))
|
||||||
|
|
||||||
|
|
||||||
|
(def is-app-store? (System/getProperty "app-store"))
|
||||||
(def all-achievements ["PARDON" "EX_CON" "PRO_WRESTLER" "SHEEP_HORDER" "SAFE_AND_SOUND" "DESTINY" "WISE_UP" "TONGUESBANE" "KITTY_KISS" "BEHOLDER" "MOUTH_DIVER"])
|
(def all-achievements ["PARDON" "EX_CON" "PRO_WRESTLER" "SHEEP_HORDER" "SAFE_AND_SOUND" "DESTINY" "WISE_UP" "TONGUESBANE" "KITTY_KISS" "BEHOLDER" "MOUTH_DIVER"])
|
||||||
|
|
||||||
(defn clear-achievement [])
|
|
||||||
|
|
||||||
(defn set-achievement [x])
|
|
||||||
|
|
||||||
(defn clear-all-achievements []
|
(defn clear-all-achievements []
|
||||||
(doall (map clear-achievement all-achievements)))
|
(doall (map clear-achievement all-achievements)))
|
||||||
|
|
||||||
(defn get-bytes [filename]
|
(defn get-bytes [filename]
|
||||||
(.readBytes (if is-app-store?
|
(steamify
|
||||||
(files! :external filename)
|
(let [rs (SteamRemoteStorage. nil)
|
||||||
(files! :local filename))))
|
len (.getFileSize rs filename)
|
||||||
|
bb (ByteBuffer/allocateDirect len)
|
||||||
|
bytes (make-array Byte/TYPE len)]
|
||||||
|
(.fileRead rs filename bb len)
|
||||||
|
(.get bb bytes)
|
||||||
|
bytes)
|
||||||
|
(.readBytes (if is-app-store?
|
||||||
|
(files! :external filename)
|
||||||
|
(files! :local filename)))))
|
||||||
|
|
||||||
(defn write-bytes [filename bytes]
|
(defn write-bytes [filename bytes]
|
||||||
(let [f (if is-app-store?
|
(steamify
|
||||||
(files! :external filename)
|
(let [rs (SteamRemoteStorage. nil)
|
||||||
(files! :local filename))]
|
bb (ByteBuffer/allocateDirect (* 2 (count bytes)))]
|
||||||
(.writeBytes f bytes false)))
|
(-> bb (.put bytes) )
|
||||||
|
(.fileWrite rs filename bb (* 2 (count bytes))))
|
||||||
|
(let [f (if is-app-store?
|
||||||
|
(files! :external filename)
|
||||||
|
(files! :local filename))]
|
||||||
|
(.writeBytes f bytes false))))
|
||||||
|
|
||||||
(defn list-edn-files []
|
(defn list-edn-files []
|
||||||
(if is-app-store?
|
(steamify
|
||||||
(for [save-file (.list (files! :external "saves/") ".edn")]
|
(let [rs (SteamRemoteStorage. nil)]
|
||||||
(str "saves/" (.name ^FileHandle save-file)))
|
(for [i (range (.getFileCount rs))
|
||||||
(for [save-file (.list (files! :local "saves/") ".edn")]
|
:let [n (.getFileNameAndSize rs i (make-array Integer/TYPE 1))]
|
||||||
(str "saves/" (.name ^FileHandle save-file)))))
|
:when (.endsWith n ".edn")]
|
||||||
|
n))
|
||||||
|
(if is-app-store?
|
||||||
|
(for [save-file (.list (files! :external "saves/") ".edn")]
|
||||||
|
(str "saves/" (.name ^FileHandle save-file)))
|
||||||
|
(for [save-file (.list (files! :local "saves/") ".edn")]
|
||||||
|
(str "saves/" (.name ^FileHandle save-file))))))
|
||||||
|
|
||||||
(defn save-screenshot [^Pixmap pm ^String filename]
|
(defn save-screenshot [^Pixmap pm ^String filename]
|
||||||
(let [f (if is-app-store?
|
(steamify
|
||||||
(files! :external filename)
|
(let [rs (SteamRemoteStorage. nil)
|
||||||
(files! :local filename))
|
png (PixmapIO$PNG. (* (.getWidth pm) (.getHeight pm) 1.5))
|
||||||
png (PixmapIO$PNG. (* (.getWidth pm) (.getHeight pm) 1.5))]
|
baos (ByteArrayOutputStream. (* (.getWidth pm) (.getHeight pm) 1.5))
|
||||||
|
_ (.write png baos pm)
|
||||||
(.write png f pm)
|
bytes (.toByteArray baos)
|
||||||
(.dispose png)))
|
bb (ByteBuffer/allocateDirect (count bytes))]
|
||||||
|
(.put bb bytes)
|
||||||
|
(.fileWrite rs filename bb (count bytes)))
|
||||||
|
(let [f (if is-app-store?
|
||||||
|
(files! :external filename)
|
||||||
|
(files! :local filename))
|
||||||
|
png (PixmapIO$PNG. (* (.getWidth pm) (.getHeight pm) 1.5))]
|
||||||
|
|
||||||
|
(.write png f pm)
|
||||||
|
(.dispose png))))
|
||||||
|
|
||||||
(defn delete-file [filename]
|
(defn delete-file [filename]
|
||||||
(let [file (if is-app-store?
|
(steamify
|
||||||
(files! :external filename)
|
(.fileDelete (SteamRemoteStorage. nil) filename)
|
||||||
(files! :local filename))]
|
(let [file (if is-app-store?
|
||||||
(when (.exists file)
|
(files! :external filename)
|
||||||
(.delete file))))
|
(files! :local filename))]
|
||||||
|
(when (.exists file)
|
||||||
|
(.delete file)))))
|
||||||
|
|
||||||
(defn save-screenshot-file-name [name]
|
(defn save-screenshot-file-name [name]
|
||||||
(str "saves/screenshot-" (clojure.core/name name) ".png" ))
|
(steamify
|
||||||
|
(str "screenshot-" (clojure.core/name name) ".png" )
|
||||||
|
(str "saves/screenshot-" (clojure.core/name name) ".png" )))
|
||||||
|
|
||||||
(defn save-file-name [id]
|
(defn save-file-name [id]
|
||||||
(str "saves/" id ".edn"))
|
(steamify
|
||||||
|
(str id ".edn")
|
||||||
|
(str "saves/" id ".edn")))
|
||||||
|
|||||||
@@ -33,7 +33,8 @@
|
|||||||
entity)
|
entity)
|
||||||
|
|
||||||
|
|
||||||
(def ui-scale (Double/parseDouble (str (or (System/getProperty "ui_scale") 1.5))))
|
|
||||||
|
(def ui-scale (doto (Double/parseDouble (str (or (System/getProperty "ui_scale") 1.5))) (println "UI scale")))
|
||||||
(def button-scale (+ 1 (* (- ui-scale 1.0) 2.0)))
|
(def button-scale (+ 1 (* (- ui-scale 1.0) 2.0)))
|
||||||
(def mobile? (= 1.5 ui-scale))
|
(def mobile? (= 1.5 ui-scale))
|
||||||
(def max-zoom (if mobile? 0.5 0.75))
|
(def max-zoom (if mobile? 0.5 0.75))
|
||||||
@@ -306,8 +307,7 @@
|
|||||||
edn/read-string)))
|
edn/read-string)))
|
||||||
|
|
||||||
(defn get-font [filename]
|
(defn get-font [filename]
|
||||||
(let [font (-> (bitmap-font filename)
|
(let [font (-> (bitmap-font filename))
|
||||||
#_(doto (bitmap-font! :set-font-scale 0.5 0.5)))
|
|
||||||
tr (bitmap-font! font :get-region)
|
tr (bitmap-font! font :get-region)
|
||||||
tx (.getTexture tr)]
|
tx (.getTexture tr)]
|
||||||
(call! ^Texture tx :set-filter Texture$TextureFilter/Linear Texture$TextureFilter/Linear)
|
(call! ^Texture tx :set-filter Texture$TextureFilter/Linear Texture$TextureFilter/Linear)
|
||||||
|
|||||||
Reference in New Issue
Block a user