## 存档槽位条目(挂载于 SaveSlot.tscn)。 ## 展示单个存档信息;空槽位用于新建存档。 extends PanelContainer ## 槽位被点击时发出,save_id 为空表示点击了新建槽位。 ## @param save_id: 存档 ID signal slot_pressed(save_id: String) @onready var slot_index_label: Label = %SlotIndexLabel @onready var save_name_label: Label = %SaveNameLabel @onready var meta_line1: Label = %MetaLine1 @onready var meta_line2: Label = %MetaLine2 @onready var delete_button: Button = %DeleteButton @onready var arrow_button: Button = %ArrowIcon ## 本槽位对应的存档 ID。 var save_id: String = "" ## 是否已有存档数据(false 表示新建槽位)。 var has_data: bool = false ## 填充为已有存档槽位。 ## @param id: 存档 ID ## @param name_text: 存档名称 ## @param meta1: 第一行元数据 ## @param meta2: 第二行元数据 func setup(id: String, name_text: String, meta1: String, meta2: String) -> void: save_id = id has_data = true slot_index_label.text = id.get_slice("save_", 1) # "save_001" -> "001" save_name_label.text = name_text meta_line1.text = meta1 meta_line2.text = meta2 delete_button.visible = true arrow_button.visible = true ## 填充为"新建存档"空槽位。 func setup_empty() -> void: has_data = false slot_index_label.text = "+" save_name_label.text = "新建存档" meta_line1.text = "点击创建新的存档" meta_line2.text = "" delete_button.visible = false arrow_button.visible = false ## 槽位本体被点击。 func _on_pressed() -> void: slot_pressed.emit(save_id) ## 点击删除按钮(TODO:接入确认弹窗)。 func _on_delete_button_button_up() -> void: print("删除存档: ", save_id)