#pragma once #include #include #include namespace td { namespace server { class GameStateHandler; class GameState : public ServerState { private: std::shared_ptr m_World; sim::ServerSimulation m_Simulation; float m_Time; public: GameState(Server& a_Server, const std::shared_ptr& a_World); ~GameState() {} virtual void HandlePacket(PlayerID a_Id, const protocol::PacketBase& a_Packet) override; virtual void Update(float a_Delta) override; virtual void OnPlayerJoin(PlayerID a_Id, const td::PlayerInfo& a_Info) override; friend class GameStateHandler; }; } // namespace server } // namespace td