#pragma once #include #include namespace td { namespace server { class ServerState : public Server::State, private utils::SlotGuard { public: virtual void HandlePacket(PlayerID a_Id, const protocol::PacketBase& a_Packet) = 0; virtual void Update(float a_Delta) = 0; ServerState(Server& a_Server); virtual ~ServerState(); protected: void SendPacket(PlayerID a_Id, const protocol::PacketBase& a_Packet); void BroadcastPacket(const protocol::PacketBase& a_Packet); }; } // namespace server } // namespace td