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

A node for your real actions in the behaviour tree. More...

#include <ITask.h>

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

Public Member Functions

 ITask (const std::string &name, const std::string &parameters, const ConditionPtr &condition)
 
virtual TreeNodeStatus doAction (const AIPtr &entity, int64_t deltaMillis)=0
 
bool addChild (const TreeNodePtr &) override
 
- 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 ()
 
virtual void getRunningChildren (const AIPtr &entity, std::vector< bool > &active) const
 Get the state of all child nodes for the given entity. More...
 
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 void resetState (const AIPtr &entity)
 Reset the states in the node and also in the entity.
 
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)
 

Protected Member Functions

TreeNodeStatus execute (const AIPtr &entity, int64_t deltaMillis) override
 
- 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
 

Additional Inherited Members

- 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

A node for your real actions in the behaviour tree.

Note
This node doesn't support children

Member Function Documentation

virtual TreeNodeStatus ai::ITask::doAction ( const AIPtr &  entity,
int64_t  deltaMillis 
)
pure virtual
Note
The returned TreeNodeStatus is automatically recorded. This method is only called when the attached ICondition evaluated to true

Implemented in ai::Steer.

TreeNodeStatus ai::ITask::execute ( const AIPtr &  entity,
int64_t  deltaMillis 
)
inlineoverrideprotectedvirtual
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: