Grail (C#)  1.3.0
A multi-platform, modular, universal engine for embedding advanced AI in games.
Grail.Planners.DomainTranslator Class Referenceabstract

Public Member Functions

 DomainTranslator (bool isDomainReusable=true)
 
abstract Plan TranslatePlan (AIEntity entity, Planner.AbstractPlan plan, Goal goal)
 
WorldState GetWorldState (AIEntity entity, Goal goal)
 

Protected Member Functions

abstract List< IPlannerObjectGeneratePlannerObject (AIEntity entity, Goal goal)
 
abstract List< WorldObjectTypeCreateObjectTypes (AIEntity entity, Goal goal)
 
abstract void AddActionTemplates (AIEntity entity, Domain domain, Goal goal)
 
virtual void SetWorldStateParameters (AIEntity entity, WorldState state, Goal goal)
 

Properties

ObjectIndexBinding binding [get]
 the constructed (IPlannerObject <-> WorldObject) index binding
 

Detailed Description

An abstract class to implement translating from in-game world state to plan-space world state and from abstract plan to behavior sequence

Constructor & Destructor Documentation

◆ DomainTranslator()

Grail.Planners.DomainTranslator.DomainTranslator ( bool  isDomainReusable = true)
inline

Constructs a DomainTranslator using the specified MemoryPool.

Parameters
isDomainReusable- if set to true, the planner will assume that the planning domain remains constant, meaning that addActionTemplates and createObjectTypes will be invoked only once on DomainTranslator construction

Member Function Documentation

◆ AddActionTemplates()

abstract void Grail.Planners.DomainTranslator.AddActionTemplates ( AIEntity  entity,
Domain  domain,
Goal  goal 
)
protectedpure virtual

Inside this method, action templates for all possible actions should be added to the Domain. Use Domain.AddActionTemplate

◆ CreateObjectTypes()

abstract List<WorldObjectType> Grail.Planners.DomainTranslator.CreateObjectTypes ( AIEntity  entity,
Goal  goal 
)
protectedpure virtual
Returns
All possible world object types used by the planner (see WorldObjectType).

◆ GeneratePlannerObject()

abstract List<IPlannerObject> Grail.Planners.DomainTranslator.GeneratePlannerObject ( AIEntity  entity,
Goal  goal 
)
protectedpure virtual

This method should return a vector of IPlannerObject instances that correspond to in-game objects. An ObjectIndexBinding instance will be created from the returned objects.

◆ SetWorldStateParameters()

virtual void Grail.Planners.DomainTranslator.SetWorldStateParameters ( AIEntity  entity,
WorldState  state,
Goal  goal 
)
inlineprotectedvirtual

Inside this method, initial abstract WorldState parameters should be set. Use state.SetParameter

◆ TranslatePlan()

abstract Plan Grail.Planners.DomainTranslator.TranslatePlan ( AIEntity  entity,
Planner.AbstractPlan  plan,
Goal  goal 
)
pure virtual
Returns
a Plan object constructed based on the Action vector provided by the planner. Keep in mind that a single Action does not have to correspond to a single Behavior - your plan translation logic can be arbitrary.

The documentation for this class was generated from the following file: