| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #include <boost/foreach.hpp>
- #include "Base/Marcos.h"
- #include "BehaviorTree/SelectorNode.h"
- #include "BehaviorTree/BehaviorTreeConf.pb.h"
- namespace Egametang {
- SelectorNode::SelectorNode(int32 type): BehaviorNode(type)
- {
- }
- SelectorNode::~SelectorNode()
- {
- foreach (BehaviorNode* node, nodes)
- {
- delete node;
- }
- }
- bool SelectorNode::Run(ContexIf* contex)
- {
- foreach (BehaviorNode* node, nodes)
- {
- if (node->Run(contex))
- {
- return true;
- }
- }
- return false;
- }
- void SelectorNode::AddChildNode(BehaviorNode *node)
- {
- nodes.push_back(node);
- }
- std::string SelectorNode::ToString()
- {
- std::string s;
- s += "SelectorNode: \n";
- foreach (BehaviorNode* node, nodes)
- {
- s += " " + node->ToString() + "\n";
- }
- return s;
- }
- BehaviorNode* SelectorNodeFactory::GetInstance(const BehaviorNodeConf& conf)
- {
- return new SelectorNode(conf.type());
- }
- } // namespace Egametang
|