class_name ChooseCassetteScreen extends Control signal cassette_chosen(cassette: Cassette) @export var choice_buttons: VBoxContainer @export var cassette_desc: cassetteDescriptionUI @export var cassette_name_label: Label var choices: Array[Cassette] = [] var chosen_cassette: Cassette = null var side_a: bool = true func add_cassettes(cassettes: Array[Cassette]) -> void: var x: int = 0 for cassette: Cassette in cassettes: var button: Button = Button.new() button.text = tr(cassette.display_name) button.pressed.connect(choose_cassette.bind(x)) choices.append(cassette) choice_buttons.add_child(button) x += 1 choose_cassette(0) func choose_cassette(choice: int) -> void: chosen_cassette = choices[choice] cassette_name_label.text = tr(chosen_cassette.display_name) choose_side(side_a) func choose_side(side_a_chosen: bool) -> void: side_a = side_a_chosen cassette_desc.set_cassette(chosen_cassette, side_a) func _on_confirm_button_pressed() -> void: cassette_chosen.emit(chosen_cassette) queue_free()