30 lines
793 B
C++
30 lines
793 B
C++
#include <client/handlers/PlayerLeaveHandler.h>
|
|
|
|
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<PlayerInfoComponent>().each()) {
|
|
if (playerInfo.m_PlayerId == a_PlayerLeave.m_PlayerId) {
|
|
playerLeft = player;
|
|
break;
|
|
}
|
|
}
|
|
|
|
world->GetRegistry().destroy(playerLeft);
|
|
}
|
|
|
|
PlayerLeaveHandler::~PlayerLeaveHandler() {}
|
|
|
|
} // namespace client
|
|
} // namespace blitz
|