X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fserver%2FServerState.hpp;fp=src%2Fserver%2FServerState.hpp;h=8f564ab5105c3f0d7f2220fa2f5e17b669c0be4c;hb=8ae45b6555d55f301f83daf8c1337d332d8305ab;hp=0000000000000000000000000000000000000000;hpb=7fd76e64de47f564117b9e6f73f1482d93842108;p=blank.git diff --git a/src/server/ServerState.hpp b/src/server/ServerState.hpp new file mode 100644 index 0000000..8f564ab --- /dev/null +++ b/src/server/ServerState.hpp @@ -0,0 +1,54 @@ +#ifndef BLANK_SERVER_SERVERSTATE_HPP_ +#define BLANK_SERVER_SERVERSTATE_HPP_ + +#include "Server.hpp" +#include "../ai/Spawner.hpp" +#include "../app/IntervalTimer.hpp" +#include "../app/State.hpp" +#include "../model/Skeletons.hpp" +#include "../world/BlockTypeRegistry.hpp" +#include "../world/ChunkLoader.hpp" +#include "../world/Generator.hpp" +#include "../world/World.hpp" + + +namespace blank { + +class HeadlessEnvironment; +class WorldSave; + +namespace server { + +class ServerState +: public State { + +public: + ServerState( + HeadlessEnvironment &, + const Generator::Config &, + const World::Config &, + const WorldSave &, + const Server::Config & + ); + + void Handle(const SDL_Event &) override; + void Update(int dt) override; + void Render(Viewport &) override; + +private: + HeadlessEnvironment &env; + BlockTypeRegistry block_types; + World world; + Generator generator; + ChunkLoader chunk_loader; + Skeletons skeletons; + Spawner spawner; + Server server; + IntervalTimer loop_timer; + +}; + +} +} + +#endif