]> git.localhorst.tv Git - blobs.git/blobdiff - src/creature/LocateResourceGoal.hpp
overhaul need system
[blobs.git] / src / creature / LocateResourceGoal.hpp
index b5d390c7c69e71e9bdd519e90529fbd786ff0eae..f0937c93c3e00d4f92109864b806438565226e97 100644 (file)
@@ -1,6 +1,10 @@
 #ifndef BLOBS_CREATURE_LOCATERESOURCEGOAL_HPP_
 #define BLOBS_CREATURE_LOCATERESOURCEGOAL_HPP_
 
+#include "Composition.hpp"
+#include "../math/glm.hpp"
+
+
 namespace blobs {
 namespace creature {
 
@@ -8,16 +12,30 @@ class LocateResourceGoal
 : public Goal {
 
 public:
-       explicit LocateResourceGoal(int resource);
+       LocateResourceGoal(Creature &);
        ~LocateResourceGoal() noexcept override;
 
 public:
-       void Enable(Creature &) override;
+       void Accept(int resource, double attractiveness);
+
+       std::string Describe() const override;
+       void Enable() override;
        void Tick(double dt) override;
-       void Action(Creature &) override;
+       void Action() override;
+
+private:
+       void LocateResource();
+       void SearchVicinity();
+       bool OnTargetTile() const noexcept;
 
 private:
-       int res;
+       Composition accept;
+       bool found;
+       glm::dvec3 target_pos;
+       int target_srf;
+       glm::ivec2 target_tile;
+       bool searching;
+       double reevaluate;
 
 };