| import { app } from '../../scripts/app.js'; | |
| import { addConnectionLayoutSupport } from './utils.js'; | |
| import { PowerPrompt } from './base_power_prompt.js'; | |
| let nodeData = null; | |
| app.registerExtension({ | |
| name: 'rgthree.PowerPrompt', | |
| async beforeRegisterNodeDef(nodeType, passedNodeData, _app) { | |
| if (passedNodeData.name.includes('Power Prompt') && passedNodeData.name.includes('rgthree')) { | |
| nodeData = passedNodeData; | |
| const onNodeCreated = nodeType.prototype.onNodeCreated; | |
| nodeType.prototype.onNodeCreated = function () { | |
| onNodeCreated ? onNodeCreated.apply(this, []) : undefined; | |
| this.powerPrompt = new PowerPrompt(this, passedNodeData); | |
| }; | |
| addConnectionLayoutSupport(nodeType, app, [['Left', 'Right'], ['Right', 'Left']]); | |
| } | |
| }, | |
| async loadedGraphNode(node) { | |
| if (node.type === 'Power Prompt (rgthree)') { | |
| setTimeout(() => { | |
| if (node.outputs[0].type === 'STRING') { | |
| if (node.outputs[0].links) { | |
| node.outputs[3].links = node.outputs[3].links || []; | |
| for (const link of node.outputs[0].links) { | |
| node.outputs[3].links.push(link); | |
| app.graph.links[link].origin_slot = 3; | |
| } | |
| node.outputs[0].links = null; | |
| } | |
| node.outputs[0].type = nodeData.output[0]; | |
| node.outputs[0].name = nodeData.output_name[0] || node.outputs[0].type; | |
| node.outputs[0].color_on = undefined; | |
| node.outputs[0].color_off = undefined; | |
| } | |
| }, 50); | |
| } | |
| } | |
| }); | |