diff --git a/common/BehaviorTreeModel.ts b/common/BehaviorTreeModel.ts index eca6ed7..0d5816f 100644 --- a/common/BehaviorTreeModel.ts +++ b/common/BehaviorTreeModel.ts @@ -14,7 +14,7 @@ export interface BehaviorNodeModel { id: number; name: string; desc?: string; - args?: string[][3]; + args?: {[key: string]: any}; input?: string[]; output?: string; children?: BehaviorNodeModel[]; @@ -28,7 +28,7 @@ export interface BehaviorTreeModel { export interface GraphNodeModel extends TreeGraphData { name: string; desc?: string; - args?: string[][3]; + args?: {[key: string]: any}; input?: string[]; output?: string; children?: GraphNodeModel[]; diff --git a/common/Utils.ts b/common/Utils.ts index 2f15832..e154066 100644 --- a/common/Utils.ts +++ b/common/Utils.ts @@ -26,15 +26,15 @@ export const refreshNodeId = (nodeData: GraphNodeModel, id?: number) => { export const calcTreeNodeSize = (treeNode: GraphNodeModel) => { var height = 40; - const updateHeight = (arr: any) => { - if(arr && arr.length > 0) { - height += 30; + const updateHeight = (obj: any) => { + if (Array.isArray(obj) || (obj && Object.keys(obj).length > 0)) { + height += 25; } } updateHeight(treeNode.args); updateHeight(treeNode.input); updateHeight(treeNode.output); - return [150, height]; + return [200, height]; } export const createTreeData = (bNode: BehaviorNodeModel) => { diff --git a/render-process/index.tsx b/render-process/index.tsx index 461598d..ce11210 100644 --- a/render-process/index.tsx +++ b/render-process/index.tsx @@ -57,7 +57,6 @@ export default class Main extends Component { }, style: { fill: "white", - width: 150, }, stateStyles: { selected: { @@ -165,6 +164,7 @@ export default class Main extends Component { textBaseline: 'top', x: x0 + 18, y: y0 + 4, + fontWeight: 800, lineHeight: 20, text: cfg.name, fill: 'black', @@ -191,6 +191,54 @@ export default class Main extends Component { }); } + const args: any = cfg.args; + if (args && Object.keys(args).length > 0) { + y += 20; + group.addShape('text', { + attrs: { + textBaseline: 'top', + x, + y, + lineHeight: 20, + text: `参数:${JSON.stringify(args)}`, + fill: 'black', + }, + name: 'args-text', + }); + } + + const input: [] = cfg.input ? cfg.input as [] : []; + if (input.length > 0) { + y += 20; + group.addShape('text', { + attrs: { + textBaseline: 'top', + x, + y, + lineHeight: 20, + text: `输入:${JSON.stringify(input)}`, + fill: 'black', + }, + name: 'input-text', + }); + } + + const output: [] = cfg.output ? cfg.output as [] : []; + if (output.length > 0) { + y += 20; + group.addShape('text', { + attrs: { + textBaseline: 'top', + x, + y, + lineHeight: 20, + text: `输出:${JSON.stringify(output)}`, + fill: 'black', + }, + name: 'output-text', + }); + } + group.addShape('rect', { name: 'drag-up', attrs: {