Files
2026-02-23 11:37:27 +01:00

44 lines
1.1 KiB
GDScript

extends Control
@export var buttonContainer: Container
var level_buttons: Array[Button] = []
var completed_levels: Array[bool] = []
signal start_level(level_nr: int)
signal test_level()
signal exit()
func init_buttons(max_level: int, completed_level_information: Array[bool]) -> void:
if max_level > 0:
$VBoxContainer/Label.visible = false
completed_levels = completed_level_information
for i in range(max_level):
var b: LevelButton = load("res://ui/screens/level-select-screen/level_button.tscn").instantiate()
b.level_nr = i + 1
b.select_level.connect(_level_button_pressed)
b.disabled = not completed_levels[i]
level_buttons.append(b)
buttonContainer.add_child(b)
func _level_button_pressed(level_nr: int) -> void:
print("Start Level ",level_nr)
start_level.emit(level_nr)
queue_free()
func _return_to_title() -> void:
exit.emit()
queue_free()
func _on_unlock_levels_toggled(toggled_on: bool) -> void:
for i in range(len(level_buttons)):
if toggled_on:
level_buttons[i].disabled = false
else:
level_buttons[i].disabled = !completed_levels[i]
func _on_test_level_pressed() -> void:
test_level.emit()
queue_free()