Added levels 1,2,3

This commit is contained in:
2026-01-09 19:39:27 +03:00
parent bd0dd5a9ec
commit 123510d103
42 changed files with 858 additions and 52 deletions
+5 -11
View File
@@ -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:
+6 -13
View File
@@ -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)
+5 -2
View File
@@ -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