X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fserver%2FClientConnection.hpp;h=2089dd17c8eec85a7acf7e6e7d3d930f03946a5f;hb=b066e776622f96e906600a0c4a08de392bd03676;hp=2f03e67eca5bea2315b3b24602fa4f825e220ff7;hpb=38a4cffc0b6aa58e49d24c06aad7bee14cb6515d;p=blank.git diff --git a/src/server/ClientConnection.hpp b/src/server/ClientConnection.hpp index 2f03e67..2089dd1 100644 --- a/src/server/ClientConnection.hpp +++ b/src/server/ClientConnection.hpp @@ -16,6 +16,9 @@ namespace blank { + +class CompositeModel; + namespace server { class Server; @@ -44,13 +47,17 @@ public: /// send the previously prepared packet of non-default length std::uint16_t Send(std::size_t len); - void AttachPlayer(const Player &); + void AttachPlayer(Player &); void DetachPlayer(); - bool HasPlayer() const noexcept { return player.entity; } - Entity &PlayerEntity() noexcept { return *player.entity; } - const Entity &PlayerEntity() const noexcept { return *player.entity; } - ChunkIndex &PlayerChunks() noexcept { return *player.chunks; } - const ChunkIndex &PlayerChunks() const noexcept { return *player.chunks; } + bool HasPlayer() const noexcept { return player; } + Entity &PlayerEntity() noexcept { return player->GetEntity(); } + const Entity &PlayerEntity() const noexcept { return player->GetEntity(); } + ChunkIndex &PlayerChunks() noexcept { return player->GetChunks(); } + const ChunkIndex &PlayerChunks() const noexcept { return player->GetChunks(); } + + void SetPlayerModel(const CompositeModel &) noexcept; + bool HasPlayerModel() const noexcept; + const CompositeModel &GetPlayerModel() const noexcept; private: struct SpawnStatus { @@ -88,7 +95,8 @@ private: private: Server &server; Connection conn; - Player player; + Player *player; + const CompositeModel *player_model; std::list spawns; unsigned int confirm_wait;