X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fserver%2FServer.hpp;h=c12b86aa75ba0b4d9e17e726aab2c54c44474491;hb=9da6ac5e93d79e79658a95d5f6efe42146873583;hp=8bbb778a91b358a51cbb3d836cf64423fd4952a5;hpb=8ae45b6555d55f301f83daf8c1337d332d8305ab;p=blank.git diff --git a/src/server/Server.hpp b/src/server/Server.hpp index 8bbb778..c12b86a 100644 --- a/src/server/Server.hpp +++ b/src/server/Server.hpp @@ -1,27 +1,30 @@ #ifndef BLANK_SERVER_SERVER_HPP #define BLANK_SERVER_SERVER_HPP +#include "../app/Config.hpp" +#include "../world/World.hpp" +#include "../world/WorldManipulator.hpp" + #include #include namespace blank { -class World; +class ChunkIndex; +class CompositeModel; +class Player; +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 World::Config &, const WorldSave &); ~Server(); void Handle(); @@ -32,6 +35,15 @@ 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: void HandlePacket(const UDPpacket &); @@ -44,6 +56,9 @@ private: std::list clients; World &world; + ChunkIndex &spawn_index; + const WorldSave &save; + const CompositeModel *player_model; };