From 4d02e8afbf52d37cd88f1c90a2ae6e1f3659b35f Mon Sep 17 00:00:00 2001 From: Persson-dev Date: Fri, 16 Aug 2024 10:58:31 +0200 Subject: [PATCH] add basic main menu --- godot/Scenes/Menus/mainmenu.tscn | 41 ++++++++++++++++++++++++++++ src/MainMenu.cpp | 47 ++++++++++++++++++++++++++++++++ src/MainMenu.h | 30 ++++++++++++++++++++ src/register_types.cpp | 12 ++++++-- 4 files changed, 127 insertions(+), 3 deletions(-) create mode 100644 godot/Scenes/Menus/mainmenu.tscn create mode 100644 src/MainMenu.cpp create mode 100644 src/MainMenu.h diff --git a/godot/Scenes/Menus/mainmenu.tscn b/godot/Scenes/Menus/mainmenu.tscn new file mode 100644 index 0000000..3b4a107 --- /dev/null +++ b/godot/Scenes/Menus/mainmenu.tscn @@ -0,0 +1,41 @@ +[gd_scene format=3 uid="uid://bqfqg7xwwlxd8"] + +[node name="Main Menu" type="MainMenu"] +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 + +[node name="Container" type="VBoxContainer" parent="."] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -228.512 +offset_top = -89.5 +offset_right = 228.512 +offset_bottom = 89.5 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="JoinButton" type="Button" parent="Container"] +layout_mode = 2 +theme_override_font_sizes/font_size = 35 +text = "Join Game" + +[node name="CreateButton" type="Button" parent="Container"] +layout_mode = 2 +theme_override_font_sizes/font_size = 35 +text = "Create Game" + +[node name="QuitButton" type="Button" parent="Container"] +layout_mode = 2 +theme_override_font_sizes/font_size = 35 +text = "Quit" diff --git a/src/MainMenu.cpp b/src/MainMenu.cpp new file mode 100644 index 0000000..20e7fc5 --- /dev/null +++ b/src/MainMenu.cpp @@ -0,0 +1,47 @@ +#include "MainMenu.h" + +#include +#include + +using namespace godot; + +static constexpr char MainScenePath[] = "res://Scenes/Levels/world.tscn"; + +namespace blitz { + +void MainMenu::_bind_methods() {} + +MainMenu::MainMenu() {} + +MainMenu::~MainMenu() {} + +void MainMenu::_ready() { + Node* container = find_child("Container"); + DEV_ASSERT(container); + + m_JoinButton = Object::cast_to