#define BLANK_SERVER_SERVER_HPP
#include "../app/Config.hpp"
+#include "../world/World.hpp"
#include "../world/WorldManipulator.hpp"
#include <list>
namespace blank {
-class CompositeModel;
-class World;
+class ChunkIndex;
+class Model;
+class Player;
class WorldSave;
namespace server {
: public WorldManipulator {
public:
- Server(const Config::Network &, World &, const WorldSave &);
+ Server(const Config::Network &, World &, const World::Config &, const WorldSave &);
~Server();
void Handle();
World &GetWorld() noexcept { return world; }
const WorldSave &GetWorldSave() noexcept { return save; }
- void SetPlayerModel(const CompositeModel &) noexcept;
+ void SetPlayerModel(const Model &) noexcept;
bool HasPlayerModel() const noexcept;
- const CompositeModel &GetPlayerModel() const noexcept;
+ const Model &GetPlayerModel() const noexcept;
+
+ Player *JoinPlayer(const std::string &name);
void SetBlock(Chunk &, int, const Block &) override;
std::list<ClientConnection> clients;
World &world;
+ ChunkIndex &spawn_index;
const WorldSave &save;
- const CompositeModel *player_model;
+ const Model *player_model;
};