Grail (C++)  1.1.1
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 namespace grail
7 {
8  namespace planning
9  {
11  {
12  public:
13  virtual void SetNewGoal(std::unique_ptr<Goal> newGoal, AIEntity& entity) = 0;
14  virtual const Goal* GetCurrentGoal() const = 0;
15  };
16 
20  {
21  public:
22  GoalSelector() = default;
23  GoalSelector(const GoalSelector&) = default;
24  GoalSelector(GoalSelector&&) = default;
25 
26  virtual ~GoalSelector() = default;
27 
28  GoalSelector& operator =(const GoalSelector&) = default;
29  GoalSelector& operator =(GoalSelector&&) = default;
30 
32  virtual void UpdateGoal(IGoalAcceptor& goalAcceptor, AIEntity& entity) = 0;
33  };
34  }
35 }
36 #endif //GRAIL_GOAL_SELECTOR_H
grail::planning::IGoalAcceptor
Definition: GoalSelector.hh:10
grail::AIEntity
The AIEntity class - Defines a basic object which can execute behaviors.
Definition: AIEntity.hh:39
grail::planning::GoalSelector::UpdateGoal
virtual void UpdateGoal(IGoalAcceptor &goalAcceptor, AIEntity &entity)=0
This method should invoke goalAcceptor.setNewGoal whenever a new goal is selected.
grail::planning::GoalSelector
Definition: GoalSelector.hh:19
grail::planning::Goal
Represents a planner goal, used by PlannerReasoner.
Definition: Goal.hh:14