r-type  0.0.0
R-Type main
Loading...
Searching...
No Matches
gme::ServerScene Class Referencefinal

Scene for configuring and establishing server connection. More...

#include <ServerScene.hpp>

+ Inheritance diagram for gme::ServerScene:
+ Collaboration diagram for gme::ServerScene:

Public Member Functions

 ServerScene (eng::id assignedId, const std::shared_ptr< eng::IRenderer > &renderer, const std::string &host, const std::string &port, const std::string &playerName)
 Constructor.
 
 ~ServerScene () override=default
 Destructor.
 
 ServerScene (const ServerScene &other)=delete
 Deleted copy constructor (non-copyable)
 
ServerSceneoperator= (const ServerScene &other)=delete
 Deleted copy assignment operator (non-copyable)
 
 ServerScene (ServerScene &&other)=delete
 Deleted move constructor (non-movable)
 
ServerSceneoperator= (ServerScene &&other)=delete
 Deleted move assignment operator (non-movable)
 
void update (float dt, const eng::WindowSize &size) override
 Update the scene (called each frame)
 
void event (const eng::Event &event) override
 Handle input events.
 
bool & playMusic ()
 Get music playback state.
 
- Public Member Functions inherited from eng::AScene
 AScene (const id assignedId)
 
 ~AScene () override=default
 
 AScene (const AScene &other)=delete
 
 AScene (AScene &&other)=delete
 
ASceneoperator= (const AScene &other)=delete
 
ASceneoperator= (AScene &&other)=delete
 
std::string & getName () override
 
id getId () const override
 
ecs::RegistrygetRegistry () override
 
void setName (const std::string &newName) override
 
void addSystem (std::unique_ptr< ecs::ISystem > system) override
 
void updateSystems (const float dt) override
 
- Public Member Functions inherited from eng::IScene
virtual ~IScene ()=default
 

Public Attributes

std::function< void(const std::string &playerName, const std::string &serverIP, const std::string &serverPort)> onConnect
 Callback triggered when player attempts to connect.
 
std::function< void()> onBackToMenu
 Callback triggered when player returns to main menu.
 

Private Member Functions

void connectServer (const std::string &playerName, const std::string &serverIP, const std::string &serverPort) const
 Initiate server connection with provided settings.
 
std::string & getCurrentEditField ()
 Get reference to the currently selected input field.
 
void updateValueDisplay ()
 Update the visual display of input values.
 

Private Attributes

size_t m_selectedIndex = 0
 Currently selected menu option index.
 
float m_animationTime = 0.0f
 Animation timer for visual effects.
 
const std::vector< std::string > m_serverOptions
 
std::string m_playerName
 Player name input field.
 
std::string m_host
 Server host/IP input field.
 
std::string m_port
 Server port input field.
 
ecs::Entity m_playerNameValueEntity = 0
 Text entity displaying player name.
 
ecs::Entity m_serverIPValueEntity = 0
 Text entity displaying server IP.
 
ecs::Entity m_serverPortValueEntity = 0
 Text entity displaying server port.
 
bool m_playMusic = false
 Music playback state flag.
 

Additional Inherited Members

- Protected Attributes inherited from eng::AScene
utl::EventBusm_eventBus = utl::EventBus::getInstance()
 
std::uint32_t m_eventComponentId = 0
 

Detailed Description

Scene for configuring and establishing server connection.

This scene provides a user interface for players to:

  • Enter their player name
  • Specify server IP address
  • Set server port number
  • Connect to the game server
  • Navigate back to the main menu

The scene uses a menu-based navigation system with keyboard input and visual feedback for the selected option.

Definition at line 33 of file ServerScene.hpp.

Constructor & Destructor Documentation

◆ ServerScene() [1/3]

gme::ServerScene::ServerScene ( eng::id assignedId,
const std::shared_ptr< eng::IRenderer > & renderer,
const std::string & host,
const std::string & port,
const std::string & playerName )

Constructor.

Parameters
assignedIdScene identifier
rendererShared pointer to the renderer interface
hostDefault server host/IP address
portDefault server port
playerNameDefault player name

Initializes the scene with default connection parameters

Definition at line 95 of file ServerScene.cpp.

References eng::Color::a, eng::Color::b, utl::Config::Color::CYAN_ELECTRIC, utl::Path::Font::FONTS_RTYPE, eng::Color::g, utl::Config::Color::GRAY_BLUE_SUBTLE, ecs::IComponent::id, eng::AScene::m_eventBus, eng::AScene::m_eventComponentId, m_host, m_playerName, m_playerNameValueEntity, m_port, m_serverIPValueEntity, m_serverOptions, m_serverPortValueEntity, eng::Color::r, utl::EventBus::registerComponent(), and utl::Config::Color::TEXT_VALUE_COLOR.

+ Here is the call graph for this function:

◆ ~ServerScene()

gme::ServerScene::~ServerScene ( )
overridedefault

Destructor.

◆ ServerScene() [2/3]

gme::ServerScene::ServerScene ( const ServerScene & other)
delete

Deleted copy constructor (non-copyable)

◆ ServerScene() [3/3]

gme::ServerScene::ServerScene ( ServerScene && other)
delete

