@theatrejs/theatrejs
Version:
🎮 A JavaScript 2D Game Engine focused on creating pixel art games.
63 lines (49 loc) • 1.21 kB
JavaScript
import {BehaviorTreeNode} from '../index.js';
/**
* Creates behavior tree selector nodes.
*
* @example
*
* const first = new BehaviorTreeNodeAction(handler);
* const second = new BehaviorTreeNodeAction(handler);
*
* const selection = new BehaviorTreeNodeSelector(node);
*
* const tree = new BehaviorTree(selection);
*
* const success = tree.tick(timetick);
*/
class BehaviorTreeNodeSelector extends BehaviorTreeNode {
/**
* Stores the nodes.
* @type {Array<BehaviorTreeNode>}
* @private
*/
$nodes;
/**
* Creates a new behavior tree selector node.
* @param {Array<BehaviorTreeNode>} $nodes The nodes.
*/
constructor($nodes) {
super();
this.$nodes = [...$nodes];
}
/**
* Updates the behavior tree by one tick update.
* @param {number} $timetick The tick duration (in ms).
* @returns {boolean}
* @public
*/
tick($timetick) {
for (const $node of this.$nodes) {
if ($node.tick($timetick) === true) {
return true;
}
}
return false;
}
}
export {
BehaviorTreeNodeSelector
};
export default BehaviorTreeNodeSelector;