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) | |
| ServerScene & | operator= (const ServerScene &other)=delete |
| Deleted copy assignment operator (non-copyable) | |
| ServerScene (ServerScene &&other)=delete | |
| Deleted move constructor (non-movable) | |
| ServerScene & | operator= (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 | |
| AScene & | operator= (const AScene &other)=delete |
| AScene & | operator= (AScene &&other)=delete |
| std::string & | getName () override |
| id | getId () const override |
| ecs::Registry & | getRegistry () 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::EventBus & | m_eventBus = utl::EventBus::getInstance() |
| std::uint32_t | m_eventComponentId = 0 |
Scene for configuring and establishing server connection.
This scene provides a user interface for players to:
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.
| 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.
| assignedId | Scene identifier |
| renderer | Shared pointer to the renderer interface |
| host | Default server host/IP address |
| port | Default server port |
| playerName | Default 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:
|
overridedefault |
Destructor.
|
delete |
Deleted copy constructor (non-copyable)
|
delete |
Deleted move constructor (non-movable)
|
private |
Initiate server connection with provided settings.
| playerName | Player's display name |
| serverIP | Server IP address or hostname |
| serverPort | Server 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:
|
overridevirtual |
Handle input events.
| event | Input 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:
|
private |
Get reference to the currently selected input field.
Definition at line 293 of file ServerScene.cpp.
|
delete |
Deleted copy assignment operator (non-copyable)
|
delete |
Deleted move assignment operator (non-movable)
|
inline |
Get music playback state.
Definition at line 92 of file ServerScene.hpp.
References m_playMusic.
|
overridevirtual |
Update the scene (called each frame)
| dt | Delta time since last frame |
| size | Current 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.
|
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.
|
private |
Animation timer for visual effects.
Menu options displayed to the player
Definition at line 109 of file ServerScene.hpp.
|
private |
Server host/IP input field.
Definition at line 126 of file ServerScene.hpp.
Referenced by ServerScene().
|
private |
Player name input field.
Definition at line 125 of file ServerScene.hpp.
Referenced by ServerScene().
|
private |
Text entity displaying player name.
Definition at line 129 of file ServerScene.hpp.
Referenced by ServerScene().
|
private |
Music playback state flag.
Definition at line 132 of file ServerScene.hpp.
Referenced by playMusic().
|
private |
Server port input field.
Definition at line 127 of file ServerScene.hpp.
Referenced by ServerScene().
|
private |
Currently selected menu option index.
Definition at line 108 of file ServerScene.hpp.
|
private |
Text entity displaying server IP.
Definition at line 130 of file ServerScene.hpp.
Referenced by ServerScene().
|
private |
Definition at line 112 of file ServerScene.hpp.
Referenced by ServerScene().
|
private |
Text entity displaying server port.
Definition at line 131 of file ServerScene.hpp.
Referenced by ServerScene().
| std::function<void()> gme::ServerScene::onBackToMenu |
Callback triggered when player returns to main menu.
Definition at line 105 of file ServerScene.hpp.
| 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.