totally different save format
This commit is contained in:
@@ -1296,7 +1296,7 @@ void main ()
|
|||||||
(let [date (.format (java.text.SimpleDateFormat. "MM/dd/YY") (java.util.Date.))
|
(let [date (.format (java.text.SimpleDateFormat. "MM/dd/YY") (java.util.Date.))
|
||||||
save-name (str (-> entities :room :name) " - " date)]
|
save-name (str (-> entities :room :name) " - " date)]
|
||||||
(utils/save entities
|
(utils/save entities
|
||||||
(str (java.util.UUID/randomUUID))
|
(str (.getTime (java.util.Date.)))
|
||||||
save-name
|
save-name
|
||||||
date)
|
date)
|
||||||
(screen! toast-screen :on-toast :message (str "Saved \"" save-name "\"")))))
|
(screen! toast-screen :on-toast :message (str "Saved \"" save-name "\"")))))
|
||||||
|
|||||||
@@ -14,7 +14,6 @@
|
|||||||
[com.badlogic.gdx.graphics.g2d TextureRegion Animation]
|
[com.badlogic.gdx.graphics.g2d TextureRegion Animation]
|
||||||
[com.badlogic.gdx.utils.viewport FitViewport]
|
[com.badlogic.gdx.utils.viewport FitViewport]
|
||||||
[com.badlogic.gdx.utils ScreenUtils]
|
[com.badlogic.gdx.utils ScreenUtils]
|
||||||
[com.badlogic.gdx.files FileHandle]
|
|
||||||
[com.badlogic.gdx.graphics PixmapIO$PNG]
|
[com.badlogic.gdx.graphics PixmapIO$PNG]
|
||||||
[com.badlogic.gdx.scenes.scene2d Actor Stage]
|
[com.badlogic.gdx.scenes.scene2d Actor Stage]
|
||||||
[com.badlogic.gdx.math CatmullRomSpline]
|
[com.badlogic.gdx.math CatmullRomSpline]
|
||||||
@@ -66,15 +65,17 @@
|
|||||||
(str "screenshot-" (clojure.core/name name) ".png" ))
|
(str "screenshot-" (clojure.core/name name) ".png" ))
|
||||||
|
|
||||||
(defn snapshot-list []
|
(defn snapshot-list []
|
||||||
(let [prefs (.getPreferences (Gdx/app) "ticks-tales-saves")]
|
(sort-by (fn [s]
|
||||||
(if (.contains prefs "saves")
|
(if (= "Autosave" (:name s))
|
||||||
(edn/read-string (.getString prefs "saves"))
|
(Long/MIN_VALUE)
|
||||||
[])))
|
(- (Long/parseLong (:id s)))))
|
||||||
|
(for [save-file (.list (files! :local ".") ".edn")]
|
||||||
|
(edn/read-string (.readString save-file)))))
|
||||||
|
|
||||||
(defn snapshot-screenshots []
|
(defn snapshot-screenshots []
|
||||||
(for [snapshot (snapshot-list)]
|
(for [snapshot (snapshot-list)]
|
||||||
(update-in snapshot [:screenshot]
|
(update-in snapshot [:screenshot]
|
||||||
#(try (Pixmap. (FileHandle. %) )
|
#(try (Pixmap. (files! :local %) )
|
||||||
(catch Exception e
|
(catch Exception e
|
||||||
(Pixmap. 160 120 Pixmap$Format/RGB888))))))
|
(Pixmap. 160 120 Pixmap$Format/RGB888))))))
|
||||||
|
|
||||||
@@ -95,22 +96,23 @@
|
|||||||
(edn/read-string (.getString prefs "chapters"))
|
(edn/read-string (.getString prefs "chapters"))
|
||||||
saves/chapters)))
|
saves/chapters)))
|
||||||
|
|
||||||
|
(defn write-file [filename edn]
|
||||||
|
(let [f (files! :local filename)]
|
||||||
|
(.writeString f (pr-str edn) false)))
|
||||||
|
|
||||||
|
(defn save-file-name [id]
|
||||||
|
(str id ".edn"))
|
||||||
|
|
||||||
(defn save [entities id name & [blurb]]
|
(defn save [entities id name & [blurb]]
|
||||||
(let [prefs (.getPreferences (Gdx/app) "ticks-tales-saves")
|
(let [save {:name name
|
||||||
saves (if (.contains prefs "saves")
|
:id id
|
||||||
(edn/read-string (.getString prefs "saves"))
|
:screenshot (save-screenshot-file-name id)
|
||||||
[])
|
:state (assoc (entities :state)
|
||||||
saves (cons {:name name
|
:x (get-in entities [:room :entities :ego :x])
|
||||||
:id id
|
:y (get-in entities [:room :entities :ego :y]))
|
||||||
:screenshot (save-screenshot-file-name id)
|
:blurb (or blurb name)}]
|
||||||
:state (assoc (entities :state)
|
(write-file (save-file-name id) save)
|
||||||
:x (get-in entities [:room :entities :ego :x])
|
(on-gl (let [f (files! :local (save-screenshot-file-name id))
|
||||||
:y (get-in entities [:room :entities :ego :y]))
|
|
||||||
:blurb (or blurb name)}
|
|
||||||
(filter (comp (complement #{id}) :id) saves))]
|
|
||||||
(.putString prefs "saves" (pr-str saves))
|
|
||||||
(.flush prefs)
|
|
||||||
(on-gl (let [f (FileHandle. (save-screenshot-file-name id))
|
|
||||||
_ (Pixmap/setFilter Pixmap$Filter/BiLinear)
|
_ (Pixmap/setFilter Pixmap$Filter/BiLinear)
|
||||||
viewport (-> @ (resolve 'advent.screens.scene/scene) :screen deref :viewport)
|
viewport (-> @ (resolve 'advent.screens.scene/scene) :screen deref :viewport)
|
||||||
[x y w h g-l g-r] [(.getScreenX viewport) (.getScreenY viewport) (.getScreenWidth viewport) (.getScreenHeight viewport)]
|
[x y w h g-l g-r] [(.getScreenX viewport) (.getScreenY viewport) (.getScreenWidth viewport) (.getScreenHeight viewport)]
|
||||||
@@ -122,15 +124,9 @@
|
|||||||
(.dispose png)))))
|
(.dispose png)))))
|
||||||
|
|
||||||
(defn remove-save [id]
|
(defn remove-save [id]
|
||||||
(let [prefs (.getPreferences (Gdx/app) "ticks-tales-saves")
|
(on-gl (doseq [f [(files! :local (save-screenshot-file-name id))
|
||||||
saves (if (.contains prefs "saves")
|
(files! :local (save-file-name id))]]
|
||||||
(edn/read-string (.getString prefs "saves"))
|
(.delete f))))
|
||||||
[])
|
|
||||||
saves (filter (comp (complement #{id}) :id) saves)]
|
|
||||||
(.putString prefs "saves" (pr-str saves))
|
|
||||||
(.flush prefs)
|
|
||||||
(on-gl (let [f (FileHandle. (save-screenshot-file-name id))]
|
|
||||||
(.delete f)))))
|
|
||||||
|
|
||||||
(defn save-settings! []
|
(defn save-settings! []
|
||||||
(doto (.getPreferences (Gdx/app) "ticks-tales-saves")
|
(doto (.getPreferences (Gdx/app) "ticks-tales-saves")
|
||||||
|
|||||||
Reference in New Issue
Block a user