11#include "Systems/NetworkSyncSystem.hpp"
21 ecs::Registry ®istry)
23 , _registry(registry) {};
25 void NetworkSyncSystem::update(
float dt)
30 void NetworkSyncSystem::bindSessionToEntity(uint32_t sessionId,
33 _sessionToEntity[sessionId] = entityId;
36 void NetworkSyncSystem::handleInput(uint32_t sessionId,
37 const net::Packet &packet)
39 net::InputPayload payload;
40 net::Packet tempPacket = packet;
41 tempPacket >> payload;
42 log::info(
"InputTick: session={} mask={}", sessionId,
43 (
int)payload.inputMask);
44 if (_sessionToEntity.find(sessionId) == _sessionToEntity.end()) {
48 uint32_t entityIndex = _sessionToEntity[sessionId];
49 ecs::Entity entity(entityIndex, 0);
52 _registry.get<ecs::components::server::InputComponent>();
54 auto &inputs = inputsRes->get();
55 if (inputs.has(entity)) {
56 inputs[entity].lastMask = inputs[entity].mask;
57 inputs[entity].mask = payload.inputMask;
62 ecs::components::server::InputComponent inputData{};
63 inputData.mask = payload.inputMask;
64 _registry.add<ecs::components::server::InputComponent>(entity,
68 void NetworkSyncSystem::handleDisconnect(uint32_t sessionId)
70 if (_sessionToEntity.find(sessionId) != _sessionToEntity.end()) {
71 uint32_t entityIndex = _sessionToEntity[sessionId];
72 ecs::Entity entity(entityIndex, 0);
73 _sessionToEntity.erase(sessionId);
74 log::info(
"Destroyed entity {} for disconnected session {}",
75 entityIndex, sessionId);
80 NetworkSyncSystem::handlePlayerConnection(uint32_t sessionId,
81 const net::Packet &packet)
83 net::ConnectPayload payload;
84 net::Packet tempPacket = packet;
85 tempPacket >> payload;
86 log::info(
"Player new connection [not logged]: session={}",
NetworkSyncSystem(ServerNetwork &network, ecs::Registry ®istry)
Constructor for NetworkSyncSystem.
File : GameManager.hpp License: MIT Author : Elias Josué HAJJAR LLAUQUEN elias-josue....