45 #ifndef __CU_BEHAVIOR_MANAGER_H__
46 #define __CU_BEHAVIOR_MANAGER_H__
47 #include <cugl/ai/behavior/CUBehaviorNode.h>
48 #include <cugl/ai/behavior/CUBehaviorAction.h>
49 #include <unordered_map>
78 std::unordered_map<std::string, std::shared_ptr<BehaviorNode>>
_trees;
84 #pragma mark Constructors
128 bool init(Uint32 seed);
138 static std::shared_ptr<BehaviorManager>
alloc() {
139 std::shared_ptr<BehaviorManager> result = std::make_shared<BehaviorManager>();
140 return (result->init() ? result :
nullptr);
152 static std::shared_ptr<BehaviorManager>
alloc(Uint32 seed) {
153 std::shared_ptr<BehaviorManager> result = std::make_shared<BehaviorManager>();
154 return (result->init(seed) ? result :
nullptr);
158 #pragma mark Tree Management
214 return getTree(std::string(name));
236 bool addTree(
const std::shared_ptr<BehaviorNodeDef>& treedef);
258 bool addTree(
const std::string& name,
const std::shared_ptr<BehaviorNodeDef>& treedef);
280 bool addTree(
const char* name,
const std::shared_ptr<BehaviorNodeDef>& treedef) {
281 return addTree(std::string(name),treedef);
302 #pragma mark Behavior Management
403 std::shared_ptr<BehaviorNode> createTree(
const std::shared_ptr<BehaviorNodeDef>& treedef);
~BehaviorManager()
Definition: CUBehaviorManager.h:99
Definition: CUBehaviorNode.h:280
Definition: CUBehaviorManager.h:74
State
Definition: CUBehaviorNode.h:290
void removeTree(const std::string &name)
void pauseTree(const std::string &name)
bool addTree(const char *name, const std::shared_ptr< BehaviorNodeDef > &treedef)
Definition: CUBehaviorManager.h:280
bool containsTree(const std::string &name) const
std::minstd_rand _random
Definition: CUBehaviorManager.h:81
std::unordered_map< std::string, std::shared_ptr< BehaviorNode > > _trees
Definition: CUBehaviorManager.h:78
BehaviorNode::State getState() const
Definition: CUBehaviorNode.h:395
static std::shared_ptr< BehaviorManager > alloc()
Definition: CUBehaviorManager.h:138
const BehaviorNode * getTree(const char *name) const
Definition: CUBehaviorManager.h:213
static std::shared_ptr< BehaviorManager > alloc(Uint32 seed)
Definition: CUBehaviorManager.h:152
const BehaviorNode * getTree(const std::string &name) const
void startTree(const std::string &name)
void resumeTree(const std::string &name)
Definition: CUAction.h:51
BehaviorManager()
Definition: CUBehaviorManager.h:92
BehaviorNode::State getTreeState(const std::string &name) const
Definition: CUBehaviorManager.h:297
bool addTree(const std::shared_ptr< BehaviorNodeDef > &treedef)
void resetTree(const std::string &name)
bool containsTree(const char *name) const
Definition: CUBehaviorManager.h:181