Files
Tower-Defense2/include/client/PlayerManager.h
2025-08-21 20:51:13 +02:00

32 lines
790 B
C++

#pragma once
#include <td/protocol/packet/Packets.h>
#include <td/misc/Signal.h>
namespace td {
namespace client {
class IClientSocket;
class PlayerManager : public protocol::PacketHandler {
private:
std::map<PlayerID, PlayerInfo> m_Players;
std::shared_ptr<IClientSocket> m_Socket;
public:
utils::Signal<const PlayerInfo&> OnPlayerJoin;
utils::Signal<PlayerID> OnPlayerLeave;
PlayerManager(const std::shared_ptr<IClientSocket>& a_Socket);
~PlayerManager();
PlayerInfo GetPlayer(PlayerID a_Player);
virtual void Handle(const protocol::packets::PlayerJoinPacket&) override;
virtual void Handle(const protocol::packets::PlayerListPacket&) override;
virtual void Handle(const protocol::packets::PlayerLeavePacket&) override;
};
} // namespace client
} // namespace td