mirror of
https://github.com/barsdeveloper/ueblueprint.git
synced 2026-02-15 09:44:49 +08:00
Fix Niagara variables
This commit is contained in:
@@ -13,17 +13,32 @@ export default class NiagaraClipboardContent extends ObjectEntity {
|
||||
const typePath = Configuration.paths.niagaraClipboardContent
|
||||
const name = blueprint.takeFreeName("NiagaraClipboardContent")
|
||||
const exportPath = `/Engine/Transient.${name}`
|
||||
/** @type {Set<Number>} */
|
||||
const variableIndexes = new Set()
|
||||
let exported = ""
|
||||
for (const node of nodes) {
|
||||
if (node.exported) {
|
||||
node.getPinEntities()
|
||||
.map(pin => blueprint.variableIndex(pin.PinName.toString()))
|
||||
.filter(v => v != null)
|
||||
.forEach(i => variableIndexes.add(i))
|
||||
exported += node.serialize()
|
||||
}
|
||||
}
|
||||
const result = nodes.filter(n => !n.exported).map(n => n.serialize())
|
||||
const scriptVariables = blueprint.ScriptVariables.valueOf().filter((v, i) => variableIndexes.has(i))
|
||||
const variableObjects = scriptVariables.concat(scriptVariables).map((v, i) => {
|
||||
const name = Configuration.subObjectAttributeNameFromReference(
|
||||
v.ScriptVariable,
|
||||
i >= scriptVariables.length // First take all the small objects then all name only
|
||||
)
|
||||
return [name, blueprint[name]]
|
||||
})
|
||||
super({
|
||||
Class: new ObjectReferenceEntity(typePath),
|
||||
Name: new StringEntity(name),
|
||||
...Object.fromEntries(variableObjects),
|
||||
ExportPath: new ObjectReferenceEntity(typePath, exportPath),
|
||||
ScriptVariables: new (NiagaraClipboardContent.attributes.ScriptVariables)(scriptVariables),
|
||||
ExportedNodes: new StringEntity(btoa(exported))
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user