diff --git a/desktop/asset-work/pack.json b/desktop/asset-work/pack.json index b8370f92..74b3da71 100644 --- a/desktop/asset-work/pack.json +++ b/desktop/asset-work/pack.json @@ -13,12 +13,12 @@ square: false, stripWhitespaceX: false, stripWhitespaceY: false, - alphaThreshold: 0, + alphaThreshold: -1, filterMin: Nearest, filterMag: Nearest, wrapX: ClampToEdge, wrapY: ClampToEdge, - format: RGBA8888, + format: RGBA4444, alias: true, outputFormat: png, jpegQuality: 0.9, diff --git a/desktop/project.clj b/desktop/project.clj index f9108154..3fc88a16 100644 --- a/desktop/project.clj +++ b/desktop/project.clj @@ -1,6 +1,6 @@ -(def version (str "2.0." (clojure.string/trim-newline (slurp "last-release")))) +(def version (str "2.0." (clojure.string/trim-newline (slurp "last-release")) "-snapshot")) -(defproject advent version +(defproject advent "2.0.5-SNAPSHOT" :description "FIXME: write description" :manifest {"Implementation-Version" ~version} @@ -8,19 +8,23 @@ :dependencies [[com.badlogicgames.gdx/gdx "1.9.3"] [com.badlogicgames.gdx/gdx-backend-lwjgl "1.9.3"] [com.badlogicgames.gdx/gdx-platform "1.9.3" :classifier "natives-desktop"] - [org.clojure/clojure "1.8.0"] + [org.skummet/clojure "1.6.0"] + [org.clojars.notid/tools.logging "0.3.2-SNAPSHOT"] [play-clj "0.4.6-BRYCE"] [log4j/log4j "1.2.16"] [org.clojure/data.priority-map "0.0.5"] [org.clojure/core.async "0.2.385"] - [org.clojure/tools.logging "0.3.1"] + [org.clojure/core.async "0.1.346.0-17112a-alpha" :exclusions [org.clojure/clojure]] [org.im4java/im4java "1.4.0"]] + :plugins [[org.skummet/lein-skummet "0.2.2"]] + + :exclusions [[org.clojure/clojure]] :source-paths ["src" "src-common"] :javac-options ["-target" "1.7" "-source" "1.7" "-Xlint:-options"] :omit-source true :aliases {"pack" ["run" "-m" "com.badlogic.gdx.tools.texturepacker.TexturePacker" "asset-work/" "resources/packed/"] "pack-pop" ["run" "-m" "com.badlogic.gdx.tools.texturepacker.TexturePacker" - "/Users/brycecovert/Documents/POPPixelLogo_Pack/POPPixelLogo2_PNG/processed" "resources/packed-pop-logo/"] + "/Users/brycecovert/Downloads/processed" "resources/packed-pop-logo/"] "pack-font" ["run" "-m" "com.badlogic.gdx.tools.texturepacker.TexturePacker" "resources/font-pack/" "resources/font-pack/packed/"] "script" ["run" "-m" "advent.analyze/dump-speech"]} :profiles { @@ -47,7 +51,7 @@ :app-store { :source-paths ["src" "src-common" "src-dev"] :jvm-opts ["-Dapp-store=true" "-Dui_scale=1.0" "-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"]] @@ -64,6 +68,6 @@ :warn-on-reflection true} } - :aot [play-clj.entities advent.version advent.max-progress-bar advent.core.desktop-launcher] + :aot :all :main advent.core.desktop-launcher) diff --git a/desktop/resources/packed-pop-logo/pack.atlas b/desktop/resources/packed-pop-logo/pack.atlas index a9bbc970..3124dc25 100644 --- a/desktop/resources/packed-pop-logo/pack.atlas +++ b/desktop/resources/packed-pop-logo/pack.atlas @@ -1,7 +1,7 @@ pack.png size: 4096,4096 -format: RGBA8888 +format: RGBA4444 filter: Nearest,Nearest repeat: none POPPixelLogo_02_1 @@ -11,13 +11,6 @@ POPPixelLogo_02_1 orig: 320, 240 offset: 0, 0 index: -1 -POPPixelLogo_02_198 - rotate: false - xy: 2, 3632 - size: 320, 240 - orig: 320, 240 - offset: 0, 0 - index: -1 POPPixelLogo_02_5 rotate: false xy: 2, 3632 @@ -25,42 +18,7 @@ POPPixelLogo_02_5 orig: 320, 240 offset: 0, 0 index: -1 -POPPixelLogo_02_188 - rotate: false - xy: 2, 3632 - size: 320, 240 - orig: 320, 240 - offset: 0, 0 - index: -1 -POPPixelLogo_02_193 - rotate: false - xy: 2, 3632 - size: 320, 240 - orig: 320, 240 - offset: 0, 0 - index: -1 -POPPixelLogo_02_192 - rotate: false - xy: 2, 3632 - size: 320, 240 - orig: 320, 240 - offset: 0, 0 - index: -1 -POPPixelLogo_02_195 - rotate: false - xy: 2, 3632 - size: 320, 240 - orig: 320, 240 - offset: 0, 0 - index: -1 -POPPixelLogo_02_194 - rotate: false - xy: 2, 3632 - size: 320, 240 - orig: 320, 240 - offset: 0, 0 - index: -1 -POPPixelLogo_02_196 +POPPixelLogo_02_3 rotate: false xy: 2, 3632 size: 320, 240 @@ -74,7 +32,28 @@ POPPixelLogo_02_191 orig: 320, 240 offset: 0, 0 index: -1 -POPPixelLogo_02_2 +POPPixelLogo_02_195 + rotate: false + xy: 2, 3632 + size: 320, 240 + orig: 320, 240 + offset: 0, 0 + index: -1 +POPPixelLogo_02_193 + rotate: false + xy: 2, 3632 + size: 320, 240 + orig: 320, 240 + offset: 0, 0 + index: -1 +POPPixelLogo_02_188 + rotate: false + xy: 2, 3632 + size: 320, 240 + orig: 320, 240 + offset: 0, 0 + index: -1 +POPPixelLogo_02_192 rotate: false xy: 2, 3632 size: 320, 240 @@ -88,6 +67,34 @@ POPPixelLogo_02_199 orig: 320, 240 offset: 0, 0 index: -1 +POPPixelLogo_02_200 + rotate: false + xy: 2, 3632 + size: 320, 240 + orig: 320, 240 + offset: 0, 0 + index: -1 +POPPixelLogo_02_196 + rotate: false + xy: 2, 3632 + size: 320, 240 + orig: 320, 240 + offset: 0, 0 + index: -1 +POPPixelLogo_02_194 + rotate: false + xy: 2, 3632 + size: 320, 240 + orig: 320, 240 + offset: 0, 0 + index: -1 +POPPixelLogo_02_2 + rotate: false + xy: 2, 3632 + size: 320, 240 + orig: 320, 240 + offset: 0, 0 + index: -1 POPPixelLogo_02_189 rotate: false xy: 2, 3632 @@ -95,7 +102,7 @@ POPPixelLogo_02_189 orig: 320, 240 offset: 0, 0 index: -1 -POPPixelLogo_02_3 +POPPixelLogo_02_4 rotate: false xy: 2, 3632 size: 320, 240 @@ -109,14 +116,7 @@ POPPixelLogo_02_197 orig: 320, 240 offset: 0, 0 index: -1 -POPPixelLogo_02_200 - rotate: false - xy: 2, 3632 - size: 320, 240 - orig: 320, 240 - offset: 0, 0 - index: -1 -POPPixelLogo_02_4 +POPPixelLogo_02_198 rotate: false xy: 2, 3632 size: 320, 240 diff --git a/desktop/resources/packed/pack.atlas b/desktop/resources/packed/pack.atlas index 46df5834..9b94f99e 100644 --- a/desktop/resources/packed/pack.atlas +++ b/desktop/resources/packed/pack.atlas @@ -1,7 +1,7 @@ pack.png size: 2048,2048 -format: RGBA8888 +format: RGBA4444 filter: Nearest,Nearest repeat: none behindhouse/abc @@ -179,21 +179,14 @@ cat-tree/dot orig: 1, 1 offset: 0, 0 index: -1 -wizard/dot +inside-antique/dot rotate: false xy: 704, 916 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 -ego/dot - rotate: false - xy: 704, 916 - size: 1, 1 - orig: 1, 1 - offset: 0, 0 - index: -1 -title/dot +inside-jail/dot rotate: false xy: 704, 916 size: 1, 1 @@ -207,7 +200,14 @@ outsidehouse/dot orig: 1, 1 offset: 0, 0 index: -1 -inside-antique/dot +inside-house/dot + rotate: false + xy: 704, 916 + size: 1, 1 + orig: 1, 1 + offset: 0, 0 + index: -1 +title/dot rotate: false xy: 704, 916 size: 1, 1 @@ -221,14 +221,14 @@ dream/dot orig: 1, 1 offset: 0, 0 index: -1 -inside-house/dot +ego/dot rotate: false xy: 704, 916 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 -inside-jail/dot +wizard/dot rotate: false xy: 704, 916 size: 1, 1 @@ -1288,7 +1288,7 @@ wizard/talk pack2.png size: 2048,2048 -format: RGBA8888 +format: RGBA4444 filter: Nearest,Nearest repeat: none behindhouse/brush @@ -2134,7 +2134,7 @@ title/logo pack3.png size: 2048,2048 -format: RGBA8888 +format: RGBA4444 filter: Nearest,Nearest repeat: none behindhouse/fgleft diff --git a/desktop/src-common/advent/actions.clj b/desktop/src-common/advent/actions.clj index dfcf9c10..4d8d83e9 100644 --- a/desktop/src-common/advent/actions.clj +++ b/desktop/src-common/advent/actions.clj @@ -3,7 +3,7 @@ [play-clj.ui :refer :all] [play-clj.utils :refer :all] [play-clj.g2d :refer :all] - [clojure.pprint] + [clojure.string :as s] [clojure.zip :as zip] [clojure.set :as set] diff --git a/desktop/src-common/advent/core.clj b/desktop/src-common/advent/core.clj index 29a548e1..af75c7f7 100644 --- a/desktop/src-common/advent/core.clj +++ b/desktop/src-common/advent/core.clj @@ -14,7 +14,7 @@ [advent.screens.safe :as safe] [advent.screens.fade :as fade] [advent.steam :as steam] - [clojure.pprint] + [advent.pathfind]) (:import [com.badlogic.gdx.graphics Pixmap Pixmap$Filter Texture Texture$TextureFilter] [com.badlogic.gdx.graphics.g2d TextureRegion] @@ -22,19 +22,26 @@ [java.io FileOutputStream File PrintStream]) ) +(defn g [] + (log/info "ABC")) + +(defn a [] + (g)) + (defonce am (asset-manager)) (set-asset-manager! am) +(defn create-game [advent] + (log/log-capture! *ns* :warn :error) + (log/info "Starting game on version v" (advent.version/version)) + (utils/listen-for-screenshots) + + (set-screen! advent splash/splash-screen)) (defgame advent :on-create (fn [this] - (log/log-capture! *ns* :warn :error) - (log/info "Starting game on version v" (advent.version/version)) - (utils/listen-for-screenshots) - (steam/init) - - (set-screen! @(resolve 'advent.core/advent) splash/splash-screen))) + (create-game advent))) (defn reload [] (on-gl (set-screen! advent title/title-screen))) diff --git a/desktop/src-common/advent/pathfind.clj b/desktop/src-common/advent/pathfind.clj index d4af555f..c0f0e2bb 100644 --- a/desktop/src-common/advent/pathfind.clj +++ b/desktop/src-common/advent/pathfind.clj @@ -1,5 +1,7 @@ (ns advent.pathfind - (:require [play-clj.core :refer :all]) + (:require [play-clj.core :refer :all] + [play-clj.utils :refer :all] + [clojure.tools.logging :as log]) (:import (java.lang Math))) (def scale 2) @@ -120,18 +122,21 @@ (println path))) (defn map-from-resource [filename] + (log/info "Loading collision from" filename) (let [pm (pixmap filename) black (color 0 0 0 255) painful (color 255 0 0 255) result (transient []) scale (long scale) - height (long (pixmap! pm :get-height))] - (doseq [^long x (range (/ (pixmap! pm :get-width) scale)) - ^long y (range (/ height scale)) - :let [ - current-color (color (pixmap! pm :get-pixel (unchecked-multiply scale x) (unchecked-subtract height (unchecked-multiply scale y))))]] - (conj! result (cond - (color! current-color :equals black) 0 - (color! current-color :equals painful) 2 - :else 1))) - (partition (/ (pixmap! pm :get-height) scale) (persistent! result) ))) + height (long (pixmap! pm :get-height)) + _ (doseq [^long x (range (/ (pixmap! pm :get-width) scale)) + ^long y (range (/ height scale)) + :let [current-color (color (pixmap! pm :get-pixel (unchecked-multiply scale x) (unchecked-subtract height (unchecked-multiply scale y))))]] + (conj! result (cond + (color! current-color :equals black) 0 + (color! current-color :equals painful) 2 + :else 1))) + result (partition (/ (pixmap! pm :get-height) scale) (persistent! result) )] + (.unload *asset-manager* filename) + (log/info "Finished loading collision from" filename) + result)) diff --git a/desktop/src-common/advent/screens/credits.clj b/desktop/src-common/advent/screens/credits.clj index 1fa2e06d..54a376b1 100644 --- a/desktop/src-common/advent/screens/credits.clj +++ b/desktop/src-common/advent/screens/credits.clj @@ -3,7 +3,7 @@ [play-clj.ui :refer :all] [play-clj.utils :refer :all] [play-clj.g2d :refer :all] - [clojure.pprint] + [advent.pathfind] [advent.tween :as tween] [advent.zone :as zone] diff --git a/desktop/src-common/advent/screens/dialogue.clj b/desktop/src-common/advent/screens/dialogue.clj index 431d0221..1be578d1 100644 --- a/desktop/src-common/advent/screens/dialogue.clj +++ b/desktop/src-common/advent/screens/dialogue.clj @@ -3,13 +3,11 @@ [play-clj.ui :refer :all] [play-clj.utils :refer :all] [play-clj.g2d :refer :all] - [clojure.pprint] [clojure.set :as set] [advent.pathfind] [advent.tween :as tween] [advent.utils :as utils] - [clojure.core.async :refer [put! ! >!! chan go thread take! alts!!]] - #_[advent.screens.scene :as scene]) + [clojure.core.async :refer [put! ! >!! chan go thread take! alts!!]]) (:import [com.badlogic.gdx.graphics Pixmap Pixmap$Filter Texture Texture$TextureFilter] [com.badlogic.gdx.graphics.g2d TextureRegion] [com.badlogic.gdx.utils.viewport FitViewport] diff --git a/desktop/src-common/advent/screens/fade.clj b/desktop/src-common/advent/screens/fade.clj index ea5360cc..7c86eff6 100644 --- a/desktop/src-common/advent/screens/fade.clj +++ b/desktop/src-common/advent/screens/fade.clj @@ -3,7 +3,7 @@ [play-clj.ui :refer :all] [play-clj.utils :refer :all] [play-clj.g2d :refer :all] - [clojure.pprint] + [advent.pathfind] [advent.zone :as zone] [advent.utils :as utils]) diff --git a/desktop/src-common/advent/screens/inventory.clj b/desktop/src-common/advent/screens/inventory.clj index 6861ec4c..b322dfaf 100644 --- a/desktop/src-common/advent/screens/inventory.clj +++ b/desktop/src-common/advent/screens/inventory.clj @@ -4,7 +4,7 @@ [play-clj.utils :refer :all] [play-clj.g2d :refer :all] [clojure.tools.logging :as log] - [clojure.pprint] + [advent.pathfind] [advent.actions :as actions] [advent.zone :as zone] diff --git a/desktop/src-common/advent/screens/rooms.clj b/desktop/src-common/advent/screens/rooms.clj index b987ef73..15c00077 100644 --- a/desktop/src-common/advent/screens/rooms.clj +++ b/desktop/src-common/advent/screens/rooms.clj @@ -61,6 +61,7 @@ {:id id})) entities (into {} (for [[id entity] entities] [id (make-entity id entity)]))] + (println "MAKING") (merge params {:collision (advent.pathfind/map-from-resource collision) :interactions interactions-as-list :entities entities}))) diff --git a/desktop/src-common/advent/screens/rooms/cat_tree.clj b/desktop/src-common/advent/screens/rooms/cat_tree.clj index d04eeb01..e8bfc1b9 100644 --- a/desktop/src-common/advent/screens/rooms/cat_tree.clj +++ b/desktop/src-common/advent/screens/rooms/cat_tree.clj @@ -266,8 +266,8 @@ puke (particle-effect "particles/puke")] (rooms/make :music {:day :town-2 :night :night} :name "Tree" - :sounds {:cat (utils/load-sound "cat-tree/cat.ogg") - :kiss (utils/load-sound "cat-tree/kiss.ogg")} + :sounds {#_#_:cat (utils/load-sound "cat-tree/cat.ogg") + #_#_:kiss (utils/load-sound "cat-tree/kiss.ogg")} :ladder ladder-entity :blank (rooms/make-entity :blank {:object nil :x 0 :y 0 :width 320 :height 240 :baseline 240 diff --git a/desktop/src-common/advent/screens/rooms/inside_antique.clj b/desktop/src-common/advent/screens/rooms/inside_antique.clj index 75478d63..1be5b1bb 100644 --- a/desktop/src-common/advent/screens/rooms/inside_antique.clj +++ b/desktop/src-common/advent/screens/rooms/inside_antique.clj @@ -225,9 +225,9 @@ :shopkeep "My son would be stricken with grief to find it missing."))))] (rooms/make :music :inside-antique :name "Antique shop" - :sounds {:fire-1 (utils/load-sound "inside-antique/fire-1.ogg") - :fire-2 (utils/load-sound "inside-antique/fire-2.ogg") - :fire-3 (utils/load-sound "inside-antique/fire-3.ogg") + :sounds {#_#_:fire-1 (utils/load-sound "inside-antique/fire-1.ogg") + #_#_:fire-2 (utils/load-sound "inside-antique/fire-2.ogg") + #_#_:fire-3 (utils/load-sound "inside-antique/fire-3.ogg") } :return-portrait (rooms/make-entity :return-portrait {:box [103 70 206 116] :label "Desk" diff --git a/desktop/src-common/advent/screens/rooms/inside_castle.clj b/desktop/src-common/advent/screens/rooms/inside_castle.clj index 6f4b1b8f..87b98605 100644 --- a/desktop/src-common/advent/screens/rooms/inside_castle.clj +++ b/desktop/src-common/advent/screens/rooms/inside_castle.clj @@ -659,7 +659,7 @@ :talk game-player-talk-up} :get-to-work game-player-get-to-work :pause-from-work game-player-pause-from-work - :flex-sound (utils/load-sound "inside-castle/flex.ogg") + #_#_:flex-sound (utils/load-sound "inside-castle/flex.ogg") :anim-sound-frames {game-player-stand-up {11 [:blink 0.3 1.1] } game-player-talk-up {11 [:blink 0.3 1.1] 22 [:blink 0.3 1.1] diff --git a/desktop/src-common/advent/screens/rooms/inside_jail.clj b/desktop/src-common/advent/screens/rooms/inside_jail.clj index d5a76500..1f7060b6 100644 --- a/desktop/src-common/advent/screens/rooms/inside_jail.clj +++ b/desktop/src-common/advent/screens/rooms/inside_jail.clj @@ -232,8 +232,8 @@ (rooms/make :music :inside-antique :name "In jail" :sounds { - :squeek (utils/load-sound "inside-jail/squeak.ogg") - :crowbar-sound (utils/load-sound "ego/crowbar.ogg") + #_#_:squeek (utils/load-sound "inside-jail/squeak.ogg") + #_#_:crowbar-sound (utils/load-sound "ego/crowbar.ogg") } :interactions { :lock {:box [172 102 190 124] diff --git a/desktop/src-common/advent/screens/rooms/outside_house.clj b/desktop/src-common/advent/screens/rooms/outside_house.clj index 2b79c7a5..83fd6f63 100644 --- a/desktop/src-common/advent/screens/rooms/outside_house.clj +++ b/desktop/src-common/advent/screens/rooms/outside_house.clj @@ -626,7 +626,7 @@ (rooms/make :music {:day :town-2 :night :night} :name "Outside house" :update-fn jump-around - :cauldron-sound {:object nil :sound (utils/load-sound "outsidehouse/cauldron.ogg")} + #_#_:cauldron-sound {:object nil :sound (utils/load-sound "outsidehouse/cauldron.ogg")} :interactions {:door {:box [250 100 281 160] :only-script @@ -774,8 +774,8 @@ (actions/talk entities :ego "That's just cruel.")) nil) - :eat-sound (utils/load-sound "outsidehouse/sheep-eat.ogg") - :bleet-sound (utils/load-sound "outsidehouse/sheep-bleet.ogg") + #_#_:eat-sound (utils/load-sound "outsidehouse/sheep-eat.ogg") + #_#_:bleet-sound (utils/load-sound "outsidehouse/sheep-bleet.ogg") :anim-sound-frames {sheep-stand {11 [:eat-sound 0.3] 35 [:bleet-sound 0.5]}} :left {:walk (utils/flip sheep-walk) @@ -794,7 +794,7 @@ :door (assoc (animation->texture screen door) :x 252 :y 88 :baseline 122 :open door - :door-sound (utils/load-sound "door.ogg") + #_#_:door-sound (utils/load-sound "door.ogg") :anim-sound-frames {door {1 [:door-sound 0.1]}} ) :lamb (assoc (utils/get-texture "outsidehouse/lamb.png") diff --git a/desktop/src-common/advent/screens/rooms/space.clj b/desktop/src-common/advent/screens/rooms/space.clj index 49569cb8..fd3aaca3 100644 --- a/desktop/src-common/advent/screens/rooms/space.clj +++ b/desktop/src-common/advent/screens/rooms/space.clj @@ -196,10 +196,10 @@ grow-explode (particle-effect "particles/grow-explode")] (rooms/make :music :fight :name "Duel" - :sounds {:shock (utils/load-sound "space/shock.ogg") - :shock-short (utils/load-sound "space/shock-short.ogg") - :jump (utils/load-sound "space/jump.ogg") - :swing-sword (utils/load-sound "space/swingsword.ogg")} + :sounds {#_#_:shock (utils/load-sound "space/shock.ogg") + #_#_:shock-short (utilw/load-sound "space/shock-short.ogg") + #_#_:jump (utils/load-sound "space/jump.ogg") + #_#_:swing-sword (utils/load-sound "space/swingsword.ogg")} :interactions {} :layers [(assoc (utils/get-texture "space/background.png") :x 0 :y 0 :baseline 0)] @@ -235,9 +235,9 @@ :bloodclot (assoc (animation->texture screen blergh-stand-anim) :x 180 :y 50 :baseline 190 :stand blergh-stand-anim - :inhale-sound (utils/load-sound "space/bloodclot-inhale.ogg") - :exhale-sound (utils/load-sound "space/bloodclot-exhale.ogg") - :explode-sound (utils/load-sound "space/bloodclot-explode.ogg") + #_#_:inhale-sound (utils/load-sound "space/bloodclot-inhale.ogg") +#_#_ :exhale-sound (utils/load-sound "space/bloodclot-exhale.ogg") +#_#_ :explode-sound (utils/load-sound "space/bloodclot-explode.ogg") :anim-sound-frames {blergh-stand-anim {0 [:inhale-sound grunt-vol] 1 [:exhale-sound grunt-vol]} bloodclot-explode {35 [:grow-sound (constantly 0.5)] diff --git a/desktop/src-common/advent/screens/safe.clj b/desktop/src-common/advent/screens/safe.clj index 2245921a..fa0ee556 100644 --- a/desktop/src-common/advent/screens/safe.clj +++ b/desktop/src-common/advent/screens/safe.clj @@ -3,7 +3,7 @@ [play-clj.ui :refer :all] [play-clj.utils :refer :all] [play-clj.g2d :refer :all] - [clojure.pprint] + [advent.pathfind] [advent.zone :as zone] [advent.utils :as utils]) diff --git a/desktop/src-common/advent/screens/scene.clj b/desktop/src-common/advent/screens/scene.clj index a9c3a9fc..2313fdd6 100644 --- a/desktop/src-common/advent/screens/scene.clj +++ b/desktop/src-common/advent/screens/scene.clj @@ -7,7 +7,7 @@ [play-clj.entities :as entities] [play-clj.g2d :refer :all] [clojure.zip :as zip] - [clojure.pprint] + [clojure.java.io :as io] [clojure.tools.logging :as log] [advent.pathfind] @@ -41,7 +41,7 @@ [advent.screens.dialogue :refer [talking-screen toast-screen tooltip-screen]] [advent.screens.inventory :refer [inventory-screen]] - [clojure.core.async :refer [put! ! chan go thread take! alts!! poll! dropping-buffer]]) + [clojure.core.async :refer [put! ! chan go thread take! alts!! dropping-buffer]]) (:import [com.badlogic.gdx.graphics Pixmap$Format Pixmap Pixmap$Filter Texture Texture$TextureFilter GL20 GL30] [com.badlogic.gdx.graphics.g2d TextureRegion Animation Batch] [com.badlogic.gdx.math Vector3 Matrix4] @@ -53,8 +53,7 @@ [java.lang Object] [com.badlogic.gdx Gdx] [com.badlogic.gdx.graphics Camera Color GL20 OrthographicCamera - PerspectiveCamera Pixmap Pixmap$Format PixmapIO Texture - VertexAttributes$Usage] + PerspectiveCamera Pixmap Pixmap$Format PixmapIO Texture ] [com.badlogic.gdx.scenes.scene2d Actor Stage])) #_(set! *unchecked-math* :warn-on-boxed) @@ -655,28 +654,28 @@ :origin-x 9 :origin-y 0 :scaled true - :drop-sound (utils/load-sound "ego/drop.ogg") - :milk-sound (utils/load-sound "outsidehouse/milk.ogg") - :step-sound-1 (utils/load-sound "ego/step-1.ogg") - :step-sound-2 (utils/load-sound "ego/step-2.ogg") - :step-sound-3 (utils/load-sound "ego/step-3.ogg") - :step-sound-4 (utils/load-sound "ego/step-4.ogg") - :shoot-sound (utils/load-sound "ego/slingshot.ogg") - :glad-sound (utils/load-sound "ego/glad.ogg") + #_#_:drop-sound (utils/load-sound "ego/drop.ogg") + #_#_:milk-sound (utils/load-sound "outsidehouse/milk.ogg") + #_#_:step-sound-1 (utils/load-sound "ego/step-1.ogg") + #_#_:step-sound-2 (utils/load-sound "ego/step-2.ogg") + #_#_:step-sound-3 (utils/load-sound "ego/step-3.ogg") + #_#_:step-sound-4 (utils/load-sound "ego/step-4.ogg") + #_#_:shoot-sound (utils/load-sound "ego/slingshot.ogg") + #_#_:glad-sound (utils/load-sound "ego/glad.ogg") - :get-sick-sound (utils/load-sound "ego/get-sick.ogg") - :scratch-sound (utils/load-sound "ego/scratch.ogg") - :scared-step-sound (utils/load-sound "ego/scared-step.ogg") + #_#_:get-sick-sound (utils/load-sound "ego/get-sick.ogg") + #_#_:scratch-sound (utils/load-sound "ego/scratch.ogg") + #_#_:scared-step-sound (utils/load-sound "ego/scared-step.ogg") - :inside-step-sound-1 (utils/load-sound "ego/inside-step-1.ogg") - :inside-step-sound-2 (utils/load-sound "ego/inside-step-2.ogg") - :inside-step-sound-3 (utils/load-sound "ego/inside-step-3.ogg") - :inside-step-sound-4 (utils/load-sound "ego/inside-step-4.ogg") - :crowbar-sound (utils/load-sound "ego/crowbar.ogg") - :sigh-sound (utils/load-sound "ego/sigh.ogg") - :axe-sound (utils/load-sound "ego/axe.ogg") - :breakglass-sound (utils/load-sound "ego/breakglass.ogg") - :idea-sound (utils/load-sound "ego/idea.ogg") + #_#_:inside-step-sound-1 (utils/load-sound "ego/inside-step-1.ogg") + #_#_:inside-step-sound-2 (utils/load-sound "ego/inside-step-2.ogg") + #_#_:inside-step-sound-3 (utils/load-sound "ego/inside-step-3.ogg") + #_#_:inside-step-sound-4 (utils/load-sound "ego/inside-step-4.ogg") + #_#_:crowbar-sound (utils/load-sound "ego/crowbar.ogg") + #_#_:sigh-sound (utils/load-sound "ego/sigh.ogg") + #_#_:axe-sound (utils/load-sound "ego/axe.ogg") + #_#_:breakglass-sound (utils/load-sound "ego/breakglass.ogg") + #_#_:idea-sound (utils/load-sound "ego/idea.ogg") :scale-x start-scale :scale-y start-scale :talk-color (color 0.6 1.0 1.0 1.0) @@ -774,7 +773,7 @@ (let [{{:keys [script-running? script-chan]} key} entities] (if script-running? entities - (let [next-script (poll! script-chan)] + (let [next-script ( entities (assoc-in [key :started?] false) @@ -1089,6 +1088,7 @@ has-start-pos? (:x state) _ (update! screen :shader shader) + log-assets (fn [r] r) rooms {:inside-house (rooms.inside-house/make screen) :inside-stash (rooms.inside-stash/make screen) :outside-house (rooms.outside-house/make screen) @@ -1123,14 +1123,14 @@ :inside-antique (utils/make-music "music/inside-antique.ogg") :town-1 (utils/make-music "music/town-music-1.ogg") :town-2 (utils/make-music "music/town-music-2.ogg") - :love (utils/make-music "music/love.ogg") - :inside-fangald (utils/make-music "music/inside-fangald.ogg") - :fight (utils/make-music "music/megaboss.mp3") - :pull-sword (utils/make-music "music/pull-sword.ogg") - :night (utils/make-music "music/night.ogg") - :dream (utils/make-music "dream/music.ogg") - :secret-hideout (utils/make-music "music/secret-hideout.ogg") - :wind (utils/make-music "music/wind.ogg")} + #_#_:love (utils/make-music "music/love.ogg") + #_#_:inside-fangald (utils/make-music "music/inside-fangald.ogg") + #_#_:fight (utils/make-music "music/megaboss.mp3") + #_#_:pull-sword (utils/make-music "music/pull-sword.ogg") + #_#_:night (utils/make-music "music/night.ogg") + #_#_:dream (utils/make-music "dream/music.ogg") + #_#_:secret-hideout (utils/make-music "music/secret-hideout.ogg") + #_#_:wind (utils/make-music "music/wind.ogg")} :state state :time-profiles {:object nil :default utils/default-night-merge @@ -1139,10 +1139,10 @@ :closing? {:object nil :value false} - :sounds {:blink (utils/load-sound "ego/blink2.ogg") - :pickup (utils/load-sound "pickup.ogg") - :disappear (utils/load-sound "inside-house/disappear.ogg") - :grow-sound (utils/load-sound "ego/potion.ogg") + :sounds {#_#_:blink (utils/load-sound "ego/blink2.ogg") + #_#_:pickup (utils/load-sound "pickup.ogg") + #_#_:disappear (utils/load-sound "inside-house/disappear.ogg") + #_#_:grow-sound (utils/load-sound "ego/potion.ogg") :object nil} :fade {:object nil :opacity 0.0} @@ -1189,6 +1189,8 @@ (if has-start-pos? start-pos (:start-pos room))))))}] + (log/info "assets so far", (.getDiagnostics *asset-manager*) ) + (doseq [[k [start time fn]] (get-in entities [:room :timers])] (add-timer! screen k start time)) @@ -1268,7 +1270,7 @@ :on-render (fn [{: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) + #_(steam/update) (.apply viewport) (if (get-in entities [:closing? :value]) diff --git a/desktop/src-common/advent/screens/splash.clj b/desktop/src-common/advent/screens/splash.clj index fe698d03..3cd03966 100644 --- a/desktop/src-common/advent/screens/splash.clj +++ b/desktop/src-common/advent/screens/splash.clj @@ -87,6 +87,10 @@ {:can-skip false :do (fn [screen entities] (utils/stop-music (:pop-music entities)) + + (log/info "clearing assets" (into [] (.getAssetNames *asset-manager*)) (.getDiagnostics *asset-manager*)) + (.clear *asset-manager* ) + (log/info "cleared assets" (into [] (.getAssetNames *asset-manager*)) (.getDiagnostics *asset-manager*)) (set-screen! @(resolve 'advent.core/advent) title/title-screen) entities) :duration 0.0}]) @@ -102,7 +106,7 @@ (graphics! :set-cursor (utils/cursor "cursor.png" :hourglass)) (let [screen (assoc screen :total-time 0) - pop-anim (make-anim-seq "POPPixelLogo_02" [320 240] 0.05 (range 200)) + #_#_pop-anim (make-anim-seq "POPPixelLogo_02" [320 240] 0.05 (range 200)) entities {:background (assoc (utils/get-texture "black.png") :scale-x 80 :scale-y 80 @@ -110,8 +114,7 @@ :origin-x 0 :origin-y 0 :z 0) - :pop-logo (assoc (animation->texture screen pop-anim) - :main-anim pop-anim + :pop-logo (assoc (utils/get-texture "black.png") :x 0 :y 0 :origin-x 0 :origin-y 0 :scale-x 4 :scale-y 4 @@ -126,11 +129,11 @@ :on-render (fn [{:keys [^FitViewport viewport] :as screen} entities options] - (steam/update) + #_(steam/update) (.apply viewport) (clear!) (let [entities (utils/apply-tweens screen entities (:tweens entities)) - entities (update-in entities [:pop-logo] animate screen) + #_#_entities (update-in entities [:pop-logo] animate screen) entities (if (and (:queued-skip? entities) (get-in entities [:current-step :can-skip])) (assoc entities :queued-skip? false :current-step nil) entities) diff --git a/desktop/src-common/advent/screens/title.clj b/desktop/src-common/advent/screens/title.clj index 0adca784..51af5fca 100644 --- a/desktop/src-common/advent/screens/title.clj +++ b/desktop/src-common/advent/screens/title.clj @@ -445,7 +445,7 @@ :on-render (fn [{:keys [^FitViewport viewport] :as screen} entities options] - (steam/update) + #_(steam/update) (.apply viewport) (clear!) (let [entities (utils/apply-tweens screen entities (:tweens entities)) diff --git a/desktop/src-common/advent/steam.clj b/desktop/src-common/advent/steam.clj index c2d6d21c..a29a4da0 100644 --- a/desktop/src-common/advent/steam.clj +++ b/desktop/src-common/advent/steam.clj @@ -1,151 +1,56 @@ (ns advent.steam - (:require [play-clj.core :refer :all] - [clojure.edn :as edn] - [clojure.tools.logging :as log] - ) - (:import [java.nio ByteBuffer CharBuffer] - [java.io ByteArrayOutputStream] - [com.badlogic.gdx.graphics Pixmap PixmapIO$PNG] - [com.badlogic.gdx.files FileHandle] - )) + (:require [play-clj.core :refer :all]) + (:import [com.badlogic.gdx.graphics Pixmap PixmapIO$PNG] + [com.badlogic.gdx.files FileHandle])) (def has-steam? - (try - (import '[com.codedisaster.steamworks SteamUserStats SteamUserStatsCallback SteamAPI SteamRemoteStorage]) - true - (catch Exception e - false))) - -(def is-app-store? (System/getProperty "app-store")) - -(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) - (log/info "Steam initialized") - (do - (log/info "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)] - (log/info "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] - (log/info "Setting achievement" achievement) - (.setAchievement stats achievement) - (.storeStats stats) - (log/info "Done setting 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]))) + false + ) +(def is-app-store? false) (def all-achievements ["PARDON" "EX_CON" "PRO_WRESTLER" "SHEEP_HORDER" "SAFE_AND_SOUND" "DESTINY" "WISE_UP" "BLOODCLOT" "KITTY_KISS"]) +(defn clear-achievement []) + +(defn set-achievement [x]) + (defn clear-all-achievements [] (doall (map clear-achievement all-achievements))) (defn get-bytes [filename] - (steamify - (let [rs (SteamRemoteStorage. nil) - 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))))) + (.readBytes (if is-app-store? + (files! :external filename) + (files! :local filename)))) (defn write-bytes [filename bytes] - (steamify - (let [rs (SteamRemoteStorage. nil) - bb (ByteBuffer/allocateDirect (* 2 (count bytes)))] - (-> 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)))) + (let [f (if is-app-store? + (files! :external filename) + (files! :local filename))] + (.writeBytes f bytes false))) (defn list-edn-files [] - (steamify - (let [rs (SteamRemoteStorage. nil)] - (for [i (range (.getFileCount rs)) - :let [n (.getFileNameAndSize rs i (make-array Integer/TYPE 1))] - :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)))))) + (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] - (steamify - (let [rs (SteamRemoteStorage. nil) - png (PixmapIO$PNG. (* (.getWidth pm) (.getHeight pm) 1.5)) - baos (ByteArrayOutputStream. (* (.getWidth pm) (.getHeight pm) 1.5)) - _ (.write png baos pm) - bytes (.toByteArray baos) - 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))] - (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)))) + (.write png f pm) + (.dispose png))) (defn delete-file [filename] - (steamify - (.fileDelete (SteamRemoteStorage. nil) filename) - (.delete (if is-app-store? - (files! :external filename) - (files! :local filename))))) + (.delete (if is-app-store? + (files! :external filename) + (files! :local filename)))) (defn save-screenshot-file-name [name] - (steamify - (str "screenshot-" (clojure.core/name name) ".png" ) - (str "saves/screenshot-" (clojure.core/name name) ".png" ))) + (str "saves/screenshot-" (clojure.core/name name) ".png" )) (defn save-file-name [id] - (steamify - (str id ".edn") - (str "saves/" id ".edn"))) + (str "saves/" id ".edn")) diff --git a/desktop/src-common/advent/utils.clj b/desktop/src-common/advent/utils.clj index 3f2eb9dd..3bc9351f 100644 --- a/desktop/src-common/advent/utils.clj +++ b/desktop/src-common/advent/utils.clj @@ -1,5 +1,5 @@ (ns advent.utils - (:refer-clojure :exclude [load]) + (:require [play-clj.core :refer :all] [play-clj.ui :refer :all] [play-clj.utils :refer :all] @@ -12,7 +12,7 @@ [clojure.string :as str] [advent.saves :as saves] [advent.steam :as steam] - [clojure.core.async :refer [put! ! chan go go-loop thread take! alts!! poll! dropping-buffer]]) + [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.utils.viewport FitViewport] @@ -427,7 +427,8 @@ (doto (music (str r ".mp3")) (music! :set-looping true))))) (defn load-sound [f] - (try + nil + #_(try (iosify (sound (str f ".mp3")) (sound f) @@ -674,23 +675,29 @@ (play-sound! screen entities snd volume-fn pan type 1.0)) ([screen entities snd volume-fn pan type pitch] + (if (if (keyword? snd) + (or (-> entities :room :sounds snd) + (-> entities :sounds snd)) + snd) (let [vol (volume-fn entities) snd (if (keyword? snd) (or (-> entities :room :sounds snd) (-> entities :sounds snd)) snd) + sound-id (if (= :once type) (sound! snd :play (scale-vol-from-fade entities (current-sound-volume vol)) (or pitch 1.0) pan ) (sound! snd :loop 0.0 (or pitch 1.0) pan )) ] (update-in entities [:current-sounds :value] conj {:id sound-id - :sound snd + :sound snd :volume-fn volume-fn :type type :ends-at (if (= type :once) (+ (:total-time screen) 1.0 #_(sound! snd :duration)) - nil)})))) + nil)})) + entities))) (defn stop-all-sounds! [entities] (doseq [snd (get-in entities [:current-sounds :value])] diff --git a/desktop/src-dev/advent/analyze.clj b/desktop/src-dev/advent/analyze.clj index 817be8c7..d754778d 100644 --- a/desktop/src-dev/advent/analyze.clj +++ b/desktop/src-dev/advent/analyze.clj @@ -1,7 +1,7 @@ (ns advent.analyze (:require [slam.hound.asplode :as a] [clojure.java.io :as io] - [clojure.pprint :as pprint] + [clojure.data.csv :as csv] )) diff --git a/ios/project.clj b/ios/project.clj index 78cd52b1..214d9f68 100644 --- a/ios/project.clj +++ b/ios/project.clj @@ -2,19 +2,22 @@ :description "FIXME: write description" :dependencies [[com.badlogicgames.gdx/gdx "1.9.4"] [com.badlogicgames.gdx/gdx-backend-robovm "1.9.4"] - [org.clojure/data.priority-map "0.0.5"] - [org.clojure/core.async "0.2.385"] + #_[org.clojure/core.async "0.2.385"] + [org.clojure/core.async "0.1.346.0-17112a-alpha" :exclusions [org.clojure/clojure]] [org.clojars.notid/tools.logging "0.3.2-SNAPSHOT"] [log4j/log4j "1.2.16"] - [org.clojure/clojure "1.8.0"] + [org.skummet/clojure "1.7.0-r2"] [com.mobidevelop.robovm/robovm-cocoatouch "2.3.0"] [com.mobidevelop.robovm/robovm-rt "2.3.0"] - [play-clj "0.4.6-BRYCE"]] + [play-clj "0.4.6-BRYCE" :exclusions [com.badlogicgames.gdx/gdx-box2d com.badlogicgames.gdx/gdx-bullet]]] + :exclusions [[org.clojure/clojure]] :source-paths ["src/clojure" "../desktop/src-common"] :java-source-paths ["src/java"] - :plugins [[lein-fruit "0.2.4-SNAPSHOT"]] + :plugins [[lein-fruit "0.2.4-SNAPSHOT"] + [org.skummet/lein-skummet "0.2.2"] + ] :javac-options ["-target" "1.7" "-source" "1.7" "-Xlint:-options"] - :jvm-opts ["-Dno-steam=true"] + :jvm-opts ["-Dno-steam=true" "-Dclojure.compiler.direct-linking=true" ] :ios {:robovm-opts ["-config" "robovm.xml"] :robovm-path "/Users/brycecovert/.robovm-sdks/robovm-2.2.1-SNAPSHOT" :version 2.1} diff --git a/ios/robovm.xml b/ios/robovm.xml index 16ed77f5..edc20777 100644 --- a/ios/robovm.xml +++ b/ios/robovm.xml @@ -25,10 +25,17 @@ + clojure.tools.logging.** advent.** - clojure.** - com.badlogic.** + clojure.core* + clojure.** + clojure.core.** + clojure.tools.** + clojure.data.** + clojure.java.io* play_clj.** + clojure.* + com.badlogic.** java.util.logging.** diff --git a/ios/src/java/advent/core/IOSLauncher.java b/ios/src/java/advent/core/IOSLauncher.java index bba0f756..9a440553 100644 --- a/ios/src/java/advent/core/IOSLauncher.java +++ b/ios/src/java/advent/core/IOSLauncher.java @@ -7,7 +7,7 @@ import com.badlogic.gdx.*; import com.badlogic.gdx.backends.iosrobovm.*; import org.robovm.apple.foundation.*; -import org.robovm.apple.uikit.*; +import org.robovm.apple.uikit.UIApplication; import org.robovm.apple.glkit.GLKViewDrawableColorFormat; import org.robovm.apple.glkit.GLKViewDrawableDepthFormat; diff --git a/ios/src/java/advent/core/Saver.java b/ios/src/java/advent/core/Saver.java deleted file mode 100644 index c906a28f..00000000 --- a/ios/src/java/advent/core/Saver.java +++ /dev/null @@ -1,39 +0,0 @@ -package advent.core; - -import org.robovm.apple.uikit.*; -import org.robovm.apple.coregraphics.*; -import org.robovm.apple.foundation.*; -import com.badlogic.gdx.*; -import com.badlogic.gdx.graphics.*; -import com.badlogic.gdx.backends.iosrobovm.*; - -public class Saver { - - public static Pixmap flipPixmap(Pixmap src) { - final int width = src.getWidth(); - final int height = src.getHeight(); - Pixmap flipped = new Pixmap(width, height, src.getFormat()); - - for (int x = 0; x < width; x++) { - for (int y = 0; y < height; y++) { - flipped.drawPixel(x, y, src.getPixel(x, height - y -1)); - } - } - return flipped; - } - - public static UIImage takeScreenshot(){ - - UIImage newImage; - //((IOSApplication) Gdx.app).getUIViewController().getView().setTransform(CGAffineTransform.createScale(1, -1)); - UIView view = ((IOSApplication) Gdx.app).getUIViewController().getView(); - UIGraphics.beginImageContext(new CGSize(view.getFrame().getWidth(), view.getFrame().getHeight()), true, 0.0); - view.drawViewHierarchy( - new CGRect(0, 0, view.getFrame().getWidth(), view.getFrame().getHeight()), true); - newImage = UIGraphics.getImageFromCurrentImageContext(); - UIGraphics.endImageContext(); - //((IOSApplication) Gdx.app).getUIViewController().getView().setTransform(CGAffineTransform.createScale(1, 1)); - return newImage; - - } -}