8#ifndef R_TYPE_GAMESERVER_HPP
9#define R_TYPE_GAMESERVER_HPP
11#include "game/Game.hpp"
13#include <saturnity/Saturnity.hpp>
15namespace rtype::server {
16 using namespace rtype::network;
20 explicit GameServer(
const std::string &host, std::uint16_t tcpPort, std::uint16_t udpPort,
int maxPlayers);
26 const std::shared_ptr<sa::TCPServer> &getTcpServer()
const {
return _tcpServer; }
27 const std::shared_ptr<sa::UDPServer> &getUdpServer()
const {
return _udpServer; }
28 const std::shared_ptr<spdlog::logger> &getLogger()
const {
return _logger; }
30 void setTcpServer(
const std::shared_ptr<sa::TCPServer> &tcpServer) { _tcpServer = tcpServer; }
31 void setUdpServer(
const std::shared_ptr<sa::UDPServer> &udpServer) { _udpServer = udpServer; }
32 void setLogger(
const std::shared_ptr<spdlog::logger> &logger) { _logger = logger; }
35 std::shared_ptr<sa::PacketRegistry> _udpPacketRegistry;
36 std::shared_ptr<sa::PacketRegistry> _tcpPacketRegistry;
37 std::shared_ptr<sa::TCPServer> _tcpServer;
38 std::shared_ptr<sa::UDPServer> _udpServer;
39 std::shared_ptr<spdlog::logger> _logger;
41 std::uint16_t _tcpPort;
42 std::uint16_t _udpPort;
44 std::uint32_t _globalId;
48 std::unordered_map<std::uint32_t, std::shared_ptr<game::Player>> _players;
50 void registerTcpCallbacks();
51 void registerUdpCallbacks();
53 void registerTcpPacketHandlers();
54 void registerUdpPacketHandlers();
56 void onTcpClientConnected(ConnectionToClientPtr &client);
57 void onTcpClientDisconnected(ConnectionToClientPtr &client);
59 void onUdpClientConnected(ConnectionToClientPtr &client);
60 void onUdpClientDisconnected(ConnectionToClientPtr &client);
All packets used in the project.
Definition: C2SClientConnect.hpp:14
Definition: C2SClientDisconnecting.hpp:14
Definition: C2SPlayerHandshake.hpp:14
Definition: GameServer.hpp:18