diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libjin/ai/je_behavior_tree.h | 37 | ||||
-rw-r--r-- | src/libjin/ai/je_state_machine.h | 17 | ||||
-rw-r--r-- | src/lua/modules/ai/je_lua_ai.cpp | 13 | ||||
-rw-r--r-- | src/lua/modules/ai/je_lua_behavior_tree.cpp | 11 | ||||
-rw-r--r-- | src/lua/modules/ai/je_lua_statemachine.cpp | 11 |
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 |