aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libjin/ai/je_behavior_tree.h37
-rw-r--r--src/libjin/ai/je_state_machine.h17
-rw-r--r--src/lua/modules/ai/je_lua_ai.cpp13
-rw-r--r--src/lua/modules/ai/je_lua_behavior_tree.cpp11
-rw-r--r--src/lua/modules/ai/je_lua_statemachine.cpp11
5 files changed, 86 insertions, 3 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
diff --git a/src/libjin/ai/je_state_machine.h b/src/libjin/ai/je_state_machine.h
index 2921ecd..d496c61 100644
--- a/src/libjin/ai/je_state_machine.h
+++ b/src/libjin/ai/je_state_machine.h
@@ -16,7 +16,6 @@ namespace JinEngine
{
namespace AI
{
- // Grab from Unity.
///
/// A single layer statemachine.
@@ -295,6 +294,9 @@ namespace JinEngine
private:
+ ///
+ ///
+ ///
struct Parameter
{
ParameterType type;
@@ -409,4 +411,15 @@ namespace JinEngine
#endif // jin_ai
-#endif \ No newline at end of file
+#endif
+
+//local sp = jin.graphics.newSprite()
+//local sm = jin.ai.newStateMachine(jin.StateMachineMode.STEPWISE, sp)
+//sm:addState("run")
+//sm:addEnterCallback("run", function(spr)
+// spr:setRun()
+//end)
+//
+//function jin.core.onUpdate(dt)
+// sm:update()
+//end
diff --git a/src/lua/modules/ai/je_lua_ai.cpp b/src/lua/modules/ai/je_lua_ai.cpp
new file mode 100644
index 0000000..4afd625
--- /dev/null
+++ b/src/lua/modules/ai/je_lua_ai.cpp
@@ -0,0 +1,13 @@
+#include "libjin/jin.h"
+
+using namespace JinEngine::AI;
+
+namespace JinEngine
+{
+ namespace Lua
+ {
+
+
+
+ }
+} \ No newline at end of file
diff --git a/src/lua/modules/ai/je_lua_behavior_tree.cpp b/src/lua/modules/ai/je_lua_behavior_tree.cpp
index e69de29..f79d79a 100644
--- a/src/lua/modules/ai/je_lua_behavior_tree.cpp
+++ b/src/lua/modules/ai/je_lua_behavior_tree.cpp
@@ -0,0 +1,11 @@
+#include "libjin/jin.h"
+
+namespace JinEngine
+{
+ namespace Lua
+ {
+
+
+
+ }
+} \ No newline at end of file
diff --git a/src/lua/modules/ai/je_lua_statemachine.cpp b/src/lua/modules/ai/je_lua_statemachine.cpp
index e69de29..f79d79a 100644
--- a/src/lua/modules/ai/je_lua_statemachine.cpp
+++ b/src/lua/modules/ai/je_lua_statemachine.cpp
@@ -0,0 +1,11 @@
+#include "libjin/jin.h"
+
+namespace JinEngine
+{
+ namespace Lua
+ {
+
+
+
+ }
+} \ No newline at end of file