send world to client

This commit is contained in:
2025-08-22 11:41:58 +02:00
parent 20acbc0499
commit 7d58b881b2
22 changed files with 217 additions and 107 deletions

View File

@@ -9,12 +9,12 @@ namespace client {
class GameState : public ClientState {
private:
std::shared_ptr<game::World> m_World;
game::WorldPtr m_World;
sim::ClientSimulation m_Simulation;
float m_CurrentLerp;
public:
GameState(Client& a_Client, const std::shared_ptr<game::World>& a_World, std::uint64_t a_StepTime);
GameState(Client& a_Client, const game::WorldPtr& a_World, std::uint64_t a_StepTime);
~GameState() {}
virtual void Update(float a_Delta) override;
@@ -23,6 +23,10 @@ class GameState : public ClientState {
return m_CurrentLerp;
}
game::WorldPtr GetWorld() const {
return m_World;
}
virtual void Handle(const protocol::packets::LockStepsPacket& a_LockStep) override;
virtual void Handle(const protocol::packets::LockStepResponsePacket& a_LockStep) override;
};

View File

@@ -0,0 +1,24 @@
#pragma once
#include <client/ClientState.h>
#include <td/game/World.h>
#include <td/simulation/ClientSimulation.h>
namespace td {
namespace client {
class LobbyState : public ClientState {
private:
std::shared_ptr<game::World> m_World;
public:
LobbyState(Client& a_Client);
~LobbyState();
virtual void Update(float a_Delta) override;
virtual void Handle(const protocol::packets::WorldHeaderPacket& a_Packet) override;
virtual void Handle(const protocol::packets::WorldDataPacket& a_Packet) override;
};
} // namespace client
} // namespace td

View File

@@ -12,7 +12,7 @@ class LoggingState : public ClientState {
LoggingState(Client& a_Client, const std::string& a_PlayerName);
~LoggingState();
virtual void Update(float a_Delta) override {}
virtual void Update(float a_Delta) override;
virtual void Handle(const protocol::packets::PlayerJoinPacket& a_Packet) override;
virtual void Handle(const protocol::packets::LoggingSuccessPacket& a_Packet) override;