Files
esengine/packages/behavior-tree/src/Components/BehaviorTreeNode.ts

45 lines
1.2 KiB
TypeScript
Raw Normal View History

import { Component, ECSComponent } from '@esengine/ecs-framework';
import { Serializable, Serialize, IgnoreSerialization } from '@esengine/ecs-framework';
import { TaskStatus, NodeType } from '../Types/TaskStatus';
/**
*
*
*
*/
@ECSComponent('BehaviorTreeNode')
@Serializable({ version: 1 })
export class BehaviorTreeNode extends Component {
/** 节点类型 */
@Serialize()
nodeType: NodeType = NodeType.Action;
/** 节点名称(用于调试) */
@Serialize()
nodeName: string = 'Node';
/** 当前执行状态 */
@IgnoreSerialization()
status: TaskStatus = TaskStatus.Invalid;
/** 当前执行的子节点索引(用于复合节点) */
@IgnoreSerialization()
currentChildIndex: number = 0;
/**
*
*/
reset(): void {
this.status = TaskStatus.Invalid;
this.currentChildIndex = 0;
}
/**
*
* System
*/
invalidate(): void {
this.reset();
}
}