diff --git a/android/AndroidManifest.template.xml b/android/AndroidManifest.template.xml index b1736bf7..7cbab1ad 100644 --- a/android/AndroidManifest.template.xml +++ b/android/AndroidManifest.template.xml @@ -1,6 +1,6 @@ @@ -15,7 +15,7 @@ android:hardwareAccelerated="true" android:largeHeap="true" android:label="Tick's Tales"> - @@ -24,7 +24,7 @@ - diff --git a/android/project.clj b/android/project.clj index 6d20945e..6ab67fbf 100644 --- a/android/project.clj +++ b/android/project.clj @@ -1,15 +1,15 @@ (def version (str "2.0." (clojure.string/trim-newline (slurp "../desktop/last-release")) "-snapshot")) -(defproject advent version +(defproject tickstales version :description "FIXME: write description" :manifest {"Implementation-Version" version} - :dependencies [[com.badlogicgames.gdx/gdx "1.9.3" :use-resources true] - [com.badlogicgames.gdx/gdx-backend-lwjgl "1.9.3"] - [com.badlogicgames.gdx/gdx-box2d "1.9.3"] - [com.badlogicgames.gdx/gdx-tools "1.9.3"] + :dependencies [[com.badlogicgames.gdx/gdx "1.9.4" :use-resources true] + [com.badlogicgames.gdx/gdx-backend-lwjgl "1.9.4"] + [com.badlogicgames.gdx/gdx-box2d "1.9.4"] + [com.badlogicgames.gdx/gdx-tools "1.9.4"] - [com.badlogicgames.gdx/gdx-backend-android "1.9.3"] + [com.badlogicgames.gdx/gdx-backend-android "1.9.4"] [neko/neko "4.0.0-alpha5"] [com.android.billingclient/billing "dp-1" :extension "aar"] @@ -29,9 +29,10 @@ :profiles {:dev {:dependencies [[android/tools.nrepl "0.2.0-bigstack"] [compliment "0.1.3"]] + :jvm-opts ["-Dplatform=android"] :android {:aot :all-with-unused - :rename-manifest-package "advent.core.debug" + :rename-manifest-package "tickstales.core.debug" :manifest-options {:app-name "ticks tales (debug)"} :aot-exclude-ns ["clojure.core.memoize" "core.async"]}} :release {:android diff --git a/android/src/java/advent/core/MainActivity.java b/android/src/java/advent/core/MainActivity.java index 1756951c..317fe416 100644 --- a/android/src/java/advent/core/MainActivity.java +++ b/android/src/java/advent/core/MainActivity.java @@ -6,7 +6,10 @@ import java.util.ArrayList; import java.util.List; import com.badlogic.gdx.backends.android.AndroidApplication; +import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration; import com.badlogic.gdx.Game; +import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.assets.AssetManager; import com.android.billingclient.api.*; import com.android.billingclient.api.BillingClient.BillingResponse; import com.android.billingclient.api.BillingClient.SkuType; @@ -48,10 +51,17 @@ public class MainActivity extends AndroidApplication { Game game = (Game) RT.var("advent.core", "advent").deref(); System.out.println("pre-init"); - initialize(game); - System.out.println("before bill??"); + ((AssetManager) RT.var("advent.core", "am").deref()).clear(); + AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration(); + cfg.useWakelock = true; + + initialize(game, cfg); + + AssetManager am = (AssetManager) RT.var("advent.core", "am").deref(); + System.out.println(am.getDiagnostics()); + Texture.setAssetManager(am); + am.finishLoading(); mBillingClient = new BillingClient.Builder(this).setListener((PurchasesUpdatedListener) RT.var("advent.android", "listener").deref()).build(); - System.out.println("billing??"); mBillingClient.startConnection(new BillingClientStateListener() { @Override public void onBillingSetupFinished(@BillingResponse int billingResponseCode) { diff --git a/android/src/java/advent/core/SplashActivity.java b/android/src/java/advent/core/SplashActivity.java index 3eaa5533..a74e460c 100644 --- a/android/src/java/advent/core/SplashActivity.java +++ b/android/src/java/advent/core/SplashActivity.java @@ -9,7 +9,7 @@ import android.widget.ImageView; import android.widget.TextView; import neko.App; -import advent.core.R; +import tickstales.core.R; public class SplashActivity extends Activity { diff --git a/desktop/last-release b/desktop/last-release index 1e8b3149..ec635144 100644 --- a/desktop/last-release +++ b/desktop/last-release @@ -1 +1 @@ -6 +9 diff --git a/desktop/resources/particles/particle-clouds b/desktop/resources/particles/particle-clouds index 81faf792..2cbb6e85 100644 --- a/desktop/resources/particles/particle-clouds +++ b/desktop/resources/particles/particle-clouds @@ -207,7 +207,7 @@ additive: false behind: false premultipliedAlpha: false - Image Path - -dot.png +dot clouds @@ -385,7 +385,7 @@ additive: false behind: false premultipliedAlpha: false - Image Path - -cloud2.png +cloud2 clouds @@ -563,4 +563,4 @@ additive: false behind: false premultipliedAlpha: false - Image Path - -cloud1.png +cloud1 diff --git a/desktop/src-common/advent/actions.clj b/desktop/src-common/advent/actions.clj index d6077fb3..9bc953eb 100644 --- a/desktop/src-common/advent/actions.clj +++ b/desktop/src-common/advent/actions.clj @@ -100,10 +100,15 @@ (put! (get-in starting-entities# [:fg-actions :script-chan]) (fn [starting-entities#] (let [~entities (atom starting-entities#)] - (thread (binding [*fg-bg-key* :fg-actions] - ~@forms - (change-script-state ~entities false) - (utils/save @~entities "autosave" "Autosave")))))))) + (thread (try (binding [*fg-bg-key* :fg-actions] + ~@forms + (change-script-state ~entities false) + (utils/save @~entities "autosave" "Autosave")) + (catch clojure.lang.ExceptionInfo e# + (println "caught exception" e#)) + (catch Exception e# + (println "Caught exception") + (.printStackTrace e#))))))))) (defn force-end [entities current-action key] (do (when current-action diff --git a/desktop/src-common/advent/screens/rooms/dream.clj b/desktop/src-common/advent/screens/rooms/dream.clj index d355da2f..d2646622 100644 --- a/desktop/src-common/advent/screens/rooms/dream.clj +++ b/desktop/src-common/advent/screens/rooms/dream.clj @@ -17,8 +17,7 @@ [play-clj.ui :refer :all] [play-clj.utils :refer :all] [play-clj.g2d :refer :all] - [advent.iap :as iap] - [advent.ios :as ios]) + [advent.iap :as iap]) (:import [com.badlogic.gdx.graphics Color] [com.badlogic.gdx Application Gdx])) diff --git a/desktop/src-common/advent/screens/title.clj b/desktop/src-common/advent/screens/title.clj index f423e556..793cfd9f 100644 --- a/desktop/src-common/advent/screens/title.clj +++ b/desktop/src-common/advent/screens/title.clj @@ -420,8 +420,8 @@ [860 650] [950 700] [1030 800] [1280 960] [1300 1000] [-50 1000] [-50 -50]]) true) :z 3) - :particle-clouds (assoc (particle-effect "particles/particle-clouds" :reset :start) :x 640 :y 480 :z 1) - :ego-jet (assoc (particle-effect "particles/jet" :reset :start) :x 450 :y 650 :z 4) + :particle-clouds (assoc (doto (utils/load-particle-effect "particles/particle-clouds") (particle-effect! :reset) (particle-effect! :start)) :x 640 :y 480 :z 1) + :ego-jet (assoc (doto (utils/load-particle-effect "particles/jet") (particle-effect! :reset) (particle-effect! :start)) :x 450 :y 650 :z 4) :main-menu (->> (main-menu screen) (utils/add-actor-to-stage screen)) @@ -439,9 +439,9 @@ (utils/play-music (:music %)) %) :ease tween/ease-in-quadratic)}} ] + (println "after load" (.getDiagnostics @(resolve 'advent.core/am))) (merge entities (:main-menu entities)))))) - :on-render (fn [{:keys [^FitViewport viewport] :as screen} entities options] #_(steam/update) diff --git a/desktop/src-common/advent/utils.clj b/desktop/src-common/advent/utils.clj index dd2111f9..e49998a7 100644 --- a/desktop/src-common/advent/utils.clj +++ b/desktop/src-common/advent/utils.clj @@ -14,9 +14,11 @@ [advent.steam :as steam] [clojure.core.async :refer [put! ! chan go go-loop thread take! alts!! dropping-buffer]]) (:import [com.badlogic.gdx.graphics Pixmap Pixmap$Format Pixmap$Blending Pixmap$Filter Texture Texture$TextureFilter] - [com.badlogic.gdx.graphics.g2d TextureRegion Animation] + [com.badlogic.gdx.graphics.g2d TextureRegion Animation ParticleEffect] + [play_clj.entities ParticleEffectEntity] [com.badlogic.gdx.utils.viewport FitViewport] [com.badlogic.gdx.utils ScreenUtils] + [com.badlogic.gdx.assets.loaders ParticleEffectLoader$ParticleEffectParameter] [com.badlogic.gdx.graphics PixmapIO$PNG] [com.badlogic.gdx.scenes.scene2d Actor Stage] [com.badlogic.gdx.math CatmullRomSpline] @@ -465,10 +467,10 @@ (defn make-music [r] (log/info "making music from" r) (try - (if mobile? - (doto (music (str r ".mp3")) (music! :set-looping true)) - (doto (music r) (music! :set-looping true))) - + (platformify (doto (music (str r ".mp3")) (music! :set-looping true)) + (do (println "android") + (doto (music r) (music! :set-looping true))) + (doto (music r) (music! :set-looping true))) (catch Exception x (log/warn "music making error" x) @@ -796,7 +798,10 @@ (doseq [resource (id (:resources screen))] (println "releasing " resource) - (asset-manager! *asset-manager* :unload resource)) + (try + (asset-manager! *asset-manager* :unload resource) + (catch Exception e + (println "Error releasing resource " e)))) (app! :log "info"(str "Released resources " (.getDiagnostics *asset-manager*))) (update! screen :resources (assoc (:resources screen {}) id [])))) @@ -806,3 +811,16 @@ (animation speed (map #(get-texture (str file "-" (inc %) ".png")) frames))) ([atlas file [w h] speed frames] (animation speed (map #(atlas->texture atlas file %) frames)))) + +(defn load-particle-effect [path] + (let [p (ParticleEffectLoader$ParticleEffectParameter. ) + am @(resolve 'advent.core/am)] + (set! (.atlasFile p) "packed/particles/pack.atlas") + (set! (.atlasPrefix p) "") + (.load am path ParticleEffect p) + (.finishLoading am) + (let [x (ParticleEffectEntity. (.get am path ParticleEffect))] + (println (.get am "packed/particles/pack.png" Texture)) + (println (.getTexture (.getSprite (.get (.getEmitters (.get am path ParticleEffect)) 0)))) + x) + ))