From ccd374cbedd87528c85d497fa7bef9b0c90815e9 Mon Sep 17 00:00:00 2001 From: Sophia Pearson Date: Wed, 7 Sep 2022 11:22:35 +0200 Subject: menus: implement main menu and building blocks --- Scripts/Menus/MainMenu.cs | 26 ++++++++++++++++++++++++++ Scripts/Menus/MainMenuButtons.cs | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 Scripts/Menus/MainMenu.cs create mode 100644 Scripts/Menus/MainMenuButtons.cs (limited to 'Scripts/Menus') 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 -- cgit v1.2.3