]> git.localhorst.tv Git - blank.git/blobdiff - src/world/ChunkLoader.hpp
set and display block type labels
[blank.git] / src / world / ChunkLoader.hpp
index b1d0c7b9e1e6272059b70f5f2920cb881c848f41..98b352fbc6e228c08b25c75e15954f01a5652184 100644 (file)
@@ -2,6 +2,7 @@
 #define BLANK_WORLD_CHUNKLOADER_HPP_
 
 #include "Chunk.hpp"
+#include "../app/IntervalTimer.hpp"
 
 #include <list>
 
@@ -17,6 +18,7 @@ public:
        struct Config {
                int load_dist = 6;
                int unload_dist = 8;
+               int gen_limit = 16;
        };
 
        ChunkLoader(const Config &, const BlockTypeRegistry &, const Generator &) noexcept;
@@ -31,8 +33,11 @@ public:
        bool Known(const Chunk::Pos &) noexcept;
        Chunk &ForceLoad(const Chunk::Pos &);
 
+       bool OutOfRange(const Chunk &c) const noexcept { return OutOfRange(c.Position()); }
+       bool OutOfRange(const Chunk::Pos &) const noexcept;
+
        void Rebase(const Chunk::Pos &);
-       void Update();
+       void Update(int dt);
 
 private:
        Chunk &Generate(const Chunk::Pos &pos);
@@ -49,6 +54,8 @@ private:
        std::list<Chunk::Pos> to_generate;
        std::list<Chunk> to_free;
 
+       IntervalTimer gen_timer;
+
        int load_dist;
        int unload_dist;