summaryrefslogtreecommitdiff
path: root/Scripts/Menus
diff options
context:
space:
mode:
Diffstat (limited to 'Scripts/Menus')
-rw-r--r--Scripts/Menus/MainMenu.cs26
-rw-r--r--Scripts/Menus/MainMenuButtons.cs39
2 files changed, 65 insertions, 0 deletions
diff --git a/Scripts/Menus/MainMenu.cs b/Scripts/Menus/MainMenu.cs
new file mode 100644
index 0000000..3beaead
--- /dev/null
+++ b/Scripts/Menus/MainMenu.cs
@@ -0,0 +1,26 @@
+using Godot;
+
+namespace Texty.Scripts.Menus
+{
+ public class MainMenu : Node
+ {
+ public override void _Ready()
+ {
+ }
+
+ public void OnStartButtonPressed()
+ {
+ GD.Print("Start button was pressed.");
+ }
+
+ public void OnCreditsButtonPressed()
+ {
+ GD.Print("Credits button was pressed.");
+ }
+
+ public void OnQuitButtonPressed()
+ {
+ GetTree().Quit();
+ }
+ }
+} \ No newline at end of file
diff --git a/Scripts/Menus/MainMenuButtons.cs b/Scripts/Menus/MainMenuButtons.cs
new file mode 100644
index 0000000..c2af034
--- /dev/null
+++ b/Scripts/Menus/MainMenuButtons.cs
@@ -0,0 +1,39 @@
+using System;
+using Godot;
+using Texty.Scripts.Terminal;
+
+namespace Texty.Scripts.Menus
+{
+ public class MainMenuButtons : ButtonBlock
+ {
+ [Signal] public delegate void CreditsButtonPressed();
+ [Signal] public delegate void QuitButtonPressed();
+ [Signal] public delegate void StartButtonPressed();
+
+ protected override void OnButtonPressed(int index)
+ {
+ if (!Enum.IsDefined(typeof(Buttons), 1)) return;
+ switch ((Buttons)index)
+ {
+ case Buttons.Start:
+ EmitSignal(nameof(StartButtonPressed));
+ break;
+ case Buttons.Credits:
+ EmitSignal(nameof(CreditsButtonPressed));
+ break;
+ case Buttons.Quit:
+ EmitSignal(nameof(QuitButtonPressed));
+ break;
+ default:
+ throw new ArgumentOutOfRangeException(nameof(index), index, "Button not implemented!");
+ }
+ }
+
+ private enum Buttons
+ {
+ Start = 0,
+ Credits = 1,
+ Quit = 2
+ }
+ }
+} \ No newline at end of file