Deleted move constructor (non-movable)

Member Function Documentation

◆ connectServer()

void gme::ServerScene::connectServer ( const std::string & playerName,
const std::string & serverIP,
const std::string & serverPort ) const
private

Initiate server connection with provided settings.

Parameters
playerNamePlayer's display name
serverIPServer IP address or hostname
serverPortServer port number as string

Validates inputs and triggers the onConnect callback

Definition at line 326 of file ServerScene.cpp.

References rnp::Serializer::getData(), utl::NETWORK_CLIENT, utl::REQUEST_CONNECT, and rnp::Serializer::writeString().

+ Here is the call graph for this function:

◆ event()

void gme::ServerScene::event ( const eng::Event & event)
overridevirtual

Handle input events.

Parameters
eventInput event (keyboard, mouse, etc.)

Processes user input for menu navigation and text entry

Implements eng::IScene.

Definition at line 221 of file ServerScene.cpp.

References eng::Delete, eng::Down, eng::Enter, eng::Escape, eng::Event::key, eng::KeyPressed, eng::KeyReleased, keyToChar(), eng::Event::type, and eng::Up.

+ Here is the call graph for this function:

◆ getCurrentEditField()

std::string & gme::ServerScene::getCurrentEditField ( )
private

Get reference to the currently selected input field.

Returns
Reference to the string being edited

Definition at line 293 of file ServerScene.cpp.

◆ operator=() [1/2]

ServerScene & gme::ServerScene::operator= ( const ServerScene & other)
delete

Deleted copy assignment operator (non-copyable)

◆ operator=() [2/2]

ServerScene & gme::ServerScene::operator= ( ServerScene && other)
delete

Deleted move assignment operator (non-movable)

◆ playMusic()

bool & gme::ServerScene::playMusic ( )
inline

Get music playback state.

Returns
Reference to music playback flag

Definition at line 92 of file ServerScene.hpp.

References m_playMusic.

◆ update()

void gme::ServerScene::update ( float dt,
const eng::WindowSize & size )
overridevirtual

Update the scene (called each frame)

Parameters
dtDelta time since last frame
sizeCurrent window size

Handles animation updates and UI state changes

Implements eng::IScene.

Definition at line 186 of file ServerScene.cpp.

References eng::Color::b, eng::Color::g, utl::Config::Color::GRAY_BLUE_SUBTLE, and eng::Color::r.

◆ updateValueDisplay()

void gme::ServerScene::updateValueDisplay ( )
private

Update the visual display of input values.

Refreshes text entities to reflect current input field values

Definition at line 306 of file ServerScene.cpp.

Member Data Documentation

◆ m_animationTime

float gme::ServerScene::m_animationTime = 0.0f
private

Animation timer for visual effects.

Menu options displayed to the player

Definition at line 109 of file ServerScene.hpp.

◆ m_host

std::string gme::ServerScene::m_host
private

Server host/IP input field.

Definition at line 126 of file ServerScene.hpp.

Referenced by ServerScene().

◆ m_playerName

std::string gme::ServerScene::m_playerName
private

Player name input field.

Definition at line 125 of file ServerScene.hpp.

Referenced by ServerScene().

◆ m_playerNameValueEntity

ecs::Entity gme::ServerScene::m_playerNameValueEntity = 0
private

Text entity displaying player name.

Definition at line 129 of file ServerScene.hpp.

Referenced by ServerScene().

◆ m_playMusic

bool gme::ServerScene::m_playMusic = false
private

Music playback state flag.

Definition at line 132 of file ServerScene.hpp.

Referenced by playMusic().

◆ m_port

std::string gme::ServerScene::m_port
private

Server port input field.

Definition at line 127 of file ServerScene.hpp.

Referenced by ServerScene().

◆ m_selectedIndex

size_t gme::ServerScene::m_selectedIndex = 0
private

Currently selected menu option index.

Definition at line 108 of file ServerScene.hpp.

◆ m_serverIPValueEntity

ecs::Entity gme::ServerScene::m_serverIPValueEntity = 0
private

Text entity displaying server IP.

Definition at line 130 of file ServerScene.hpp.

Referenced by ServerScene().

◆ m_serverOptions

const std::vector<std::string> gme::ServerScene::m_serverOptions
private
Initial value:
= {"Player Name", "Server IP", "Server Port", "Connect",
"Back"}

Definition at line 112 of file ServerScene.hpp.

Referenced by ServerScene().

◆ m_serverPortValueEntity

ecs::Entity gme::ServerScene::m_serverPortValueEntity = 0
private

Text entity displaying server port.

Definition at line 131 of file ServerScene.hpp.

Referenced by ServerScene().

◆ onBackToMenu

std::function<void()> gme::ServerScene::onBackToMenu

Callback triggered when player returns to main menu.

Definition at line 105 of file ServerScene.hpp.

◆ onConnect

std::function<void(const std::string &playerName, const std::string &serverIP, const std::string &serverPort)> gme::ServerScene::onConnect

Callback triggered when player attempts to connect.

Function signature: (playerName, serverIP, serverPort) -> void

Definition at line 100 of file ServerScene.hpp.


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