]> git.localhorst.tv Git - blank.git/blobdiff - src/server/Server.hpp
merge common parts of pre- and unload states
[blank.git] / src / server / Server.hpp
index 1a4c0b4f44b9c84de2cda7530737db6c1acdc80d..c12b86aa75ba0b4d9e17e726aab2c54c44474491 100644 (file)
@@ -2,6 +2,7 @@
 #define BLANK_SERVER_SERVER_HPP
 
 #include "../app/Config.hpp"
+#include "../world/World.hpp"
 #include "../world/WorldManipulator.hpp"
 
 #include <list>
 
 namespace blank {
 
+class ChunkIndex;
 class CompositeModel;
-class World;
+class Player;
+class WorldSave;
 
 namespace server {
 
@@ -21,7 +24,7 @@ class Server
 : public WorldManipulator {
 
 public:
-       Server(const Config::Network &, World &);
+       Server(const Config::Network &, World &, const World::Config &, const WorldSave &);
        ~Server();
 
        void Handle();
@@ -32,11 +35,14 @@ public:
        UDPpacket &GetPacket() noexcept { return serv_pack; }
 
        World &GetWorld() noexcept { return world; }
+       const WorldSave &GetWorldSave() noexcept { return save; }
 
        void SetPlayerModel(const CompositeModel &) noexcept;
        bool HasPlayerModel() const noexcept;
        const CompositeModel &GetPlayerModel() const noexcept;
 
+       Player *JoinPlayer(const std::string &name);
+
        void SetBlock(Chunk &, int, const Block &) override;
 
 private:
@@ -50,6 +56,8 @@ private:
        std::list<ClientConnection> clients;
 
        World &world;
+       ChunkIndex &spawn_index;
+       const WorldSave &save;
        const CompositeModel *player_model;
 
 };