Fix invariant text and niagara types

This commit is contained in:
barsdeveloper
2024-09-15 23:15:00 +02:00
parent 5ea4d75a81
commit 2b028e2800
11 changed files with 123 additions and 57 deletions

80
dist/ueblueprint.js vendored
View File

@@ -203,6 +203,7 @@ class Configuration {
niagaraClipboardContent: "/Script/NiagaraEditor.NiagaraClipboardContent",
niagaraDataInterfaceVolumeTexture: "/Script/Niagara.NiagaraDataInterfaceVolumeTexture",
niagaraFloat: "/Script/Niagara.NiagaraFloat",
NiagaraInt32: "/Script/Niagara.NiagaraInt32",
niagaraMatrix: "/Script/Niagara.NiagaraMatrix",
niagaraNodeFunctionCall: "/Script/NiagaraEditor.NiagaraNodeFunctionCall",
niagaraNodeOp: "/Script/NiagaraEditor.NiagaraNodeOp",
@@ -4155,6 +4156,7 @@ function nodeTitle(entity) {
case Configuration.paths.variableSet:
return "SET"
}
const className = entity.getClass();
let switchTarget = entity.switchTarget();
if (switchTarget) {
if (switchTarget[0] !== "E") {
@@ -4169,14 +4171,14 @@ function nodeTitle(entity) {
if (keyNameSymbol) {
const name = keyNameSymbol.toString();
let title = keyName(name) ?? Utility.formatStringName(name);
if (entity.getClass() === Configuration.paths.inputDebugKey) {
if (className === Configuration.paths.inputDebugKey) {
title = "Debug Key " + title;
} else if (entity.getClass() === Configuration.paths.getInputAxisKeyValue) {
} else if (className === Configuration.paths.getInputAxisKeyValue) {
title = "Get " + title;
}
return title
}
if (entity.getClass() === Configuration.paths.macro) {
if (className === Configuration.paths.macro) {
return Utility.formatStringName(entity.MacroGraphReference?.getMacroName())
}
if (entity.isMaterial() && entity.getMaterialSubobject()) {
@@ -4364,9 +4366,25 @@ function nodeTitle(entity) {
case "Numeric::Add": return "+"
case "Numeric::DistancePos": return "Distance"
case "Numeric::Mul": return String.fromCharCode(0x2a2f)
case "Integer::BitLShift": return "Bitwise Left Shift"
case "Integer::BitAnd": return "Bitwise AND"
case "Integer::BitNot": return "Bitwise NOT"
case "Integer::BitOr": return "Bitwise OR"
case "Integer::BitRShift": return "Bitwise Right Shift"
case "Integer::BitXOr": return "Bitwise XOR"
// case "Integer::BitOr": return "Bitwise OR"
// case "Integer::BitOr": return "Bitwise OR"
}
return Utility.formatStringName(entity.OpName.toString()).replaceAll("::", " ")
}
let prefix;
if (
className.startsWith(prefix = "/Script/NiagaraEditor.NiagaraNodeParameter")
|| className.startsWith(prefix = "/Script/NiagaraEditor.NiagaraNode"
)) {
return Utility.formatStringName(className.substring(prefix.length))
}
if (entity.FunctionDisplayName) {
return Utility.formatStringName(entity.FunctionDisplayName.toString())
}
@@ -4645,24 +4663,12 @@ class NaturalNumberEntity extends IntegerEntity {
}
const colors = {
[Configuration.paths.niagaraBool]: i$3`146, 0, 0`,
[Configuration.paths.niagaraDataInterfaceVolumeTexture]: i$3`0, 168, 242`,
[Configuration.paths.niagaraFloat]: i$3`160, 250, 68`,
[Configuration.paths.niagaraMatrix]: i$3`0, 88, 200`,
[Configuration.paths.niagaraNumeric]: i$3`0, 88, 200`,
[Configuration.paths.niagaraPosition]: i$3`251, 146, 251`,
[Configuration.paths.quat4f]: i$3`0, 88, 200`,
[Configuration.paths.rotator]: i$3`157, 177, 251`,
[Configuration.paths.transform]: i$3`227, 103, 0`,
[Configuration.paths.vector]: i$3`251, 198, 34`,
[Configuration.paths.vector3f]: i$3`250, 200, 36`,
[Configuration.paths.vector4f]: i$3`0, 88, 200`,
"Any": i$3`132, 132, 132`,
"Any[]": i$3`132, 132, 132`,
"audio": i$3`252, 148, 252`,
"blue": i$3`0, 0, 255`,
"bool": i$3`146, 0, 0`,
"byte": i$3`0, 109, 99`,
"byte": i$3`0, 110, 100`,
"class": i$3`88, 0, 186`,
"default": i$3`255, 255, 255`,
"delegate": i$3`255, 56, 56`,
@@ -4670,16 +4676,16 @@ const colors = {
"exec": i$3`240, 240, 240`,
"float": i$3`160, 252, 70`,
"green": i$3`0, 255, 0`,
"int": i$3`31, 224, 172`,
"int": i$3`30, 224, 172`,
"int32": i$3`30, 224, 172`,
"int64": i$3`169, 223, 172`,
"int64": i$3`170, 224, 172`,
"interface": i$3`238, 252, 168`,
"name": i$3`201, 128, 251`,
"name": i$3`200, 128, 252`,
"object": i$3`0, 168, 242`,
"Param": i$3`255, 166, 39`,
"Param[]": i$3`255, 166, 39`,
"Point": i$3`63, 137, 255`,
"Point[]": i$3`63, 137, 255`,
"Param": i$3`255, 166, 40`,
"Param[]": i$3`255, 166, 40`,
"Point": i$3`64, 138, 255`,
"Point[]": i$3`64, 137, 255`,
"real": i$3`54, 208, 0`,
"red": i$3`255, 0, 0`,
"string": i$3`251, 0, 208`,
@@ -4691,6 +4697,19 @@ const colors = {
"Volume": i$3`230, 69, 188`,
"Volume[]": i$3`230, 69, 188`,
"wildcard": i$3`128, 120, 120`,
[Configuration.paths.niagaraBool]: i$3`146, 0, 0`,
[Configuration.paths.niagaraDataInterfaceVolumeTexture]: i$3`0, 168, 242`,
[Configuration.paths.niagaraFloat]: i$3`160, 250, 68`,
[Configuration.paths.NiagaraInt32]: i$3`30, 224, 172`,
[Configuration.paths.niagaraMatrix]: i$3`0, 88, 200`,
[Configuration.paths.niagaraNumeric]: i$3`0, 88, 200`,
[Configuration.paths.niagaraPosition]: i$3`251, 146, 251`,
[Configuration.paths.quat4f]: i$3`0, 88, 200`,
[Configuration.paths.rotator]: i$3`157, 177, 251`,
[Configuration.paths.transform]: i$3`227, 103, 0`,
[Configuration.paths.vector]: i$3`251, 198, 34`,
[Configuration.paths.vector3f]: i$3`250, 200, 36`,
[Configuration.paths.vector4f]: i$3`0, 88, 200`,
};
const pinColorMaterial = i$3`120, 120, 120`;
@@ -4721,6 +4740,7 @@ function pinTitle(entity) {
return match[1] // In case they match, then keep the case of the PinToolTip
}
}
result = result.replace(/^Module\./, "");
return result
}
@@ -4899,20 +4919,24 @@ class InvariantTextEntity extends IEntity {
Parsernostrum.reg(new RegExp(`${this.lookbehind}\\s*\\(`)),
Parsernostrum.doubleQuotedString,
Parsernostrum.reg(/\s*\)/)
).map(([_0, value, _2]) => Number(value)),
Parsernostrum.reg(new RegExp(this.lookbehind)).map(() => 0) // InvariantTextEntity can not have arguments
).map(([_0, value, _2]) => value),
Parsernostrum.reg(new RegExp(this.lookbehind)).map(() => "") // InvariantTextEntity can have no arguments
)
.map(value => new this(value))
.label("InvariantTextEntity")
}
doSerialize() {
return this.lookbehind + "(" + this.value + ")"
return this.lookbehind + '("' + this.value + '")'
}
valueOf() {
return this.value
}
toString() {
return this.value
}
}
class LocalizedTextEntity extends IEntity {
@@ -5580,6 +5604,7 @@ class PinEntity extends IEntity {
"real": NumberEntity,
"string": StringEntity,
[Configuration.paths.linearColor]: LinearColorEntity,
[Configuration.paths.niagaraBool]: BooleanEntity,
[Configuration.paths.niagaraPosition]: VectorEntity,
[Configuration.paths.rotator]: RotatorEntity,
[Configuration.paths.vector]: VectorEntity,
@@ -11713,7 +11738,7 @@ class BoolPinTemplate extends PinTemplate {
#input
#onChangeHandler = () => {
const entity = this.element.getDefaultValue();
const entity = this.element.getDefaultValue(true);
entity.value = this.#input.checked;
this.element.setDefaultValue(entity);
}
@@ -12773,6 +12798,7 @@ const inputPinTemplates = {
"string": StringPinTemplate,
[Configuration.paths.linearColor]: LinearColorPinTemplate,
[Configuration.paths.niagaraBool]: BoolPinTemplate,
[Configuration.paths.NiagaraInt32]: IntPinTemplate,
[Configuration.paths.niagaraPosition]: VectorPinTemplate,
[Configuration.paths.rotator]: RotatorPinTemplate,
[Configuration.paths.vector]: VectorPinTemplate,

File diff suppressed because one or more lines are too long

View File

@@ -179,6 +179,7 @@ export default class Configuration {
niagaraClipboardContent: "/Script/NiagaraEditor.NiagaraClipboardContent",
niagaraDataInterfaceVolumeTexture: "/Script/Niagara.NiagaraDataInterfaceVolumeTexture",
niagaraFloat: "/Script/Niagara.NiagaraFloat",
NiagaraInt32: "/Script/Niagara.NiagaraInt32",
niagaraMatrix: "/Script/Niagara.NiagaraMatrix",
niagaraNodeFunctionCall: "/Script/NiagaraEditor.NiagaraNodeFunctionCall",
niagaraNodeOp: "/Script/NiagaraEditor.NiagaraNodeOp",

View File

@@ -207,6 +207,7 @@ export default function nodeTitle(entity) {
case Configuration.paths.variableSet:
return "SET"
}
const className = entity.getClass()
let switchTarget = entity.switchTarget()
if (switchTarget) {
if (switchTarget[0] !== "E") {
@@ -221,14 +222,14 @@ export default function nodeTitle(entity) {
if (keyNameSymbol) {
const name = keyNameSymbol.toString()
let title = keyName(name) ?? Utility.formatStringName(name)
if (entity.getClass() === Configuration.paths.inputDebugKey) {
if (className === Configuration.paths.inputDebugKey) {
title = "Debug Key " + title
} else if (entity.getClass() === Configuration.paths.getInputAxisKeyValue) {
} else if (className === Configuration.paths.getInputAxisKeyValue) {
title = "Get " + title
}
return title
}
if (entity.getClass() === Configuration.paths.macro) {
if (className === Configuration.paths.macro) {
return Utility.formatStringName(entity.MacroGraphReference?.getMacroName())
}
if (entity.isMaterial() && entity.getMaterialSubobject()) {
@@ -416,9 +417,25 @@ export default function nodeTitle(entity) {
case "Numeric::Add": return "+"
case "Numeric::DistancePos": return "Distance"
case "Numeric::Mul": return String.fromCharCode(0x2a2f)
case "Integer::BitLShift": return "Bitwise Left Shift"
case "Integer::BitAnd": return "Bitwise AND"
case "Integer::BitNot": return "Bitwise NOT"
case "Integer::BitOr": return "Bitwise OR"
case "Integer::BitRShift": return "Bitwise Right Shift"
case "Integer::BitXOr": return "Bitwise XOR"
// case "Integer::BitOr": return "Bitwise OR"
// case "Integer::BitOr": return "Bitwise OR"
}
return Utility.formatStringName(entity.OpName.toString()).replaceAll("::", " ")
}
let prefix
if (
className.startsWith(prefix = "/Script/NiagaraEditor.NiagaraNodeParameter")
|| className.startsWith(prefix = "/Script/NiagaraEditor.NiagaraNode"
)) {
return Utility.formatStringName(className.substring(prefix.length))
}
if (entity.FunctionDisplayName) {
return Utility.formatStringName(entity.FunctionDisplayName.toString())
}

View File

@@ -2,24 +2,12 @@ import { css } from "lit"
import Configuration from "../Configuration.js"
const colors = {
[Configuration.paths.niagaraBool]: css`146, 0, 0`,
[Configuration.paths.niagaraDataInterfaceVolumeTexture]: css`0, 168, 242`,
[Configuration.paths.niagaraFloat]: css`160, 250, 68`,
[Configuration.paths.niagaraMatrix]: css`0, 88, 200`,
[Configuration.paths.niagaraNumeric]: css`0, 88, 200`,
[Configuration.paths.niagaraPosition]: css`251, 146, 251`,
[Configuration.paths.quat4f]: css`0, 88, 200`,
[Configuration.paths.rotator]: css`157, 177, 251`,
[Configuration.paths.transform]: css`227, 103, 0`,
[Configuration.paths.vector]: css`251, 198, 34`,
[Configuration.paths.vector3f]: css`250, 200, 36`,
[Configuration.paths.vector4f]: css`0, 88, 200`,
"Any": css`132, 132, 132`,
"Any[]": css`132, 132, 132`,
"audio": css`252, 148, 252`,
"blue": css`0, 0, 255`,
"bool": css`146, 0, 0`,
"byte": css`0, 109, 99`,
"byte": css`0, 110, 100`,
"class": css`88, 0, 186`,
"default": css`255, 255, 255`,
"delegate": css`255, 56, 56`,
@@ -27,16 +15,16 @@ const colors = {
"exec": css`240, 240, 240`,
"float": css`160, 252, 70`,
"green": css`0, 255, 0`,
"int": css`31, 224, 172`,
"int": css`30, 224, 172`,
"int32": css`30, 224, 172`,
"int64": css`169, 223, 172`,
"int64": css`170, 224, 172`,
"interface": css`238, 252, 168`,
"name": css`201, 128, 251`,
"name": css`200, 128, 252`,
"object": css`0, 168, 242`,
"Param": css`255, 166, 39`,
"Param[]": css`255, 166, 39`,
"Point": css`63, 137, 255`,
"Point[]": css`63, 137, 255`,
"Param": css`255, 166, 40`,
"Param[]": css`255, 166, 40`,
"Point": css`64, 138, 255`,
"Point[]": css`64, 137, 255`,
"real": css`54, 208, 0`,
"red": css`255, 0, 0`,
"string": css`251, 0, 208`,
@@ -48,6 +36,19 @@ const colors = {
"Volume": css`230, 69, 188`,
"Volume[]": css`230, 69, 188`,
"wildcard": css`128, 120, 120`,
[Configuration.paths.niagaraBool]: css`146, 0, 0`,
[Configuration.paths.niagaraDataInterfaceVolumeTexture]: css`0, 168, 242`,
[Configuration.paths.niagaraFloat]: css`160, 250, 68`,
[Configuration.paths.NiagaraInt32]: css`30, 224, 172`,
[Configuration.paths.niagaraMatrix]: css`0, 88, 200`,
[Configuration.paths.niagaraNumeric]: css`0, 88, 200`,
[Configuration.paths.niagaraPosition]: css`251, 146, 251`,
[Configuration.paths.quat4f]: css`0, 88, 200`,
[Configuration.paths.rotator]: css`157, 177, 251`,
[Configuration.paths.transform]: css`227, 103, 0`,
[Configuration.paths.vector]: css`251, 198, 34`,
[Configuration.paths.vector3f]: css`250, 200, 36`,
[Configuration.paths.vector4f]: css`0, 88, 200`,
}
const pinColorMaterial = css`120, 120, 120`

View File

@@ -28,6 +28,7 @@ const inputPinTemplates = {
"string": StringPinTemplate,
[Configuration.paths.linearColor]: LinearColorPinTemplate,
[Configuration.paths.niagaraBool]: BoolPinTemplate,
[Configuration.paths.NiagaraInt32]: IntPinTemplate,
[Configuration.paths.niagaraPosition]: VectorPinTemplate,
[Configuration.paths.rotator]: RotatorPinTemplate,
[Configuration.paths.vector]: VectorPinTemplate,

View File

@@ -11,5 +11,6 @@ export default function pinTitle(entity) {
return match[1] // In case they match, then keep the case of the PinToolTip
}
}
result = result.replace(/^Module\./, "")
return result
}

View File

@@ -19,18 +19,22 @@ export default class InvariantTextEntity extends IEntity {
P.reg(new RegExp(`${this.lookbehind}\\s*\\(`)),
P.doubleQuotedString,
P.reg(/\s*\)/)
).map(([_0, value, _2]) => Number(value)),
P.reg(new RegExp(this.lookbehind)).map(() => 0) // InvariantTextEntity can not have arguments
).map(([_0, value, _2]) => value),
P.reg(new RegExp(this.lookbehind)).map(() => "") // InvariantTextEntity can have no arguments
)
.map(value => new this(value))
.label("InvariantTextEntity")
}
doSerialize() {
return this.lookbehind + "(" + this.value + ")"
return this.lookbehind + '("' + this.value + '")'
}
valueOf() {
return this.value
}
toString() {
return this.value
}
}

View File

@@ -49,6 +49,7 @@ export default class PinEntity extends IEntity {
"real": NumberEntity,
"string": StringEntity,
[Configuration.paths.linearColor]: LinearColorEntity,
[Configuration.paths.niagaraBool]: BooleanEntity,
[Configuration.paths.niagaraPosition]: VectorEntity,
[Configuration.paths.rotator]: RotatorEntity,
[Configuration.paths.vector]: VectorEntity,

View File

@@ -10,7 +10,7 @@ export default class BoolPinTemplate extends PinTemplate {
#input
#onChangeHandler = () => {
const entity = this.element.getDefaultValue()
const entity = this.element.getDefaultValue(true)
entity.value = this.#input.checked
this.element.setDefaultValue(entity)
}

View File

@@ -11,6 +11,7 @@ import GuidEntity from "../js/entity/GuidEntity.js"
import IEntity from "../js/entity/IEntity.js"
import Integer64Entity from "../js/entity/Integer64Entity.js"
import IntegerEntity from "../js/entity/IntegerEntity.js"
import InvariantTextEntity from "../js/entity/InvariantTextEntity.js"
import KeyBindingEntity from "../js/entity/KeyBindingEntity.js"
import LinearColorEntity from "../js/entity/LinearColorEntity.js"
import MirroredEntity from "../js/entity/MirroredEntity.js"
@@ -457,7 +458,7 @@ test("Integer64Entity", () => {
})
test("IntegerEntity", () => {
let grammar = IntegerEntity.grammar
const grammar = IntegerEntity.grammar
let value = grammar.parse("0")
expect(value).toBeInstanceOf(IntegerEntity)
@@ -515,6 +516,19 @@ test("IntegerEntity", () => {
expect(IntegerEntity.flagSerialized().grammar.parse("589").serialize()).toEqual(`"589"`)
})
test("InvariantTextEntity", () => {
const grammar = InvariantTextEntity.grammar
let value = grammar.parse('INVTEXT("NiagaraWildcard")')
expect(value).toBeInstanceOf(InvariantTextEntity)
expect(value).toEqual(new InvariantTextEntity("NiagaraWildcard"))
expect(value.equals(new InvariantTextEntity("NiagaraWildcard"))).toBeTruthy()
expect(value.equals(new InvariantTextEntity("Unrelated"))).toBeFalsy()
expect(value.equals(new StringEntity("NiagaraWildcard"))).toBeFalsy()
expect(value.toString()).toEqual("NiagaraWildcard")
expect(value.serialize()).toEqual('INVTEXT("NiagaraWildcard")')
})
test("KeyBindingEntity", () => {
let grammar = KeyBindingEntity.grammar