R-Type
Distributed multiplayer game engine in C++
Loading...
Searching...
No Matches
Client.hpp
Go to the documentation of this file.
1/*
2** EPITECH PROJECT, 2025
3** Created by mael on 08/12/2025.
4** File description:
5** Client.hpp
6*/
7
8#pragma once
9
10#include <chrono>
11#include <future>
12#include <iostream>
13#include <memory>
14#include <string>
15#include <thread>
16#include "../common/Logger/Logger.hpp"
17#include "Core/EventBus/EventBus.hpp"
20#include "NetworkFactory.hpp"
21
40class Client {
41 public:
49 Client(const std::string &playerName, const std::string &host, uint16_t port, bool isSpectator = false);
50
59 Client(const std::string &playerName, const std::string &username, const std::string &password,
60 const std::string &host, uint16_t port);
61
65 ~Client();
66
71 bool initialize();
72
76 void run();
77
81 void stop();
82
86 void SetCredentials(const std::string &username, const std::string &password);
87
93 void SetServer(const std::string &host, uint16_t port);
94
99 bool Connect();
100
101 private:
106 bool connectToServer();
107
108 std::string _playerName;
109 std::string _username;
110 std::string _password;
111 std::string _serverHost;
112 uint16_t _serverPort;
114
115 std::unique_ptr<EventBus> _eventBus;
116 std::unique_ptr<Replicator> _replicator;
117 std::unique_ptr<GameLoop> _gameLoop;
118
119 bool _initialized = false;
120};
R-Type client application.
Definition Client.hpp:40
bool _initialized
Definition Client.hpp:119
uint16_t _serverPort
Definition Client.hpp:112
bool initialize()
Initialize client systems.
Definition Client.cpp:38
std::string _playerName
Definition Client.hpp:108
void SetServer(const std::string &host, uint16_t port)
Set server address and port.
Definition Client.cpp:79
std::unique_ptr< Replicator > _replicator
Definition Client.hpp:116
~Client()
Destructor - clean shutdown.
Definition Client.cpp:27
bool connectToServer()
Connect to server.
Definition Client.cpp:89
std::string _username
Definition Client.hpp:109
void stop()
Stop the client.
Definition Client.cpp:197
std::string _password
Definition Client.hpp:110
std::unique_ptr< GameLoop > _gameLoop
Definition Client.hpp:117
bool Connect()
Connect to the configured server.
Definition Client.cpp:85
std::string _serverHost
Definition Client.hpp:111
void SetCredentials(const std::string &username, const std::string &password)
Update credentials for next connection attempt.
Definition Client.cpp:74
bool _isSpectator
Definition Client.hpp:113
void run()
Run the client (Start Game Loop directly)
Definition Client.cpp:149
std::unique_ptr< EventBus > _eventBus
Definition Client.hpp:115