|
class_name SaveLoadUI
|
|
extends Control
|
|
|
|
|
|
signal close_save_list
|
|
signal open_save_list
|
|
|
|
|
|
@export var show_save_ui_button: BaseButton
|
|
@export var new_save_ui: Control
|
|
@export var save_name_input: LineEdit
|
|
@export var create_save_button: BaseButton
|
|
@export var create_save_cancel_button: BaseButton
|
|
|
|
@export var ui_node: CanvasLayer ## The UI to Show/Hide when taking screenshot (e.g. save icon generation)
|
|
|
|
|
|
func _ready() -> void:
|
|
show_save_ui_button.pressed.connect(_on_show_save_ui_button_pressed)
|
|
create_save_button.pressed.connect(_on_create_save_button_pressed)
|
|
create_save_cancel_button.pressed.connect(_on_create_save_cancel_button_pressed)
|
|
|
|
new_save_ui.hide()
|
|
|
|
|
|
func _on_create_save_button_pressed() -> void:
|
|
var save_name: String = save_name_input.text
|
|
if save_name.strip_edges() == "":
|
|
save_name = Time.get_datetime_string_from_system(false, true)
|
|
|
|
if ui_node != null:
|
|
ui_node.visible = false
|
|
await get_tree().create_timer(.150).timeout # A hack to allow time for UI to hide before taking screenshot
|
|
SaveGameManager.create_save.emit(save_name)
|
|
if ui_node != null:
|
|
ui_node.visible = true
|
|
new_save_ui.hide()
|
|
SignalManager.resume_game.emit()
|
|
|
|
func _on_create_save_cancel_button_pressed() -> void:
|
|
new_save_ui.hide()
|
|
|
|
func _on_show_save_ui_button_pressed() -> void:
|
|
save_name_input.text = Time.get_datetime_string_from_system(false, true)
|
|
new_save_ui.show()
|