diff --git a/Scenes/HUD/MusicRoom.tscn b/Scenes/HUD/MusicRoom.tscn index bb12f741..33c35aed 100644 --- a/Scenes/HUD/MusicRoom.tscn +++ b/Scenes/HUD/MusicRoom.tscn @@ -1,7 +1,6 @@ -[gd_scene load_steps=11 format=3 uid="uid://c84shrj84g4t2"] +[gd_scene load_steps=10 format=3 uid="uid://c84shrj84g4t2"] [ext_resource type="Script" uid="uid://c06tspxwnj7pg" path="res://Scripts/UI/MusicRoom.cs" id="1_u3ui8"] -[ext_resource type="Script" uid="uid://cx63lvsuj1787" path="res://Scripts/Resources/MusicResource.cs" id="2_kybwj"] [ext_resource type="Theme" uid="uid://dnsadvmunm76k" path="res://Resources/Styles/MainMenuButtons.tres" id="2_rcbhv"] [ext_resource type="Resource" uid="uid://byo74ews118nl" path="res://Resources/Music/No_Reason.tres" id="3_nkbmj"] [ext_resource type="Texture2D" uid="uid://bpd4ldfmt3s51" path="res://Sprites/UI/Note.png" id="3_u3ui8"] @@ -16,7 +15,7 @@ font_size = 20 outline_size = 4 outline_color = Color(0, 0, 0, 1) -[node name="MusicRoom" type="VBoxContainer" node_paths=PackedStringArray("TracksContainer", "DescriptionLabel")] +[node name="MusicRoom" type="VBoxContainer" node_paths=PackedStringArray("TracksContainer", "DescriptionLabel", "DefaultSelectedButton")] anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 @@ -25,10 +24,11 @@ grow_vertical = 2 size_flags_horizontal = 3 size_flags_vertical = 3 script = ExtResource("1_u3ui8") -Tracks = Array[ExtResource("2_kybwj")]([ExtResource("3_nkbmj"), ExtResource("4_cv0ke")]) +Tracks = [ExtResource("3_nkbmj"), ExtResource("4_cv0ke")] TracksContainer = NodePath("VBoxContainer/ItemList") Icon = ExtResource("3_u3ui8") DescriptionLabel = NodePath("VBoxContainer/MarginContainer/DescriptionLabel") +DefaultSelectedButton = NodePath("VBoxContainer/HBoxContainer/BackButton") [node name="VBoxContainer" type="VBoxContainer" parent="."] layout_mode = 2 diff --git a/Scenes/HUD/debug_menu.tscn b/Scenes/HUD/debug_menu.tscn index d054946a..159517b2 100644 --- a/Scenes/HUD/debug_menu.tscn +++ b/Scenes/HUD/debug_menu.tscn @@ -6,7 +6,7 @@ [ext_resource type="Resource" uid="uid://d1lc8lhq1b05p" path="res://Resources/Debug/DebugLevels.tres" id="3_cvgqx"] [ext_resource type="Texture2D" uid="uid://d1a0nwd4wdph7" path="res://Sprites/UI/Back_Small.png" id="5_1xl3a"] -[node name="DebugMenu" type="VBoxContainer" node_paths=PackedStringArray("ButtonsContainer")] +[node name="DebugMenu" type="VBoxContainer" node_paths=PackedStringArray("ButtonsContainer", "DefaultSelectedButton")] process_mode = 3 anchors_preset = 15 anchor_right = 1.0 @@ -17,6 +17,7 @@ script = ExtResource("1_5vtnj") ButtonTheme = ExtResource("2_6il8q") Levels = ExtResource("3_cvgqx") ButtonsContainer = NodePath("ScrollContainer/Level Select") +DefaultSelectedButton = NodePath("ScrollContainer/Level Select/BackButton") [node name="HBoxContainer" type="HBoxContainer" parent="."] layout_mode = 2 diff --git a/Scenes/MainMenu.tscn b/Scenes/MainMenu.tscn index d9a4a9d2..1e1dca29 100644 --- a/Scenes/MainMenu.tscn +++ b/Scenes/MainMenu.tscn @@ -25,11 +25,12 @@ font_size = 12 outline_size = 4 outline_color = Color(0, 0, 0, 1) -[node name="MainMenu" type="CanvasLayer" node_paths=PackedStringArray("SubMenuHolder", "MusicPlayer")] +[node name="MainMenu" type="CanvasLayer" node_paths=PackedStringArray("SubMenuHolder", "DefaultSelectedButton", "MusicPlayer")] script = ExtResource("1_702nk") GameScene = "res://Scenes/Maps/Tutorial.tscn" MainMenuScene = "res://Scenes/MainMenu.tscn" SubMenuHolder = NodePath("SubMenuContainer") +DefaultSelectedButton = NodePath("MarginContainer/GridContainer/GameButtons/StartButton") MusicPlayer = NodePath("AudioStreamPlayer2D") MusicRoomTemplate = ExtResource("2_if7li") DebugMenuTemplate = ExtResource("9_nwlsr") @@ -70,23 +71,43 @@ size_flags_vertical = 6 [node name="StartButton" type="Button" parent="MarginContainer/GridContainer/GameButtons"] layout_mode = 2 +focus_neighbor_left = NodePath("../../Options/OptionsButton") +focus_neighbor_top = NodePath("../ExitButton") +focus_neighbor_right = NodePath("../../Options/OptionsButton") +focus_neighbor_bottom = NodePath("../ContinueButton") +focus_next = NodePath("../ContinueButton") +focus_previous = NodePath("../ExitButton") theme = ExtResource("4_nk7wn") text = "New Game" -[node name="DebugButton2" type="Button" parent="MarginContainer/GridContainer/GameButtons"] +[node name="ContinueButton" type="Button" parent="MarginContainer/GridContainer/GameButtons"] layout_mode = 2 +focus_neighbor_left = NodePath("../../Options/MusicRoomButton") +focus_neighbor_top = NodePath("../StartButton") +focus_neighbor_right = NodePath("../../Options/MusicRoomButton") +focus_neighbor_bottom = NodePath("../DebugButton") +focus_next = NodePath("../DebugButton") +focus_previous = NodePath("../StartButton") theme = ExtResource("4_nk7wn") theme_override_styles/normal = ExtResource("7_rrcx7") text = "Continue" [node name="DebugButton" type="Button" parent="MarginContainer/GridContainer/GameButtons"] layout_mode = 2 +focus_neighbor_left = NodePath("../../Options/CreditsButton") +focus_neighbor_top = NodePath("../ContinueButton") +focus_neighbor_right = NodePath("../../Options/CreditsButton") +focus_neighbor_bottom = NodePath("../ExitButton") theme = ExtResource("4_nk7wn") text = "Debug" [node name="ExitButton" type="Button" parent="MarginContainer/GridContainer/GameButtons"] layout_mode = 2 +focus_neighbor_left = NodePath("../../Options/CreditsButton") +focus_neighbor_top = NodePath("../DebugButton") +focus_neighbor_right = NodePath("../../Options/CreditsButton") +focus_neighbor_bottom = NodePath("../StartButton") theme = ExtResource("4_nk7wn") text = "Exit " @@ -130,17 +151,26 @@ size_flags_vertical = 6 [node name="OptionsButton" type="Button" parent="MarginContainer/GridContainer/Options"] layout_mode = 2 +focus_neighbor_left = NodePath("../../GameButtons/StartButton") +focus_neighbor_top = NodePath("../CreditsButton") +focus_neighbor_right = NodePath("../../GameButtons/StartButton") +focus_neighbor_bottom = NodePath("../MusicRoomButton") theme = ExtResource("4_nk7wn") text = "Options" [node name="MusicRoomButton" type="Button" parent="MarginContainer/GridContainer/Options"] layout_mode = 2 +focus_neighbor_left = NodePath("../../GameButtons/ContinueButton") +focus_neighbor_top = NodePath("../OptionsButton") +focus_neighbor_right = NodePath("../../GameButtons/ContinueButton") +focus_neighbor_bottom = NodePath("../CreditsButton") theme = ExtResource("4_nk7wn") text = "Music Room" [node name="CreditsButton" type="Button" parent="MarginContainer/GridContainer/Options"] layout_mode = 2 +focus_neighbor_right = NodePath("../../GameButtons/DebugButton") theme = ExtResource("4_nk7wn") text = "Credits" @@ -158,7 +188,7 @@ offset_bottom = 156.0 theme_override_styles/panel = ExtResource("7_rrcx7") [connection signal="pressed" from="MarginContainer/GridContainer/GameButtons/StartButton" to="." method="_on_start_button_pressed"] -[connection signal="pressed" from="MarginContainer/GridContainer/GameButtons/DebugButton2" to="." method="_on_debug_button_pressed"] +[connection signal="pressed" from="MarginContainer/GridContainer/GameButtons/ContinueButton" to="." method="_on_debug_button_pressed"] [connection signal="pressed" from="MarginContainer/GridContainer/GameButtons/DebugButton" to="." method="_on_debug_button_pressed"] [connection signal="pressed" from="MarginContainer/GridContainer/GameButtons/ExitButton" to="." method="_on_exit_button_pressed"] [connection signal="pressed" from="MarginContainer/GridContainer/Options/OptionsButton" to="." method="OnOptionsButtonPressed"] diff --git a/Scripts/MainMenu.cs b/Scripts/MainMenu.cs index c70be95f..83bab9ae 100644 --- a/Scripts/MainMenu.cs +++ b/Scripts/MainMenu.cs @@ -14,6 +14,9 @@ public partial class MainMenu : CanvasLayer [Export] public Control SubMenuHolder { get; set; } = new Control(); + [Export] + public Button DefaultSelectedButton { get; private set; } + [Export] public AudioStreamPlayer2D MusicPlayer { get; private set; } @@ -36,6 +39,7 @@ public partial class MainMenu : CanvasLayer // Called when the node enters the scene tree for the first time. public override void _Ready() { + DefaultSelectedButton.GrabFocus(); } // Called every frame. 'delta' is the elapsed time since the previous frame. @@ -103,6 +107,8 @@ public partial class MainMenu : CanvasLayer { MusicPlayer.Play(); } + + DefaultSelectedButton.GrabFocus(); }; } diff --git a/Scripts/UI/DebugMenu.cs b/Scripts/UI/DebugMenu.cs index f7f15c3e..cc15af94 100644 --- a/Scripts/UI/DebugMenu.cs +++ b/Scripts/UI/DebugMenu.cs @@ -16,10 +16,15 @@ public partial class DebugMenu : MenuBase [Export] public Container ButtonsContainer { get; private set; } + + [Export] + public Button DefaultSelectedButton { get; private set; } // Called when the node enters the scene tree for the first time. public override void _Ready() { + DefaultSelectedButton.GrabFocus(); + foreach (var level in Levels.Maps) { if (!level.Enabled) continue; diff --git a/Scripts/UI/MusicRoom.cs b/Scripts/UI/MusicRoom.cs index e6e8f347..c5694c01 100644 --- a/Scripts/UI/MusicRoom.cs +++ b/Scripts/UI/MusicRoom.cs @@ -16,11 +16,15 @@ public partial class MusicRoom : MenuBase [Export] public Label DescriptionLabel { get; private set; } + + [Export] + public Button DefaultSelectedButton { get; private set; } private Dictionary _tracks = new(); public override void _Ready() { + DefaultSelectedButton.GrabFocus(); DescriptionLabel.Text = string.Empty; TracksContainer.Clear(); foreach (var track in Tracks)