|
import { app } from "../../scripts/app.js"; |
|
import { addConnectionLayoutSupport } from "./utils.js"; |
|
import { PowerPrompt } from "./base_power_prompt.js"; |
|
import { NodeTypesString } from "./constants.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 === NodeTypesString.POWER_PROMPT) { |
|
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); |
|
} |
|
}, |
|
}); |
|
|