#include namespace blitz { namespace client { PlayerLeaveHandler::PlayerLeaveHandler(network::EnetConnection& a_Connection, EnttWorld& a_World) : protocol::PacketHandler(a_Connection, a_World) { m_Slot.Connect(m_Connection.OnPlayerLeave, this, &PlayerLeaveHandler::Handle); } void PlayerLeaveHandler::Handle(const protocol::data::PlayerLeave& a_PlayerLeave) { auto world = m_World.load(); entt::entity playerLeft; for (auto [player, playerInfo] : world->GetRegistry().view().each()) { if (playerInfo.m_PlayerId == a_PlayerLeave.m_PlayerId) { playerLeft = player; break; } } world->GetRegistry().destroy(playerLeft); } PlayerLeaveHandler::~PlayerLeaveHandler() {} } // namespace client } // namespace blitz