]> git.localhorst.tv Git - blank.git/blobdiff - src/app/WorldState.hpp
avoid library rand()
[blank.git] / src / app / WorldState.hpp
index e4edd121cc664fa45e4fa713628891dbe724ab32..d47024ff6633ed1fb65cb07dd29d1c8ba6ce2080 100644 (file)
@@ -1,9 +1,13 @@
 #ifndef BLANK_APP_WORLDSTATE_HPP_
 #define BLANK_APP_WORLDSTATE_HPP_
 
+#include "PreloadState.hpp"
 #include "State.hpp"
+#include "UnloadState.hpp"
 #include "../ai/Spawner.hpp"
 #include "../ui/Interface.hpp"
+#include "../world/BlockTypeRegistry.hpp"
+#include "../world/ChunkRenderer.hpp"
 #include "../world/World.hpp"
 
 
@@ -18,21 +22,30 @@ public:
        WorldState(
                Environment &,
                const Interface::Config &,
-               const World::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;
+       ChunkRenderer chunk_renderer;
        Spawner spawner;
        Interface interface;
 
+       PreloadState preload;
+       UnloadState unload;
+
 };
 
 }