Files
esengine/extensions/cocos/cocos-ecs/assets/resources/worker-ai.btree
2025-06-24 19:34:37 +08:00

2029 lines
56 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"nodes": [
{
"id": "root",
"type": "root",
"name": "工人AI根节点",
"position": {
"x": 400,
"y": 50
},
"properties": {},
"children": [
"main-selector"
],
"x": 1540,
"y": 50,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "main-selector",
"type": "selector",
"name": "主选择器",
"position": {
"x": 400,
"y": 150
},
"properties": {
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "根据优先级选择行为:紧急情况 > 命令执行 > 空闲行为",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"children": [
"emergency-sequence",
"command-sequence",
"idle-sequence"
],
"x": 1550,
"y": 180,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "emergency-sequence",
"type": "sequence",
"name": "紧急情况处理",
"position": {
"x": 200,
"y": 250
},
"properties": {
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "处理生命值过低等紧急情况",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"children": [
"low-health-check"
],
"x": 400,
"y": 376,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "low-health-check",
"type": "conditional-decorator",
"name": "生命值检查",
"position": {
"x": 150,
"y": 350
},
"properties": {
"conditionType": {
"name": "条件类型",
"type": "select",
"value": "custom",
"description": "装饰器使用的条件类型",
"options": [
"custom",
"random",
"hasComponent",
"hasTag",
"isActive",
"numericCompare",
"propertyExists"
],
"required": false
},
"executeWhenTrue": {
"name": "条件为真时执行",
"type": "boolean",
"value": true,
"description": "条件为真时是否执行子节点",
"required": false
},
"executeWhenFalse": {
"name": "条件为假时执行",
"type": "boolean",
"value": false,
"description": "条件为假时是否执行子节点",
"required": false
},
"checkInterval": {
"name": "检查间隔",
"type": "number",
"value": 0,
"description": "条件检查间隔时间0表示每帧检查",
"required": false
},
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "检查生命值是否过低",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"condition": {
"type": "blackboard-value-comparison",
"properties": {
"variableName": "isLowHealth",
"operator": "equal",
"compareValue": true
}
},
"children": [
"retreat-action"
],
"x": 400,
"y": 572,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false,
"attachedCondition": {
"type": "blackboard-value-comparison",
"name": "黑板值比较",
"properties": {
"variableName": "isLowHealth",
"operator": "equal",
"compareValue": true
}
}
},
{
"id": "retreat-action",
"type": "event-action",
"name": "撤退到安全位置",
"position": {
"x": 150,
"y": 450
},
"properties": {
"eventName": {
"name": "事件名称",
"type": "string",
"value": "retreat-to-safety",
"description": "要执行的事件名称enemy.attack, player.move",
"required": true
},
"parameters": {
"name": "事件参数",
"type": "string",
"value": "{}",
"description": "传递给事件处理函数的参数JSON格式",
"required": false
},
"timeout": {
"name": "超时时间",
"type": "number",
"value": 0,
"description": "事件执行超时时间0表示无限制",
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "撤退到最近的安全建筑",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"x": 400,
"y": 874.9,
"children": [],
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "command-sequence",
"type": "sequence",
"name": "命令执行",
"position": {
"x": 400,
"y": 250
},
"properties": {
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "执行玩家发布的命令",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"children": [
"has-command-check"
],
"x": 1320,
"y": 376,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "has-command-check",
"type": "conditional-decorator",
"name": "命令检查",
"position": {
"x": 350,
"y": 350
},
"properties": {
"conditionType": {
"name": "条件类型",
"type": "select",
"value": "custom",
"description": "装饰器使用的条件类型",
"options": [
"custom",
"random",
"hasComponent",
"hasTag",
"isActive",
"numericCompare",
"propertyExists"
],
"required": false
},
"executeWhenTrue": {
"name": "条件为真时执行",
"type": "boolean",
"value": true,
"description": "条件为真时是否执行子节点",
"required": false
},
"executeWhenFalse": {
"name": "条件为假时执行",
"type": "boolean",
"value": false,
"description": "条件为假时是否执行子节点",
"required": false
},
"checkInterval": {
"name": "检查间隔",
"type": "number",
"value": 0,
"description": "条件检查间隔时间0表示每帧检查",
"required": false
},
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "检查是否有待执行的命令",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"condition": {
"type": "blackboard-value-comparison",
"properties": {
"variableName": "hasTarget",
"operator": "equal",
"compareValue": true
}
},
"children": [
"command-selector"
],
"x": 1320,
"y": 572,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false,
"attachedCondition": {
"type": "blackboard-value-comparison",
"name": "黑板值比较",
"properties": {
"variableName": "hasTarget",
"operator": "equal",
"compareValue": true
}
}
},
{
"id": "command-selector",
"type": "selector",
"name": "命令选择器",
"position": {
"x": 400,
"y": 450
},
"properties": {
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "根据命令类型选择执行方式",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"children": [
"move-command",
"gather-command",
"build-command",
"repair-command"
],
"x": 1320,
"y": 874.9,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "move-command",
"type": "sequence",
"name": "移动命令",
"position": {
"x": 250,
"y": 550
},
"properties": {
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "执行移动到目标位置",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"children": [
"is-move-command",
"move-to-target"
],
"x": 745,
"y": 1070.9,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "is-move-command",
"type": "conditional-decorator",
"name": "移动命令检查",
"position": {
"x": 200,
"y": 650
},
"properties": {
"conditionType": {
"name": "条件类型",
"type": "select",
"value": "custom",
"description": "装饰器使用的条件类型",
"options": [
"custom",
"random",
"hasComponent",
"hasTag",
"isActive",
"numericCompare",
"propertyExists"
],
"required": false
},
"executeWhenTrue": {
"name": "条件为真时执行",
"type": "boolean",
"value": true,
"description": "条件为真时是否执行子节点",
"required": false
},
"executeWhenFalse": {
"name": "条件为假时执行",
"type": "boolean",
"value": false,
"description": "条件为假时是否执行子节点",
"required": false
},
"checkInterval": {
"name": "检查间隔",
"type": "number",
"value": 0,
"description": "条件检查间隔时间0表示每帧检查",
"required": false
},
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
}
},
"condition": {
"type": "blackboard-value-comparison",
"properties": {
"variableName": "currentCommand",
"operator": "equal",
"compareValue": "move"
}
},
"children": [
"move-to-target"
],
"x": 630,
"y": 1266.9,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false,
"attachedCondition": {
"type": "blackboard-value-comparison",
"name": "黑板值比较",
"properties": {
"variableName": "currentCommand",
"operator": "equal",
"compareValue": "move"
}
}
},
{
"id": "move-to-target",
"type": "event-action",
"name": "移动到目标",
"position": {
"x": 200,
"y": 750
},
"properties": {
"eventName": {
"name": "事件名称",
"type": "string",
"value": "move-to-target",
"description": "要执行的事件名称enemy.attack, player.move",
"required": true
},
"parameters": {
"name": "事件参数",
"type": "string",
"value": "{}",
"description": "传递给事件处理函数的参数JSON格式",
"required": false
},
"timeout": {
"name": "超时时间",
"type": "number",
"value": 0,
"description": "事件执行超时时间0表示无限制",
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "移动到指定的目标位置",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"x": 860,
"y": 1266.9,
"children": [],
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "gather-command",
"type": "conditional-decorator",
"name": "收集命令",
"position": {
"x": 350,
"y": 550
},
"properties": {
"conditionType": {
"name": "条件类型",
"type": "select",
"value": "custom",
"description": "装饰器使用的条件类型",
"options": [
"custom",
"random",
"hasComponent",
"hasTag",
"isActive",
"numericCompare",
"propertyExists"
],
"required": false
},
"executeWhenTrue": {
"name": "条件为真时执行",
"type": "boolean",
"value": true,
"description": "条件为真时是否执行子节点",
"required": false
},
"executeWhenFalse": {
"name": "条件为假时执行",
"type": "boolean",
"value": false,
"description": "条件为假时是否执行子节点",
"required": false
},
"checkInterval": {
"name": "检查间隔",
"type": "number",
"value": 0,
"description": "条件检查间隔时间0表示每帧检查",
"required": false
},
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "执行资源收集",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"condition": {
"type": "blackboard-value-comparison",
"properties": {
"variableName": "currentCommand",
"operator": "equal",
"compareValue": "gather"
}
},
"children": [
"gather-sequence"
],
"x": 1320,
"y": 1070.9,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false,
"attachedCondition": {
"type": "blackboard-value-comparison",
"name": "黑板值比较",
"icon": "⚖️",
"properties": {
"variableName": "currentCommand",
"operator": "equal",
"compareValue": "gather"
}
}
},
{
"id": "gather-sequence",
"type": "sequence",
"name": "收集序列",
"position": {
"x": 350,
"y": 750
},
"properties": {
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "寻找资源并收集",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"children": [
"find-resource",
"gather-resource",
"return-resource"
],
"x": 1320,
"y": 1373.8000000000002,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "find-resource",
"type": "event-action",
"name": "寻找资源",
"position": {
"x": 250,
"y": 850
},
"properties": {
"eventName": {
"name": "事件名称",
"type": "string",
"value": "find-nearest-resource",
"description": "要执行的事件名称enemy.attack, player.move",
"required": true
},
"parameters": {
"name": "事件参数",
"type": "string",
"value": "{}",
"description": "传递给事件处理函数的参数JSON格式",
"required": false
},
"timeout": {
"name": "超时时间",
"type": "number",
"value": 0,
"description": "事件执行超时时间0表示无限制",
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "寻找最近的可收集资源",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"x": 1090,
"y": 1569.8000000000002,
"children": [],
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "gather-resource",
"type": "event-action",
"name": "收集资源",
"position": {
"x": 350,
"y": 850
},
"properties": {
"eventName": {
"name": "事件名称",
"type": "string",
"value": "gather-resource",
"description": "要执行的事件名称enemy.attack, player.move",
"required": true
},
"parameters": {
"name": "事件参数",
"type": "string",
"value": "{}",
"description": "传递给事件处理函数的参数JSON格式",
"required": false
},
"timeout": {
"name": "超时时间",
"type": "number",
"value": 0,
"description": "事件执行超时时间0表示无限制",
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "从资源点收集资源",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"x": 1320,
"y": 1569.8000000000002,
"children": [],
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "return-resource",
"type": "event-action",
"name": "运输资源",
"position": {
"x": 450,
"y": 850
},
"properties": {
"eventName": {
"name": "事件名称",
"type": "string",
"value": "return-to-base",
"description": "要执行的事件名称enemy.attack, player.move",
"required": true
},
"parameters": {
"name": "事件参数",
"type": "string",
"value": "{}",
"description": "传递给事件处理函数的参数JSON格式",
"required": false
},
"timeout": {
"name": "超时时间",
"type": "number",
"value": 0,
"description": "事件执行超时时间0表示无限制",
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "将收集的资源运回基地",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"x": 1550,
"y": 1569.8000000000002,
"children": [],
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "build-command",
"type": "conditional-decorator",
"name": "建造命令",
"position": {
"x": 450,
"y": 550
},
"properties": {
"conditionType": {
"name": "条件类型",
"type": "select",
"value": "custom",
"description": "装饰器使用的条件类型",
"options": [
"custom",
"random",
"hasComponent",
"hasTag",
"isActive",
"numericCompare",
"propertyExists"
],
"required": false
},
"executeWhenTrue": {
"name": "条件为真时执行",
"type": "boolean",
"value": true,
"description": "条件为真时是否执行子节点",
"required": false
},
"executeWhenFalse": {
"name": "条件为假时执行",
"type": "boolean",
"value": false,
"description": "条件为假时是否执行子节点",
"required": false
},
"checkInterval": {
"name": "检查间隔",
"type": "number",
"value": 0,
"description": "条件检查间隔时间0表示每帧检查",
"required": false
},
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "执行建筑建造",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"condition": {
"type": "blackboard-value-comparison",
"properties": {
"variableName": "currentCommand",
"operator": "equal",
"compareValue": "build"
}
},
"children": [
"build-structure"
],
"x": 1780,
"y": 1070.9,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false,
"attachedCondition": {
"type": "blackboard-value-comparison",
"name": "黑板值比较",
"icon": "⚖️",
"properties": {
"variableName": "currentCommand",
"operator": "equal",
"compareValue": "build"
}
}
},
{
"id": "build-structure",
"type": "event-action",
"name": "建造建筑",
"position": {
"x": 450,
"y": 750
},
"properties": {
"eventName": {
"name": "事件名称",
"type": "string",
"value": "build-structure",
"description": "要执行的事件名称enemy.attack, player.move",
"required": true
},
"parameters": {
"name": "事件参数",
"type": "string",
"value": "{}",
"description": "传递给事件处理函数的参数JSON格式",
"required": false
},
"timeout": {
"name": "超时时间",
"type": "number",
"value": 0,
"description": "事件执行超时时间0表示无限制",
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "在指定位置建造建筑",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"x": 1780,
"y": 1373.8000000000002,
"children": [],
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "repair-command",
"type": "conditional-decorator",
"name": "修理命令",
"position": {
"x": 550,
"y": 550
},
"properties": {
"conditionType": {
"name": "条件类型",
"type": "select",
"value": "custom",
"description": "装饰器使用的条件类型",
"options": [
"custom",
"random",
"hasComponent",
"hasTag",
"isActive",
"numericCompare",
"propertyExists"
],
"required": false
},
"executeWhenTrue": {
"name": "条件为真时执行",
"type": "boolean",
"value": true,
"description": "条件为真时是否执行子节点",
"required": false
},
"executeWhenFalse": {
"name": "条件为假时执行",
"type": "boolean",
"value": false,
"description": "条件为假时是否执行子节点",
"required": false
},
"checkInterval": {
"name": "检查间隔",
"type": "number",
"value": 0,
"description": "条件检查间隔时间0表示每帧检查",
"required": false
},
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "执行建筑修理",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"condition": {
"type": "blackboard-value-comparison",
"properties": {
"variableName": "currentCommand",
"operator": "equal",
"compareValue": "repair"
}
},
"children": [
"repair-structure"
],
"x": 2010,
"y": 1070.9,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false,
"attachedCondition": {
"type": "blackboard-value-comparison",
"name": "黑板值比较",
"icon": "⚖️",
"properties": {
"variableName": "currentCommand",
"operator": "equal",
"compareValue": "repair"
}
}
},
{
"id": "repair-structure",
"type": "event-action",
"name": "修理建筑",
"position": {
"x": 550,
"y": 750
},
"properties": {
"eventName": {
"name": "事件名称",
"type": "string",
"value": "repair-structure",
"description": "要执行的事件名称enemy.attack, player.move",
"required": true
},
"parameters": {
"name": "事件参数",
"type": "string",
"value": "{}",
"description": "传递给事件处理函数的参数JSON格式",
"required": false
},
"timeout": {
"name": "超时时间",
"type": "number",
"value": 0,
"description": "事件执行超时时间0表示无限制",
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "修理受损的建筑",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"x": 2010,
"y": 1373.8000000000002,
"children": [],
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "idle-sequence",
"type": "sequence",
"name": "空闲行为",
"position": {
"x": 600,
"y": 250
},
"properties": {
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "没有命令时的默认行为",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"children": [
"idle-selector"
],
"x": 2470,
"y": 376,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "idle-selector",
"type": "selector",
"name": "空闲选择器",
"position": {
"x": 600,
"y": 350
},
"properties": {
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "选择空闲时的行为",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"children": [
"auto-gather",
"patrol-area",
"wait-action"
],
"x": 2470,
"y": 572,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "auto-gather",
"type": "sequence",
"name": "自动收集",
"position": {
"x": 550,
"y": 450
},
"properties": {
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "自动寻找并收集附近资源",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"children": [
"has-nearby-resource"
],
"x": 2240,
"y": 768,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "has-nearby-resource",
"type": "conditional-decorator",
"name": "附近资源检查",
"position": {
"x": 500,
"y": 550
},
"properties": {
"conditionType": {
"name": "条件类型",
"type": "select",
"value": "custom",
"description": "装饰器使用的条件类型",
"options": [
"custom",
"random",
"hasComponent",
"hasTag",
"isActive",
"numericCompare",
"propertyExists"
],
"required": false
},
"executeWhenTrue": {
"name": "条件为真时执行",
"type": "boolean",
"value": true,
"description": "条件为真时是否执行子节点",
"required": false
},
"executeWhenFalse": {
"name": "条件为假时执行",
"type": "boolean",
"value": false,
"description": "条件为假时是否执行子节点",
"required": false
},
"checkInterval": {
"name": "检查间隔",
"type": "number",
"value": 0,
"description": "条件检查间隔时间0表示每帧检查",
"required": false
},
"abortType": {
"name": "中止类型",
"type": "select",
"value": "None",
"description": "决定节点在何种情况下会被中止",
"options": [
"None",
"LowerPriority",
"Self",
"Both"
],
"required": false
}
},
"condition": {
"type": "blackboard-value-comparison",
"properties": {
"variableName": "hasNearbyResource",
"operator": "equal",
"compareValue": true
}
},
"children": [
"auto-gather-action"
],
"x": 2240,
"y": 964,
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false,
"attachedCondition": {
"type": "blackboard-value-comparison",
"name": "黑板值比较",
"properties": {
"variableName": "hasNearbyResource",
"operator": "equal",
"compareValue": true
}
}
},
{
"id": "auto-gather-action",
"type": "event-action",
"name": "自动收集执行",
"position": {
"x": 550,
"y": 650
},
"properties": {
"eventName": {
"name": "事件名称",
"type": "string",
"value": "auto-gather-resource",
"description": "要执行的事件名称enemy.attack, player.move",
"required": true
},
"parameters": {
"name": "事件参数",
"type": "string",
"value": "{}",
"description": "传递给事件处理函数的参数JSON格式",
"required": false
},
"timeout": {
"name": "超时时间",
"type": "number",
"value": 0,
"description": "事件执行超时时间0表示无限制",
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "自动收集附近的资源",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"x": 2240,
"y": 1243.5,
"children": [],
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "patrol-area",
"type": "event-action",
"name": "区域巡逻",
"position": {
"x": 650,
"y": 450
},
"properties": {
"eventName": {
"name": "事件名称",
"type": "string",
"value": "patrol-area",
"description": "要执行的事件名称enemy.attack, player.move",
"required": true
},
"parameters": {
"name": "事件参数",
"type": "string",
"value": "{}",
"description": "传递给事件处理函数的参数JSON格式",
"required": false
},
"timeout": {
"name": "超时时间",
"type": "number",
"value": 0,
"description": "事件执行超时时间0表示无限制",
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "在指定区域内巡逻",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"x": 2470,
"y": 768,
"children": [],
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
},
{
"id": "wait-action",
"type": "wait-action",
"name": "等待",
"position": {
"x": 750,
"y": 450
},
"properties": {
"waitTime": {
"name": "等待时间",
"type": "number",
"value": 2,
"description": "等待时间必须大于0",
"required": true
},
"useExternalTime": {
"name": "使用外部时间",
"type": "boolean",
"value": false,
"description": "是否使用上下文提供的deltaTime否则使用内部时间计算",
"required": false
},
"description": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": {
"name": "description",
"type": "string",
"value": "等待新的命令或任务",
"description": "",
"required": false
},
"description": "",
"required": false
},
"description": "",
"required": false
}
},
"x": 2700,
"y": 768,
"children": [],
"canHaveChildren": true,
"canHaveParent": true,
"hasError": false
}
],
"connections": [
{
"id": "root-main-selector",
"sourceId": "root",
"targetId": "main-selector",
"path": "M 1629.5000712076821 128.000005086263 C 1629.5000712076821 158.000005086263 1639.5000712076821 152.0000076293945 1639.5000712076821 182.0000076293945",
"active": false
},
{
"id": "main-selector-emergency-sequence",
"sourceId": "main-selector",
"targetId": "emergency-sequence",
"path": "M 1639.5000712076821 278.00003051757807 C 1639.5000712076821 328.00003051757807 480.000025431315 328.00003051757807 480.000025431315 378.00003051757807",
"active": false
},
{
"id": "main-selector-command-sequence",
"sourceId": "main-selector",
"targetId": "command-sequence",
"path": "M 1639.5000712076821 278.00003051757807 C 1639.5000712076821 328.00003051757807 1409.5000712076821 328.00003051757807 1409.5000712076821 378.00003051757807",
"active": false
},
{
"id": "main-selector-idle-sequence",
"sourceId": "main-selector",
"targetId": "idle-sequence",
"path": "M 1639.5000712076821 278.00003051757807 C 1639.5000712076821 328.00003051757807 2569.0001424153643 328.00003051757807 2569.0001424153643 378.00003051757807",
"active": false
},
{
"id": "emergency-sequence-low-health-check",
"sourceId": "emergency-sequence",
"targetId": "low-health-check",
"path": "M 480.000025431315 474.000015258789 C 480.000025431315 524.000015258789 510.000025431315 524.000015258789 510.000025431315 574.000015258789",
"active": false
},
{
"id": "low-health-check-retreat-action",
"sourceId": "low-health-check",
"targetId": "retreat-action",
"path": "M 510.000025431315 757.781270345052 C 510.000025431315 817.335968017578 480.000025431315 817.335968017578 480.000025431315 876.890665690104",
"active": false
},
{
"id": "command-sequence-has-command-check",
"sourceId": "command-sequence",
"targetId": "has-command-check",
"path": "M 1409.5000712076821 474.000015258789 C 1409.5000712076821 524.000015258789 1439.5000712076821 524.000015258789 1439.5000712076821 574.000015258789",
"active": false
},
{
"id": "has-command-check-command-selector",
"sourceId": "has-command-check",
"targetId": "command-selector",
"path": "M 1439.5000712076821 757.781270345052 C 1439.5000712076821 817.335968017578 1409.5000712076821 817.335968017578 1409.5000712076821 876.890665690104",
"active": false
},
{
"id": "command-selector-move-command",
"sourceId": "command-selector",
"targetId": "move-command",
"path": "M 1409.5000712076821 972.89067586263 C 1409.5000712076821 1022.8906758626301 825.000025431315 1022.8906758626301 825.000025431315 1072.8906758626301",
"active": false
},
{
"id": "command-selector-gather-command",
"sourceId": "command-selector",
"targetId": "gather-command",
"path": "M 1409.5000712076821 972.89067586263 C 1409.5000712076821 1022.8906758626301 1435.687561035156 1022.8906758626301 1435.687561035156 1072.8906758626301",
"active": false
},
{
"id": "command-selector-build-command",
"sourceId": "command-selector",
"targetId": "build-command",
"path": "M 1409.5000712076821 972.89067586263 C 1409.5000712076821 1022.8906758626301 1903.2969156901038 1022.8906758626301 1903.2969156901038 1072.8906758626301",
"active": false
},
{
"id": "command-selector-repair-command",
"sourceId": "command-selector",
"targetId": "repair-command",
"path": "M 1409.5000712076821 972.89067586263 C 1409.5000712076821 1022.8906758626301 2137.093811035156 1022.8906758626301 2137.093811035156 1072.8906758626301",
"active": false
},
{
"id": "move-command-is-move-command",
"sourceId": "move-command",
"targetId": "is-move-command",
"path": "M 825.000025431315 1168.890635172526 C 825.000025431315 1218.890635172526 740.000025431315 1218.890635172526 740.000025431315 1268.890635172526",
"active": false
},
{
"id": "move-command-move-to-target",
"sourceId": "move-command",
"targetId": "move-to-target",
"path": "M 825.000025431315 1168.890635172526 C 825.000025431315 1218.890635172526 940.00005086263 1218.890635172526 940.00005086263 1268.890635172526",
"active": false
},
{
"id": "is-move-command-move-to-target",
"sourceId": "is-move-command",
"targetId": "move-to-target",
"path": "M 740.000025431315 1452.6719665527341 C 740.000025431315 1532.6719665527341 940.00005086263 1188.890635172526 940.00005086263 1268.890635172526",
"active": false
},
{
"id": "gather-command-gather-sequence",
"sourceId": "gather-command",
"targetId": "gather-sequence",
"path": "M 1435.687561035156 1256.671905517578 C 1435.687561035156 1315.35161336263 1411.390686035156 1315.35161336263 1411.390686035156 1374.0313212076821",
"active": false
},
{
"id": "gather-sequence-find-resource",
"sourceId": "gather-sequence",
"targetId": "find-resource",
"path": "M 1411.390686035156 1470.031280517578 C 1411.390686035156 1520.0312550862627 1181.390635172526 1520.0312550862627 1181.390635172526 1570.0312296549478",
"active": false
},
{
"id": "gather-sequence-gather-resource",
"sourceId": "gather-sequence",
"targetId": "gather-resource",
"path": "M 1411.390686035156 1470.031280517578 C 1411.390686035156 1520.0312550862627 1411.390686035156 1520.0312550862627 1411.390686035156 1570.0312296549478",
"active": false
},
{
"id": "gather-sequence-return-resource",
"sourceId": "gather-sequence",
"targetId": "return-resource",
"path": "M 1411.390686035156 1470.031280517578 C 1411.390686035156 1520.0312550862627 1641.390686035156 1520.0312550862627 1641.390686035156 1570.0312296549478",
"active": false
},
{
"id": "build-command-build-structure",
"sourceId": "build-command",
"targetId": "build-structure",
"path": "M 1903.2969156901038 1256.671905517578 C 1903.2969156901038 1315.35161336263 1875.187581380208 1315.35161336263 1875.187581380208 1374.0313212076821",
"active": false
},
{
"id": "repair-command-repair-structure",
"sourceId": "repair-command",
"targetId": "repair-structure",
"path": "M 2137.093811035156 1256.671905517578 C 2137.093811035156 1315.35161336263 2109.000040690104 1315.35161336263 2109.000040690104 1374.0313212076821",
"active": false
},
{
"id": "idle-sequence-idle-selector",
"sourceId": "idle-sequence",
"targetId": "idle-selector",
"path": "M 2569.0001424153643 474.000015258789 C 2569.0001424153643 524.000015258789 2569.0001424153643 524.000015258789 2569.0001424153643 574.000015258789",
"active": false
},
{
"id": "idle-selector-auto-gather",
"sourceId": "idle-selector",
"targetId": "auto-gather",
"path": "M 2569.0001424153643 669.9999999999999 C 2569.0001424153643 719.9999999999999 2339.000040690104 719.9999999999999 2339.000040690104 769.9999999999999",
"active": false
},
{
"id": "idle-selector-patrol-area",
"sourceId": "idle-selector",
"targetId": "patrol-area",
"path": "M 2569.0001424153643 669.9999999999999 C 2569.0001424153643 719.9999999999999 2569.0001424153643 719.9999999999999 2569.0001424153643 769.9999999999999",
"active": false
},
{
"id": "idle-selector-wait-action",
"sourceId": "idle-selector",
"targetId": "wait-action",
"path": "M 2569.0001424153643 669.9999999999999 C 2569.0001424153643 719.9999999999999 2799.0001424153643 719.9999999999999 2799.0001424153643 769.9999999999999",
"active": false
},
{
"id": "auto-gather-has-nearby-resource",
"sourceId": "auto-gather",
"targetId": "has-nearby-resource",
"path": "M 2339.000040690104 866.0000101725259 C 2339.000040690104 916.0000101725259 2369.000040690104 916.0000101725259 2369.000040690104 966.0000101725259",
"active": false
},
{
"id": "has-nearby-resource-auto-gather-action",
"sourceId": "has-nearby-resource",
"targetId": "auto-gather-action",
"path": "M 2369.000040690104 1149.781290690104 C 2369.000040690104 1197.6406606038408 2339.000040690104 1197.6406606038408 2339.000040690104 1245.500030517578",
"active": false
}
],
"metadata": {
"name": "assets/resources/worker-ai.btree",
"created": "2025-06-24T09:41:27.279Z",
"version": "1.0"
},
"blackboard": [
{
"name": "unitType",
"type": "string",
"value": "worker",
"description": "单位类型"
},
{
"name": "currentHealth",
"type": "number",
"value": 100,
"description": "当前生命值"
},
{
"name": "maxHealth",
"type": "number",
"value": 100,
"description": "最大生命值"
},
{
"name": "isLowHealth",
"type": "boolean",
"value": false,
"description": "生命值是否过低"
},
{
"name": "currentCommand",
"type": "string",
"value": "idle",
"description": "当前执行的命令"
},
{
"name": "hasTarget",
"type": "boolean",
"value": false,
"description": "是否有目标"
},
{
"name": "targetPosition",
"type": "object",
"value": {
"x": 0,
"y": 0,
"z": 0
},
"description": "目标位置"
},
{
"name": "hasNearbyResource",
"type": "boolean",
"value": false,
"description": "附近是否有资源"
},
{
"name": "carryingResource",
"type": "boolean",
"value": false,
"description": "是否携带资源"
},
{
"name": "resourceAmount",
"type": "number",
"value": 0,
"description": "携带的资源数量"
},
{
"name": "moveSpeed",
"type": "number",
"value": 3,
"description": "移动速度"
},
{
"name": "workEfficiency",
"type": "number",
"value": 1,
"description": "工作效率"
}
]
}