diff --git a/desktop/project.clj b/desktop/project.clj index 24de82b9..7cf933f4 100644 --- a/desktop/project.clj +++ b/desktop/project.clj @@ -26,7 +26,7 @@ :profiles { :dev { :source-paths ["src" "src-common" "src-dev"] - :jvm-opts ["-Duse-repl=true" "-Dno-steam=true" #_"-Dclojure.compiler.direct-linking=true"] + :jvm-opts ["-Duse-repl=true" "-Dno-steam=true" #_"-Dclojure.compiler.direct-linking=true" "-Dis-desktop=true"] :dependencies [[com.badlogicgames.gdx/gdx-tools "1.5.3"] [org.clojure/tools.nrepl "0.2.12"] [play-clj-nrepl "0.1.0" :exclusions [play-clj]] @@ -36,7 +36,7 @@ #_#_:warn-on-reflection true} :mobile-dev { :source-paths ["src" "src-common" "src-dev"] - :jvm-opts ["-Duse-repl=true" "-Dno-steam=true" "-Dui_scale=1.5" #_"-Dclojure.compiler.direct-linking=true"] + :jvm-opts ["-Duse-repl=true" "-Dno-steam=true" "-Dui_scale=1.5" #_"-Dclojure.compiler.direct-linking=true" "-Dis-desktop=true"] :dependencies [[com.badlogicgames.gdx/gdx-tools "1.5.3"] [org.clojure/tools.nrepl "0.2.12"] [play-clj-nrepl "0.1.0" :exclusions [play-clj]] @@ -46,14 +46,15 @@ #_#_:warn-on-reflection true} :app-store { :source-paths ["src" "src-common" "src-dev"] - :jvm-opts ["-Dapp-store=true" "-Dno-steam=true"] + :jvm-opts ["-Dapp-store=true" "-Dno-steam=true" "-Dis-desktop=true"] :dependencies [[org.clojure/data.csv "0.1.3"]] :warn-on-reflection true} - :steam {:dependencies [[com.code-disaster.steamworks4j/steamworks4j "1.2.2"]]} + :steam {:dependencies [[com.code-disaster.steamworks4j/steamworks4j "1.2.2"]] + :jvm-opts ["-Dis-desktop=true"]} :steam-dev { :source-paths ["src" "src-common" "src-dev"] - :jvm-opts ["-Duse-repl=true"] + :jvm-opts ["-Duse-repl=true" "-Dis-desktop=true"] :dependencies [[com.badlogicgames.gdx/gdx-tools "1.5.3"] [org.clojure/tools.nrepl "0.2.7"] [play-clj-nrepl "0.1.0" :exclusions [play-clj]] diff --git a/desktop/src-common/advent/screens/scene.clj b/desktop/src-common/advent/screens/scene.clj index 1401828a..4d436368 100644 --- a/desktop/src-common/advent/screens/scene.clj +++ b/desktop/src-common/advent/screens/scene.clj @@ -2014,7 +2014,7 @@ (utils/intersects? (:close entities) [x y]) (screen! scene :on-menu {}) - (and (not (:already-saved? entities)) (utils/intersects? (:save entities) [x y]) (hud-interactable?)) + (and #_(not (:already-saved? entities)) (utils/intersects? (:save entities) [x y]) (hud-interactable?)) (do (screen! scene :on-save {}) (assoc entities :already-saved? true)) diff --git a/desktop/src-common/advent/utils.clj b/desktop/src-common/advent/utils.clj index 72c76747..18bf3567 100644 --- a/desktop/src-common/advent/utils.clj +++ b/desktop/src-common/advent/utils.clj @@ -202,6 +202,22 @@ (log/error "Could not save!" e) :fail)))))) +(defmacro iosify [mobile-version & [regular-version]] + (if (= true (System/getProperty "is-desktop")) + mobile-version + regular-version)) + +(defn get-screenshot-pm [] + (iosify + (do + (import '[advent.core Saver]) + (Saver/takeScreenshot)) + (do + (Pixmap/setFilter Pixmap$Filter/BiLinear) + (let [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)]] + (ScreenUtils/getFrameBufferPixmap x y w h))))) + (defn save [entities id name & [blurb]] (let [save-fn (fn [] (log/info "Saving " id name) @@ -215,13 +231,12 @@ (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 ^FitViewport viewport) (.getScreenY ^FitViewport viewport) (.getScreenWidth ^FitViewport viewport) (.getScreenHeight ^FitViewport viewport)] - pm (ScreenUtils/getFrameBufferPixmap x y w h) + (let [pm (get-screenshot-pm) resized (Pixmap. 160 120 Pixmap$Format/RGB888) - _ (.drawPixmap resized pm 0 0 w h 0 0 160 120)] - (steam/save-screenshot resized (steam/save-screenshot-file-name id))))] + _ (.drawPixmap resized pm 0 0 1280 960 0 0 160 120)] + (steam/save-screenshot resized (steam/save-screenshot-file-name id)) + (.dispose resized) + (.dispose pm)))] (try-times gl-func 3)))))] (try-times save-fn 3))) @@ -397,9 +412,10 @@ (defn load-sound [f] (try - (if mobile? - (sound (str f ".mp3")) - (sound f)) + (iosify + (sound (str f ".mp3")) + (sound f) + ) (catch Exception e (log/info e) (sound (str f ".mp3"))))) diff --git a/ios/Info.plist.xml b/ios/Info.plist.xml index 5b51828d..3b28b774 100644 --- a/ios/Info.plist.xml +++ b/ios/Info.plist.xml @@ -21,7 +21,7 @@ CFBundleSignature ???? CFBundleVersion - 93 + 94 MinimumOSVersion 8.0 LSRequiresIPhoneOS diff --git a/ios/project.clj b/ios/project.clj index 4d0779b5..d5b6d93e 100644 --- a/ios/project.clj +++ b/ios/project.clj @@ -17,6 +17,7 @@ :java-source-paths ["src/java"] :plugins [[lein-fruit "0.2.4-SNAPSHOT"]] :javac-options ["-target" "1.7" "-source" "1.7" "-Xlint:-options"] + :jvm-opts ["-Dis-desktop=false"] :ios {:robovm-opts ["-config" "robovm.xml"] :robovm-path "/Users/brycecovert/.robovm-sdks/robovm-2.2.1-SNAPSHOT" :version 2.1}