39 lines
1.7 KiB
JavaScript
39 lines
1.7 KiB
JavaScript
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);
|
|
}
|
|
}
|
|
});
|