Files
Tower-Defense2/include/client/IClientState.h
2025-08-08 13:24:50 +02:00

34 lines
641 B
C++

#pragma once
#include <client/IClientSocket.h>
#include <td/misc/SlotGuard.h>
namespace td {
namespace client {
class Client;
class IClientState : private utils::SlotGuard {
public:
virtual void HandlePacket(const protocol::PacketBase& a_Packet) = 0;
virtual void Update(float a_Delta) = 0;
IClientState();
virtual ~IClientState();
protected:
void SendPacket(const protocol::PacketBase& a_Packet);
void SetNewState(const std::shared_ptr<IClientState>& a_NewState);
virtual void Init() {}
private:
Client* m_Client;
void SetClient(Client* a_Client);
friend class Client;
};
} // namespace server
} // namespace td