X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fcreature%2FLocateResourceGoal.hpp;h=a472fd5f9f16f8dc9864c9eb59b473b2d3df3e04;hb=8f6530c75730f901efd6708e4fde7e68a178adf1;hp=b5d390c7c69e71e9bdd519e90529fbd786ff0eae;hpb=8a3907bb0bed257bf5d6f40f39f15114e8345913;p=blobs.git diff --git a/src/creature/LocateResourceGoal.hpp b/src/creature/LocateResourceGoal.hpp index b5d390c..a472fd5 100644 --- a/src/creature/LocateResourceGoal.hpp +++ b/src/creature/LocateResourceGoal.hpp @@ -1,6 +1,9 @@ #ifndef BLOBS_CREATURE_LOCATERESOURCEGOAL_HPP_ #define BLOBS_CREATURE_LOCATERESOURCEGOAL_HPP_ +#include "../math/glm.hpp" + + namespace blobs { namespace creature { @@ -8,16 +11,26 @@ class LocateResourceGoal : public Goal { public: - explicit LocateResourceGoal(int resource); + LocateResourceGoal(Creature &, int resource); ~LocateResourceGoal() noexcept override; public: - void Enable(Creature &) override; + 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; + bool found; + glm::dvec3 target_pos; + int target_srf; + glm::ivec2 target_tile; };