Files
Decked-Out-Defense/ui/menus/radio_menu/choose_cassette_screen.gd

40 lines
1.0 KiB
GDScript

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