aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/ai/je_behavior_tree.h
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2018-11-09 08:33:36 +0800
committerchai <chaifix@163.com>2018-11-09 08:33:36 +0800
commit63153bc8e742c522cfd3f5ab10609966e33310e6 (patch)
tree8008383dcd210b8f2a8f32a0b7b6698387eb1c88 /src/libjin/ai/je_behavior_tree.h
parent6bb692df3008c810688bd5be9d824f25455d1a7f (diff)
*更新状态机
Diffstat (limited to 'src/libjin/ai/je_behavior_tree.h')
-rw-r--r--src/libjin/ai/je_behavior_tree.h37
1 files changed, 36 insertions, 1 deletions
diff --git a/src/libjin/ai/je_behavior_tree.h b/src/libjin/ai/je_behavior_tree.h
index 8621696..173df80 100644
--- a/src/libjin/ai/je_behavior_tree.h
+++ b/src/libjin/ai/je_behavior_tree.h
@@ -4,19 +4,54 @@
#include "../core/je_configuration.h"
#if defined(jin_ai)
+#include <functional>
+
namespace JinEngine
{
namespace AI
{
-
+
///
///
///
class BehaviorTree
{
+ public:
+ BehaviorTree(void* userData) : mUserData(userData){}
+
+ class Node
+ {
+ public:
+ enum Type
+ {
+
+ };
+
+ enum Status
+ {
+ Running,
+ Success,
+ Failure
+ };
+
+ Status status;
+ };
+
+ typedef std::function<Node::Status(void*)> UpdateCallback;
+
+ Node makeNode(Node::Type type, UpdateCallback callback);
+
+ private:
+
+ ///
+ ///
+ ///
+ void* const mUserData;
};
+ typedef BehaviorTree::Node::Status BahaviorNodeStatus;
+
} // namespace AI
} // namespace JinEngine