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