save images.
This commit is contained in:
@@ -140,7 +140,7 @@
|
||||
(stack-y 305 0)
|
||||
(assoc :z 8
|
||||
:interactable true))
|
||||
:rewind (-> (make-label "Previous chapter" (when is-starting? (color :white)))
|
||||
:rewind (-> (make-label "Previous chapter" (when is-starting? (color :gray)))
|
||||
(stack-y 305 1)
|
||||
(assoc :z 8
|
||||
:interactable (not is-starting?)))
|
||||
@@ -174,18 +174,27 @@
|
||||
(every-pred :save #(utils/intersects? % [x y]))
|
||||
(vals entities))))
|
||||
|
||||
(defn saves-menu []
|
||||
(into {:back (-> (make-label "Back")
|
||||
(stack-y 305 7)
|
||||
(assoc :z 8
|
||||
:interactable true))}
|
||||
(for [[name index] (map #(vector %1 %2)
|
||||
(utils/snapshot-list) (range))]
|
||||
[name (-> (make-label name)
|
||||
(stack-y 305 index)
|
||||
(assoc :z 8
|
||||
:interactable true
|
||||
:save (saves/name->save name)))])))
|
||||
(defn saves-menu [entities [save screenshot]]
|
||||
(let [last? (= save (-> (:saves-list entities) last first))
|
||||
first? (= save (-> (:saves-list entities) first first))]
|
||||
{:back (-> (make-label "Back")
|
||||
(stack-y 305 7)
|
||||
(assoc :z 8 :interactable true))
|
||||
:title (-> (make-label (str save))
|
||||
(stack-y 305 0)
|
||||
(assoc :z 8
|
||||
:interactable true
|
||||
:save (saves/name->save save)))
|
||||
:screenshot (-> (texture screenshot)
|
||||
(assoc :z 8 :x (/ 1280 2) :y (- 305 5) :origin-y 180 :origin-x 120 :height 180 :width 240
|
||||
:save (saves/name->save save)))
|
||||
|
||||
:next (-> (make-label "Next >" (when last? (color :gray)))
|
||||
(assoc :x 780 :y 203
|
||||
:interactable (not last?)))
|
||||
:prev (as-> (make-label "< Prev" (when first? (color :gray))) prev
|
||||
(assoc prev :x (- 500 (.getWidth (:object prev))) :y 203
|
||||
:interactable (not first?)))}))
|
||||
|
||||
(defn style-ui [entities]
|
||||
(doseq [entity (vals entities)
|
||||
@@ -250,7 +259,8 @@
|
||||
:z 7)
|
||||
center)
|
||||
:main-menu (main-menu)
|
||||
:saves-menu (saves-menu)
|
||||
:saves-list (utils/snapshot-screenshots)
|
||||
:save-index 0
|
||||
:font font
|
||||
:music music
|
||||
:volume 1.0
|
||||
@@ -310,7 +320,7 @@
|
||||
(utils/save-settings!)
|
||||
entities)
|
||||
|
||||
:on-touch-up (fn [screen [entities]]
|
||||
:on-touch-up (fn [screen [{:keys [prev next saves-list save-index] :as entities}]]
|
||||
(when-not (get-in entities [:tweens :fade-out])
|
||||
(let [[x y] (utils/unproject screen)
|
||||
selected-save (get-selected-save entities [x y])]
|
||||
@@ -324,7 +334,7 @@
|
||||
(and (utils/intersects? (:rewind entities) [x y])
|
||||
(-> entities :rewind :interactable))
|
||||
(-> (apply dissoc entities (keys (:main-menu entities)))
|
||||
(merge (:saves-menu entities)))
|
||||
(merge (saves-menu entities (nth saves-list save-index))))
|
||||
|
||||
(utils/intersects? (:quit entities) [x y])
|
||||
(quit screen entities)
|
||||
@@ -333,8 +343,18 @@
|
||||
(utils/toggle-fullscreen!)
|
||||
|
||||
(and (:back entities) (utils/intersects? (:back entities) [x y]))
|
||||
(-> (apply dissoc entities (keys (:saves-menu entities)))
|
||||
(-> entities (dissoc :screenshot :back :title :prev :next)
|
||||
(merge (:main-menu entities)))
|
||||
|
||||
(and next (:interactable next) (utils/intersects? next [x y]))
|
||||
(-> entities
|
||||
(update-in [:save-index] inc)
|
||||
(merge (saves-menu entities (nth saves-list (inc save-index)))))
|
||||
|
||||
(and prev (:interactable prev) (utils/intersects? prev [x y]))
|
||||
(-> entities
|
||||
(update-in [:save-index] dec)
|
||||
(merge (saves-menu entities (nth saves-list (dec save-index)))))
|
||||
|
||||
selected-save
|
||||
(start-playing screen entities (:save selected-save))
|
||||
|
||||
Reference in New Issue
Block a user