R-Type
R-Type project
RtypeNetworkManager.hpp
1 #pragma once
2 
3 #include "KapEngine.hpp"
4 #include "KapMirror/KapMirror.hpp"
5 #include "Dictionary.hpp"
6 #include "Messages.hpp"
7 
8 namespace RType {
10  private:
11  bool isServer = false;
12 
13  bool isGameStarted = false;
14 
16 
17  public:
19 
20  explicit RtypeNetworkManager(std::shared_ptr<KapEngine::GameObject> go, bool _isServer = false);
21  ~RtypeNetworkManager() = default;
22 
23  void onStart() override;
24 
25  void onClientConnected(const std::shared_ptr<KapMirror::NetworkConnection> &connection) override;
26 
27  void onClientDisconnected(const std::shared_ptr<KapMirror::NetworkConnection> &connection) override;
28 
29  void onServerClientConnected(const std::shared_ptr<KapMirror::NetworkConnection> &connection) override;
30 
31  void onServerClientDisconnected(const std::shared_ptr<KapMirror::NetworkConnection> &connection) override;
32 
33  private:
34  void registerClientHandlers();
35 
36  void onPlayerAuthorityMessage(const std::shared_ptr<KapMirror::NetworkConnectionToServer> &connection,
37  PlayerAuthorityMessage &message);
38 
39  void onErrorOnStartGameMessage(const std::shared_ptr<KapMirror::NetworkConnectionToServer> &connection,
40  ErrorOnStartGameMessage &message);
41 
42  void onPlayerStartGameMessage(const std::shared_ptr<KapMirror::NetworkConnectionToServer> &connection, StartGameMessage &message);
43 
44  void onClientPlayerPingRequest(const std::shared_ptr<KapMirror::NetworkConnectionToServer> &connection, PlayerPingRequest &request);
45 
46  void onPlayerPingResult(const std::shared_ptr<KapMirror::NetworkConnectionToServer> &connection, PlayerPingResult &request);
47 
48  void registerServerHandlers();
49 
50  void onPlayerInputMessage(const std::shared_ptr<KapMirror::NetworkConnectionToClient> &connection, PlayerInputMessage &message);
51 
52  void onPlayerPrepareShootMessage(const std::shared_ptr<KapMirror::NetworkConnectionToClient> &connection,
53  PlayerPrepareShootMessage &message);
54 
55  void onPlayerShootMessage(const std::shared_ptr<KapMirror::NetworkConnectionToClient> &connection, PlayerShootMessage &message);
56 
57  void onStartGameMessage(const std::shared_ptr<KapMirror::NetworkConnectionToClient> &connection, StartGameMessage &message);
58 
59  void sendErrorOnStartGame(const std::shared_ptr<KapMirror::NetworkConnectionToClient> &connection, const std::string &errorMessage);
60 
61  void onServerPlayerPingRequest(const std::shared_ptr<KapMirror::NetworkConnectionToClient> &connection, PlayerPingRequest &request);
62 
63  void startGame(const std::string &mapScriptPath, bool isSpawn);
64  };
65 } // namespace RType
RType::PlayerInputMessage
Definition: Messages.hpp:6
RType::RtypeNetworkManager::onClientConnected
void onClientConnected(const std::shared_ptr< KapMirror::NetworkConnection > &connection) override
This is invoked when the client is connected to a server.
Definition: RtypeNetworkManager.cpp:49
RType::RtypeNetworkManager::onStart
void onStart() override
call component start
Definition: RtypeNetworkManager.cpp:18
RType::RtypeNetworkManager
Definition: RtypeNetworkManager.hpp:9
RType::RtypeNetworkManager::onServerClientConnected
void onServerClientConnected(const std::shared_ptr< KapMirror::NetworkConnection > &connection) override
This is invoked when a client is connected to a server.
Definition: RtypeNetworkManager.cpp:176
RType::PlayerAuthorityMessage
Definition: Messages.hpp:40
RType::ErrorOnStartGameMessage
Definition: Messages.hpp:56
RType::RtypeNetworkManager::onServerClientDisconnected
void onServerClientDisconnected(const std::shared_ptr< KapMirror::NetworkConnection > &connection) override
This is invoked when a client is disconnected from a server.
Definition: RtypeNetworkManager.cpp:195
RType::PlayerPrepareShootMessage
Definition: Messages.hpp:24
RType::PlayerPingRequest
Definition: Messages.hpp:64
RType::RtypeNetworkManager::onClientDisconnected
void onClientDisconnected(const std::shared_ptr< KapMirror::NetworkConnection > &connection) override
This is invoked when the client is disconnected from a server.
Definition: RtypeNetworkManager.cpp:54
KapEngine::Dictionary
Definition: Dictionary.hpp:16
KapMirror::NetworkManager
Definition: NetworkManager.hpp:10
RType::PlayerShootMessage
Definition: Messages.hpp:32
RType::StartGameMessage
Definition: Messages.hpp:48
RType::PlayerPingResult
Definition: Messages.hpp:72