]> git.localhorst.tv Git - blank.git/blobdiff - src/app/WorldState.hpp
output functions for SDL events
[blank.git] / src / app / WorldState.hpp
index 38f894420b717115c0cb049beb67c1f130b2b702..b48d1b9c0e71285012d7dc7bfbdde978a96ca38e 100644 (file)
@@ -1,9 +1,17 @@
 #ifndef BLANK_APP_WORLDSTATE_HPP_
 #define BLANK_APP_WORLDSTATE_HPP_
 
+#include "PreloadState.hpp"
 #include "State.hpp"
+#include "UnloadState.hpp"
 #include "../ai/Spawner.hpp"
+#include "../graphics/SkyBox.hpp"
+#include "../model/Skeletons.hpp"
 #include "../ui/Interface.hpp"
+#include "../world/BlockTypeRegistry.hpp"
+#include "../world/ChunkLoader.hpp"
+#include "../world/ChunkRenderer.hpp"
+#include "../world/Generator.hpp"
 #include "../world/World.hpp"
 
 
@@ -17,22 +25,36 @@ class WorldState
 public:
        WorldState(
                Environment &,
+               const Generator::Config &,
                const Interface::Config &,
                const World::Config &,
                const WorldSave &
        );
 
+       void OnEnter() override;
+
        void Handle(const SDL_Event &) override;
        void Update(int dt) override;
        void Render(Viewport &) override;
 
        World &GetWorld() noexcept { return world; }
+       Interface &GetInterface() noexcept { return interface; }
 
 private:
        Environment &env;
+       BlockTypeRegistry block_types;
        World world;
-       Spawner spawner;
        Interface interface;
+       Generator generator;
+       ChunkLoader chunk_loader;
+       ChunkRenderer chunk_renderer;
+       Skeletons skeletons;
+       Spawner spawner;
+
+       SkyBox sky;
+
+       PreloadState preload;
+       UnloadState unload;
 
 };