2029 lines
56 KiB
Plaintext
2029 lines
56 KiB
Plaintext
{
|
||
"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": "工作效率"
|
||
}
|
||
]
|
||
}
|