]> git.localhorst.tv Git - blank.git/blobdiff - src/server/ServerState.hpp
move server and client stuff around
[blank.git] / src / server / ServerState.hpp
diff --git a/src/server/ServerState.hpp b/src/server/ServerState.hpp
new file mode 100644 (file)
index 0000000..8f564ab
--- /dev/null
@@ -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