public:
struct Location {
world::Planet *planet;
- int surface;
- glm::ivec2 coords;
+ glm::dvec3 position;
};
public:
~Memory();
public:
+ /// remove all memories
+ void Erase();
+
+ /// try to remember where stuff was
+ /// when true, pos contains an approximation of the
+ /// location of the best fitting resource
+ bool RememberLocation(const Composition &, glm::dvec3 &pos) const noexcept;
+
+ void TrackCollision(Creature &);
+
void Tick(double dt);
private:
double time_spent;
};
std::map<int, Stay> known_types;
+ struct Profile {
+ double annoyance = 0.0;
+ double familiarity = 0.0;
+ };
+ std::map<Creature *, Profile> known_creatures;
};