8 #ifndef RTYPESERVER_HPP_
9 #define RTYPESERVER_HPP_
21 using componentList = std::map<std::size_t, std::map<RType::Protocol::ComponentType, std::vector<bool>>>;
47 void spawnMob(std::chrono::steady_clock::time_point &now);
70 uint16_t
id,
GameEngine::Rectf collider, std::size_t layer, asio::ip::udp::endpoint &endpoint);
86 std::vector<bool> listDisplayTexture,
const GameEngine::Entity &entity, asio::ip::udp::endpoint &endpoint);
122 std::pair<
const uint16_t, std::pair<bool, std::chrono::steady_clock::time_point>> playerTimer,
123 std::chrono::steady_clock::time_point &now);
131 asio::io_context _IOContext;
132 asio::signal_set _signal;
135 std::map<unsigned short, asio::ip::udp::endpoint> _listClients;
137 std::map<uint16_t, uint8_t> _listIdType;
138 std::map<uint16_t, uint8_t> _listLifePoints;
139 std::map<uint16_t, uint8_t> _listIndexTexture;
140 std::map<unsigned short, componentList> _listInfosComponent;
141 std::map<std::string, std::chrono::steady_clock::time_point> _timers;
142 std::map<uint16_t, std::pair<bool, std::chrono::steady_clock::time_point>> _timerLifePoint;
143 std::vector<std::size_t> _nbPlayerTexture;
144 std::map<uint16_t, std::pair<bool, std::chrono::steady_clock::time_point>> _chargedAttackTimer;
145 std::size_t _nbPlayers;
149 std::vector<uint8_t> _inputsType;
std::map< std::size_t, std::map< RType::Protocol::ComponentType, std::vector< bool > >> componentList
Definition: RTypeServer.hpp:21
Entity class for the game engine.
Definition: Entity.hpp:18
Game engine class, will manage all the necessary classes for the game.
Definition: GameEngine.hpp:40
Definition: RTypeServer.hpp:26
void sendControllableInformation(GameEngine::Entity &entity, unsigned short port)
Definition: HandlingConnection.cpp:13
componentList setEntitiesComponent()
Definition: UpdateGame.cpp:68
void handleDestroy(struct RType::Event event)
Function that will handle the disconnexion of a client.
Definition: HandlingDestroy.cpp:25
void playerDamageCallback(const std::size_t &entityId, SparseArray< GameEngine::CollisionComponent > &collisions, SparseArray< GameEngine::TransformComponent > &transforms)
Definition: Callback.cpp:105
void setGameEngineComponent()
Definition: SetGameEngine.cpp:43
void handleMove(struct RType::Protocol::MoveData moveInfo)
Function that will handle the move from a client.
Definition: HandlingMove.cpp:13
void sendCollisionComponent(uint16_t id, GameEngine::Rectf collider, std::size_t layer, asio::ip::udp::endpoint &endpoint)
Definition: HandlingCollision.cpp:26
void saveHighScore()
Definition: RTypeServer.cpp:68
~RTypeServer()
Definition: RTypeServer.cpp:33
void handleEvent()
Function that will handle every event from the udp server.
Definition: HandlingEvent.cpp:12
RTypeServer(unsigned short port=8080)
Definition: RTypeServer.cpp:17
void setGameEngine()
Definition: SetGameEngine.cpp:72
void setupGame()
Definition: SetupGame.cpp:13
void sendDestroyInfo(struct RType::Protocol::EntityIdData entity)
Definition: HandlingDestroy.cpp:13
void setTimers()
Definition: Timer.cpp:12
void broadcastTextureComponent()
Definition: HandlingTexture.cpp:59
void broadcastInformation()
Definition: UpdateGame.cpp:96
void broadcastTransformComponent()
Definition: HandlingTransform.cpp:29
void handleConnexion(struct RType::Event event)
Function that will handle the connexion of a client.
Definition: HandlingConnection.cpp:24
void setPrefab()
Definition: SetGameEngine.cpp:23
void handlingTimers()
Definition: Timer.cpp:22
void handlingDamage(std::size_t entityId, std::size_t i, SparseArray< GameEngine::CollisionComponent > &collisions)
Definition: Callback.cpp:15
GameEngine::Vector2< float > handlingMovement(GameEngine::TransformComponent &transform, struct RType::Protocol::InputData inputInfo)
Definition: HandlingInput.cpp:13
void spawnMob(std::chrono::steady_clock::time_point &now)
Definition: SpawnMob.cpp:34
void setDestroyCallback()
Definition: HandlingDestroy.cpp:80
void handleDestroyCallback(std::size_t &id)
Definition: HandlingDestroy.cpp:71
void handlingLifePoint(std::size_t entityId, std::size_t id)
Definition: Callback.cpp:86
std::size_t findEntity(const std::size_t &networkId)
void destroyEntityCallback(const std::size_t &entityId, SparseArray< GameEngine::CollisionComponent > &collisions, SparseArray< GameEngine::TransformComponent > &transforms)
Definition: Callback.cpp:32
void handleImmunity(std::chrono::steady_clock::time_point &now)
Definition: Immunity.cpp:12
void checkSendingTexture(std::vector< bool > listDisplayTexture, const GameEngine::Entity &entity, asio::ip::udp::endpoint &endpoint)
Definition: HandlingTexture.cpp:48
void setGameEngineCallback()
Definition: SetGameEngine.cpp:41
void sendScore(unsigned short port)
Definition: UpdateGame.cpp:12
void sendTransformComponent(uint16_t id, GameEngine::Vector2< float > position, GameEngine::Vector2< float > velocity, asio::ip::udp::endpoint &endpoint)
Definition: HandlingTransform.cpp:13
void handleCollisionResponse(struct RType::Event event)
Definition: HandlingCollision.cpp:13
void sendTextureComponent(uint16_t id, std::size_t index, GameEngine::TextureComponent &texture, asio::ip::udp::endpoint &endpoint)
Definition: HandlingTexture.cpp:26
bool searchEntity(const std::size_t &networkId)
void broadcastCollisionComponent()
Definition: HandlingCollision.cpp:52
void handlingEndGame()
Definition: RTypeServer.cpp:43
void handleShoot(struct RType::Protocol::ShootData shootInfo)
Definition: HandlingShoot.cpp:46
void startNetwork(bool &isRunning)
Function that will start the Network in a thread.
Definition: RTypeServer.cpp:35
void broadcastEntityInformation(const GameEngine::Entity &entity)
Definition: UpdateGame.cpp:43
void handleShootType(const std::string &typeShootString, struct RType::Protocol::ShootData shootData, RType::TextureType typeShoot)
Definition: HandlingShoot.cpp:13
void setGameEngineSystem()
Definition: SetGameEngine.cpp:54
void checkCollisionComponent(GameEngine::CollisionComponent &collision, std::size_t i)
Definition: HandlingCollision.cpp:42
void handleInput(struct RType::Event event)
Definition: HandlingInput.cpp:29
void handleTextureResponse(struct RType::Event event)
Definition: HandlingTexture.cpp:12
void updateComponentInformation(GameEngine::Entity &entity, RType::TextureType entityType)
Definition: UpdateGame.cpp:22
void spawnEntityMob(const std::string &mob, RType::TextureType mobType)
Definition: SpawnMob.cpp:12
void playerCollisionCallback(const std::size_t &entityId, SparseArray< GameEngine::CollisionComponent > &collisions, SparseArray< GameEngine::TransformComponent > &transforms)
Definition: Callback.cpp:64
void gameLoop()
GameLoop to run the game.
Definition: RTypeServer.cpp:84
void setImmunity(std::chrono::duration< float > timerInvincibility, std::pair< const uint16_t, std::pair< bool, std::chrono::steady_clock::time_point >> playerTimer, std::chrono::steady_clock::time_point &now)
UdpServer Class that create a UDP server that client can connect to communicate.
Definition: UdpServer.hpp:27
Definition: ClientSession.hpp:16
TextureType
Definition: RType.hpp:28
Definition: CollisionComponent.hpp:17
Definition: TextureComponent.hpp:16
Definition: Protocol.hpp:63
Definition: Protocol.hpp:124
Definition: Protocol.hpp:133