2025-02-20 11:27:28 +08:00
|
|
|
import { BehaviorTree } from "./BehaviorTree";
|
|
|
|
import { Blackboard } from "./Blackboard";
|
|
|
|
import { BaseNode } from "./BTNode/BaseNode";
|
|
|
|
|
|
|
|
export class Ticker {
|
|
|
|
tree: BehaviorTree; // 行为树跟节点
|
|
|
|
openNodes: BaseNode[]; // 当前打开的节点
|
|
|
|
nodeCount: number; // 当前打开的节点数量
|
|
|
|
blackboard: Blackboard; // 数据容器
|
|
|
|
debug: any;
|
|
|
|
subject: any;
|
|
|
|
constructor(subject: any, blackboard: Blackboard, tree: BehaviorTree) {
|
|
|
|
this.tree = tree;
|
|
|
|
this.openNodes = [];
|
|
|
|
this.nodeCount = 0;
|
|
|
|
this.debug = null;
|
|
|
|
this.subject = subject;
|
|
|
|
this.blackboard = blackboard;
|
|
|
|
}
|
|
|
|
|
2025-03-07 16:02:00 +08:00
|
|
|
/**
|
|
|
|
* 进入节点
|
|
|
|
* @param node 节点
|
|
|
|
*/
|
|
|
|
public enterNode(node: BaseNode): void {
|
2025-02-20 11:27:28 +08:00
|
|
|
this.nodeCount++;
|
|
|
|
this.openNodes.push(node);
|
|
|
|
}
|
|
|
|
|
2025-03-07 16:02:00 +08:00
|
|
|
/**
|
|
|
|
* 打开节点
|
|
|
|
* @param node 节点
|
|
|
|
*/
|
|
|
|
public openNode(node: BaseNode): void { }
|
2025-02-20 11:27:28 +08:00
|
|
|
|
2025-03-07 16:02:00 +08:00
|
|
|
/**
|
|
|
|
* 更新节点
|
|
|
|
* @param node 节点
|
|
|
|
*/
|
|
|
|
public tickNode(node: BaseNode): void { }
|
2025-02-20 11:27:28 +08:00
|
|
|
|
2025-03-07 16:02:00 +08:00
|
|
|
/**
|
|
|
|
* 关闭节点
|
|
|
|
* @param node 节点
|
|
|
|
*/
|
|
|
|
public closeNode(node: BaseNode): void {
|
2025-02-20 11:27:28 +08:00
|
|
|
this.openNodes.pop();
|
|
|
|
}
|
|
|
|
|
2025-03-07 16:02:00 +08:00
|
|
|
/**
|
|
|
|
* 退出节点
|
|
|
|
* @param node 节点
|
|
|
|
*/
|
|
|
|
public exitNode(node: BaseNode): void { }
|
2025-02-20 11:27:28 +08:00
|
|
|
}
|