diff options
Diffstat (limited to 'src/libjin')
-rw-r--r-- | src/libjin/ai/je_behavior_tree.h | 37 | ||||
-rw-r--r-- | src/libjin/ai/je_state_machine.h | 17 |
2 files changed, 51 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 |