#pragma once
#include
#include |
namespace td {
namespace client {
class IClientSocket;
class PlayerManager : public protocol::PacketHandler {
private:
std::map m_Players;
std::shared_ptr m_Socket;
public:
utils::Signal OnPlayerJoin;
utils::Signal OnPlayerLeave;
PlayerManager(const std::shared_ptr& a_Socket);
~PlayerManager();
PlayerInfo GetPlayer(PlayerID a_Player);
auto begin() const {
return m_Players.begin();
}
auto end() const {
return m_Players.end();
}
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
|