- 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 !!input; }
+ Entity &PlayerEntity() noexcept { return input->GetPlayer().GetEntity(); }
+ const Entity &PlayerEntity() const noexcept { return input->GetPlayer().GetEntity(); }
+ ChunkIndex &PlayerChunks() noexcept { return input->GetPlayer().GetChunks(); }
+ const ChunkIndex &PlayerChunks() const noexcept { return input->GetPlayer().GetChunks(); }
+
+ void SetPlayerModel(const CompositeModel &) noexcept;
+ bool HasPlayerModel() const noexcept;
+ const CompositeModel &GetPlayerModel() const noexcept;
+
+ bool ChunkInRange(const glm::ivec3 &) const noexcept;