@tool class_name SaveGameHandle extends CenterContainer signal picked(save_game: SaveGame) var has_stage: bool = false: set(stage): has_stage = stage visible = stage save_buttons[0].grab_focus() @export var saves: Array[SaveGame] = [SaveGame.new(), SaveGame.new(), SaveGame.new()] var save_buttons: Array[SaveGameDisplay] @export var update_display: bool: set(value): display() var create_new_game: bool = false func _ready() -> void: display() func display(): for child in save_buttons: child.free() save_buttons = [] for i in range(saves.size()): var new_button := SaveGameDisplay.new(saves[i], i+1) save_buttons.append(new_button) add_child(new_button) new_button.pressed.connect(func(): _on_game_picked(i)) func _on_game_picked(id: int): if create_new_game: if saves[id].current_room == 0: picked.emit(id) else: $Popup.show() else: picked.emit(id) func pick_slot(create_new_game: bool): State.take_stage(self) create_new_game = true