mirror of
https://github.com/barsdeveloper/ueblueprint.git
synced 2026-02-04 08:28:17 +08:00
Several fixes
This commit is contained in:
95
dist/ueblueprint.js
vendored
95
dist/ueblueprint.js
vendored
@@ -180,6 +180,7 @@ class Configuration {
|
|||||||
materialExpressionConstant2Vector: "/Script/Engine.MaterialExpressionConstant2Vector",
|
materialExpressionConstant2Vector: "/Script/Engine.MaterialExpressionConstant2Vector",
|
||||||
materialExpressionConstant3Vector: "/Script/Engine.MaterialExpressionConstant3Vector",
|
materialExpressionConstant3Vector: "/Script/Engine.MaterialExpressionConstant3Vector",
|
||||||
materialExpressionConstant4Vector: "/Script/Engine.MaterialExpressionConstant4Vector",
|
materialExpressionConstant4Vector: "/Script/Engine.MaterialExpressionConstant4Vector",
|
||||||
|
materialExpressionFunctionInput: "/Script/Engine.MaterialExpressionFunctionInput",
|
||||||
materialExpressionLogarithm: "/Script/InterchangeImport.MaterialExpressionLogarithm",
|
materialExpressionLogarithm: "/Script/InterchangeImport.MaterialExpressionLogarithm",
|
||||||
materialExpressionLogarithm10: "/Script/Engine.MaterialExpressionLogarithm10",
|
materialExpressionLogarithm10: "/Script/Engine.MaterialExpressionLogarithm10",
|
||||||
materialExpressionLogarithm2: "/Script/Engine.MaterialExpressionLogarithm2",
|
materialExpressionLogarithm2: "/Script/Engine.MaterialExpressionLogarithm2",
|
||||||
@@ -282,11 +283,12 @@ class Configuration {
|
|||||||
static subObjectAttributeNamePrefix = "#SubObject"
|
static subObjectAttributeNamePrefix = "#SubObject"
|
||||||
/** @param {ObjectEntity} objectEntity */
|
/** @param {ObjectEntity} objectEntity */
|
||||||
static subObjectAttributeNameFromEntity = (objectEntity, nameOnly = false) =>
|
static subObjectAttributeNameFromEntity = (objectEntity, nameOnly = false) =>
|
||||||
this.subObjectAttributeNamePrefix + (!nameOnly && objectEntity.Class ? `_${objectEntity.Class}` : "")
|
this.subObjectAttributeNamePrefix + (!nameOnly && objectEntity.Class ? `_${objectEntity.Class.type}` : "")
|
||||||
+ `_${objectEntity.Name}`
|
+ "_" + objectEntity.Name
|
||||||
/** @param {ObjectReferenceEntity} objectReferenceEntity */
|
/** @param {ObjectReferenceEntity} objectReferenceEntity */
|
||||||
static subObjectAttributeNameFromReference = (objectReferenceEntity, nameOnly = false) =>
|
static subObjectAttributeNameFromReference = (objectReferenceEntity, nameOnly = false) =>
|
||||||
this.subObjectAttributeNamePrefix + (!nameOnly ? "_" + objectReferenceEntity.type : "") + "_" + objectReferenceEntity.path
|
this.subObjectAttributeNamePrefix + (!nameOnly ? "_" + objectReferenceEntity.type : "")
|
||||||
|
+ "_" + objectReferenceEntity.path
|
||||||
static subObjectAttributeNameFromName = name => this.subObjectAttributeNamePrefix + "_" + name
|
static subObjectAttributeNameFromName = name => this.subObjectAttributeNamePrefix + "_" + name
|
||||||
static switchTargetPattern = /\/Script\/[\w\.\/\:]+K2Node_Switch([A-Z]\w+)+/
|
static switchTargetPattern = /\/Script\/[\w\.\/\:]+K2Node_Switch([A-Z]\w+)+/
|
||||||
static trackingMouseEventName = {
|
static trackingMouseEventName = {
|
||||||
@@ -2573,17 +2575,6 @@ class Grammar {
|
|||||||
|
|
||||||
static colorValue = Parsernostrum.numberByte
|
static colorValue = Parsernostrum.numberByte
|
||||||
static word = Parsernostrum.reg(Grammar.Regex.Word)
|
static word = Parsernostrum.reg(Grammar.Regex.Word)
|
||||||
static pathQuotes = Parsernostrum.regArray(new RegExp(
|
|
||||||
`'"(` + Grammar.Regex.InsideString.source + `)"'`
|
|
||||||
+ `|'(` + Grammar.Regex.InsideSingleQuotedString.source + `)'`
|
|
||||||
+ `|"(` + Grammar.Regex.InsideString.source + `)"`
|
|
||||||
)).map(([_0, a, b, c]) => a ?? b ?? c)
|
|
||||||
static path = Parsernostrum.regArray(new RegExp(
|
|
||||||
`'"(` + Grammar.Regex.InsideString.source + `)"'`
|
|
||||||
+ `|'(` + Grammar.Regex.InsideSingleQuotedString.source + `)'`
|
|
||||||
+ `|"(` + Grammar.Regex.InsideString.source + `)"`
|
|
||||||
+ `|(` + Grammar.Regex.Path.source + `)`
|
|
||||||
)).map(([_0, a, b, c, d]) => a ?? b ?? c ?? d)
|
|
||||||
static symbol = Parsernostrum.reg(Grammar.Regex.Symbol)
|
static symbol = Parsernostrum.reg(Grammar.Regex.Symbol)
|
||||||
static symbolQuoted = Parsernostrum.reg(new RegExp('"(' + Grammar.Regex.Symbol.source + ')"'), 1)
|
static symbolQuoted = Parsernostrum.reg(new RegExp('"(' + Grammar.Regex.Symbol.source + ')"'), 1)
|
||||||
static attributeName = Parsernostrum.reg(Grammar.Regex.DotSeparatedSymbols)
|
static attributeName = Parsernostrum.reg(Grammar.Regex.DotSeparatedSymbols)
|
||||||
@@ -2592,7 +2583,6 @@ class Grammar {
|
|||||||
static commaSeparation = Parsernostrum.reg(/\s*,\s*(?!\))/)
|
static commaSeparation = Parsernostrum.reg(/\s*,\s*(?!\))/)
|
||||||
static commaOrSpaceSeparation = Parsernostrum.reg(/\s*,\s*(?!\))|\s+/)
|
static commaOrSpaceSeparation = Parsernostrum.reg(/\s*,\s*(?!\))|\s+/)
|
||||||
static equalSeparation = Parsernostrum.reg(/\s*=\s*/)
|
static equalSeparation = Parsernostrum.reg(/\s*=\s*/)
|
||||||
static typeReference = Parsernostrum.alt(Parsernostrum.reg(Grammar.Regex.Path), this.symbol)
|
|
||||||
static hexColorChannel = Parsernostrum.reg(new RegExp(Grammar.Regex.HexDigit.source + "{2}"))
|
static hexColorChannel = Parsernostrum.reg(new RegExp(Grammar.Regex.HexDigit.source + "{2}"))
|
||||||
|
|
||||||
/* --- Factory --- */
|
/* --- Factory --- */
|
||||||
@@ -2832,22 +2822,44 @@ class ObjectReferenceEntity extends IEntity {
|
|||||||
static {
|
static {
|
||||||
this.cleanupAttributes(this.attributes);
|
this.cleanupAttributes(this.attributes);
|
||||||
}
|
}
|
||||||
static noneReferenceGrammar = Parsernostrum.str("None").map(() => this.createNoneInstance())
|
static quoted = Parsernostrum.regArray(new RegExp(
|
||||||
static fullReferenceGrammar = Parsernostrum.seq(
|
`'"(` + Grammar.Regex.InsideString.source + `)"'`
|
||||||
Grammar.typeReference,
|
+ `|'(` + Grammar.Regex.InsideSingleQuotedString.source + `)'`
|
||||||
Parsernostrum.whitespaceInlineOpt,
|
+ `|"(` + Grammar.Regex.InsideString.source + `)"`
|
||||||
Grammar.pathQuotes
|
)).map(([_0, a, b, c]) => a ?? b ?? c)
|
||||||
).map(([type, _2, path]) => new this({ type, path }))
|
static path = this.quoted.getParser().parser.regexp.source + "|" + Grammar.Regex.Path.source
|
||||||
static typeReferenceGrammar = Grammar.typeReference.map(v => new this({ type: v, path: "" }))
|
static typeReference = Parsernostrum.reg(
|
||||||
static pathReferenceGrammar = Grammar.path.map(path => new this({ type: "", path: path }))
|
new RegExp(Grammar.Regex.Path.source + "|" + Grammar.symbol.getParser().regexp.source)
|
||||||
|
)
|
||||||
|
static fullReferenceGrammar = Parsernostrum.regArray(
|
||||||
|
new RegExp(
|
||||||
|
"(" + this.typeReference.getParser().regexp.source + ")"
|
||||||
|
+ /\s*/.source
|
||||||
|
+ "(?:" + this.quoted.getParser().parser.regexp.source + ")"
|
||||||
|
)
|
||||||
|
).map(([_0, type, ...path]) => new this({ type, path: path.find(v => v) }))
|
||||||
|
static fullReferenceSerializedGrammar = Parsernostrum.regArray(
|
||||||
|
new RegExp(
|
||||||
|
"(" + this.typeReference.getParser().regexp.source + ")"
|
||||||
|
+ /\s*/.source
|
||||||
|
+ `'(` + Grammar.Regex.InsideSingleQuotedString.source + `)'`
|
||||||
|
)
|
||||||
|
).map(([_0, type, ...path]) => new this({ type, path: path.find(v => v) }))
|
||||||
|
static typeReferenceGrammar = this.typeReference.map(v => new this({ type: v, path: "" }))
|
||||||
static grammar = this.createGrammar()
|
static grammar = this.createGrammar()
|
||||||
|
|
||||||
static createGrammar() {
|
static createGrammar() {
|
||||||
return Parsernostrum.alt(
|
return Parsernostrum.alt(
|
||||||
this.noneReferenceGrammar,
|
Parsernostrum.seq(
|
||||||
|
Parsernostrum.str('"'),
|
||||||
|
Parsernostrum.alt(
|
||||||
|
this.fullReferenceSerializedGrammar,
|
||||||
|
this.typeReferenceGrammar,
|
||||||
|
),
|
||||||
|
Parsernostrum.str('"'),
|
||||||
|
).map(([_0, objectReference, _1]) => objectReference),
|
||||||
this.fullReferenceGrammar,
|
this.fullReferenceGrammar,
|
||||||
this.typeReferenceGrammar,
|
this.typeReferenceGrammar,
|
||||||
this.pathReferenceGrammar,
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2885,7 +2897,7 @@ class ObjectReferenceEntity extends IEntity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
toString() {
|
toString() {
|
||||||
return `${this.type}'"${this.path}"'`
|
return this.type + (this.path ? `'${this.path}'` : "")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4900,10 +4912,12 @@ class ObjectEntity extends IEntity {
|
|||||||
HiGenGridSize: { type: SymbolEntity },
|
HiGenGridSize: { type: SymbolEntity },
|
||||||
InputAxisKey: { type: SymbolEntity },
|
InputAxisKey: { type: SymbolEntity },
|
||||||
InputKey: { type: SymbolEntity },
|
InputKey: { type: SymbolEntity },
|
||||||
|
InputName: { type: String },
|
||||||
InputPins: {
|
InputPins: {
|
||||||
type: [ObjectReferenceEntity],
|
type: [ObjectReferenceEntity],
|
||||||
inlined: true,
|
inlined: true,
|
||||||
},
|
},
|
||||||
|
InputType: { type: SymbolEntity },
|
||||||
MacroGraphReference: { type: MacroGraphReferenceEntity },
|
MacroGraphReference: { type: MacroGraphReferenceEntity },
|
||||||
MaterialExpression: { type: ObjectReferenceEntity },
|
MaterialExpression: { type: ObjectReferenceEntity },
|
||||||
MaterialExpressionComment: { type: ObjectReferenceEntity },
|
MaterialExpressionComment: { type: ObjectReferenceEntity },
|
||||||
@@ -5006,7 +5020,6 @@ class ObjectEntity extends IEntity {
|
|||||||
.map(object =>
|
.map(object =>
|
||||||
values => values[Configuration.subObjectAttributeNameFromEntity(object)] = object
|
values => values[Configuration.subObjectAttributeNameFromEntity(object)] = object
|
||||||
)
|
)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static createGrammar() {
|
static createGrammar() {
|
||||||
@@ -5160,6 +5173,7 @@ class ObjectEntity extends IEntity {
|
|||||||
/** @type {String} */ this.CustomFunctionName;
|
/** @type {String} */ this.CustomFunctionName;
|
||||||
/** @type {String} */ this.DelegatePropertyName;
|
/** @type {String} */ this.DelegatePropertyName;
|
||||||
/** @type {String} */ this.ErrorMsg;
|
/** @type {String} */ this.ErrorMsg;
|
||||||
|
/** @type {String} */ this.InputName;
|
||||||
/** @type {String} */ this.Name;
|
/** @type {String} */ this.Name;
|
||||||
/** @type {String} */ this.NodeComment;
|
/** @type {String} */ this.NodeComment;
|
||||||
/** @type {String} */ this.NodeTitle;
|
/** @type {String} */ this.NodeTitle;
|
||||||
@@ -5172,6 +5186,7 @@ class ObjectEntity extends IEntity {
|
|||||||
/** @type {SymbolEntity} */ this.HiGenGridSize;
|
/** @type {SymbolEntity} */ this.HiGenGridSize;
|
||||||
/** @type {SymbolEntity} */ this.InputAxisKey;
|
/** @type {SymbolEntity} */ this.InputAxisKey;
|
||||||
/** @type {SymbolEntity} */ this.InputKey;
|
/** @type {SymbolEntity} */ this.InputKey;
|
||||||
|
/** @type {SymbolEntity} */ this.InputType;
|
||||||
/** @type {SymbolEntity} */ this.MoveMode;
|
/** @type {SymbolEntity} */ this.MoveMode;
|
||||||
/** @type {SymbolEntity} */ this.SelfContextInfo;
|
/** @type {SymbolEntity} */ this.SelfContextInfo;
|
||||||
/** @type {VariableReferenceEntity} */ this.DelegateReference;
|
/** @type {VariableReferenceEntity} */ this.DelegateReference;
|
||||||
@@ -5388,7 +5403,24 @@ class ObjectEntity extends IEntity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
isMaterial() {
|
isMaterial() {
|
||||||
|
|
||||||
return this.getClass() === Configuration.paths.materialGraphNode
|
return this.getClass() === Configuration.paths.materialGraphNode
|
||||||
|
// return [
|
||||||
|
// Configuration.paths.materialExpressionConstant,
|
||||||
|
// Configuration.paths.materialExpressionConstant2Vector,
|
||||||
|
// Configuration.paths.materialExpressionConstant3Vector,
|
||||||
|
// Configuration.paths.materialExpressionConstant4Vector,
|
||||||
|
// Configuration.paths.materialExpressionLogarithm,
|
||||||
|
// Configuration.paths.materialExpressionLogarithm10,
|
||||||
|
// Configuration.paths.materialExpressionLogarithm2,
|
||||||
|
// Configuration.paths.materialExpressionMaterialFunctionCall,
|
||||||
|
// Configuration.paths.materialExpressionSquareRoot,
|
||||||
|
// Configuration.paths.materialExpressionTextureCoordinate,
|
||||||
|
// Configuration.paths.materialExpressionTextureSample,
|
||||||
|
// Configuration.paths.materialGraphNode,
|
||||||
|
// Configuration.paths.materialGraphNodeComment,
|
||||||
|
// ]
|
||||||
|
// .includes(this.getClass())
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return {ObjectEntity} */
|
/** @return {ObjectEntity} */
|
||||||
@@ -5515,6 +5547,11 @@ class ObjectEntity extends IEntity {
|
|||||||
return input.map(v => Utility.printExponential(v)).reduce((acc, cur) => acc + "," + cur)
|
return input.map(v => Utility.printExponential(v)).reduce((acc, cur) => acc + "," + cur)
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
|
case Configuration.paths.materialExpressionFunctionInput:
|
||||||
|
const materialObject = this.getMaterialSubobject();
|
||||||
|
const inputName = materialObject?.InputName ?? "In";
|
||||||
|
const inputType = materialObject?.InputType?.value.match(/^.+?_(\w+)$/)?.[1] ?? "Vector3";
|
||||||
|
return `Input ${inputName} (${inputType})`
|
||||||
case Configuration.paths.materialExpressionLogarithm:
|
case Configuration.paths.materialExpressionLogarithm:
|
||||||
return "Ln"
|
return "Ln"
|
||||||
case Configuration.paths.materialExpressionLogarithm10:
|
case Configuration.paths.materialExpressionLogarithm10:
|
||||||
@@ -5759,6 +5796,8 @@ class ObjectEntity extends IEntity {
|
|||||||
return Configuration.nodeColors.darkBlue
|
return Configuration.nodeColors.darkBlue
|
||||||
case Configuration.paths.materialExpressionMaterialFunctionCall:
|
case Configuration.paths.materialExpressionMaterialFunctionCall:
|
||||||
return Configuration.nodeColors.blue
|
return Configuration.nodeColors.blue
|
||||||
|
case Configuration.paths.materialExpressionFunctionInput:
|
||||||
|
return Configuration.nodeColors.red
|
||||||
case Configuration.paths.materialExpressionTextureSample:
|
case Configuration.paths.materialExpressionTextureSample:
|
||||||
return Configuration.nodeColors.darkTurquoise
|
return Configuration.nodeColors.darkTurquoise
|
||||||
case Configuration.paths.materialExpressionTextureCoordinate:
|
case Configuration.paths.materialExpressionTextureCoordinate:
|
||||||
@@ -12798,7 +12837,7 @@ Grammar.unknownValue =
|
|||||||
// Remember to keep the order, otherwise parsing might fail
|
// Remember to keep the order, otherwise parsing might fail
|
||||||
Grammar.boolean,
|
Grammar.boolean,
|
||||||
GuidEntity.createGrammar(),
|
GuidEntity.createGrammar(),
|
||||||
ObjectReferenceEntity.noneReferenceGrammar,
|
Parsernostrum.str("None").map(() => new ObjectReferenceEntity({ type: "None" })),
|
||||||
Grammar.null,
|
Grammar.null,
|
||||||
Grammar.number,
|
Grammar.number,
|
||||||
Grammar.string,
|
Grammar.string,
|
||||||
|
|||||||
20
dist/ueblueprint.min.js
vendored
20
dist/ueblueprint.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -156,6 +156,7 @@ export default class Configuration {
|
|||||||
materialExpressionConstant2Vector: "/Script/Engine.MaterialExpressionConstant2Vector",
|
materialExpressionConstant2Vector: "/Script/Engine.MaterialExpressionConstant2Vector",
|
||||||
materialExpressionConstant3Vector: "/Script/Engine.MaterialExpressionConstant3Vector",
|
materialExpressionConstant3Vector: "/Script/Engine.MaterialExpressionConstant3Vector",
|
||||||
materialExpressionConstant4Vector: "/Script/Engine.MaterialExpressionConstant4Vector",
|
materialExpressionConstant4Vector: "/Script/Engine.MaterialExpressionConstant4Vector",
|
||||||
|
materialExpressionFunctionInput: "/Script/Engine.MaterialExpressionFunctionInput",
|
||||||
materialExpressionLogarithm: "/Script/InterchangeImport.MaterialExpressionLogarithm",
|
materialExpressionLogarithm: "/Script/InterchangeImport.MaterialExpressionLogarithm",
|
||||||
materialExpressionLogarithm10: "/Script/Engine.MaterialExpressionLogarithm10",
|
materialExpressionLogarithm10: "/Script/Engine.MaterialExpressionLogarithm10",
|
||||||
materialExpressionLogarithm2: "/Script/Engine.MaterialExpressionLogarithm2",
|
materialExpressionLogarithm2: "/Script/Engine.MaterialExpressionLogarithm2",
|
||||||
@@ -258,11 +259,12 @@ export default class Configuration {
|
|||||||
static subObjectAttributeNamePrefix = "#SubObject"
|
static subObjectAttributeNamePrefix = "#SubObject"
|
||||||
/** @param {ObjectEntity} objectEntity */
|
/** @param {ObjectEntity} objectEntity */
|
||||||
static subObjectAttributeNameFromEntity = (objectEntity, nameOnly = false) =>
|
static subObjectAttributeNameFromEntity = (objectEntity, nameOnly = false) =>
|
||||||
this.subObjectAttributeNamePrefix + (!nameOnly && objectEntity.Class ? `_${objectEntity.Class}` : "")
|
this.subObjectAttributeNamePrefix + (!nameOnly && objectEntity.Class ? `_${objectEntity.Class.type}` : "")
|
||||||
+ `_${objectEntity.Name}`
|
+ "_" + objectEntity.Name
|
||||||
/** @param {ObjectReferenceEntity} objectReferenceEntity */
|
/** @param {ObjectReferenceEntity} objectReferenceEntity */
|
||||||
static subObjectAttributeNameFromReference = (objectReferenceEntity, nameOnly = false) =>
|
static subObjectAttributeNameFromReference = (objectReferenceEntity, nameOnly = false) =>
|
||||||
this.subObjectAttributeNamePrefix + (!nameOnly ? "_" + objectReferenceEntity.type : "") + "_" + objectReferenceEntity.path
|
this.subObjectAttributeNamePrefix + (!nameOnly ? "_" + objectReferenceEntity.type : "")
|
||||||
|
+ "_" + objectReferenceEntity.path
|
||||||
static subObjectAttributeNameFromName = name => this.subObjectAttributeNamePrefix + "_" + name
|
static subObjectAttributeNameFromName = name => this.subObjectAttributeNamePrefix + "_" + name
|
||||||
static switchTargetPattern = /\/Script\/[\w\.\/\:]+K2Node_Switch([A-Z]\w+)+/
|
static switchTargetPattern = /\/Script\/[\w\.\/\:]+K2Node_Switch([A-Z]\w+)+/
|
||||||
static trackingMouseEventName = {
|
static trackingMouseEventName = {
|
||||||
|
|||||||
@@ -97,10 +97,12 @@ export default class ObjectEntity extends IEntity {
|
|||||||
HiGenGridSize: { type: SymbolEntity },
|
HiGenGridSize: { type: SymbolEntity },
|
||||||
InputAxisKey: { type: SymbolEntity },
|
InputAxisKey: { type: SymbolEntity },
|
||||||
InputKey: { type: SymbolEntity },
|
InputKey: { type: SymbolEntity },
|
||||||
|
InputName: { type: String },
|
||||||
InputPins: {
|
InputPins: {
|
||||||
type: [ObjectReferenceEntity],
|
type: [ObjectReferenceEntity],
|
||||||
inlined: true,
|
inlined: true,
|
||||||
},
|
},
|
||||||
|
InputType: { type: SymbolEntity },
|
||||||
MacroGraphReference: { type: MacroGraphReferenceEntity },
|
MacroGraphReference: { type: MacroGraphReferenceEntity },
|
||||||
MaterialExpression: { type: ObjectReferenceEntity },
|
MaterialExpression: { type: ObjectReferenceEntity },
|
||||||
MaterialExpressionComment: { type: ObjectReferenceEntity },
|
MaterialExpressionComment: { type: ObjectReferenceEntity },
|
||||||
@@ -203,7 +205,6 @@ export default class ObjectEntity extends IEntity {
|
|||||||
.map(object =>
|
.map(object =>
|
||||||
values => values[Configuration.subObjectAttributeNameFromEntity(object)] = object
|
values => values[Configuration.subObjectAttributeNameFromEntity(object)] = object
|
||||||
)
|
)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static createGrammar() {
|
static createGrammar() {
|
||||||
@@ -357,6 +358,7 @@ export default class ObjectEntity extends IEntity {
|
|||||||
/** @type {String} */ this.CustomFunctionName
|
/** @type {String} */ this.CustomFunctionName
|
||||||
/** @type {String} */ this.DelegatePropertyName
|
/** @type {String} */ this.DelegatePropertyName
|
||||||
/** @type {String} */ this.ErrorMsg
|
/** @type {String} */ this.ErrorMsg
|
||||||
|
/** @type {String} */ this.InputName
|
||||||
/** @type {String} */ this.Name
|
/** @type {String} */ this.Name
|
||||||
/** @type {String} */ this.NodeComment
|
/** @type {String} */ this.NodeComment
|
||||||
/** @type {String} */ this.NodeTitle
|
/** @type {String} */ this.NodeTitle
|
||||||
@@ -369,6 +371,7 @@ export default class ObjectEntity extends IEntity {
|
|||||||
/** @type {SymbolEntity} */ this.HiGenGridSize
|
/** @type {SymbolEntity} */ this.HiGenGridSize
|
||||||
/** @type {SymbolEntity} */ this.InputAxisKey
|
/** @type {SymbolEntity} */ this.InputAxisKey
|
||||||
/** @type {SymbolEntity} */ this.InputKey
|
/** @type {SymbolEntity} */ this.InputKey
|
||||||
|
/** @type {SymbolEntity} */ this.InputType
|
||||||
/** @type {SymbolEntity} */ this.MoveMode
|
/** @type {SymbolEntity} */ this.MoveMode
|
||||||
/** @type {SymbolEntity} */ this.SelfContextInfo
|
/** @type {SymbolEntity} */ this.SelfContextInfo
|
||||||
/** @type {VariableReferenceEntity} */ this.DelegateReference
|
/** @type {VariableReferenceEntity} */ this.DelegateReference
|
||||||
@@ -585,7 +588,24 @@ export default class ObjectEntity extends IEntity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
isMaterial() {
|
isMaterial() {
|
||||||
|
|
||||||
return this.getClass() === Configuration.paths.materialGraphNode
|
return this.getClass() === Configuration.paths.materialGraphNode
|
||||||
|
// return [
|
||||||
|
// Configuration.paths.materialExpressionConstant,
|
||||||
|
// Configuration.paths.materialExpressionConstant2Vector,
|
||||||
|
// Configuration.paths.materialExpressionConstant3Vector,
|
||||||
|
// Configuration.paths.materialExpressionConstant4Vector,
|
||||||
|
// Configuration.paths.materialExpressionLogarithm,
|
||||||
|
// Configuration.paths.materialExpressionLogarithm10,
|
||||||
|
// Configuration.paths.materialExpressionLogarithm2,
|
||||||
|
// Configuration.paths.materialExpressionMaterialFunctionCall,
|
||||||
|
// Configuration.paths.materialExpressionSquareRoot,
|
||||||
|
// Configuration.paths.materialExpressionTextureCoordinate,
|
||||||
|
// Configuration.paths.materialExpressionTextureSample,
|
||||||
|
// Configuration.paths.materialGraphNode,
|
||||||
|
// Configuration.paths.materialGraphNodeComment,
|
||||||
|
// ]
|
||||||
|
// .includes(this.getClass())
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return {ObjectEntity} */
|
/** @return {ObjectEntity} */
|
||||||
@@ -712,6 +732,11 @@ export default class ObjectEntity extends IEntity {
|
|||||||
return input.map(v => Utility.printExponential(v)).reduce((acc, cur) => acc + "," + cur)
|
return input.map(v => Utility.printExponential(v)).reduce((acc, cur) => acc + "," + cur)
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
|
case Configuration.paths.materialExpressionFunctionInput:
|
||||||
|
const materialObject = this.getMaterialSubobject()
|
||||||
|
const inputName = materialObject?.InputName ?? "In"
|
||||||
|
const inputType = materialObject?.InputType?.value.match(/^.+?_(\w+)$/)?.[1] ?? "Vector3"
|
||||||
|
return `Input ${inputName} (${inputType})`
|
||||||
case Configuration.paths.materialExpressionLogarithm:
|
case Configuration.paths.materialExpressionLogarithm:
|
||||||
return "Ln"
|
return "Ln"
|
||||||
case Configuration.paths.materialExpressionLogarithm10:
|
case Configuration.paths.materialExpressionLogarithm10:
|
||||||
@@ -956,6 +981,8 @@ export default class ObjectEntity extends IEntity {
|
|||||||
return Configuration.nodeColors.darkBlue
|
return Configuration.nodeColors.darkBlue
|
||||||
case Configuration.paths.materialExpressionMaterialFunctionCall:
|
case Configuration.paths.materialExpressionMaterialFunctionCall:
|
||||||
return Configuration.nodeColors.blue
|
return Configuration.nodeColors.blue
|
||||||
|
case Configuration.paths.materialExpressionFunctionInput:
|
||||||
|
return Configuration.nodeColors.red
|
||||||
case Configuration.paths.materialExpressionTextureSample:
|
case Configuration.paths.materialExpressionTextureSample:
|
||||||
return Configuration.nodeColors.darkTurquoise
|
return Configuration.nodeColors.darkTurquoise
|
||||||
case Configuration.paths.materialExpressionTextureCoordinate:
|
case Configuration.paths.materialExpressionTextureCoordinate:
|
||||||
|
|||||||
@@ -18,22 +18,44 @@ export default class ObjectReferenceEntity extends IEntity {
|
|||||||
static {
|
static {
|
||||||
this.cleanupAttributes(this.attributes)
|
this.cleanupAttributes(this.attributes)
|
||||||
}
|
}
|
||||||
static noneReferenceGrammar = Parsernostrum.str("None").map(() => this.createNoneInstance())
|
static quoted = Parsernostrum.regArray(new RegExp(
|
||||||
static fullReferenceGrammar = Parsernostrum.seq(
|
`'"(` + Grammar.Regex.InsideString.source + `)"'`
|
||||||
Grammar.typeReference,
|
+ `|'(` + Grammar.Regex.InsideSingleQuotedString.source + `)'`
|
||||||
Parsernostrum.whitespaceInlineOpt,
|
+ `|"(` + Grammar.Regex.InsideString.source + `)"`
|
||||||
Grammar.pathQuotes
|
)).map(([_0, a, b, c]) => a ?? b ?? c)
|
||||||
).map(([type, _2, path]) => new this({ type, path }))
|
static path = this.quoted.getParser().parser.regexp.source + "|" + Grammar.Regex.Path.source
|
||||||
static typeReferenceGrammar = Grammar.typeReference.map(v => new this({ type: v, path: "" }))
|
static typeReference = Parsernostrum.reg(
|
||||||
static pathReferenceGrammar = Grammar.path.map(path => new this({ type: "", path: path }))
|
new RegExp(Grammar.Regex.Path.source + "|" + Grammar.symbol.getParser().regexp.source)
|
||||||
|
)
|
||||||
|
static fullReferenceGrammar = Parsernostrum.regArray(
|
||||||
|
new RegExp(
|
||||||
|
"(" + this.typeReference.getParser().regexp.source + ")"
|
||||||
|
+ /\s*/.source
|
||||||
|
+ "(?:" + this.quoted.getParser().parser.regexp.source + ")"
|
||||||
|
)
|
||||||
|
).map(([_0, type, ...path]) => new this({ type, path: path.find(v => v) }))
|
||||||
|
static fullReferenceSerializedGrammar = Parsernostrum.regArray(
|
||||||
|
new RegExp(
|
||||||
|
"(" + this.typeReference.getParser().regexp.source + ")"
|
||||||
|
+ /\s*/.source
|
||||||
|
+ `'(` + Grammar.Regex.InsideSingleQuotedString.source + `)'`
|
||||||
|
)
|
||||||
|
).map(([_0, type, ...path]) => new this({ type, path: path.find(v => v) }))
|
||||||
|
static typeReferenceGrammar = this.typeReference.map(v => new this({ type: v, path: "" }))
|
||||||
static grammar = this.createGrammar()
|
static grammar = this.createGrammar()
|
||||||
|
|
||||||
static createGrammar() {
|
static createGrammar() {
|
||||||
return Parsernostrum.alt(
|
return Parsernostrum.alt(
|
||||||
this.noneReferenceGrammar,
|
Parsernostrum.seq(
|
||||||
|
Parsernostrum.str('"'),
|
||||||
|
Parsernostrum.alt(
|
||||||
|
this.fullReferenceSerializedGrammar,
|
||||||
|
this.typeReferenceGrammar,
|
||||||
|
),
|
||||||
|
Parsernostrum.str('"'),
|
||||||
|
).map(([_0, objectReference, _1]) => objectReference),
|
||||||
this.fullReferenceGrammar,
|
this.fullReferenceGrammar,
|
||||||
this.typeReferenceGrammar,
|
this.typeReferenceGrammar,
|
||||||
this.pathReferenceGrammar,
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -71,6 +93,6 @@ export default class ObjectReferenceEntity extends IEntity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
toString() {
|
toString() {
|
||||||
return `${this.type}'"${this.path}"'`
|
return this.type + (this.path ? `'${this.path}'` : "")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,17 +53,6 @@ export default class Grammar {
|
|||||||
|
|
||||||
static colorValue = Parsernostrum.numberByte
|
static colorValue = Parsernostrum.numberByte
|
||||||
static word = Parsernostrum.reg(Grammar.Regex.Word)
|
static word = Parsernostrum.reg(Grammar.Regex.Word)
|
||||||
static pathQuotes = Parsernostrum.regArray(new RegExp(
|
|
||||||
`'"(` + Grammar.Regex.InsideString.source + `)"'`
|
|
||||||
+ `|'(` + Grammar.Regex.InsideSingleQuotedString.source + `)'`
|
|
||||||
+ `|"(` + Grammar.Regex.InsideString.source + `)"`
|
|
||||||
)).map(([_0, a, b, c]) => a ?? b ?? c)
|
|
||||||
static path = Parsernostrum.regArray(new RegExp(
|
|
||||||
`'"(` + Grammar.Regex.InsideString.source + `)"'`
|
|
||||||
+ `|'(` + Grammar.Regex.InsideSingleQuotedString.source + `)'`
|
|
||||||
+ `|"(` + Grammar.Regex.InsideString.source + `)"`
|
|
||||||
+ `|(` + Grammar.Regex.Path.source + `)`
|
|
||||||
)).map(([_0, a, b, c, d]) => a ?? b ?? c ?? d)
|
|
||||||
static symbol = Parsernostrum.reg(Grammar.Regex.Symbol)
|
static symbol = Parsernostrum.reg(Grammar.Regex.Symbol)
|
||||||
static symbolQuoted = Parsernostrum.reg(new RegExp('"(' + Grammar.Regex.Symbol.source + ')"'), 1)
|
static symbolQuoted = Parsernostrum.reg(new RegExp('"(' + Grammar.Regex.Symbol.source + ')"'), 1)
|
||||||
static attributeName = Parsernostrum.reg(Grammar.Regex.DotSeparatedSymbols)
|
static attributeName = Parsernostrum.reg(Grammar.Regex.DotSeparatedSymbols)
|
||||||
@@ -72,7 +61,6 @@ export default class Grammar {
|
|||||||
static commaSeparation = Parsernostrum.reg(/\s*,\s*(?!\))/)
|
static commaSeparation = Parsernostrum.reg(/\s*,\s*(?!\))/)
|
||||||
static commaOrSpaceSeparation = Parsernostrum.reg(/\s*,\s*(?!\))|\s+/)
|
static commaOrSpaceSeparation = Parsernostrum.reg(/\s*,\s*(?!\))|\s+/)
|
||||||
static equalSeparation = Parsernostrum.reg(/\s*=\s*/)
|
static equalSeparation = Parsernostrum.reg(/\s*=\s*/)
|
||||||
static typeReference = Parsernostrum.alt(Parsernostrum.reg(Grammar.Regex.Path), this.symbol)
|
|
||||||
static hexColorChannel = Parsernostrum.reg(new RegExp(Grammar.Regex.HexDigit.source + "{2}"))
|
static hexColorChannel = Parsernostrum.reg(new RegExp(Grammar.Regex.HexDigit.source + "{2}"))
|
||||||
|
|
||||||
/* --- Factory --- */
|
/* --- Factory --- */
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ Grammar.unknownValue =
|
|||||||
// Remember to keep the order, otherwise parsing might fail
|
// Remember to keep the order, otherwise parsing might fail
|
||||||
Grammar.boolean,
|
Grammar.boolean,
|
||||||
GuidEntity.createGrammar(),
|
GuidEntity.createGrammar(),
|
||||||
ObjectReferenceEntity.noneReferenceGrammar,
|
Parsernostrum.str("None").map(() => new ObjectReferenceEntity({ type: "None" })),
|
||||||
Grammar.null,
|
Grammar.null,
|
||||||
Grammar.number,
|
Grammar.number,
|
||||||
Grammar.string,
|
Grammar.string,
|
||||||
|
|||||||
@@ -25,6 +25,9 @@ function getFirstWordOrder(words) {
|
|||||||
return new RegExp(/\s*/.source + words.join(/[^\n]+\n\s*/.source) + /\s*/.source)
|
return new RegExp(/\s*/.source + words.join(/[^\n]+\n\s*/.source) + /\s*/.source)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
test.describe.configure({ mode: "parallel" })
|
||||||
|
|
||||||
for (const nodeTest of nodeTests) {
|
for (const nodeTest of nodeTests) {
|
||||||
test.describe(nodeTest.name, () => {
|
test.describe(nodeTest.name, () => {
|
||||||
|
|
||||||
|
|||||||
@@ -204,17 +204,48 @@ test.describe("Serializer", () => {
|
|||||||
expect(reference).toBeInstanceOf(ObjectReferenceEntity)
|
expect(reference).toBeInstanceOf(ObjectReferenceEntity)
|
||||||
expect(reference).toMatchObject({ type: "EdGraphPin", path: "K2Node_DynamicCast_2126.EdGraphPin_3990988" })
|
expect(reference).toMatchObject({ type: "EdGraphPin", path: "K2Node_DynamicCast_2126.EdGraphPin_3990988" })
|
||||||
|
|
||||||
reference = serializer.read(`/Script/Engine.EdGraph'"/Engine/EditorBlueprintResources/StandardMacros.StandardMacros:Do N"'`)
|
reference = serializer.read(
|
||||||
|
`"/Script/Engine.MaterialExpressionMaterialFunctionCall'MaterialExpressionMaterialFunctionCall_0'"`
|
||||||
|
)
|
||||||
expect(reference).toBeInstanceOf(ObjectReferenceEntity)
|
expect(reference).toBeInstanceOf(ObjectReferenceEntity)
|
||||||
expect(reference).toMatchObject({ type: "/Script/Engine.EdGraph", path: "/Engine/EditorBlueprintResources/StandardMacros.StandardMacros:Do N" })
|
expect(reference).toMatchObject({
|
||||||
|
type: "/Script/Engine.MaterialExpressionMaterialFunctionCall",
|
||||||
|
path: "MaterialExpressionMaterialFunctionCall_0",
|
||||||
|
})
|
||||||
|
|
||||||
reference = serializer.read(`Function'"/Game/Mods/CrazyDinos/ElementalDragon/CDElementalDragon_Character_BP.SKEL_CDElementalDragon_Character_BP_C:ROS Change Element"'`)
|
reference = serializer.read(
|
||||||
|
`/Script/Engine.EdGraph'"/Engine/EditorBlueprintResources/StandardMacros.StandardMacros:Do N"'`
|
||||||
|
)
|
||||||
expect(reference).toBeInstanceOf(ObjectReferenceEntity)
|
expect(reference).toBeInstanceOf(ObjectReferenceEntity)
|
||||||
expect(reference).toMatchObject({ type: "Function", path: "/Game/Mods/CrazyDinos/ElementalDragon/CDElementalDragon_Character_BP.SKEL_CDElementalDragon_Character_BP_C:ROS Change Element" })
|
expect(reference).toMatchObject({
|
||||||
|
type: "/Script/Engine.EdGraph",
|
||||||
|
path: "/Engine/EditorBlueprintResources/StandardMacros.StandardMacros:Do N",
|
||||||
|
})
|
||||||
|
|
||||||
|
reference = serializer.read(
|
||||||
|
`EdGraphPin'"K2Node_CommutativeAssociativeBinaryOperator_152.EdGraphPin_4045"'`
|
||||||
|
)
|
||||||
|
expect(reference).toBeInstanceOf(ObjectReferenceEntity)
|
||||||
|
expect(reference).toMatchObject({
|
||||||
|
type: "EdGraphPin",
|
||||||
|
path: "K2Node_CommutativeAssociativeBinaryOperator_152.EdGraphPin_4045",
|
||||||
|
})
|
||||||
|
|
||||||
|
reference = serializer.read(
|
||||||
|
`Function'"/Game/Mods/CrazyDinos/ElementalDragon/CDElementalDragon_Character_BP.SKEL_CDElementalDragon_Character_BP_C:ROS Change Element"'`
|
||||||
|
)
|
||||||
|
expect(reference).toBeInstanceOf(ObjectReferenceEntity)
|
||||||
|
expect(reference).toMatchObject({
|
||||||
|
type: "Function",
|
||||||
|
path: "/Game/Mods/CrazyDinos/ElementalDragon/CDElementalDragon_Character_BP.SKEL_CDElementalDragon_Character_BP_C:ROS Change Element",
|
||||||
|
})
|
||||||
|
|
||||||
reference = serializer.read(`EdGraph'/Game/Systems/BP_MacroGlobal.BP_MacroGlobal:Or+Branch'`)
|
reference = serializer.read(`EdGraph'/Game/Systems/BP_MacroGlobal.BP_MacroGlobal:Or+Branch'`)
|
||||||
expect(reference).toBeInstanceOf(ObjectReferenceEntity)
|
expect(reference).toBeInstanceOf(ObjectReferenceEntity)
|
||||||
expect(reference).toMatchObject({ type: "EdGraph", path: "/Game/Systems/BP_MacroGlobal.BP_MacroGlobal:Or+Branch" })
|
expect(reference).toMatchObject({
|
||||||
|
type: "EdGraph",
|
||||||
|
path: "/Game/Systems/BP_MacroGlobal.BP_MacroGlobal:Or+Branch",
|
||||||
|
})
|
||||||
|
|
||||||
reference = serializer.read(`/Script/Engine.EdGraph'"+-Weird/2,Macro"'`)
|
reference = serializer.read(`/Script/Engine.EdGraph'"+-Weird/2,Macro"'`)
|
||||||
expect(reference).toBeInstanceOf(ObjectReferenceEntity)
|
expect(reference).toBeInstanceOf(ObjectReferenceEntity)
|
||||||
@@ -223,6 +254,24 @@ test.describe("Serializer", () => {
|
|||||||
reference = serializer.read(`/Script/BlueprintGraph.K2Node_VariableGet`)
|
reference = serializer.read(`/Script/BlueprintGraph.K2Node_VariableGet`)
|
||||||
expect(reference).toBeInstanceOf(ObjectReferenceEntity)
|
expect(reference).toBeInstanceOf(ObjectReferenceEntity)
|
||||||
expect(reference).toMatchObject({ type: "/Script/BlueprintGraph.K2Node_VariableGet", path: "" })
|
expect(reference).toMatchObject({ type: "/Script/BlueprintGraph.K2Node_VariableGet", path: "" })
|
||||||
|
|
||||||
|
reference = serializer.read(
|
||||||
|
`/Script/Engine.MaterialExpressionMaterialFunctionCall'MaterialExpressionMaterialFunctionCall_0'`
|
||||||
|
)
|
||||||
|
expect(reference).toBeInstanceOf(ObjectReferenceEntity)
|
||||||
|
expect(reference).toMatchObject({
|
||||||
|
type: "/Script/Engine.MaterialExpressionMaterialFunctionCall",
|
||||||
|
path: "MaterialExpressionMaterialFunctionCall_0",
|
||||||
|
})
|
||||||
|
|
||||||
|
reference = serializer.read(
|
||||||
|
`/Script/Engine.MaterialExpressionMaterialFunctionCall'/Engine/Transient.Material_0:MaterialGraph_0.MaterialGraphNode_3.MaterialExpressionMaterialFunctionCall_0'`
|
||||||
|
)
|
||||||
|
expect(reference).toBeInstanceOf(ObjectReferenceEntity)
|
||||||
|
expect(reference).toMatchObject({
|
||||||
|
type: "/Script/Engine.MaterialExpressionMaterialFunctionCall",
|
||||||
|
path: "/Engine/Transient.Material_0:MaterialGraph_0.MaterialGraphNode_3.MaterialExpressionMaterialFunctionCall_0",
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
test("String", () => {
|
test("String", () => {
|
||||||
|
|||||||
@@ -410,6 +410,122 @@ export default class MaterialNodes extends NodeTests {
|
|||||||
expect(values).toStrictEqual([77, 55])
|
expect(values).toStrictEqual([77, 55])
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "AppendMany",
|
||||||
|
value: String.raw`
|
||||||
|
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_3" ExportPath="/Script/UnrealEd.MaterialGraphNode'/Engine/Transient.Material_0:MaterialGraph_0.MaterialGraphNode_3'"
|
||||||
|
Begin Object Class=/Script/Engine.MaterialExpressionMaterialFunctionCall Name="MaterialExpressionMaterialFunctionCall_0" ExportPath="/Script/Engine.MaterialExpressionMaterialFunctionCall'/Engine/Transient.Material_0:MaterialGraph_0.MaterialGraphNode_3.MaterialExpressionMaterialFunctionCall_0'"
|
||||||
|
End Object
|
||||||
|
Begin Object Name="MaterialExpressionMaterialFunctionCall_0" ExportPath="/Script/Engine.MaterialExpressionMaterialFunctionCall'/Engine/Transient.Material_0:MaterialGraph_0.MaterialGraphNode_3.MaterialExpressionMaterialFunctionCall_0'"
|
||||||
|
MaterialFunction="/Script/Engine.MaterialFunction'/Engine/Functions/Engine_MaterialFunctions02/Utility/AppendMany.AppendMany'"
|
||||||
|
FunctionInputs(0)=(ExpressionInputId=885D0D3941709A0021D522BB0D350E84,Input=(OutputIndex=-1,InputName="R"))
|
||||||
|
FunctionInputs(1)=(ExpressionInputId=66655BEF4DEEE4FBB682D1B2533B646B,Input=(OutputIndex=-1,InputName="G"))
|
||||||
|
FunctionInputs(2)=(ExpressionInputId=7971790B4C1CF3D12A6BD5849BF51222,Input=(OutputIndex=-1,InputName="B"))
|
||||||
|
FunctionInputs(3)=(ExpressionInputId=E0358D7C4B4022F69AB64786F99318D6,Input=(OutputIndex=-1,InputName="A"))
|
||||||
|
FunctionOutputs(0)=(ExpressionOutputId=FA6B13694608C010AF452E92B3981900,Output=(OutputName="RG"))
|
||||||
|
FunctionOutputs(1)=(ExpressionOutputId=C48A5AA9468A429E4D9984AD43B50CE5,Output=(OutputName="RGB"))
|
||||||
|
FunctionOutputs(2)=(ExpressionOutputId=B55BAD0C44C4D883F0D33CB57D00AB3C,Output=(OutputName="RGBA"))
|
||||||
|
MaterialExpressionEditorX=384
|
||||||
|
MaterialExpressionEditorY=768
|
||||||
|
MaterialExpressionGuid=971FA65449F74582B4418B816DDCBCCF
|
||||||
|
Material="/Script/Engine.Material'/Engine/Transient.Material_0'"
|
||||||
|
Outputs(0)=(OutputName="RG")
|
||||||
|
Outputs(1)=(OutputName="RGB")
|
||||||
|
Outputs(2)=(OutputName="RGBA")
|
||||||
|
End Object
|
||||||
|
MaterialExpression="/Script/Engine.MaterialExpressionMaterialFunctionCall'MaterialExpressionMaterialFunctionCall_0'"
|
||||||
|
NodePosX=384
|
||||||
|
NodePosY=768
|
||||||
|
NodeGuid=7CBF0C7DDBF848FE8D7E9A85D56C3772
|
||||||
|
CustomProperties Pin (PinId=36EB45FD36FA4918947D2811918524EF,PinName="R (S)",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||||
|
CustomProperties Pin (PinId=3D2F2B761F6646E298BC96093285F44E,PinName="G (S)",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||||
|
CustomProperties Pin (PinId=4194B7FE10FC4AEEB2B9B620437618C3,PinName="B (S)",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||||
|
CustomProperties Pin (PinId=A29788A42F2E43E9B5F8959DF5478E8F,PinName="A (S)",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||||
|
CustomProperties Pin (PinId=7C55A39ECC2E4A78B0A2918AF200EED4,PinName="RG",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||||
|
CustomProperties Pin (PinId=A21DE80A4A454574AF9B1E0F8CD7E9F1,PinName="RGB",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||||
|
CustomProperties Pin (PinId=E5937F981A604CF1AF885868325FC83E,PinName="RGBA",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||||
|
End Object
|
||||||
|
`,
|
||||||
|
color: Configuration.nodeColors.blue,
|
||||||
|
icon: null,
|
||||||
|
pins: 7,
|
||||||
|
pinNames: [
|
||||||
|
"R (S)",
|
||||||
|
"G (S)",
|
||||||
|
"B (S)",
|
||||||
|
"A (S)",
|
||||||
|
"RG",
|
||||||
|
"RGB",
|
||||||
|
"RGBA",
|
||||||
|
],
|
||||||
|
delegate: false,
|
||||||
|
development: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Input X_1 (Scalar)",
|
||||||
|
value: String.raw`
|
||||||
|
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_14" ExportPath="/Script/UnrealEd.MaterialGraphNode'/Engine/Transient.Material_1:MaterialGraph_0.MaterialGraphNode_14'"
|
||||||
|
Begin Object Class=/Script/Engine.MaterialExpressionFunctionInput Name="MaterialExpressionFunctionInput_4" ExportPath="/Script/Engine.MaterialExpressionFunctionInput'/Engine/Transient.Material_1:MaterialGraph_0.MaterialGraphNode_14.MaterialExpressionFunctionInput_4'"
|
||||||
|
End Object
|
||||||
|
Begin Object Name="MaterialExpressionFunctionInput_4" ExportPath="/Script/Engine.MaterialExpressionFunctionInput'/Engine/Transient.Material_1:MaterialGraph_0.MaterialGraphNode_14.MaterialExpressionFunctionInput_4'"
|
||||||
|
InputName="X_1"
|
||||||
|
Id=220B12C48A1B4FD2A2F1964A3670D092
|
||||||
|
InputType=FunctionInput_Scalar
|
||||||
|
bUsePreviewValueAsDefault=True
|
||||||
|
SortPriority=2
|
||||||
|
MaterialExpressionEditorX=-64
|
||||||
|
MaterialExpressionEditorY=208
|
||||||
|
MaterialExpressionGuid=5B9F03CCBBD54567A9B6EAD08AAA08F0
|
||||||
|
Material="/Script/Engine.Material'/Engine/Transient.Material_1'"
|
||||||
|
Function="/Script/Engine.MaterialFunction'/Engine/Transient.AppendMany'"
|
||||||
|
End Object
|
||||||
|
MaterialExpression="/Script/Engine.MaterialExpressionFunctionInput'MaterialExpressionFunctionInput_4'"
|
||||||
|
NodePosX=-64
|
||||||
|
NodePosY=208
|
||||||
|
NodeGuid=9379668BD62A45458DC56BE5B3F80A73
|
||||||
|
CustomProperties Pin (PinId=1021DF0F4ABC4FE3BF1CF97F6FD78496,PinName="Preview",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||||
|
CustomProperties Pin (PinId=C875FB5EEFDC4CE6BD98B872403F7C29,PinName="Output",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||||
|
End Object
|
||||||
|
`,
|
||||||
|
color: Configuration.nodeColors.red,
|
||||||
|
icon: null,
|
||||||
|
pins: 2,
|
||||||
|
pinNames: [
|
||||||
|
"Preview",
|
||||||
|
],
|
||||||
|
delegate: false,
|
||||||
|
development: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Input In (Vector3)",
|
||||||
|
value: String.raw`
|
||||||
|
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_17" ExportPath="/Script/UnrealEd.MaterialGraphNode'/Engine/Transient.Material_1:MaterialGraph_0.MaterialGraphNode_17'"
|
||||||
|
Begin Object Class=/Script/Engine.MaterialExpressionFunctionInput Name="MaterialExpressionFunctionInput_7" ExportPath="/Script/Engine.MaterialExpressionFunctionInput'/Engine/Transient.Material_1:MaterialGraph_0.MaterialGraphNode_17.MaterialExpressionFunctionInput_7'"
|
||||||
|
End Object
|
||||||
|
Begin Object Name="MaterialExpressionFunctionInput_7" ExportPath="/Script/Engine.MaterialExpressionFunctionInput'/Engine/Transient.Material_1:MaterialGraph_0.MaterialGraphNode_17.MaterialExpressionFunctionInput_7'"
|
||||||
|
Id=2590318028564D9BAF90BEA43FBD3F1F
|
||||||
|
MaterialExpressionEditorX=512
|
||||||
|
MaterialExpressionEditorY=224
|
||||||
|
MaterialExpressionGuid=B0F1358EACAF46E5A277253263F0ECFC
|
||||||
|
Material="/Script/Engine.Material'/Engine/Transient.Material_1'"
|
||||||
|
End Object
|
||||||
|
MaterialExpression="/Script/Engine.MaterialExpressionFunctionInput'MaterialExpressionFunctionInput_7'"
|
||||||
|
NodePosX=512
|
||||||
|
NodePosY=224
|
||||||
|
NodeGuid=7F222623B44A4774BCA3C2F32DD16E98
|
||||||
|
CustomProperties Pin (PinId=DD534EE002554330B23E7F4B984A52F5,PinName="Preview",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||||
|
CustomProperties Pin (PinId=22FB979A3F314CBA9B2ABE11214E9827,PinName="Output",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||||
|
End Object
|
||||||
|
`,
|
||||||
|
color: Configuration.nodeColors.red,
|
||||||
|
icon: null,
|
||||||
|
pins: 2,
|
||||||
|
pinNames: [
|
||||||
|
"Preview",
|
||||||
|
],
|
||||||
|
delegate: false,
|
||||||
|
development: false,
|
||||||
|
},
|
||||||
])
|
])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user