class_name SaveLoadUI extends Control @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 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().replace(":", "") var _save_level_data_component: SaveLevelDataComponent = get_tree().get_first_node_in_group("save_level_data_component") if _save_level_data_component.ui_node != null: _save_level_data_component.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_file.emit(save_name) if _save_level_data_component.ui_node != null: _save_level_data_component.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: var current_date: String = Time.get_datetime_string_from_system() save_name_input.text = current_date.replace(":", "") new_save_ui.show()