Rudimentary behaviour tree visualization

This commit is contained in:
2024-01-09 22:01:16 +01:00
parent e4cc00d3a7
commit a6b79fb14c
3 changed files with 171 additions and 20 deletions

View File

@@ -55,6 +55,8 @@ typedef struct BzAIBTStateDesc {
size_t bzAIBTGetNodeSize();
size_t bzAIBTGetNodeStateSize();
const char *bzAIBTNodeTypeToStr(BzAIBTNodeType type);
BzAIBTNode *bzAIBTMakeRoot(BzObjectPool *nodePool);
void bzAIBTDestroyRoot(BzObjectPool *nodePool, BzAIBTNode *node);
@@ -70,9 +72,26 @@ BzAIBTNode *bzAIBTDecorUntilFail(BzObjectPool *nodePool, BzAIBTNode *parent);
BzAIBTNode *bzAIBTDecorRepeat(BzObjectPool *nodePool, BzAIBTNode *parent, i32 n);
BzAIBTNode *bzAIBTDecorDelay(BzObjectPool *nodePool, BzAIBTNode *parent, f32 ms);
BzAIBTNode *bzAIBTAction(BzObjectPool *nodePool, BzAIBTNode *parent, BzAIBTActionFn fn);
BzAIBTNode *bzAIBTAction(BzObjectPool *nodePool, BzAIBTNode *parent, BzAIBTActionFn fn,
const char *name);
BzAIBTNodeType bzAIBTGetNodeType(BzAIBTNode *node);
// Reflection data
i32 bzAIBTDecorGetRepeat(const BzAIBTNode *node);
f32 bzAIBTDecorGetDelay(const BzAIBTNode *node);
BzAIBTActionFn bzAIBTActionGetFn(const BzAIBTNode *node);
const char *bzAIBTActionGetName(const BzAIBTNode *node);
BzAIBTNodeType bzAIBTGetNodeType(const BzAIBTNode *node);
BzAIBTNode *bzAIBTNodeChild(const BzAIBTNode *node);
BzAIBTNode *bzAIBTNodeNext(const BzAIBTNode *node);
const BzAIBTNodeState *bzAIBTNodeStateNext(const BzAIBTNodeState *state);
bool bzAIBTNodeMatchesState(const BzAIBTNode *node, const BzAIBTNodeState *state);
i32 bzAIBTRepeatStateGetIter(const BzAIBTNodeState *state);
f32 bzAIBTDelayStateGetElapsed(const BzAIBTNodeState *state);
BzAIBTState bzAIBTCreateState(const BzAIBTStateDesc *desc);
void bzAIBTDestroyState(BzAIBTState *state);