save menu confirms for delete.

This commit is contained in:
Bryce Covert
2015-11-10 09:20:50 -08:00
parent 16b59813de
commit a1979e1c23

View File

@@ -16,7 +16,7 @@
[advent.screens.fade :as fade]
[advent.version]
)
(:import [com.badlogic.gdx.graphics Pixmap Pixmap$Filter Texture Texture$TextureFilter]
(:import [com.badlogic.gdx.graphics Pixmap Pixmap$Filter Texture Texture$TextureFilter Color]
[com.badlogic.gdx.graphics.g2d TextureRegion]
[com.badlogic.gdx.utils.viewport FitViewport]
[com.badlogic.gdx.scenes.scene2d.ui Slider$SliderStyle Widget ButtonGroup]
@@ -29,7 +29,11 @@
(defn get-color [e mouse-pos]
(if (utils/intersects? e mouse-pos)
(color :yellow)
(color 1.0 0.3 0.3 1.0)))
(color 0.242 0.105 0.355 1.0)))
(def button-color (Color/valueOf "9b399eff"))
(def label-color (color 0.81 0.5 0.0 1.0))
(defn style-label [e font mouse-pos]
(when (:interactable e)
@@ -123,9 +127,9 @@
(defn button-style []
(let [font (utils/get-font "ego/font.fnt")
style (style :text-button nil nil nil font)]
(set! (.fontColor style) (color 1.0 0.3 0.3 1.0))
(set! (.fontColor style) button-color)
(set! (.overFontColor style) (color :yellow))
(set! (.downFontColor style) (color 0.7 0.2 0.2 1.0))
(set! (.downFontColor style) (Color/valueOf "49224aff"))
(set! (.disabledFontColor style) (color :gray))
style))
@@ -190,11 +194,11 @@
(filter identity)
seq)))) :height 32]
:row
[(make-label "Music" (color :white)) :height 32]
[(make-label "Music" label-color) :height 32]
:row
[(make-slider (:music-volume @utils/settings) :key :music-volume-slider) :height 32 :width 305]
:row
[(make-label "FX" (color :white)) :height 32]
[(make-label "FX" label-color) :height 32]
:row
[(make-slider (:sound-volume @utils/settings) :key :sound-volume-slider) :height 32 :width 305]
:row
@@ -244,7 +248,7 @@
(.setOrigin (/ (- cell-w 16) 2) (/ (- cell-h 16) 2))
(.addActor (:object (doto (image (texture screenshot))
(image! :set-size (- cell-w 16) (- cell-h 16)))))
(.addActor (:object (make-label (str " " (or blurb name)))))
(.addActor (:object (make-label (str " " (or blurb name)) label-color )))
))
@@ -263,7 +267,7 @@
:colspan 3 :height 224 :width 476]))
(defn saves-menu [entities stage]
(let [save-label (make-label "")
(let [save-label (make-label "" label-color)
continue-button (doto (make-button "Continue" :key :continue)
(text-button! :set-disabled true))
delete-button (doto (make-button "Delete" :key :delete)
@@ -279,6 +283,15 @@
:delete-button delete-button
:continue-button continue-button)))
(defn confirm-delete [entities]
(make-table [[(make-label "Are you sure you want" label-color) :height 32 :colspan 2]
:row
[(make-label "to delete the save" label-color) :height 32 :colspan 2]
:row
[(make-label (str "\"" (-> entities :selected-save :name) "\"?") label-color) :height 32 :colspan 2]
:row
[(make-button "Keep" :key :dont-delete-button) :width 100]
[(make-button "Delete" :key :confirm-delete-button) :width 100]]))
(defscreen title-screen
:on-show
@@ -337,7 +350,7 @@
:font font
:music music
:volume 1.0
:copyright (make-label (str "DEMO - Copyright Bryce Covert - Not for distribution - version " (advent.version/version)))
:copyright (make-label (str "DEMO - Copyright Bryce Covert - Not for distribution - version " (advent.version/version)) label-color)
:tweens {:fade-in (tween/tween :fade-in screen [:fade :opacity] 1.0 0.0 1.0
:finish #(do
@@ -397,10 +410,15 @@
(dissoc :chapters-menu)
(assoc :main-menu (main-menu)))
(#{:dont-delete-button } actor-key)
(as-> entities entities
(dissoc entities :confirm-delete)
(assoc entities :save-menu (saves-menu entities (:renderer screen))))
(= :load actor-key)
(-> entities
(dissoc :main-menu)
(assoc :save-menu (saves-menu entities (:renderer screen))))
(as-> entities entities
(dissoc entities :main-menu)
(assoc entities :save-menu (saves-menu entities (:renderer screen))))
(= :chapters actor-key)
(-> entities
@@ -424,10 +442,15 @@
(start-playing screen entities (:selected-save entities))
(= :delete actor-key)
(as-> entities entities
(dissoc entities :save-menu)
(assoc entities :confirm-delete (confirm-delete entities)))
(= :confirm-delete-button actor-key)
(do
(utils/remove-save (:id (:selected-save entities)))
(as-> entities entities
(dissoc entities :save-menu)
(dissoc entities :confirm-delete)
(assoc entities :saves-list (doto (utils/snapshot-screenshots)
println))
(assoc entities :save-menu (saves-menu entities (:renderer screen)))))