]> git.localhorst.tv Git - blank.git/blobdiff - src/ai/Spawner.hpp
explicit reference for world coordinates
[blank.git] / src / ai / Spawner.hpp
index e3e8f24feea0326322266596576cf9d0e8e770dc..b36e520f7d38cb7273e33109052bbc6435ea205b 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[14];
+
+       IntervalTimer timer;
+       float despawn_range;
+       float spawn_distance;
+       unsigned int max_entities;
+       int chunk_range;
 
 };