diff --git a/desktop/asset-work/close.png b/desktop/asset-work/close.png deleted file mode 100644 index 7a50590e..00000000 Binary files a/desktop/asset-work/close.png and /dev/null differ diff --git a/desktop/asset-work/inventory.png b/desktop/asset-work/inventory.png deleted file mode 100644 index 7558b367..00000000 Binary files a/desktop/asset-work/inventory.png and /dev/null differ diff --git a/desktop/asset-work/open-inventory-1.png b/desktop/asset-work/open-inventory-1.png deleted file mode 100644 index 03a6f71b..00000000 Binary files a/desktop/asset-work/open-inventory-1.png and /dev/null differ diff --git a/desktop/asset-work/open-inventory-10.png b/desktop/asset-work/open-inventory-10.png deleted file mode 100644 index 6620226e..00000000 Binary files a/desktop/asset-work/open-inventory-10.png and /dev/null differ diff --git a/desktop/asset-work/open-inventory-11.png b/desktop/asset-work/open-inventory-11.png deleted file mode 100644 index d8b241a9..00000000 Binary files a/desktop/asset-work/open-inventory-11.png and /dev/null differ diff --git a/desktop/asset-work/open-inventory-12.png b/desktop/asset-work/open-inventory-12.png deleted file mode 100644 index 9b74d431..00000000 Binary files a/desktop/asset-work/open-inventory-12.png and /dev/null differ diff --git a/desktop/asset-work/open-inventory-13.png b/desktop/asset-work/open-inventory-13.png deleted file mode 100644 index 4e22a1ba..00000000 Binary files a/desktop/asset-work/open-inventory-13.png and /dev/null differ diff --git a/desktop/asset-work/open-inventory-2.png b/desktop/asset-work/open-inventory-2.png deleted file mode 100644 index 5972bbae..00000000 Binary files a/desktop/asset-work/open-inventory-2.png and /dev/null differ diff --git a/desktop/asset-work/open-inventory-3.png b/desktop/asset-work/open-inventory-3.png deleted file mode 100644 index 79f9cd62..00000000 Binary files a/desktop/asset-work/open-inventory-3.png and /dev/null differ diff --git a/desktop/asset-work/open-inventory-4.png b/desktop/asset-work/open-inventory-4.png deleted file mode 100644 index 50b9ce19..00000000 Binary files a/desktop/asset-work/open-inventory-4.png and /dev/null differ diff --git a/desktop/asset-work/open-inventory-5.png b/desktop/asset-work/open-inventory-5.png deleted file mode 100644 index e2ca9068..00000000 Binary files a/desktop/asset-work/open-inventory-5.png and /dev/null differ diff --git a/desktop/asset-work/open-inventory-6.png b/desktop/asset-work/open-inventory-6.png deleted file mode 100644 index 6ca05529..00000000 Binary files a/desktop/asset-work/open-inventory-6.png and /dev/null differ diff --git a/desktop/asset-work/open-inventory-7.png b/desktop/asset-work/open-inventory-7.png deleted file mode 100644 index 0a3405ad..00000000 Binary files a/desktop/asset-work/open-inventory-7.png and /dev/null differ diff --git a/desktop/asset-work/open-inventory-8.png b/desktop/asset-work/open-inventory-8.png deleted file mode 100644 index 8ea4df8d..00000000 Binary files a/desktop/asset-work/open-inventory-8.png and /dev/null differ diff --git a/desktop/asset-work/open-inventory-9.png b/desktop/asset-work/open-inventory-9.png deleted file mode 100644 index 3b5765f1..00000000 Binary files a/desktop/asset-work/open-inventory-9.png and /dev/null differ diff --git a/desktop/asset-work/open-inventory.pxa/0.pxi b/desktop/asset-work/open-inventory.pxa/0.pxi deleted file mode 100644 index 0688f874..00000000 Binary files a/desktop/asset-work/open-inventory.pxa/0.pxi and /dev/null differ diff --git a/desktop/asset-work/open-inventory.pxa/1.pxi b/desktop/asset-work/open-inventory.pxa/1.pxi deleted file mode 100644 index c20383b6..00000000 Binary files a/desktop/asset-work/open-inventory.pxa/1.pxi and /dev/null differ diff --git a/desktop/asset-work/open-inventory.pxa/10.pxi b/desktop/asset-work/open-inventory.pxa/10.pxi deleted file mode 100644 index 13a047f9..00000000 Binary files a/desktop/asset-work/open-inventory.pxa/10.pxi and /dev/null differ diff --git a/desktop/asset-work/open-inventory.pxa/11.pxi b/desktop/asset-work/open-inventory.pxa/11.pxi deleted file mode 100644 index 9ccae017..00000000 Binary files a/desktop/asset-work/open-inventory.pxa/11.pxi and /dev/null differ diff --git a/desktop/asset-work/open-inventory.pxa/12.pxi b/desktop/asset-work/open-inventory.pxa/12.pxi deleted file mode 100644 index eff129ad..00000000 Binary files a/desktop/asset-work/open-inventory.pxa/12.pxi and /dev/null differ diff --git a/desktop/asset-work/open-inventory.pxa/2.pxi b/desktop/asset-work/open-inventory.pxa/2.pxi deleted file mode 100644 index bcc71d0d..00000000 Binary files a/desktop/asset-work/open-inventory.pxa/2.pxi and /dev/null differ diff --git a/desktop/asset-work/open-inventory.pxa/3.pxi b/desktop/asset-work/open-inventory.pxa/3.pxi deleted file mode 100644 index 6e232bb8..00000000 Binary files a/desktop/asset-work/open-inventory.pxa/3.pxi and /dev/null differ diff --git a/desktop/asset-work/open-inventory.pxa/4.pxi b/desktop/asset-work/open-inventory.pxa/4.pxi deleted file mode 100644 index 069ff60b..00000000 Binary files a/desktop/asset-work/open-inventory.pxa/4.pxi and /dev/null differ diff --git a/desktop/asset-work/open-inventory.pxa/5.pxi b/desktop/asset-work/open-inventory.pxa/5.pxi deleted file mode 100644 index bc83ad3c..00000000 Binary files a/desktop/asset-work/open-inventory.pxa/5.pxi and /dev/null differ diff --git a/desktop/asset-work/open-inventory.pxa/6.pxi b/desktop/asset-work/open-inventory.pxa/6.pxi deleted file mode 100644 index 2064cbdd..00000000 Binary files a/desktop/asset-work/open-inventory.pxa/6.pxi and /dev/null differ diff --git a/desktop/asset-work/open-inventory.pxa/7.pxi b/desktop/asset-work/open-inventory.pxa/7.pxi deleted file mode 100644 index 47ebb639..00000000 Binary files a/desktop/asset-work/open-inventory.pxa/7.pxi and /dev/null differ diff --git a/desktop/asset-work/open-inventory.pxa/8.pxi b/desktop/asset-work/open-inventory.pxa/8.pxi deleted file mode 100644 index 3ab206c8..00000000 Binary files a/desktop/asset-work/open-inventory.pxa/8.pxi and /dev/null differ diff --git a/desktop/asset-work/open-inventory.pxa/9.pxi b/desktop/asset-work/open-inventory.pxa/9.pxi deleted file mode 100644 index 47ebb639..00000000 Binary files a/desktop/asset-work/open-inventory.pxa/9.pxi and /dev/null differ diff --git a/desktop/asset-work/open-inventory.pxa/CelData.plist b/desktop/asset-work/open-inventory.pxa/CelData.plist deleted file mode 100644 index 0aa530db..00000000 --- a/desktop/asset-work/open-inventory.pxa/CelData.plist +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - duration - 1 - - - duration - 1 - - - duration - 1 - - - duration - 1 - - - duration - 1 - - - duration - 1 - - - duration - 1 - - - duration - 1 - - - duration - 1 - - - duration - 1 - - - duration - 1 - - - duration - 1 - - - duration - 1 - - - diff --git a/desktop/asset-work/save.png b/desktop/asset-work/save.png deleted file mode 100644 index 289371b1..00000000 Binary files a/desktop/asset-work/save.png and /dev/null differ diff --git a/desktop/resources/packed/global.atlas b/desktop/resources/packed/global.atlas index 971f4860..1f9a5d56 100644 --- a/desktop/resources/packed/global.atlas +++ b/desktop/resources/packed/global.atlas @@ -1,13 +1,125 @@ global.png -size: 64,32 +size: 1024,64 format: RGBA8888 filter: Nearest,Nearest repeat: none black rotate: false - xy: 2, 2 + xy: 530, 38 size: 32, 24 orig: 32, 24 offset: 0, 0 index: -1 +close + rotate: false + xy: 530, 20 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +inventory + rotate: false + xy: 2, 6 + size: 42, 56 + orig: 42, 56 + offset: 0, 0 + index: -1 +open-inventory-1 + rotate: false + xy: 2, 6 + size: 42, 56 + orig: 42, 56 + offset: 0, 0 + index: -1 +open-inventory-11 + rotate: false + xy: 398, 6 + size: 42, 56 + orig: 42, 56 + offset: 0, 0 + index: -1 +open-inventory-12 + rotate: false + xy: 442, 6 + size: 42, 56 + orig: 42, 56 + offset: 0, 0 + index: -1 +open-inventory-13 + rotate: false + xy: 486, 6 + size: 42, 56 + orig: 42, 56 + offset: 0, 0 + index: -1 +open-inventory-2 + rotate: false + xy: 46, 6 + size: 42, 56 + orig: 42, 56 + offset: 0, 0 + index: -1 +open-inventory-3 + rotate: false + xy: 90, 6 + size: 42, 56 + orig: 42, 56 + offset: 0, 0 + index: -1 +open-inventory-4 + rotate: false + xy: 134, 6 + size: 42, 56 + orig: 42, 56 + offset: 0, 0 + index: -1 +open-inventory-5 + rotate: false + xy: 178, 6 + size: 42, 56 + orig: 42, 56 + offset: 0, 0 + index: -1 +open-inventory-6 + rotate: false + xy: 222, 6 + size: 42, 56 + orig: 42, 56 + offset: 0, 0 + index: -1 +open-inventory-7 + rotate: false + xy: 266, 6 + size: 42, 56 + orig: 42, 56 + offset: 0, 0 + index: -1 +open-inventory-8 + rotate: false + xy: 310, 6 + size: 42, 56 + orig: 42, 56 + offset: 0, 0 + index: -1 +open-inventory-10 + rotate: false + xy: 310, 6 + size: 42, 56 + orig: 42, 56 + offset: 0, 0 + index: -1 +open-inventory-9 + rotate: false + xy: 354, 6 + size: 42, 56 + orig: 42, 56 + offset: 0, 0 + index: -1 +save + rotate: false + xy: 530, 2 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 diff --git a/desktop/resources/packed/global.png b/desktop/resources/packed/global.png index 29e868a2..1b8ed9f7 100644 Binary files a/desktop/resources/packed/global.png and b/desktop/resources/packed/global.png differ diff --git a/desktop/src-common/advent/screens/scene.clj b/desktop/src-common/advent/screens/scene.clj index b043b72e..023232df 100644 --- a/desktop/src-common/advent/screens/scene.clj +++ b/desktop/src-common/advent/screens/scene.clj @@ -1478,7 +1478,6 @@ (tween/tween :fade-out screen [:fade :opacity] 0.0 1.0 1.0 :finish #(do (utils/stop-all-sounds! %) - (asset-manager! @(resolve 'advent.core/am) :clear) (set-screen! @(resolve 'advent.core/advent) @(resolve 'advent.screens.title/title-screen)) %)))))) @@ -1848,7 +1847,8 @@ :on-show (fn [screen entities options] - (let [screen (assoc screen :total-time 0) + (let [[screen global-atlas] (utils/acquire-atlas screen "packed/global.atlas") + screen (assoc screen :total-time 0) screen (utils/setup-viewport screen 320 240)] @@ -1860,29 +1860,29 @@ :pending-states []} :already-saved? false - :close (assoc (utils/get-texture "close.png") + :close (assoc (utils/atlas->texture global-atlas "close") :x 320 :y 240 :origin-x 16 :origin-y 16 :width 16 :height 16 :scale-x utils/ui-scale :scale-y utils/ui-scale :baseline 9000 :opacity 0.8) - :save (assoc (utils/get-texture "save.png") + :save (assoc (utils/atlas->texture global-atlas "save") :x (- 320 (* utils/ui-scale 16) 4) :y 240 :origin-x 16 :origin-y 16 :width 16 :height 16 :baseline 9000 :opacity 0.8) - :inventory (assoc (utils/get-texture "inventory.png") :x (* 21 utils/ui-scale ) :y (* 27 utils/ui-scale ) :baseline 9000 + :inventory (assoc (utils/atlas->texture global-atlas "inventory") :x (* 21 utils/ui-scale ) :y (* 27 utils/ui-scale ) :baseline 9000 :intersect-width 42 :intersect-height 48 :width 42 :height 56 :origin-x 21 :origin-y 27 :scale-x utils/ui-scale :scale-y utils/ui-scale :open (utils/flip (doto (utils/make-anim-seq "open-inventory" [42 56] 0.055 (flatten [(range 6) 6 7 8 7 ])) (animation! :set-play-mode (play-mode :normal)))) - :anim (utils/flip (utils/make-anim "inventory.png" [42 56] 0.1 [0])) + :anim (utils/flip (utils/make-anim global-atlas "inventory" [42 56] 0.1 [0])) :anim-loop? false - :default (utils/flip (utils/make-anim "inventory.png" [42 56] 0.1 [0])) + :default (utils/flip (utils/make-anim global-atlas "inventory" [42 56] 0.1 [0])) :opened (utils/flip (utils/make-anim-seq "open-inventory" [42 56] 0.1 [7])) :closing (utils/flip (doto (utils/make-anim-seq "open-inventory" [42 56] 0.055 [7 7 7 7 7 7 7 9 10 11 12 0]) (animation! :set-play-mode (play-mode :normal)))) @@ -2050,4 +2050,7 @@ (assoc entities :already-saved? true)) :else - nil))))) + nil)))) + :on-hide + (fn [screen entities options] + (utils/release-resources screen))) diff --git a/desktop/src-common/advent/utils.clj b/desktop/src-common/advent/utils.clj index 2a92356d..edb960ee 100644 --- a/desktop/src-common/advent/utils.clj +++ b/desktop/src-common/advent/utils.clj @@ -160,11 +160,14 @@ (defn atlas->texture ([atlas path] (let [region-name (str/replace path #".png" "")] - - (texture (texture-atlas! atlas :find-region region-name)))) + (if-let [region (texture-atlas! atlas :find-region region-name)] + (texture region) + (log/error path "not found")))) ([atlas path index] (let [region-name (str/replace path #".png" "")] - (texture (texture-atlas! atlas :find-region region-name index))))) + (if-let [region (texture-atlas! atlas :find-region region-name index)] + (texture region) + (log/error path index "not found"))))) (defn get-texture ([path] @@ -349,28 +352,46 @@ (texture! frame :flip true false) frame)))) -(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)) - x ^int (int (.getRegionX sheet-obj)) - y ^int (int (.getRegionY sheet-obj))] - (for [frame frames - :let [new-tex ^TextureRegion (TextureRegion. sheet-obj)]] - (do - (.setRegion new-tex - ^int (unchecked-add x (unchecked-multiply tile-width frame)) - y - tile-width - tile-height) - (->TextureEntity new-tex))))) +(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)) + x ^int (int (.getRegionX sheet-obj)) + y ^int (int (.getRegionY sheet-obj))] + (for [frame frames + :let [new-tex ^TextureRegion (TextureRegion. sheet-obj)]] + (do + (.setRegion new-tex + ^int (unchecked-add x (unchecked-multiply tile-width frame)) + y + tile-width + tile-height) + (->TextureEntity new-tex))))) -(defn make-anim [file [w h] speed frames] - (animation speed (split-texture file [w h] frames))) + ([atlas file [^int tile-width ^int tile-height] frames] + (let [sheet (atlas->texture atlas file) + sheet-obj ^TextureRegion (:object sheet) + width ^int (int (.getRegionWidth sheet-obj)) + x ^int (int (.getRegionX sheet-obj)) + y ^int (int (.getRegionY sheet-obj))] + (for [frame frames + :let [new-tex ^TextureRegion (TextureRegion. sheet-obj)]] + (do + (.setRegion new-tex + ^int (unchecked-add x (unchecked-multiply tile-width frame)) + y + tile-width + tile-height) + (->TextureEntity new-tex)))))) -(defn make-anim-seq [file [w h] speed frames] - (animation speed (map #(get-texture (str file "-" (inc %) ".png")) frames))) +(defn make-anim + ([file [w h] speed frames] + (animation speed (split-texture file [w h] frames))) + ([atlas file [w h] speed frames] + (animation speed (split-texture atlas file [w h] frames)))) += (defn make-bird [screen p] (let [bird-sheet (texture! (get-texture "outside-castle/bird.png") :split 1 2) bird-stand (animation 0.15 (for [i [0 1]] @@ -755,3 +776,9 @@ (doseq [resource (:resources screen)] (asset-manager! *asset-manager* :unload resource)) (app! :log "info"(str "Released resources " (.getDiagnostics *asset-manager*)))) + +(defn make-anim-seq + ([file [w h] speed frames] + (animation speed (map #(get-texture (str file "-" (inc %) ".png")) frames))) + ([atlas file [w h] speed frames] + (animation speed (map #(atlas->texture atlas file %) frames))))