[behavio-tree] add ParallelNode.tick()

This commit is contained in:
方而静 2023-11-02 09:18:23 +08:00
parent dd9851674c
commit 126f2d6bfc
Signed by: szTom
GPG Key ID: 072D999D60C6473C

View File

@ -31,9 +31,7 @@ export class ControlNode extends Node {
}; };
export class SequenceNode extends ControlNode { export class SequenceNode extends ControlNode {
constructor() { constructor() { super(); }
super();
}
async tick(blackboard) { async tick(blackboard) {
for (let child of this.children) { for (let child of this.children) {
@ -47,6 +45,7 @@ export class FallbackNode extends ControlNode {
async tick(blackboard) { async tick(blackboard) {
for (let i = 0; i < this.children.length; i += 1) { for (let i = 0; i < this.children.length; i += 1) {
let child = this.children[i];
try { try {
await child.tick(blackboard); await child.tick(blackboard);
break; break;
@ -60,5 +59,7 @@ export class FallbackNode extends ControlNode {
export class ParallelNode extends ControlNode { export class ParallelNode extends ControlNode {
constructor() { super(); } constructor() { super(); }
async tick(blackboard) {} tick(blackboard) {
return Promise.all(this.children.map(child => child(blackboard)));
}
} }