R-Type
Distributed multiplayer game engine in C++
Loading...
Searching...
No Matches
CreateRoomMenu.hpp
Go to the documentation of this file.
1
/*
2
** EPITECH PROJECT, 2025
3
** r-type
4
** File description:
5
** CreateRoomMenu - Menu for creating a new room
6
*/
7
8
#pragma once
9
10
#include <functional>
11
#include <memory>
12
#include <string>
13
14
#include "
Graphics/IGraphics.hpp
"
15
#include "
Menu/BaseMenu.hpp
"
16
#include "
UI/ISlider.hpp
"
17
#include "
UI/IUIFactory.hpp
"
18
19
namespace
Game
{
23
class
CreateRoomMenu
:
public
BaseMenu
{
24
public
:
25
explicit
CreateRoomMenu
(
UI::IUIFactory
&uiFactory,
Graphics::IGraphics
&graphics);
26
~CreateRoomMenu
()
override
=
default
;
27
32
void
SetOnCreate
(std::function<
void
(
const
std::string &, uint32_t,
bool
,
float
)> onCreate);
33
37
void
SetOnCancel
(std::function<
void
()> onCancel);
38
39
void
Initialize
()
override
;
40
void
Update
()
override
;
41
void
Render
()
override
;
42
43
private
:
44
void
OnCreateClicked
();
45
void
OnCancelClicked
();
46
bool
ValidateInput
();
47
void
UpdateSpeedButtonText
();
48
49
std::function<void(
const
std::string &, uint32_t,
bool
,
float
)>
_onCreate
{};
50
std::function<void()>
_onCancel
{};
51
52
Graphics::IGraphics
&
_graphics
;
53
54
std::shared_ptr<UI::ITextInput>
_roomNameInput
;
55
std::shared_ptr<UI::IButton>
_maxPlayersButton
;
56
std::shared_ptr<UI::IButton>
_privateButton
;
57
std::shared_ptr<UI::IButton>
_gameSpeedButton
;
58
std::shared_ptr<UI::IButton>
_createButton
;
59
std::shared_ptr<UI::IButton>
_cancelButton
;
60
61
uint32_t
_selectedMaxPlayers
= 4;
// Default 4 players
62
bool
_isPrivate
=
false
;
63
float
_gameSpeedMultiplier
= 1.0f;
// Default normal speed (100%)
64
65
std::string
_errorMessage
;
66
};
67
}
// namespace Game
BaseMenu.hpp
IGraphics.hpp
ISlider.hpp
IUIFactory.hpp
Game::BaseMenu
Base class for all menu implementations.
Definition
BaseMenu.hpp:26
Game::CreateRoomMenu
Menu for creating a new game room.
Definition
CreateRoomMenu.hpp:23
Game::CreateRoomMenu::_cancelButton
std::shared_ptr< UI::IButton > _cancelButton
Definition
CreateRoomMenu.hpp:59
Game::CreateRoomMenu::_roomNameInput
std::shared_ptr< UI::ITextInput > _roomNameInput
Definition
CreateRoomMenu.hpp:54
Game::CreateRoomMenu::~CreateRoomMenu
~CreateRoomMenu() override=default
Game::CreateRoomMenu::_errorMessage
std::string _errorMessage
Definition
CreateRoomMenu.hpp:65
Game::CreateRoomMenu::_createButton
std::shared_ptr< UI::IButton > _createButton
Definition
CreateRoomMenu.hpp:58
Game::CreateRoomMenu::_selectedMaxPlayers
uint32_t _selectedMaxPlayers
Definition
CreateRoomMenu.hpp:61
Game::CreateRoomMenu::Initialize
void Initialize() override
Initialize menu (must be implemented by derived classes).
Definition
CreateRoomMenu.cpp:25
Game::CreateRoomMenu::_graphics
Graphics::IGraphics & _graphics
Definition
CreateRoomMenu.hpp:52
Game::CreateRoomMenu::OnCreateClicked
void OnCreateClicked()
Definition
CreateRoomMenu.cpp:200
Game::CreateRoomMenu::UpdateSpeedButtonText
void UpdateSpeedButtonText()
Definition
CreateRoomMenu.cpp:244
Game::CreateRoomMenu::_onCancel
std::function< void()> _onCancel
Definition
CreateRoomMenu.hpp:50
Game::CreateRoomMenu::_gameSpeedMultiplier
float _gameSpeedMultiplier
Definition
CreateRoomMenu.hpp:63
Game::CreateRoomMenu::ValidateInput
bool ValidateInput()
Definition
CreateRoomMenu.cpp:178
Game::CreateRoomMenu::_onCreate
std::function< void(const std::string &, uint32_t, bool, float)> _onCreate
Definition
CreateRoomMenu.hpp:49
Game::CreateRoomMenu::Render
void Render() override
Render menu (should be called every frame).
Definition
CreateRoomMenu.cpp:149
Game::CreateRoomMenu::_isPrivate
bool _isPrivate
Definition
CreateRoomMenu.hpp:62
Game::CreateRoomMenu::_maxPlayersButton
std::shared_ptr< UI::IButton > _maxPlayersButton
Definition
CreateRoomMenu.hpp:55
Game::CreateRoomMenu::_gameSpeedButton
std::shared_ptr< UI::IButton > _gameSpeedButton
Definition
CreateRoomMenu.hpp:57
Game::CreateRoomMenu::SetOnCancel
void SetOnCancel(std::function< void()> onCancel)
Set callback triggered when Cancel button is clicked.
Definition
CreateRoomMenu.cpp:21
Game::CreateRoomMenu::SetOnCreate
void SetOnCreate(std::function< void(const std::string &, uint32_t, bool, float)> onCreate)
Set callback triggered when Create button is clicked.
Definition
CreateRoomMenu.cpp:16
Game::CreateRoomMenu::_privateButton
std::shared_ptr< UI::IButton > _privateButton
Definition
CreateRoomMenu.hpp:56
Game::CreateRoomMenu::Update
void Update() override
Update menu state (should be called every frame).
Definition
CreateRoomMenu.cpp:136
Game::CreateRoomMenu::OnCancelClicked
void OnCancelClicked()
Definition
CreateRoomMenu.cpp:230
Graphics::IGraphics
Abstract interface for graphics rendering operations.
Definition
IGraphics.hpp:32
UI::IUIFactory
Abstract factory interface for creating UI elements.
Definition
IUIFactory.hpp:28
Game
Definition
AccessibilityMenu.cpp:13
client
Menu
CreateRoomMenu.hpp
Generated by
1.9.8