+ const WorldSave &GetWorldSave() noexcept { return save; }
+
+ void SetPlayerModel(const Model &) noexcept;
+ bool HasPlayerModel() const noexcept;
+ const Model &GetPlayerModel() const noexcept;
+
+ Player *JoinPlayer(const std::string &name);
+
+ void SetBlock(Chunk &, int, const Block &) override;
+
+ /// send message to all connected clients
+ void DistributeMessage(std::uint8_t type, std::uint32_t ref, const std::string &msg);