Air-Trap 1.0.0
A multiplayer R-Type clone game engine built with C++23 and ECS architecture
Loading...
Searching...
No Matches
rtp::client::scenes::LobbyScene Class Reference

Scene for the game lobby. More...

#include <LobbyScene.hpp>

Inheritance diagram for rtp::client::scenes::LobbyScene:
Collaboration diagram for rtp::client::scenes::LobbyScene:

Public Types

using ChangeStateFn = std::function< void(GameState)>
 Type alias for a function that changes the game state.
 

Public Member Functions

 LobbyScene (ecs::Registry &UiRegistry, Settings &settings, TranslationManager &translationManager, NetworkSyncSystem &network, graphics::UiFactory &uiFactory, std::function< void(GameState)> changeState)
 Constructor for LobbyScene.
 
void onEnter (void) override
 Called when the scene is entered.
 
void onExit (void) override
 Called when the scene is exited.
 
void handleEvent (const sf::Event &event) override
 Handle an incoming event.
 
void update (float dt) override
 Update the scene state.
 
- Public Member Functions inherited from rtp::client::interfaces::IScene
virtual ~IScene (void)=default
 

Private Member Functions

void buildUi (void)
 

Private Attributes

ecs::Registry_uiRegistry
 Reference to the ECS registry.
 
Settings_settings
 Reference to the application settings.
 
TranslationManager_translationManager
 Reference to the translation manager.
 
NetworkSyncSystem_network
 Reference to the client network.
 
graphics::UiFactory_uiFactory
 UI Factory for creating UI components.
 
ChangeStateFn _changeState
 Function to change the game state.
 
uint32_t _uiSelectedRoomId = 0
 Currently selected room ID in the UI.
 
std::size_t _roomsHash = 0
 Hash of the last room list displayed.
 
bool _uiBuilt = false
 Tracks if the UI has been built at least once.
 

Detailed Description

Scene for the game lobby.

This scene allows players to join existing game rooms or create new ones. It displays a list of available rooms and provides options to manage them.

Definition at line 30 of file LobbyScene.hpp.

Member Typedef Documentation

◆ ChangeStateFn

Type alias for a function that changes the game state.

Definition at line 50 of file LobbyScene.hpp.

Constructor & Destructor Documentation

◆ LobbyScene()

rtp::client::scenes::LobbyScene::LobbyScene ( ecs::Registry UiRegistry,
Settings settings,
TranslationManager translationManager,
NetworkSyncSystem network,
graphics::UiFactory uiFactory,
std::function< void(GameState)>  changeState 
)

Constructor for LobbyScene.

Parameters
registryReference to the ECS registry
settingsReference to the application settings
networkReference to the client network
windowReference to the SFML render window

Definition at line 51 of file LobbyScene.cpp.

Member Function Documentation

◆ buildUi()

◆ handleEvent()

void rtp::client::scenes::LobbyScene::handleEvent ( const sf::Event &  event)
overridevirtual

Handle an incoming event.

Parameters
eventThe event to handle.

Implements rtp::client::interfaces::IScene.

Definition at line 395 of file LobbyScene.cpp.

◆ onEnter()

void rtp::client::scenes::LobbyScene::onEnter ( void  )
overridevirtual

◆ onExit()

void rtp::client::scenes::LobbyScene::onExit ( void  )
overridevirtual

Called when the scene is exited.

Implements rtp::client::interfaces::IScene.

Definition at line 390 of file LobbyScene.cpp.

References rtp::log::info().

◆ update()

void rtp::client::scenes::LobbyScene::update ( float  dt)
overridevirtual

Member Data Documentation

◆ _changeState

ChangeStateFn rtp::client::scenes::LobbyScene::_changeState
private

Function to change the game state.

Definition at line 80 of file LobbyScene.hpp.

Referenced by buildUi(), and update().

◆ _network

NetworkSyncSystem& rtp::client::scenes::LobbyScene::_network
private

Reference to the client network.

Definition at line 78 of file LobbyScene.hpp.

Referenced by buildUi(), onEnter(), and update().

◆ _roomsHash

std::size_t rtp::client::scenes::LobbyScene::_roomsHash = 0
private

Hash of the last room list displayed.

Definition at line 83 of file LobbyScene.hpp.

Referenced by onEnter(), and update().

◆ _settings

Settings& rtp::client::scenes::LobbyScene::_settings
private

Reference to the application settings.

Definition at line 76 of file LobbyScene.hpp.

◆ _translationManager

TranslationManager& rtp::client::scenes::LobbyScene::_translationManager
private

Reference to the translation manager.

Definition at line 77 of file LobbyScene.hpp.

◆ _uiBuilt

bool rtp::client::scenes::LobbyScene::_uiBuilt = false
private

Tracks if the UI has been built at least once.

Definition at line 84 of file LobbyScene.hpp.

Referenced by onEnter(), and update().

◆ _uiFactory

graphics::UiFactory& rtp::client::scenes::LobbyScene::_uiFactory
private

UI Factory for creating UI components.

Definition at line 79 of file LobbyScene.hpp.

Referenced by buildUi().

◆ _uiRegistry

ecs::Registry& rtp::client::scenes::LobbyScene::_uiRegistry
private

Reference to the ECS registry.

Definition at line 75 of file LobbyScene.hpp.

Referenced by buildUi(), and update().

◆ _uiSelectedRoomId

uint32_t rtp::client::scenes::LobbyScene::_uiSelectedRoomId = 0
private

Currently selected room ID in the UI.

Definition at line 82 of file LobbyScene.hpp.

Referenced by buildUi().


The documentation for this class was generated from the following files: