|
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)
|