Added levels 1,2,3
This commit is contained in:
@@ -7,15 +7,8 @@ extends Control
|
||||
@onready var focus_timer : Timer = $FocusTimer
|
||||
|
||||
|
||||
func _get_next_level(remove := false) -> PackedScene:
|
||||
if not get_tree().has_meta(AbstractLevel.NEXT_LEVEL_META): return null
|
||||
|
||||
var next_level : PackedScene = get_tree().get_meta(AbstractLevel.NEXT_LEVEL_META)
|
||||
|
||||
if remove:
|
||||
get_tree().remove_meta(AbstractLevel.NEXT_LEVEL_META)
|
||||
|
||||
return next_level
|
||||
func _is_last_level() -> bool:
|
||||
return LevelManager.current_level_index >= (LevelManager.levels.size() - 1)
|
||||
|
||||
|
||||
func _on_gui_focus_changed(_node: Control) -> void:
|
||||
@@ -25,7 +18,8 @@ func _on_gui_focus_changed(_node: Control) -> void:
|
||||
func _on_next_level_button_pressed() -> void:
|
||||
SoundManager.play_ui_stream(SoundManager.ui_stream_accept)
|
||||
get_tree().paused = false
|
||||
get_tree().change_scene_to_packed(_get_next_level(true))
|
||||
LevelManager.current_level_index += 1
|
||||
get_tree().change_scene_to_packed(LevelManager.levels[LevelManager.current_level_index])
|
||||
|
||||
|
||||
func _on_main_menu_button_pressed() -> void:
|
||||
@@ -37,7 +31,7 @@ func _on_main_menu_button_pressed() -> void:
|
||||
func _on_visibility_changed() -> void:
|
||||
if not is_node_ready(): return
|
||||
if visible:
|
||||
next_level_button.visible = _get_next_level() != null
|
||||
next_level_button.visible = not _is_last_level()
|
||||
focus_timer.start()
|
||||
get_viewport().gui_focus_changed.connect(_on_gui_focus_changed)
|
||||
else:
|
||||
|
||||
@@ -2,18 +2,12 @@ class_name LevelSelection
|
||||
extends Control
|
||||
|
||||
|
||||
@export var levels : Array[PackedScene] = []
|
||||
|
||||
|
||||
@onready var grid : GridContainer = $%GridContainer
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
levels = levels.filter(func(item: PackedScene) -> bool: return item != null)
|
||||
|
||||
for i in range(levels.size()):
|
||||
var level := levels[i]
|
||||
var next_level := levels[i+1] if i+1 < levels.size() else null
|
||||
func _ready() -> void:
|
||||
for i in range(LevelManager.levels.size()):
|
||||
var level := LevelManager.levels[i]
|
||||
var disable := SaveManager.completed_levels < i
|
||||
|
||||
var button : Button = Button.new()
|
||||
@@ -21,7 +15,7 @@ func _ready() -> void:
|
||||
button.disabled = disable
|
||||
button.focus_mode = Control.FOCUS_NONE if disable else Control.FOCUS_ALL
|
||||
grid.add_child(button)
|
||||
button.pressed.connect(_on_level_selected.bind(i, level, next_level))
|
||||
button.pressed.connect(_on_level_selected.bind(i, level))
|
||||
|
||||
if i == 0:
|
||||
button.grab_focus()
|
||||
@@ -33,10 +27,9 @@ func _on_gui_focus_changed(_node: Control) -> void:
|
||||
SoundManager.play_ui_stream(SoundManager.ui_stream_select)
|
||||
|
||||
|
||||
func _on_level_selected(index: int, level: PackedScene, next_level: PackedScene) -> void:
|
||||
func _on_level_selected(index: int, level: PackedScene) -> void:
|
||||
SoundManager.play_ui_stream(SoundManager.ui_stream_accept)
|
||||
get_tree().set_meta(AbstractLevel.CURRENT_LEVEL_INDEX, index)
|
||||
get_tree().set_meta(AbstractLevel.NEXT_LEVEL_META, next_level)
|
||||
LevelManager.current_level_index = index
|
||||
get_tree().change_scene_to_packed(level)
|
||||
|
||||
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://cdw72hewwmypn"]
|
||||
[gd_scene load_steps=9 format=3 uid="uid://cdw72hewwmypn"]
|
||||
|
||||
[ext_resource type="Theme" uid="uid://bh56my8b2htnr" path="res://themes/menu.tres" id="1_5cn0b"]
|
||||
[ext_resource type="Script" uid="uid://47impoi24o7g" path="res://game/menu/level_selection.gd" id="1_fb5q3"]
|
||||
[ext_resource type="PackedScene" uid="uid://bmn74wc2vophn" path="res://game/levels/test_level.tscn" id="3_3oqjo"]
|
||||
[ext_resource type="PackedScene" uid="uid://dlpi1ptis3wna" path="res://game/levels/level_1.tscn" id="3_n2wmw"]
|
||||
[ext_resource type="PackedScene" uid="uid://cc06c06hlv7ix" path="res://game/levels/level_2.tscn" id="4_0qtcq"]
|
||||
[ext_resource type="PackedScene" uid="uid://ungdvjmfc6v7" path="res://game/levels/level_3.tscn" id="5_yk0t5"]
|
||||
|
||||
[sub_resource type="InputEventAction" id="InputEventAction_3oqjo"]
|
||||
action = &"ui_cancel"
|
||||
@@ -19,7 +22,7 @@ grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme = ExtResource("1_5cn0b")
|
||||
script = ExtResource("1_fb5q3")
|
||||
levels = Array[PackedScene]([ExtResource("3_3oqjo"), ExtResource("3_3oqjo")])
|
||||
levels = Array[PackedScene]([ExtResource("3_n2wmw"), ExtResource("4_0qtcq"), ExtResource("5_yk0t5"), ExtResource("3_3oqjo")])
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="."]
|
||||
layout_mode = 1
|
||||
|
||||
Reference in New Issue
Block a user