]> git.localhorst.tv Git - blank.git/blobdiff - src/server/Server.hpp
store players in world save
[blank.git] / src / server / Server.hpp
index bf2399180111354191c2a922bfe6754c84464ac7..372a947ef65fe0e14c1aa209d091036fcd47ed6b 100644 (file)
@@ -1,6 +1,9 @@
 #ifndef BLANK_SERVER_SERVER_HPP
 #define BLANK_SERVER_SERVER_HPP
 
+#include "../app/Config.hpp"
+#include "../world/WorldManipulator.hpp"
+
 #include <list>
 #include <SDL_net.h>
 
@@ -9,20 +12,17 @@ namespace blank {
 
 class CompositeModel;
 class World;
+class WorldSave;
 
 namespace server {
 
 class ClientConnection;
 
-class Server {
-
-public:
-       struct Config {
-               Uint16 port = 12354;
-       };
+class Server
+: public WorldManipulator {
 
 public:
-       Server(const Config &, World &);
+       Server(const Config::Network &, World &, const WorldSave &);
        ~Server();
 
        void Handle();
@@ -33,11 +33,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;
 
+       void SetBlock(Chunk &, int, const Block &) override;
+
 private:
        void HandlePacket(const UDPpacket &);
 
@@ -49,6 +52,7 @@ private:
        std::list<ClientConnection> clients;
 
        World &world;
+       const WorldSave &save;
        const CompositeModel *player_model;
 
 };