]> git.localhorst.tv Git - blank.git/blobdiff - src/ai/Spawner.hpp
split chunk redering from world model
[blank.git] / src / ai / Spawner.hpp
index e3e8f24feea0326322266596576cf9d0e8e770dc..c55d73c0f7f90b835b5791f69e8c9096e17cc81d 100644 (file)
@@ -1,13 +1,16 @@
 #ifndef BLANK_AI_SPAWNER_HPP_
 #define BLANK_AI_SPAWNER_HPP_
 
-#include <list>
+#include "../app/IntervalTimer.hpp"
+#include "../model/EntityModel.hpp"
+
+#include <vector>
 #include <glm/glm.hpp>
 
 
 namespace blank {
 
-class RandomWalk;
+class Controller;
 class World;
 
 class Spawner {
@@ -19,11 +22,21 @@ public:
        void Update(int dt);
 
 private:
-       void Spawn(const glm::vec3 &);
+       void CheckDespawn() noexcept;
+       void TrySpawn();
+       void Spawn(const glm::ivec3 &, const glm::vec3 &);
 
 private:
        World &world;
-       std::list<RandomWalk> controllers;
+       std::vector<Controller *> controllers;
+
+       EntityModel models[3];
+
+       IntervalTimer timer;
+       float despawn_range;
+       float spawn_distance;
+       unsigned int max_entities;
+       int chunk_range;
 
 };