mirror of
https://github.com/barsdeveloper/ueblueprint.git
synced 2026-02-04 08:50:33 +08:00
* Fix node reference when changing elements * Fix ScriptVariables parsing * Fix invariant text and niagara types * Niagara convert nodes * Move node tests to own files * More Niagara tests * Niagara float and smaller fixes * More Decoding * More decoding * WIP * Float is real * WIP * More types and colors * Test case and small polish * WIP * WIP * Fix niagara script variables merging * Fix Niagara variables * Fixing mirrored ExportPath * Fix Export paths name adjustments * Simplify arc calculation * Simplify a bit arc calculation * source / destionation => origin / target * Minor refactoring * Fix switched link position * Rename some properties for uniformity * Fix input escape * Simplify test * About window * Dialog backdrop style * About dialog touches * Remove dependency and minot improvement * Light mode * Fix link location and css small improvement * Link direction and minor fixes * Some minor fixes and refactoring * Refactoring WIP * Shorting repetitive bits * More tests * Simplify linking tests
46 lines
1.9 KiB
JavaScript
Executable File
46 lines
1.9 KiB
JavaScript
Executable File
import Configuration from "../../Configuration.js"
|
|
import ObjectEntity from "../ObjectEntity.js"
|
|
import ObjectReferenceEntity from "../ObjectReferenceEntity.js"
|
|
import StringEntity from "../StringEntity.js"
|
|
|
|
export default class NiagaraClipboardContent extends ObjectEntity {
|
|
|
|
/**
|
|
* @param {BlueprintEntity} blueprint
|
|
* @param {ObjectEntity[]} nodes
|
|
*/
|
|
constructor(blueprint, nodes) {
|
|
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 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))
|
|
})
|
|
}
|
|
}
|