class_name SaveFilePanel extends Panel @export var save_panel_highlight: StyleBoxFlat @export var save_panel_normal: StyleBoxFlat @export_group("Node Exports") @export var save_name_label: Label @export var save_date_label: Label @export var save_icon: TextureRect @export var load_button: TextureButton @export var delete_confirm_ui: Control @export var delete_button: TextureButton @export var delete_confirm_button: BaseButton @export var delete_cancel_button: BaseButton var save_file_details: SaveFileDetailsResource func _ready() -> void: mouse_entered.connect(_on_mouse_entered) mouse_exited.connect(_on_mouse_exited) delete_button.pressed.connect(_on_delete_button_pressed) load_button.pressed.connect(_on_load_button_pressed) delete_confirm_button.pressed.connect(_on_delete_confirm_button_pressed) delete_cancel_button.pressed.connect(_on_delete_cancel_button_pressed) func initialize(_resource: SaveFileDetailsResource) -> void: save_file_details = _resource set_save_date() set_save_icon() set_save_name() func set_save_date() -> void: save_date_label.text = save_file_details.save_date func set_save_icon() -> void: save_icon.texture = save_file_details.save_icon_texture func set_save_name() -> void: save_name_label.text = save_file_details.save_name if save_file_details.save_name == null or save_file_details.save_name == "": save_name_label.text = save_file_details.filename func _on_delete_button_pressed() -> void: delete_confirm_ui.show() func _on_delete_confirm_button_pressed() -> void: SaveGameManager.delete_save.emit(save_file_details.filename) queue_free() func _on_delete_cancel_button_pressed() -> void: delete_confirm_ui.hide() func _on_load_button_pressed() -> void: SaveGameManager.load_save.emit(save_file_details.filename) func _on_mouse_entered() -> void: set("theme_override_styles/panel", save_panel_highlight) func _on_mouse_exited() -> void: set("theme_override_styles/panel", save_panel_normal)