aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/ai/je_behavior_tree.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/ai/je_behavior_tree.h')
-rw-r--r--src/libjin/ai/je_behavior_tree.h45
1 files changed, 40 insertions, 5 deletions
diff --git a/src/libjin/ai/je_behavior_tree.h b/src/libjin/ai/je_behavior_tree.h
index 6e276b6..173df80 100644
--- a/src/libjin/ai/je_behavior_tree.h
+++ b/src/libjin/ai/je_behavior_tree.h
@@ -1,24 +1,59 @@
-#ifndef __JE_BEHAVIOR_TREE_H
-#define __JE_BEHAVIOR_TREE_H
+#ifndef __JE_BEHAVIOR_TREE_H__
+#define __JE_BEHAVIOR_TREE_H__
#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
#endif // jin_ai