diff --git a/main-process/Settings.ts b/main-process/Settings.ts index 0a95ba5..f095f65 100644 --- a/main-process/Settings.ts +++ b/main-process/Settings.ts @@ -22,6 +22,12 @@ const sampleNodeClassify: BehaviorNodeClassify[] = [ { classify: "Action", desc: "行为节点" }, ] +const unknowNodeType: BehaviorNodeTypeModel = { + name: 'unknow', + desc: '新建节点', + type: 'Action', +} + export default class Settings { private settings: SettingsModel; private name2conf: { [name: string]: BehaviorNodeTypeModel } = {}; @@ -79,6 +85,6 @@ export default class Settings { } getNodeConf(name: string) { - return this.name2conf[name]; + return this.name2conf[name] || unknowNodeType; } } \ No newline at end of file diff --git a/render-process/Editor/NodePanel.tsx b/render-process/Editor/NodePanel.tsx index a1e222c..fabcc3d 100644 --- a/render-process/Editor/NodePanel.tsx +++ b/render-process/Editor/NodePanel.tsx @@ -11,7 +11,7 @@ const { Item } = Form; interface NodePanelProps { model: BehaviorNodeModel; settings: Settings; - updateNode: (id: string) => void; + updateNode: (id: string, forceUpdate:boolean) => void; } interface NodePanelState { @@ -109,10 +109,10 @@ export default class NodePanel extends React.Component { model.output = null; } - updateNode(model.id.toString()); if (forceUpdate) { this.forceUpdate(); } + updateNode(model.id.toString(), forceUpdate); }; onFinishFailed = (errorInfo: any) => { diff --git a/render-process/Editor/index.tsx b/render-process/Editor/index.tsx index 6d5a03a..22babfc 100644 --- a/render-process/Editor/index.tsx +++ b/render-process/Editor/index.tsx @@ -306,7 +306,15 @@ export default class Editor extends React.Component { { + updateNode={(id, forceUpdate) => { + if (forceUpdate) { + const data: any = this.graph.findDataById(id); + data.conf = settings.getNodeConf(data.name); + data.size = Utils.calcTreeNodeSize(data); + this.graph.changeData(); + this.graph.layout(); + } + const item = this.graph.findById(id); item.draw(); }} diff --git a/render-process/RegisterNode.ts b/render-process/RegisterNode.ts index a111d7f..d4f08b5 100644 --- a/render-process/RegisterNode.ts +++ b/render-process/RegisterNode.ts @@ -165,7 +165,7 @@ export default function (settings: Settings) { } const args: any = cfg.args; - if (args && Object.keys(args).length > 0) { + if (nodeConf.args && args && Object.keys(args).length > 0) { y += 20; group.addShape('text', { attrs: { @@ -181,7 +181,7 @@ export default function (settings: Settings) { } const input: [] = cfg.input ? cfg.input as [] : []; - if (input.length > 0) { + if (nodeConf.input && input.length > 0) { y += 20; group.addShape('text', { attrs: { @@ -197,7 +197,7 @@ export default function (settings: Settings) { } const output: [] = cfg.output ? cfg.output as [] : []; - if (output.length > 0) { + if (nodeConf.output && output.length > 0) { y += 20; group.addShape('text', { attrs: {