]> git.localhorst.tv Git - blobs.git/blob - src/creature/LocateResourceGoal.hpp
c87f4f18a07b47712ca8ea776139288de1c11e16
[blobs.git] / src / creature / LocateResourceGoal.hpp
1 #ifndef BLOBS_CREATURE_LOCATERESOURCEGOAL_HPP_
2 #define BLOBS_CREATURE_LOCATERESOURCEGOAL_HPP_
3
4 #include "Composition.hpp"
5 #include "../math/glm.hpp"
6
7
8 namespace blobs {
9 namespace creature {
10
11 class LocateResourceGoal
12 : public Goal {
13
14 public:
15         LocateResourceGoal(Creature &);
16         ~LocateResourceGoal() noexcept override;
17
18 public:
19         void Accept(int resource, double attractiveness);
20
21         std::string Describe() const override;
22         void Enable() override;
23         void Tick(double dt) override;
24         void Action() override;
25
26 private:
27         void LocateResource();
28         void SearchVicinity();
29         bool NearTarget() const noexcept;
30
31 private:
32         Composition accept;
33         bool found;
34         glm::dvec3 target_pos;
35         bool searching;
36         double reevaluate;
37
38 };
39
40 }
41 }
42
43 #endif