34 lines
641 B
C++
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
|