Files
gymkhana-actions/game/ui/commons/save/save_game.gd
Dennis Ploeger 3dc779311c Issue 336 (#380)
Co-authored-by: Dennis Ploeger <develop@dieploegers.de>
Co-authored-by: dploeger <dploeger@users.noreply.github.com>
2021-08-30 20:57:25 +02:00

64 lines
1.5 KiB
GDScript

extends Control
signal back_button_pressed
export(PackedScene) var slot_ui_scene
var slot_pressed
func _ready():
refresh_savegames()
func _on_slot_pressed(p_slot_n: int):
slot_pressed = p_slot_n
if escoria.save_manager.save_game_exists(p_slot_n):
$overwrite_confirm_popup.popup()
else:
$save_name_popup.popup()
func refresh_savegames():
var _slots = $CenterContainer/VBoxContainer/ScrollContainer/slots
for slot in _slots.get_children():
_slots.remove_child(slot)
var saves_list = escoria.save_manager.get_saves_list()
for i in saves_list.size():
var save_data = saves_list[i+1]
var new_slot = slot_ui_scene.instance()
_slots.add_child(new_slot)
new_slot.set_slot_name_date(save_data["name"], save_data["date"])
new_slot.connect("pressed", self, "_on_slot_pressed", [i+1])
var datetime = OS.get_datetime()
var datetime_string = "%02d/%02d/%02d %02d:%02d" % [
datetime["day"],
datetime["month"],
datetime["year"],
datetime["hour"],
datetime["minute"],
]
var new_slot = slot_ui_scene.instance()
_slots.add_child(new_slot)
new_slot.set_slot_name_date(tr("New save"), datetime_string)
new_slot.connect("pressed", self, "_on_slot_pressed", [saves_list.size()+1])
func _on_back_pressed():
emit_signal("back_button_pressed")
func _on_save_name_popup_savegame_name_ok(p_savename: String):
escoria.save_manager.save_game(slot_pressed, p_savename)
refresh_savegames()
slot_pressed = null
func _on_save_name_popup_savegame_cancel():
pass
func _on_overwrite_confirm_popup_confirm_yes():
$save_name_popup.popup()