SimpleAI
 All Classes Namespaces Files Functions Variables Typedefs Macros Groups Pages
Public Member Functions | List of all members
ai::Sequence Class Reference

The sequence continues to execute their children until one of the children returned a state that is not equal to finished. On the next iteration the execution is continued at the last running children or from the start again if no such children exists. More...

#include <Sequence.h>

Inheritance diagram for ai::Sequence:
[legend]
Collaboration diagram for ai::Sequence:
[legend]

Public Member Functions

TreeNodeStatus execute (const AIPtr &entity, int64_t deltaMillis) override
 
void resetState (const AIPtr &entity) override
 Reset the states in the node and also in the entity.
 
- Public Member Functions inherited from ai::Selector
virtual void getRunningChildren (const AIPtr &entity, std::vector< bool > &active) const override
 Will only deliver valid results if the debugging for the given entity is active.
 
- Public Member Functions inherited from ai::TreeNode
 TreeNode (const std::string &name, const std::string &parameters, const ConditionPtr &condition)
 
int getId () const
 Return the unique id for this node. More...
 
const std::string & getName () const
 Each node can have a user defines name that can be retrieved with this method.
 
const std::string & getParameters () const
 Return the raw parameters for this node.
 
void setName (const std::string &name)
 Updates the custom name of this TreeNode. More...
 
const std::string & getType () const
 The node type - this usually matches the class name of the TreeNode.
 
const ConditionPtr & getCondition () const
 
void setCondition (const ConditionPtr &condition)
 
const TreeNodes & getChildren () const
 
TreeNodes & getChildren ()
 
int64_t getLastExecMillis (const AIPtr &ai) const
 Returns the time in milliseconds when this node was last run. This is only updated if execute() was called.
 
TreeNodeStatus getLastStatus (const AIPtr &ai) const
 
virtual bool addChild (const TreeNodePtr &child)
 
TreeNodePtr getChild (int id) const
 
bool replaceChild (int id, const TreeNodePtr &newNode)
 Replace the given child node with a new one (or removes it) More...
 
TreeNodePtr getParent (const TreeNodePtr &self, int id) const
 Get the parent node for a given TreeNode id - This should only be called on the root node of the behaviour. More...
 
- Public Member Functions inherited from ai::_MemObject< AllocatorClass >
void * operator new (size_t size)
 
void * operator new (size_t, void *ptr)
 
void * operator new[] (size_t size)
 
void operator delete (void *ptr)
 
void operator delete (void *ptr, void *)
 
void operator delete[] (void *ptr)
 

Additional Inherited Members

- Protected Member Functions inherited from ai::TreeNode
TreeNodeStatus state (const AIPtr &entity, TreeNodeStatus treeNodeState)
 
int getSelectorState (const AIPtr &entity) const
 
void setSelectorState (const AIPtr &entity, int selected)
 
int getLimitState (const AIPtr &entity) const
 
void setLimitState (const AIPtr &entity, int amount)
 
void setLastExecMillis (const AIPtr &entity)
 
TreeNodePtr getParent_r (const TreeNodePtr &parent, int id) const
 
- Static Protected Member Functions inherited from ai::TreeNode
static int getNextId ()
 
- Protected Attributes inherited from ai::TreeNode
int _id
 Every node has an id to identify it. It's unique per type.
 
TreeNodes _children
 
std::string _name
 
std::string _type
 
std::string _parameters
 
ConditionPtr _condition
 

Detailed Description

The sequence continues to execute their children until one of the children returned a state that is not equal to finished. On the next iteration the execution is continued at the last running children or from the start again if no such children exists.

AiGameDev

Member Function Documentation

TreeNodeStatus ai::Sequence::execute ( const AIPtr &  entity,
int64_t  deltaMillis 
)
inlineoverridevirtual
Parameters
entityThe entity to execute the TreeNode for
deltaMillisThe delta since the last execution
Returns
TreeNodeStatus

Reimplemented from ai::TreeNode.


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