{ "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": "工作效率" } ] }