(C++)  1.0.0
A multi-platform, modular, universal engine for embedding advanced AI in games.
GoalSelector.hh
1 #ifndef GRAIL_GOAL_SELECTOR_H
2 #define GRAIL_GOAL_SELECTOR_H
3 
4 #include "Goal.hh"
5 
6 
7 namespace grail
8 {
9  namespace planning
10  {
12  {
13  public:
14  virtual void SetNewGoal(std::unique_ptr<Goal> newGoal, AIEntity& entity) = 0;
15  virtual const Goal* GetCurrentGoal() const = 0;
16  };
17 
21  {
22  public:
23  GoalSelector() = default;
24  GoalSelector(const GoalSelector&) = default;
25  GoalSelector(GoalSelector&&) = default;
26 
27  virtual ~GoalSelector() = default;
28 
29  GoalSelector& operator = (const GoalSelector&) = default;
30  GoalSelector& operator = (GoalSelector&&) = default;
31 
33  virtual void UpdateGoal(IGoalAcceptor& goalAcceptor, AIEntity& entity) = 0;
34  };
35  }
36 }
37 #endif //GRAIL_GOAL_SELECTOR_H
The AIEntity class - Defines a basic object which can execute behaviors.
Definition: AIEntity.hh:39
Represents a planner goal, used by PlannerReasoner.
Definition: Goal.hh:15
Definition: GoalSelector.hh:21
virtual void UpdateGoal(IGoalAcceptor &goalAcceptor, AIEntity &entity)=0
This method should invoke goalAcceptor.setNewGoal whenever a new goal is selected.
Definition: GoalSelector.hh:12