Add options menu persistence

This commit is contained in:
2025-10-30 23:59:05 -07:00
parent dc3c458414
commit 9fc875eda5
18 changed files with 333 additions and 26 deletions

View File

@@ -26,6 +26,8 @@ public partial class MainMenu : Control, IMainMenu
[Node] public IButton GalleryButton { get; set; } = default!;
[Node] public IButton OptionsButton { get; set; } = default!;
[Node] public IButton QuitButton { get; set; } = default!;
[Signal]
@@ -35,6 +37,8 @@ public partial class MainMenu : Control, IMainMenu
[Signal]
public delegate void GalleryEventHandler();
[Signal]
public delegate void OptionsEventHandler();
[Signal]
public delegate void QuitEventHandler();
public void OnReady()
@@ -42,6 +46,7 @@ public partial class MainMenu : Control, IMainMenu
StartGameButton.Pressed += OnStartGamePressed;
EnemyViewerButton.Pressed += EnemyViewerButton_Pressed;
GalleryButton.Pressed += GalleryButton_Pressed;
OptionsButton.Pressed += OptionsButton_Pressed;
QuitButton.Pressed += OnQuitPressed;
StartGameButton.GrabFocus();
}
@@ -57,6 +62,7 @@ public partial class MainMenu : Control, IMainMenu
StartGameButton.Pressed -= OnStartGamePressed;
EnemyViewerButton.Pressed -= EnemyViewerButton_Pressed;
GalleryButton.Pressed -= GalleryButton_Pressed;
OptionsButton.Pressed -= OptionsButton_Pressed;
QuitButton.Pressed -= OnQuitPressed;
}
@@ -66,5 +72,7 @@ public partial class MainMenu : Control, IMainMenu
private void EnemyViewerButton_Pressed() => EmitSignal(SignalName.EnemyViewer);
private void OptionsButton_Pressed() => EmitSignal(SignalName.Options);
public void OnQuitPressed() => EmitSignal(SignalName.Quit);
}

View File

@@ -60,6 +60,14 @@ focus_neighbor_bottom = NodePath("../QuitButton")
theme_override_colors/font_focus_color = Color(0.976471, 0.827451, 0, 1)
text = "Gallery"
[node name="OptionsButton" type="Button" parent="MarginContainer/VBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
focus_neighbor_top = NodePath("../EnemyViewerButton")
focus_neighbor_bottom = NodePath("../QuitButton")
theme_override_colors/font_focus_color = Color(0.976471, 0.827451, 0, 1)
text = "Options"
[node name="QuitButton" type="Button" parent="MarginContainer/VBoxContainer"]
unique_name_in_owner = true
layout_mode = 2