mirror of
https://github.com/barsdeveloper/ueblueprint.git
synced 2026-02-04 08:50:33 +08:00
Several visual fixes
This commit is contained in:
@@ -1,8 +0,0 @@
|
||||
/// <reference types="cypress" />
|
||||
|
||||
import generateNodeTests from "../fixtures/testUtilities.js"
|
||||
|
||||
const tests = [
|
||||
]
|
||||
|
||||
generateNodeTests(tests)
|
||||
@@ -1,6 +1,9 @@
|
||||
/// <reference types="cypress" />
|
||||
|
||||
import generateNodeTests from "../fixtures/testUtilities.js"
|
||||
import NodeElement from "../../js/element/NodeElement.js"
|
||||
import PinElement from "../../js/element/PinElement.js"
|
||||
import SVGIcon from "../../js/SVGIcon.js"
|
||||
|
||||
const tests = [
|
||||
{
|
||||
@@ -21,9 +24,17 @@ const tests = [
|
||||
pins: 3,
|
||||
delegate: false,
|
||||
development: false,
|
||||
additionalTest:
|
||||
/** @param {NodeElement} node */
|
||||
node => {
|
||||
let pins = /** @type {PinElement[]} */(node.querySelectorAll("ueb-pin"))
|
||||
for (const pin of pins) {
|
||||
expect(pin.template.renderIcon().strings.join("").trim()).to.be.equal(SVGIcon.operationPin.strings.join("").trim())
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "LessEqual",
|
||||
name: "Less Equal",
|
||||
title: "<=",
|
||||
value: String.raw`
|
||||
Begin Object Class=/Script/BlueprintGraph.K2Node_PromotableOperator Name="K2Node_PromotableOperator_6" ExportPath=/Script/BlueprintGraph.K2Node_PromotableOperator'"/Temp/Untitled_1.Untitled_1:PersistentLevel.Untitled.EventGraph.K2Node_PromotableOperator_6"'
|
||||
@@ -42,6 +53,14 @@ const tests = [
|
||||
pins: 3,
|
||||
delegate: false,
|
||||
development: false,
|
||||
additionalTest:
|
||||
/** @param {NodeElement} node */
|
||||
node => {
|
||||
let pins = /** @type {PinElement[]} */(node.querySelectorAll("ueb-pin"))
|
||||
for (const pin of pins) {
|
||||
expect(pin.template.renderIcon().strings.join("").trim()).to.be.equal(SVGIcon.operationPin.strings.join("").trim())
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "Equal",
|
||||
@@ -62,29 +81,44 @@ const tests = [
|
||||
pins: 3,
|
||||
delegate: false,
|
||||
development: false,
|
||||
additionalTest:
|
||||
/** @param {NodeElement} node */
|
||||
node => {
|
||||
let pins = /** @type {PinElement[]} */(node.querySelectorAll("ueb-pin"))
|
||||
for (const pin of pins) {
|
||||
expect(pin.template.renderIcon().strings.join("").trim()).to.be.equal(SVGIcon.operationPin.strings.join("").trim())
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "Greater",
|
||||
title: ">",
|
||||
value: String.raw`
|
||||
Begin Object Class=/Script/BlueprintGraph.K2Node_PromotableOperator Name="K2Node_PromotableOperator_7" ExportPath=/Script/BlueprintGraph.K2Node_PromotableOperator'"/Temp/Untitled_1.Untitled_1:PersistentLevel.Untitled.EventGraph.K2Node_PromotableOperator_7"'
|
||||
bIsPureFunc=True
|
||||
FunctionReference=(MemberParent=/Script/CoreUObject.Class'"/Script/Engine.KismetMathLibrary"',MemberName="Greater_ByteByte")
|
||||
NodePosX=128
|
||||
NodeGuid=11FE7BC92D8C489A8E4034697377122C
|
||||
CustomProperties Pin (PinId=7C43E9ED4C264D328341E620FF154BD2,PinName="A",PinToolTip="A\nBoolean",PinType.PinCategory="bool",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,LinkedTo=(K2Node_PromotableOperator_6 3E135915A0FE467CBC499FDCAAB3906A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
CustomProperties Pin (PinId=23A96E0897564EA6B86CCC88BB518AC2,PinName="B",PinToolTip="B\nByte",PinType.PinCategory="byte",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=E6887819C15B4C78ADFBEA15EE57EBA9,PinName="ReturnValue",PinToolTip="Return Value\nBoolean\n\nReturns true if A is greater than B (A > B)",Direction="EGPD_Output",PinType.PinCategory="bool",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=0ADD760F647340E98762FC4EF7374255,PinName="ErrorTolerance",PinToolTip="Error Tolerance\n",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=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
Begin Object Class=/Script/BlueprintGraph.K2Node_PromotableOperator Name="K2Node_PromotableOperator_3" ExportPath=/Script/BlueprintGraph.K2Node_PromotableOperator'"/Temp/Untitled_1.Untitled_1:PersistentLevel.Untitled.EventGraph.K2Node_PromotableOperator_3"'
|
||||
"bIsPureFunc"=True
|
||||
"FunctionReference"=(MemberParent=/Script/CoreUObject.Class'"/Script/Engine.KismetMathLibrary"',MemberName="Greater_TimespanTimespan")
|
||||
"NodePosX"=-288
|
||||
"NodeGuid"=F7FABC9C44966BAAC491D4AE6E588CCC
|
||||
CustomProperties Pin (PinId=E5B7684F4812610A60F5E8A1217BD592,PinName="A",PinType.PinCategory="wildcard",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=62516570444A943984F804A683C737A1,PinName="B",PinType.PinCategory="wildcard",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=58F3E9EC42933068D0F9B493EB7C1F16,PinName="ReturnValue",Direction="EGPD_Output",PinType.PinCategory="bool",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
|
||||
`,
|
||||
size: [7.5, 4],
|
||||
pins: 3,
|
||||
delegate: false,
|
||||
development: false,
|
||||
additionalTest:
|
||||
/** @param {NodeElement} node */
|
||||
node => {
|
||||
let pins = /** @type {PinElement[]} */(node.querySelectorAll("ueb-pin"))
|
||||
for (const pin of pins) {
|
||||
expect(pin.template.renderIcon().strings.join("").trim()).to.be.equal(SVGIcon.operationPin.strings.join("").trim())
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "GreaterEqual",
|
||||
name: "Greater Equal",
|
||||
title: ">=",
|
||||
value: String.raw`
|
||||
Begin Object Class=/Script/BlueprintGraph.K2Node_PromotableOperator Name="K2Node_PromotableOperator_8" ExportPath=/Script/BlueprintGraph.K2Node_PromotableOperator'"/Temp/Untitled_1.Untitled_1:PersistentLevel.Untitled.EventGraph.K2Node_PromotableOperator_8"'
|
||||
@@ -103,6 +137,14 @@ const tests = [
|
||||
pins: 3,
|
||||
delegate: false,
|
||||
development: false,
|
||||
additionalTest:
|
||||
/** @param {NodeElement} node */
|
||||
node => {
|
||||
let pins = /** @type {PinElement[]} */(node.querySelectorAll("ueb-pin"))
|
||||
for (const pin of pins) {
|
||||
expect(pin.template.renderIcon().strings.join("").trim()).to.be.equal(SVGIcon.operationPin.strings.join("").trim())
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "AND",
|
||||
@@ -124,6 +166,14 @@ const tests = [
|
||||
delegate: false,
|
||||
development: false,
|
||||
variadic: true,
|
||||
additionalTest:
|
||||
/** @param {NodeElement} node */
|
||||
node => {
|
||||
let pins = /** @type {PinElement[]} */(node.querySelectorAll("ueb-pin"))
|
||||
for (const pin of pins) {
|
||||
expect(pin.template.renderIcon().strings.join("").trim()).to.be.equal(SVGIcon.operationPin.strings.join("").trim())
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "NAND",
|
||||
@@ -145,6 +195,14 @@ const tests = [
|
||||
delegate: false,
|
||||
development: false,
|
||||
variadic: true,
|
||||
additionalTest:
|
||||
/** @param {NodeElement} node */
|
||||
node => {
|
||||
let pins = /** @type {PinElement[]} */(node.querySelectorAll("ueb-pin"))
|
||||
for (const pin of pins) {
|
||||
expect(pin.template.renderIcon().strings.join("").trim()).to.be.equal(SVGIcon.operationPin.strings.join("").trim())
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "Bitwise AND 1",
|
||||
@@ -167,6 +225,14 @@ const tests = [
|
||||
delegate: false,
|
||||
development: false,
|
||||
variadic: true,
|
||||
additionalTest:
|
||||
/** @param {NodeElement} node */
|
||||
node => {
|
||||
let pins = /** @type {PinElement[]} */(node.querySelectorAll("ueb-pin"))
|
||||
for (const pin of pins) {
|
||||
expect(pin.template.renderIcon().strings.join("").trim()).to.be.equal(SVGIcon.operationPin.strings.join("").trim())
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "Bitwise AND 2",
|
||||
@@ -189,6 +255,14 @@ const tests = [
|
||||
delegate: false,
|
||||
development: false,
|
||||
variadic: true,
|
||||
additionalTest:
|
||||
/** @param {NodeElement} node */
|
||||
node => {
|
||||
let pins = /** @type {PinElement[]} */(node.querySelectorAll("ueb-pin"))
|
||||
for (const pin of pins) {
|
||||
expect(pin.template.renderIcon().strings.join("").trim()).to.be.equal(SVGIcon.operationPin.strings.join("").trim())
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "Bitwise OR 1",
|
||||
@@ -214,6 +288,14 @@ const tests = [
|
||||
delegate: false,
|
||||
development: false,
|
||||
variadic: true,
|
||||
additionalTest:
|
||||
/** @param {NodeElement} node */
|
||||
node => {
|
||||
let pins = /** @type {PinElement[]} */(node.querySelectorAll("ueb-pin"))
|
||||
for (const pin of pins) {
|
||||
expect(pin.template.renderIcon().strings.join("").trim()).to.be.equal(SVGIcon.operationPin.strings.join("").trim())
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "Bitwise OR 2",
|
||||
@@ -237,6 +319,14 @@ const tests = [
|
||||
delegate: false,
|
||||
development: false,
|
||||
variadic: true,
|
||||
additionalTest:
|
||||
/** @param {NodeElement} node */
|
||||
node => {
|
||||
let pins = /** @type {PinElement[]} */(node.querySelectorAll("ueb-pin"))
|
||||
for (const pin of pins) {
|
||||
expect(pin.template.renderIcon().strings.join("").trim()).to.be.equal(SVGIcon.operationPin.strings.join("").trim())
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "Bitwise NOT 1",
|
||||
@@ -258,6 +348,14 @@ const tests = [
|
||||
delegate: false,
|
||||
development: false,
|
||||
variadic: false,
|
||||
additionalTest:
|
||||
/** @param {NodeElement} node */
|
||||
node => {
|
||||
let pins = /** @type {PinElement[]} */(node.querySelectorAll("ueb-pin"))
|
||||
for (const pin of pins) {
|
||||
expect(pin.template.renderIcon().strings.join("").trim()).to.be.equal(SVGIcon.operationPin.strings.join("").trim())
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "Bitwise NOT 2",
|
||||
@@ -279,6 +377,14 @@ const tests = [
|
||||
delegate: false,
|
||||
development: false,
|
||||
variadic: false,
|
||||
additionalTest:
|
||||
/** @param {NodeElement} node */
|
||||
node => {
|
||||
let pins = /** @type {PinElement[]} */(node.querySelectorAll("ueb-pin"))
|
||||
for (const pin of pins) {
|
||||
expect(pin.template.renderIcon().strings.join("").trim()).to.be.equal(SVGIcon.operationPin.strings.join("").trim())
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "Bitwise XOR 1",
|
||||
@@ -301,6 +407,14 @@ const tests = [
|
||||
delegate: false,
|
||||
development: false,
|
||||
variadic: false,
|
||||
additionalTest:
|
||||
/** @param {NodeElement} node */
|
||||
node => {
|
||||
let pins = /** @type {PinElement[]} */(node.querySelectorAll("ueb-pin"))
|
||||
for (const pin of pins) {
|
||||
expect(pin.template.renderIcon().strings.join("").trim()).to.be.equal(SVGIcon.operationPin.strings.join("").trim())
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "Bitwise XOR 2",
|
||||
@@ -322,6 +436,14 @@ const tests = [
|
||||
delegate: false,
|
||||
development: false,
|
||||
variadic: false,
|
||||
additionalTest:
|
||||
/** @param {NodeElement} node */
|
||||
node => {
|
||||
let pins = /** @type {PinElement[]} */(node.querySelectorAll("ueb-pin"))
|
||||
for (const pin of pins) {
|
||||
expect(pin.template.renderIcon().strings.join("").trim()).to.be.equal(SVGIcon.operationPin.strings.join("").trim())
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "SIN",
|
||||
@@ -342,6 +464,72 @@ const tests = [
|
||||
delegate: false,
|
||||
development: false,
|
||||
variadic: false,
|
||||
additionalTest:
|
||||
/** @param {NodeElement} node */
|
||||
node => {
|
||||
let pins = /** @type {PinElement[]} */(node.querySelectorAll("ueb-pin"))
|
||||
for (const pin of pins) {
|
||||
expect(pin.template.renderIcon().strings.join("").trim()).to.be.equal(SVGIcon.operationPin.strings.join("").trim())
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "Not Equal",
|
||||
title: "!=",
|
||||
value: String.raw`
|
||||
Begin Object Class=/Script/BlueprintGraph.K2Node_PromotableOperator Name="K2Node_PromotableOperator_0" ExportPath=/Script/BlueprintGraph.K2Node_PromotableOperator'"/Temp/Untitled_1.Untitled_1:PersistentLevel.Untitled.EventGraph.K2Node_PromotableOperator_0"'
|
||||
"bIsPureFunc"=True
|
||||
"FunctionReference"=(MemberParent=/Script/CoreUObject.Class'"/Script/GameplayTags.BlueprintGameplayTagLibrary"',MemberName="NotEqual_GameplayTagContainer")
|
||||
"NodePosX"=-256
|
||||
"NodeGuid"=29F5E14B4509543D59F652854F3B6AB6
|
||||
CustomProperties Pin (PinId=815D7F344EC326D3E021F68BB4D9B3AD,PinName="A",PinToolTip="A\nWildcard",PinType.PinCategory="wildcard",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=3B762DCB4AA262D90BA202939BDB049D,PinName="B",PinToolTip="B\nWildcard",PinType.PinCategory="wildcard",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=6DACCB8046585A22DA055FA2ECE67712,PinName="ReturnValue",PinToolTip="Return Value\nBoolean\n\nReturns true if the values are not equal (A != B)",Direction="EGPD_Output",PinType.PinCategory="bool",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
|
||||
`,
|
||||
size: [9, 4],
|
||||
pins: 3,
|
||||
delegate: false,
|
||||
development: false,
|
||||
variadic: false,
|
||||
additionalTest:
|
||||
/** @param {NodeElement} node */
|
||||
node => {
|
||||
let pins = /** @type {PinElement[]} */(node.querySelectorAll("ueb-pin"))
|
||||
for (const pin of pins) {
|
||||
expect(pin.template.renderIcon().strings.join("").trim()).to.be.equal(SVGIcon.operationPin.strings.join("").trim())
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "Equal",
|
||||
title: "==",
|
||||
value: String.raw`
|
||||
Begin Object Class=/Script/BlueprintGraph.K2Node_PromotableOperator Name="K2Node_PromotableOperator_1" ExportPath=/Script/BlueprintGraph.K2Node_PromotableOperator'"/Temp/Untitled_1.Untitled_1:PersistentLevel.Untitled.EventGraph.K2Node_PromotableOperator_1"'
|
||||
"bIsPureFunc"=True
|
||||
"FunctionReference"=(MemberParent=/Script/CoreUObject.Class'"/Script/Engine.KismetMathLibrary"',MemberName="EqualEqual_ByteByte")
|
||||
"NodePosX"=-256
|
||||
"NodePosY"=128
|
||||
"NodeGuid"=219043694FA6E83CD69DD791FB1C08AE
|
||||
CustomProperties Pin (PinId=8E6EE9EB47FF4B99F5092CAA5DC364D2,PinName="A",PinToolTip="A\nByte",PinType.PinCategory="byte",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,LinkedTo=(K2Node_ForEachElementInEnum_0 E892F26242AA3EDCB057699DC234F057,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
CustomProperties Pin (PinId=6A74B02D468CF910E233A48E38EDDDD8,PinName="B",PinToolTip="B\nByte",PinType.PinCategory="byte",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=1D70EDE14002E5290A451090FC8D747B,PinName="ReturnValue",PinToolTip="Return Value\nBoolean\n\nReturns true if A is equal to B (A == B)",Direction="EGPD_Output",PinType.PinCategory="bool",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=503CA95B4180C28504ECE5AE43FA118B,PinName="ErrorTolerance",PinToolTip="Error Tolerance\n",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=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
End Object
|
||||
`,
|
||||
size: [10, 4],
|
||||
pins: 3,
|
||||
delegate: false,
|
||||
development: false,
|
||||
variadic: false,
|
||||
additionalTest:
|
||||
/** @param {NodeElement} node */
|
||||
node => {
|
||||
let pins = /** @type {PinElement[]} */(node.querySelectorAll("ueb-pin"))
|
||||
for (const pin of pins) {
|
||||
expect(pin.template.renderIcon().strings.join("").trim()).to.be.equal(SVGIcon.operationPin.strings.join("").trim())
|
||||
}
|
||||
}
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
94
cypress/e2e/pcgNodes.cy.js
Normal file
94
cypress/e2e/pcgNodes.cy.js
Normal file
@@ -0,0 +1,94 @@
|
||||
/// <reference types="cypress" />
|
||||
|
||||
import Configuration from "../../js/Configuration.js"
|
||||
import generateNodeTests from "../fixtures/testUtilities.js"
|
||||
import NodeElement from "../../js/element/NodeElement.js"
|
||||
import PinElement from "../../js/element/PinElement.js"
|
||||
import SVGIcon from "../../js/SVGIcon.js"
|
||||
|
||||
const tests = [
|
||||
{
|
||||
name: "Execute Blueprint",
|
||||
value: String.raw`
|
||||
Begin Object Class=/Script/PCGEditor.PCGEditorGraphNode Name="PCGEditorGraphNode_2" ExportPath=/Script/PCGEditor.PCGEditorGraphNode'"/Game/NewPCGGraph.NewPCGGraph:PCGEditorGraph_1.PCGEditorGraphNode_2"'
|
||||
Begin Object Class=/Script/PCG.PCGNode Name="ExecuteBlueprint_7" ExportPath=/Script/PCG.PCGNode'"/Game/NewPCGGraph.NewPCGGraph:PCGEditorGraph_1.PCGEditorGraphNode_2.ExecuteBlueprint_7"'
|
||||
Begin Object Class=/Script/PCG.PCGBlueprintSettings Name="PCGBlueprintSettings_0" ExportPath=/Script/PCG.PCGBlueprintSettings'"/Game/NewPCGGraph.NewPCGGraph:PCGEditorGraph_1.PCGEditorGraphNode_2.ExecuteBlueprint_7.PCGBlueprintSettings_0"'
|
||||
End Object
|
||||
Begin Object Class=/Script/PCG.PCGPin Name="PCGPin_0" ExportPath=/Script/PCG.PCGPin'"/Game/NewPCGGraph.NewPCGGraph:PCGEditorGraph_1.PCGEditorGraphNode_2.ExecuteBlueprint_7.PCGPin_0"'
|
||||
End Object
|
||||
Begin Object Class=/Script/PCG.PCGPin Name="PCGPin_1" ExportPath=/Script/PCG.PCGPin'"/Game/NewPCGGraph.NewPCGGraph:PCGEditorGraph_1.PCGEditorGraphNode_2.ExecuteBlueprint_7.PCGPin_1"'
|
||||
End Object
|
||||
Begin Object Class=/Script/PCG.PCGPin Name="PCGPin_2" ExportPath=/Script/PCG.PCGPin'"/Game/NewPCGGraph.NewPCGGraph:PCGEditorGraph_1.PCGEditorGraphNode_2.ExecuteBlueprint_7.PCGPin_2"'
|
||||
End Object
|
||||
Begin Object Class=/Script/PCG.PCGPin Name="PCGPin_3" ExportPath=/Script/PCG.PCGPin'"/Game/NewPCGGraph.NewPCGGraph:PCGEditorGraph_1.PCGEditorGraphNode_2.ExecuteBlueprint_7.PCGPin_3"'
|
||||
End Object
|
||||
End Object
|
||||
Begin Object Name="ExecuteBlueprint_7" ExportPath=/Script/PCG.PCGNode'"/Game/NewPCGGraph.NewPCGGraph:PCGEditorGraph_1.PCGEditorGraphNode_2.ExecuteBlueprint_7"'
|
||||
Begin Object Name="PCGBlueprintSettings_0" ExportPath=/Script/PCG.PCGBlueprintSettings'"/Game/NewPCGGraph.NewPCGGraph:PCGEditorGraph_1.PCGEditorGraphNode_2.ExecuteBlueprint_7.PCGBlueprintSettings_0"'
|
||||
"Seed"=-1282097489
|
||||
"bExposeToLibrary"=False
|
||||
"CachedOverridableParams"(0)=(Label="Seed",PropertiesNames=("Seed"),PropertyClass=/Script/CoreUObject.Class'"/Script/PCG.PCGBlueprintSettings"')
|
||||
End Object
|
||||
Begin Object Name="PCGPin_0" ExportPath=/Script/PCG.PCGPin'"/Game/NewPCGGraph.NewPCGGraph:PCGEditorGraph_1.PCGEditorGraphNode_2.ExecuteBlueprint_7.PCGPin_0"'
|
||||
"Node"=/Script/PCG.PCGNode'"PCGEditorGraphNode_2.ExecuteBlueprint_7"'
|
||||
"Properties"=(Label="In")
|
||||
End Object
|
||||
Begin Object Name="PCGPin_1" ExportPath=/Script/PCG.PCGPin'"/Game/NewPCGGraph.NewPCGGraph:PCGEditorGraph_1.PCGEditorGraphNode_2.ExecuteBlueprint_7.PCGPin_1"'
|
||||
"Node"=/Script/PCG.PCGNode'"PCGEditorGraphNode_2.ExecuteBlueprint_7"'
|
||||
"Properties"=(Label="Overrides",AllowedTypes=Param,bAdvancedPin=True,Tooltip=NSLOCTEXT("PCGSettings", "GlobalParamPinTooltip", "Atribute Set containing multiple parameters to override. Names must match perfectly."))
|
||||
End Object
|
||||
Begin Object Name="PCGPin_2" ExportPath=/Script/PCG.PCGPin'"/Game/NewPCGGraph.NewPCGGraph:PCGEditorGraph_1.PCGEditorGraphNode_2.ExecuteBlueprint_7.PCGPin_2"'
|
||||
"Node"=/Script/PCG.PCGNode'"PCGEditorGraphNode_2.ExecuteBlueprint_7"'
|
||||
"Properties"=(Label="Seed",AllowedTypes=Param,bAllowMultipleData=False,bAllowMultipleConnections=False,bAdvancedPin=True,Tooltip=LOCGEN_FORMAT_ORDERED(NSLOCTEXT("PCGSettings", "OverridableParamPinTooltip", "{0}Attribute type is \"{1}\" and its exact name is \"{2}\""), "", "int32", "Seed"))
|
||||
End Object
|
||||
Begin Object Name="PCGPin_3" ExportPath=/Script/PCG.PCGPin'"/Game/NewPCGGraph.NewPCGGraph:PCGEditorGraph_1.PCGEditorGraphNode_2.ExecuteBlueprint_7.PCGPin_3"'
|
||||
"Node"=/Script/PCG.PCGNode'"PCGEditorGraphNode_2.ExecuteBlueprint_7"'
|
||||
"Properties"=(Label="Out",AllowedTypes=Spatial)
|
||||
End Object
|
||||
"PositionX"=768
|
||||
"PositionY"=128
|
||||
"SettingsInterface"=/Script/PCG.PCGBlueprintSettings'"PCGBlueprintSettings_0"'
|
||||
"InputPins"(0)=/Script/PCG.PCGPin'"PCGPin_0"'
|
||||
"InputPins"(1)=/Script/PCG.PCGPin'"PCGPin_1"'
|
||||
"InputPins"(2)=/Script/PCG.PCGPin'"PCGPin_2"'
|
||||
"OutputPins"(0)=/Script/PCG.PCGPin'"PCGPin_3"'
|
||||
End Object
|
||||
"PCGNode"=/Script/PCG.PCGNode'"ExecuteBlueprint_7"'
|
||||
"NodePosX"=768
|
||||
"NodePosY"=128
|
||||
"AdvancedPinDisplay"=Shown
|
||||
"bUserSetEnabledState"=True
|
||||
"NodeGuid"=510EDA9C48C94C29D834BDBC2E6698A5
|
||||
CustomProperties Pin (PinId=84EFEAC94F4D8F7B54DBA39777ACE90B,PinName="In",PinFriendlyName="In",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=14D4F997473AFF411CEB30824798BF16,PinName="Overrides",PinFriendlyName="Overrides",PinType.PinCategory="Attribute Set",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=True,bOrphanedPin=False,)
|
||||
CustomProperties Pin (PinId=B534894344C992A0A4DA798A15D1C438,PinName="Seed",PinFriendlyName="Seed",PinType.PinCategory="Attribute Set",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=True,bOrphanedPin=False,)
|
||||
CustomProperties Pin (PinId=A6E46EE44272FFAB9F2E1B944ADC28CB,PinName="Out",PinFriendlyName="Out",Direction="EGPD_Output",PinType.PinCategory="Spatial Data",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
|
||||
`,
|
||||
size: [10, 9],
|
||||
color: Configuration.nodeColors.darkBlue,
|
||||
pins: 4,
|
||||
pinNames: ["In", "Overrides", "Seed", "Out"],
|
||||
delegate: false,
|
||||
development: false,
|
||||
additionalTest:
|
||||
/** @param {NodeElement} node */
|
||||
node => {
|
||||
let pins = /** @type {PinElement[]} */(node.querySelectorAll("ueb-pin"))
|
||||
const inPin = pins.find(pin => pin.innerText === "In")
|
||||
const overridesPin = pins.find(pin => pin.innerText === "Overrides")
|
||||
const seedPin = pins.find(pin => pin.innerText === "Seed")
|
||||
const out = pins.find(pin => pin.innerText === "Out")
|
||||
expect(inPin).to.not.be.null
|
||||
expect(inPin.template.renderIcon()).to.be.equal(SVGIcon.pcgStackPin)
|
||||
expect(overridesPin).to.not.be.null
|
||||
expect(overridesPin.template.renderIcon()).to.be.equal(SVGIcon.pcgParamPin)
|
||||
expect(seedPin).to.not.be.null
|
||||
expect(seedPin.template.renderIcon()).to.be.equal(SVGIcon.pcgParamPin)
|
||||
expect(out).to.not.be.null
|
||||
expect(out.template.renderIcon()).to.be.equal(SVGIcon.pcgSpatialPin)
|
||||
}
|
||||
},
|
||||
]
|
||||
|
||||
generateNodeTests(tests)
|
||||
43
dist/css/ueb-style.css
vendored
43
dist/css/ueb-style.css
vendored
@@ -49,8 +49,8 @@ ueb-blueprint svg {
|
||||
margin-left: auto;
|
||||
padding: 5px;
|
||||
color: #2b2b2b;
|
||||
/* 1.53846 is to get an effective font size of 20px from --ueb-font-size which is 13 px */
|
||||
font-size: calc(1.53846 * var(--ueb-font-size));
|
||||
/* 160% is to get an effective font size of 20px from --ueb-font-size which is 12.5 px by default */
|
||||
font-size: 160%;
|
||||
font-weight: bold;
|
||||
letter-spacing: -1px;
|
||||
}
|
||||
@@ -315,7 +315,6 @@ ueb-node[data-selected=true] > .ueb-node-border {
|
||||
}
|
||||
|
||||
.ueb-node-outputs ueb-pin[data-type=exec] .ueb-pin-wrapper {
|
||||
margin-right: -3px;
|
||||
min-height: 26px;
|
||||
}
|
||||
|
||||
@@ -343,8 +342,8 @@ ueb-blueprint[data-scrolling=false][data-selecting=false] ueb-node.ueb-node-styl
|
||||
.ueb-node-top {
|
||||
grid-area: top;
|
||||
color: #d0d0d0;
|
||||
/* 1.030769 is to get an effective font size of 13.4px from --ueb-font-size which is 13 px */
|
||||
font-size: calc(1.030769 * var(--ueb-font-size));
|
||||
/* 112% is to get an effective font size of 14px from --ueb-font-size which is 12.5 px by default */
|
||||
font-size: 112%;
|
||||
font-weight: bold;
|
||||
line-height: 120%;
|
||||
white-space: nowrap;
|
||||
@@ -423,8 +422,8 @@ ueb-node[data-pure-function=true] .ueb-node-name-symbol {
|
||||
.ueb-node-subtitle-text {
|
||||
padding-top: 1px;
|
||||
padding-right: 5px;
|
||||
/* 0.946154 is to get an effective font size of 12.3px from --ueb-font-size which is 13 px */
|
||||
font-size: calc(0.946154 * var(--ueb-font-size));
|
||||
/* Reset font size set by the parent */
|
||||
font-size: var(--ueb-font-size);
|
||||
font-weight: 100;
|
||||
font-style: italic;
|
||||
color: #a9b78f;
|
||||
@@ -435,8 +434,8 @@ ueb-node[data-pure-function=true] .ueb-node-name-symbol {
|
||||
}
|
||||
|
||||
ueb-node.ueb-node-has-inputs .ueb-node-inputs {
|
||||
padding-right: 20px;
|
||||
padding-left: 5px;
|
||||
padding-right: 15px;
|
||||
padding-left: 6px;
|
||||
}
|
||||
|
||||
.ueb-node-outputs {
|
||||
@@ -445,7 +444,7 @@ ueb-node.ueb-node-has-inputs .ueb-node-inputs {
|
||||
|
||||
.ueb-node-outputs,
|
||||
.ueb-node-variadic {
|
||||
padding-right: 8px;
|
||||
padding-right: 6px;
|
||||
}
|
||||
|
||||
.ueb-node-variadic {
|
||||
@@ -551,8 +550,8 @@ ueb-node.ueb-node-style-operation .ueb-node-top {
|
||||
align-self: center;
|
||||
justify-self: center;
|
||||
padding: 0;
|
||||
/* 2.15385 is to get an effective font size of 28px from --ueb-font-size which is 13 px */
|
||||
font-size: calc(2.15385 * var(--ueb-font-size));
|
||||
/* 224% is to get an effective font size of 28px from --ueb-font-size which is 12.5 px by default */
|
||||
font-size: 224%;
|
||||
font-stretch: condensed;
|
||||
font-weight: bold;
|
||||
line-height: 100%;
|
||||
@@ -604,8 +603,8 @@ ueb-node.ueb-node-style-comment .ueb-node-top {
|
||||
border-radius: 0;
|
||||
background: rgb(var(--ueb-node-color));
|
||||
color: white;
|
||||
/* 1.84615 is to get an effective font size of 24px from --ueb-font-size which is 13 px */
|
||||
font-size: calc(1.84615 * var(--ueb-font-size));
|
||||
/* 192% is to get an effective font size of 24px from --ueb-font-size which is 12.5 px */
|
||||
font-size: 192%;
|
||||
text-shadow: 2px 1px 1px #444, 0 0 2px #bbb;
|
||||
line-height: 1.22;
|
||||
z-index: 1;
|
||||
@@ -665,7 +664,7 @@ ueb-node[data-advanced-display=Hidden] ueb-pin[data-advanced-view=true][data-lin
|
||||
.ueb-pin-wrapper {
|
||||
display: inline-flex;
|
||||
box-sizing: border-box;
|
||||
padding: 3px 5px;
|
||||
padding: 3px 6px;
|
||||
min-height: 24px;
|
||||
align-items: center;
|
||||
}
|
||||
@@ -700,8 +699,6 @@ ueb-blueprint[data-scrolling=false][data-selecting=false] .ueb-pin-wrapper:hover
|
||||
|
||||
.ueb-pin-icon {
|
||||
color: var(--ueb-pin-color);
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
@@ -715,7 +712,7 @@ ueb-pin[data-connectable=false] .ueb-pin-icon {
|
||||
}
|
||||
|
||||
.ueb-node-inputs .ueb-pin-icon {
|
||||
margin-right: 10px;
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
.ueb-node-outputs .ueb-pin-icon {
|
||||
@@ -723,7 +720,7 @@ ueb-pin[data-connectable=false] .ueb-pin-icon {
|
||||
}
|
||||
|
||||
.ueb-pin-icon > svg {
|
||||
vertical-align: top;
|
||||
display: block;
|
||||
}
|
||||
|
||||
ueb-pin[data-direction=output] .ueb-pin-reflect-output {
|
||||
@@ -759,10 +756,6 @@ ueb-pin.ueb-node-variadic-default::before {
|
||||
background: linear-gradient(90deg, transparent 0, #404240 6px, #404240 calc(100% - 6px), transparent 100%);
|
||||
}
|
||||
|
||||
.ueb-pin-name {
|
||||
letter-spacing: -0.25px;
|
||||
}
|
||||
|
||||
.ueb-zoom--6 .ueb-pin-content {
|
||||
visibility: hidden;
|
||||
}
|
||||
@@ -836,8 +829,8 @@ ueb-pin[data-type="/Script/CoreUObject.LinearColor"] .ueb-pin-input {
|
||||
min-width: 10px;
|
||||
max-width: 400px;
|
||||
max-height: 16em;
|
||||
/* 0.96923 is to get an effective font size of 12.6px from --ueb-font-size which is 13 px */
|
||||
font-size: calc(0.96923 * var(--ueb-font-size));
|
||||
/* 108% is to get an effective font size of 13.5px from --ueb-font-size which is 12.5 px by default */
|
||||
font-size: 108%;
|
||||
white-space: nowrap;
|
||||
background: none;
|
||||
color: inherit;
|
||||
|
||||
2
dist/css/ueb-style.css.map
vendored
2
dist/css/ueb-style.css.map
vendored
File diff suppressed because one or more lines are too long
2
dist/css/ueb-style.min.css
vendored
2
dist/css/ueb-style.min.css
vendored
File diff suppressed because one or more lines are too long
2
dist/css/ueb-style.min.css.map
vendored
2
dist/css/ueb-style.min.css.map
vendored
File diff suppressed because one or more lines are too long
64
dist/ueblueprint.js
vendored
64
dist/ueblueprint.js
vendored
@@ -58,7 +58,7 @@ class Configuration {
|
||||
begin: "blueprint-focus",
|
||||
end: "blueprint-unfocus",
|
||||
}
|
||||
static fontSize = i$3`13px`
|
||||
static fontSize = i$3`12.5px`
|
||||
static gridAxisLineColor = i$3`black`
|
||||
static gridExpandThreshold = 0.25 // remaining size factor threshold to cause an expansion event
|
||||
static gridLineColor = i$3`#353535`
|
||||
@@ -113,6 +113,7 @@ class Configuration {
|
||||
ambientSound: "/Script/Engine.AmbientSound",
|
||||
asyncAction: "/Script/BlueprintGraph.K2Node_AsyncAction",
|
||||
blueprint: "/Script/Engine.Blueprint",
|
||||
blueprintGameplayTagLibrary: "/Script/GameplayTags.BlueprintGameplayTagLibrary",
|
||||
blueprintMapLibrary: "/Script/Engine.BlueprintMapLibrary",
|
||||
blueprintSetLibrary: "/Script/Engine.BlueprintSetLibrary",
|
||||
callArrayFunction: "/Script/BlueprintGraph.K2Node_CallArrayFunction",
|
||||
@@ -885,7 +886,7 @@ class Utility {
|
||||
: new /** @type {EntityConstructor} */(targetType)(value);
|
||||
}
|
||||
if (value instanceof Boolean || value instanceof Number || value instanceof String) {
|
||||
value = value.valueOf(); // Get the relative primitive value
|
||||
value = /** @type {AnyValue} */(value.valueOf()); // Get the relative primitive value
|
||||
}
|
||||
return value
|
||||
}
|
||||
@@ -1220,7 +1221,7 @@ class IEntity extends Serializable {
|
||||
.getSerializer(defaultType)
|
||||
.read(/** @type {String} */(value));
|
||||
}
|
||||
assignAttribute(Utility.sanitize(value, /** @type {AnyConstructor<*>} */(defaultType)));
|
||||
assignAttribute(Utility.sanitize(value, /** @type {SimpleValueType<SimpleValue>} */(defaultType)));
|
||||
continue // We have a value, need nothing more
|
||||
}
|
||||
if (Object.hasOwn(attribute, "default")) { // Accept also explicit undefined
|
||||
@@ -1576,7 +1577,7 @@ class Grammar {
|
||||
|
||||
/**
|
||||
* @template {IEntity} T
|
||||
* @param {AnyConstructor<T> & EntityConstructor} entityType
|
||||
* @param {(new (...args: any) => T) & EntityConstructor} entityType
|
||||
* @param {Boolean | Number} acceptUnknownKeys Number to specify the limit or true, to let it be a reasonable value
|
||||
* @returns {Parsimmon.Parser<T>}
|
||||
*/
|
||||
@@ -3182,8 +3183,8 @@ class PinEntity extends IEntity {
|
||||
|
||||
class SVGIcon {
|
||||
|
||||
static array = x`
|
||||
<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
static arrayPin = x`
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M4 0H0V4H4V0Z" fill="currentColor" />
|
||||
<path d="M10 0H6V4H10V0Z" fill="currentColor" />
|
||||
<path d="M16 0H12V4H16V0Z" fill="currentColor" />
|
||||
@@ -3284,7 +3285,7 @@ class SVGIcon {
|
||||
`
|
||||
|
||||
static execPin = x`
|
||||
<svg viewBox="-2 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg width="15" height="15" viewBox="-2 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path class="ueb-pin-tofill" stroke-width="1.25" stroke="white" fill="none"
|
||||
d="M 2 1 a 2 2 0 0 0 -2 2 v 10 a 2 2 0 0 0 2 2 h 4 a 2 2 0 0 0 1.519 -0.698 l 4.843 -5.651 a 1 1 0 0 0 0 -1.302 L 7.52 1.7 a 2 2 0 0 0 -1.519 -0.698 z" />
|
||||
</svg>
|
||||
@@ -3331,7 +3332,7 @@ class SVGIcon {
|
||||
`
|
||||
|
||||
static genericPin = x`
|
||||
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg width="16" height="12" viewBox="0 0 42 32" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle class="ueb-pin-tofill" cx="16" cy="16" r="13" fill="black" stroke="currentColor" stroke-width="5" />
|
||||
<path fill="currentColor" d="M 34 6 L 34 26 L 42 16 Z" />
|
||||
</svg>
|
||||
@@ -3371,7 +3372,7 @@ class SVGIcon {
|
||||
</svg>
|
||||
`
|
||||
|
||||
static map = x`
|
||||
static mapPin = x`
|
||||
<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M4 0H0V4H4V0Z" fill="currentColor" />
|
||||
<path d="M4 6H0V10H4V6Z" fill="currentColor" />
|
||||
@@ -3445,8 +3446,15 @@ class SVGIcon {
|
||||
</svg>
|
||||
`
|
||||
|
||||
static pcgPinStack = x`
|
||||
<svg version="1.1" viewBox="6 8 20 20" xmlns="http://www.w3.org/2000/svg">
|
||||
static operationPin = x`
|
||||
<svg width="14" height="14" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle class="ueb-pin-tostroke" cx="16" cy="16" r="14" stroke="currentColor" stroke-width="4" />
|
||||
<circle cx="16" cy="16" r="9.5" fill="#817a7a" />
|
||||
</svg>
|
||||
`
|
||||
|
||||
static pcgStackPin = x`
|
||||
<svg width="18" height="22" viewBox="4 0 28 36" xmlns="http://www.w3.org/2000/svg">
|
||||
<path stroke="black" stroke-width="1" fill="rgba(var(--ueb-pin-color-rgb), 0.5)" d="M25.8,32.2V17.5c0-1.7,1.3-3.1,3-3.1s3,1.3,3,3.1v14.7c0,1.8-1.3,3.2-3,3.2C27,35.5,25.8,34,25.8,32.2z" />
|
||||
<path stroke="black" stroke-width="1" fill="rgba(var(--ueb-pin-color-rgb), 0.75)" d="M18.8,30.1V11.8c0-2.4,1.8-4.3,4-4.3s4,1.9,4,4.3v18.4c0,2.4-1.8,4.3-4,4.3C20.5,34.5,18.8,32.5,18.8,30.1z" />
|
||||
<path stroke="black" stroke-width="1" fill="currentColor" d="M21.3,6.4v21.3c0,3.2-2.4,5.8-5.5,5.8s-5.5-2.5-5.5-5.8V6.3c0-3.2,2.4-5.8,5.5-5.8C18.8,0.5,21.2,3,21.3,6.4z" />
|
||||
@@ -3457,7 +3465,7 @@ class SVGIcon {
|
||||
`
|
||||
|
||||
static pcgPin = x`
|
||||
<svg class="ueb-pin-reflect-output" version="1.1" viewBox="8 8 20 20" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg class="ueb-pin-reflect-output" width="12" height="20" viewBox="8 0 20 36" xmlns="http://www.w3.org/2000/svg">
|
||||
<path stroke="black" stroke-width="1" fill="currentColor" d="M21.2,34.5c-3.1,0-5.5-2.6-5.5-5.8V7.3c0-3.3,2.4-5.8,5.5-5.8s5.5,2.6,5.5,5.8v21.3C26.8,31.9,24.3,34.5,21.2,34.5z" />
|
||||
<circle class="ueb-pin-tofill ueb-pin-tostroke" stroke="currentColor" stroke-width="1" cx="15.8" cy="10" r="6" />
|
||||
<circle class="ueb-pin-tofill ueb-pin-tostroke" stroke="currentColor" stroke-width="1" cx="15.8" cy="18" r="6" />
|
||||
@@ -3465,15 +3473,15 @@ class SVGIcon {
|
||||
</svg>
|
||||
`
|
||||
|
||||
static pcgPinParam = x`
|
||||
<svg class="ueb-pin-reflect-output" version="1.1" viewBox="8 8 20 20" xmlns="http://www.w3.org/2000/svg">
|
||||
static pcgParamPin = x`
|
||||
<svg class="ueb-pin-reflect-output" width="18" height="12" viewBox="8 8 19 21" xmlns="http://www.w3.org/2000/svg">
|
||||
<path class="ueb-pin-tofill" stroke="currentcolor" stroke-width="1" d="M8,18c-2.5,0-4.5-2-4.5-4.5S5.5,9,8,9h20c2.5,0,4.5,2,4.5,4.5S30.5,18,28,18H8z" />
|
||||
<path fill="currentColor" d="M31,27.5H13c-0.5,0-1-0.4-1-1v-4c0-0.5,0.4-1,1-1h18c0.5,0,1,0.4,1,1v4C32,27.1,31.6,27.5,31,27.5z" />
|
||||
</svg>
|
||||
`
|
||||
|
||||
static pcgSpatialPin = x`
|
||||
<svg version="1.1" viewBox="8 8 20 20" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg width="14" height="16" viewBox="5 4 28 28" xmlns="http://www.w3.org/2000/svg">
|
||||
<path stroke="#ffffff" stroke-width="1" fill="#808080" d="M20.5,33h-10c-2.8,0-5-2.2-5-5V8c0-2.8,2.2-5,5-5h10c2.8,0,5,2.2,5,5v20C25.5,30.8,23.3,33,20.5,33z" />
|
||||
<circle class="ueb-pin-tofill" stroke="#ffffff" stroke-width="1" fill="#202020" cx="23.7" cy="18" r="10" />
|
||||
</svg>
|
||||
@@ -3493,7 +3501,7 @@ class SVGIcon {
|
||||
`
|
||||
|
||||
static referencePin = x`
|
||||
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg width="12" height="12" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
|
||||
<polygon class="ueb-pin-tofill" points="4 16 16 4 28 16 16 28" stroke="currentColor" stroke-width="5" />
|
||||
</svg>
|
||||
`
|
||||
@@ -3505,8 +3513,8 @@ class SVGIcon {
|
||||
</svg>
|
||||
`
|
||||
|
||||
static set = x`
|
||||
<svg viewBox="2 2 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
static setPin = x`
|
||||
<svg width="16" height="16" viewBox="2 2 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M1 7.99956V6.99956C1.62451 6.89501 2.23976 6.7412 2.84 6.53956C3.02865 6.44859 3.18802 6.30655 3.3 6.12956C3.44478 5.91383 3.53723 5.6673 3.57 5.40956C3.6183 5.04164 3.63836 4.67055 3.63 4.29956C3.60615 3.68664 3.64974 3.07296 3.76 2.46956C3.82982 2.152 3.99359 1.86279 4.23 1.63956C4.51974 1.39713 4.86221 1.22589 5.23 1.13956C5.68612 1.03782 6.15275 0.990826 6.62 0.999563H7V1.99956C6.69952 2.01634 6.4103 2.11967 6.16722 2.2971C5.92414 2.47453 5.73757 2.71849 5.63 2.99956C5.5431 3.18346 5.5052 3.3867 5.52 3.58956C5.52 3.86956 5.52 4.40956 5.46 5.19956C5.44584 5.56977 5.38194 5.9364 5.27 6.28956C5.18779 6.5495 5.05527 6.79074 4.88 6.99956C4.62654 7.36597 4.33121 7.70157 4 7.99956" fill="currentColor" />
|
||||
<path d="M4 7.99951C4.33723 8.31397 4.63295 8.67019 4.88 9.05951C5.05095 9.2601 5.18319 9.49067 5.27 9.73951C5.38194 10.0927 5.44584 10.4593 5.46 10.8295C5.5 11.6228 5.52 12.1628 5.52 12.4495C5.5061 12.6523 5.54395 12.8553 5.63 13.0395C5.74563 13.3117 5.93533 13.546 6.17752 13.7157C6.41972 13.8854 6.70468 13.9837 7 13.9995V14.9995H6.62C6.15021 15.0156 5.68019 14.9753 5.22 14.8795C4.85378 14.7889 4.51224 14.6181 4.22 14.3795C3.98551 14.1548 3.8221 13.8662 3.75 13.5495C3.64077 12.946 3.59718 12.3324 3.62 11.7195C3.63014 11.3418 3.61007 10.964 3.56 10.5895C3.52723 10.3318 3.43478 10.0852 3.29 9.86951C3.17802 9.69252 3.01865 9.55048 2.83 9.45951C2.23302 9.25838 1.62113 9.10457 1 8.99951V7.99951" fill="currentColor" />
|
||||
<path d="M12 7.99955C11.6688 7.70156 11.3735 7.36596 11.12 6.99955C10.947 6.79667 10.8146 6.56242 10.73 6.30955C10.6181 5.95638 10.5542 5.58976 10.54 5.21954C10.54 4.42954 10.48 3.88955 10.48 3.60955C10.4983 3.40004 10.4604 3.18944 10.37 2.99955C10.2624 2.71847 10.0759 2.47452 9.83278 2.29708C9.5897 2.11965 9.30048 2.01632 9 1.99955V0.999545H9.38C9.84979 0.983442 10.3198 1.02373 10.78 1.11955C11.1478 1.20587 11.4903 1.37711 11.78 1.61955C12.0164 1.84278 12.1802 2.13198 12.25 2.44955C12.3603 3.05294 12.4039 3.66662 12.38 4.27955C12.3706 4.6572 12.3907 5.03501 12.44 5.40954C12.4728 5.66728 12.5652 5.91382 12.71 6.12955C12.822 6.30653 12.9813 6.44858 13.17 6.53955C13.767 6.74067 14.3789 6.89448 15 6.99955V7.99955" fill="currentColor" />
|
||||
@@ -4568,8 +4576,9 @@ class ObjectEntity extends IEntity {
|
||||
)
|
||||
}
|
||||
switch (memberParent) {
|
||||
case Configuration.paths.slateBlueprintLibrary:
|
||||
case Configuration.paths.blueprintGameplayTagLibrary:
|
||||
case Configuration.paths.kismetMathLibrary:
|
||||
case Configuration.paths.slateBlueprintLibrary:
|
||||
case Configuration.paths.timeManagementBlueprintLibrary:
|
||||
const leadingLetter = memberName.match(/[BF]([A-Z]\w+)/);
|
||||
if (leadingLetter) {
|
||||
@@ -8336,7 +8345,7 @@ class PinTemplate extends ITemplate {
|
||||
return SVGIcon.pcgPin
|
||||
case "Param":
|
||||
case "Param[]":
|
||||
return SVGIcon.pcgPinParam
|
||||
return SVGIcon.pcgParamPin
|
||||
case "Spatial":
|
||||
case "Spatial[]":
|
||||
return SVGIcon.pcgSpatialPin
|
||||
@@ -8350,17 +8359,20 @@ class PinTemplate extends ITemplate {
|
||||
case "Point":
|
||||
case "Surface":
|
||||
case "Volume":
|
||||
return SVGIcon.pcgPinStack
|
||||
return SVGIcon.pcgStackPin
|
||||
}
|
||||
}
|
||||
switch (this.element.entity.PinType.ContainerType?.toString()) {
|
||||
case "Array": return SVGIcon.array
|
||||
case "Set": return SVGIcon.set
|
||||
case "Map": return SVGIcon.map
|
||||
switch (this.element.entity.PinType?.ContainerType?.toString()) {
|
||||
case "Array": return SVGIcon.arrayPin
|
||||
case "Set": return SVGIcon.setPin
|
||||
case "Map": return SVGIcon.mapPin
|
||||
}
|
||||
if (this.element.entity.PinType.PinCategory.toLocaleLowerCase() === "delegate") {
|
||||
if (this.element.entity.PinType?.PinCategory?.toLocaleLowerCase() === "delegate") {
|
||||
return SVGIcon.delegate
|
||||
}
|
||||
if (this.element.nodeElement?.template instanceof VariableOperationNodeTemplate) {
|
||||
return SVGIcon.operationPin
|
||||
}
|
||||
return SVGIcon.genericPin
|
||||
}
|
||||
|
||||
|
||||
2
dist/ueblueprint.min.js
vendored
2
dist/ueblueprint.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -34,7 +34,7 @@ export default class Configuration {
|
||||
begin: "blueprint-focus",
|
||||
end: "blueprint-unfocus",
|
||||
}
|
||||
static fontSize = css`13px`
|
||||
static fontSize = css`12.5px`
|
||||
static gridAxisLineColor = css`black`
|
||||
static gridExpandThreshold = 0.25 // remaining size factor threshold to cause an expansion event
|
||||
static gridLineColor = css`#353535`
|
||||
@@ -89,6 +89,7 @@ export default class Configuration {
|
||||
ambientSound: "/Script/Engine.AmbientSound",
|
||||
asyncAction: "/Script/BlueprintGraph.K2Node_AsyncAction",
|
||||
blueprint: "/Script/Engine.Blueprint",
|
||||
blueprintGameplayTagLibrary: "/Script/GameplayTags.BlueprintGameplayTagLibrary",
|
||||
blueprintMapLibrary: "/Script/Engine.BlueprintMapLibrary",
|
||||
blueprintSetLibrary: "/Script/Engine.BlueprintSetLibrary",
|
||||
callArrayFunction: "/Script/BlueprintGraph.K2Node_CallArrayFunction",
|
||||
|
||||
@@ -2,8 +2,8 @@ import { html } from "lit"
|
||||
|
||||
export default class SVGIcon {
|
||||
|
||||
static array = html`
|
||||
<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
static arrayPin = html`
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M4 0H0V4H4V0Z" fill="currentColor" />
|
||||
<path d="M10 0H6V4H10V0Z" fill="currentColor" />
|
||||
<path d="M16 0H12V4H16V0Z" fill="currentColor" />
|
||||
@@ -104,7 +104,7 @@ export default class SVGIcon {
|
||||
`
|
||||
|
||||
static execPin = html`
|
||||
<svg viewBox="-2 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg width="15" height="15" viewBox="-2 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path class="ueb-pin-tofill" stroke-width="1.25" stroke="white" fill="none"
|
||||
d="M 2 1 a 2 2 0 0 0 -2 2 v 10 a 2 2 0 0 0 2 2 h 4 a 2 2 0 0 0 1.519 -0.698 l 4.843 -5.651 a 1 1 0 0 0 0 -1.302 L 7.52 1.7 a 2 2 0 0 0 -1.519 -0.698 z" />
|
||||
</svg>
|
||||
@@ -151,7 +151,7 @@ export default class SVGIcon {
|
||||
`
|
||||
|
||||
static genericPin = html`
|
||||
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg width="16" height="12" viewBox="0 0 42 32" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle class="ueb-pin-tofill" cx="16" cy="16" r="13" fill="black" stroke="currentColor" stroke-width="5" />
|
||||
<path fill="currentColor" d="M 34 6 L 34 26 L 42 16 Z" />
|
||||
</svg>
|
||||
@@ -191,7 +191,7 @@ export default class SVGIcon {
|
||||
</svg>
|
||||
`
|
||||
|
||||
static map = html`
|
||||
static mapPin = html`
|
||||
<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M4 0H0V4H4V0Z" fill="currentColor" />
|
||||
<path d="M4 6H0V10H4V6Z" fill="currentColor" />
|
||||
@@ -265,8 +265,15 @@ export default class SVGIcon {
|
||||
</svg>
|
||||
`
|
||||
|
||||
static pcgPinStack = html`
|
||||
<svg version="1.1" viewBox="6 8 20 20" xmlns="http://www.w3.org/2000/svg">
|
||||
static operationPin = html`
|
||||
<svg width="14" height="14" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle class="ueb-pin-tostroke" cx="16" cy="16" r="14" stroke="currentColor" stroke-width="4" />
|
||||
<circle cx="16" cy="16" r="9.5" fill="#817a7a" />
|
||||
</svg>
|
||||
`
|
||||
|
||||
static pcgStackPin = html`
|
||||
<svg width="18" height="22" viewBox="4 0 28 36" xmlns="http://www.w3.org/2000/svg">
|
||||
<path stroke="black" stroke-width="1" fill="rgba(var(--ueb-pin-color-rgb), 0.5)" d="M25.8,32.2V17.5c0-1.7,1.3-3.1,3-3.1s3,1.3,3,3.1v14.7c0,1.8-1.3,3.2-3,3.2C27,35.5,25.8,34,25.8,32.2z" />
|
||||
<path stroke="black" stroke-width="1" fill="rgba(var(--ueb-pin-color-rgb), 0.75)" d="M18.8,30.1V11.8c0-2.4,1.8-4.3,4-4.3s4,1.9,4,4.3v18.4c0,2.4-1.8,4.3-4,4.3C20.5,34.5,18.8,32.5,18.8,30.1z" />
|
||||
<path stroke="black" stroke-width="1" fill="currentColor" d="M21.3,6.4v21.3c0,3.2-2.4,5.8-5.5,5.8s-5.5-2.5-5.5-5.8V6.3c0-3.2,2.4-5.8,5.5-5.8C18.8,0.5,21.2,3,21.3,6.4z" />
|
||||
@@ -277,7 +284,7 @@ export default class SVGIcon {
|
||||
`
|
||||
|
||||
static pcgPin = html`
|
||||
<svg class="ueb-pin-reflect-output" version="1.1" viewBox="8 8 20 20" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg class="ueb-pin-reflect-output" width="12" height="20" viewBox="8 0 20 36" xmlns="http://www.w3.org/2000/svg">
|
||||
<path stroke="black" stroke-width="1" fill="currentColor" d="M21.2,34.5c-3.1,0-5.5-2.6-5.5-5.8V7.3c0-3.3,2.4-5.8,5.5-5.8s5.5,2.6,5.5,5.8v21.3C26.8,31.9,24.3,34.5,21.2,34.5z" />
|
||||
<circle class="ueb-pin-tofill ueb-pin-tostroke" stroke="currentColor" stroke-width="1" cx="15.8" cy="10" r="6" />
|
||||
<circle class="ueb-pin-tofill ueb-pin-tostroke" stroke="currentColor" stroke-width="1" cx="15.8" cy="18" r="6" />
|
||||
@@ -285,15 +292,15 @@ export default class SVGIcon {
|
||||
</svg>
|
||||
`
|
||||
|
||||
static pcgPinParam = html`
|
||||
<svg class="ueb-pin-reflect-output" version="1.1" viewBox="8 8 20 20" xmlns="http://www.w3.org/2000/svg">
|
||||
static pcgParamPin = html`
|
||||
<svg class="ueb-pin-reflect-output" width="18" height="12" viewBox="8 8 19 21" xmlns="http://www.w3.org/2000/svg">
|
||||
<path class="ueb-pin-tofill" stroke="currentcolor" stroke-width="1" d="M8,18c-2.5,0-4.5-2-4.5-4.5S5.5,9,8,9h20c2.5,0,4.5,2,4.5,4.5S30.5,18,28,18H8z" />
|
||||
<path fill="currentColor" d="M31,27.5H13c-0.5,0-1-0.4-1-1v-4c0-0.5,0.4-1,1-1h18c0.5,0,1,0.4,1,1v4C32,27.1,31.6,27.5,31,27.5z" />
|
||||
</svg>
|
||||
`
|
||||
|
||||
static pcgSpatialPin = html`
|
||||
<svg version="1.1" viewBox="8 8 20 20" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg width="14" height="16" viewBox="5 4 28 28" xmlns="http://www.w3.org/2000/svg">
|
||||
<path stroke="#ffffff" stroke-width="1" fill="#808080" d="M20.5,33h-10c-2.8,0-5-2.2-5-5V8c0-2.8,2.2-5,5-5h10c2.8,0,5,2.2,5,5v20C25.5,30.8,23.3,33,20.5,33z" />
|
||||
<circle class="ueb-pin-tofill" stroke="#ffffff" stroke-width="1" fill="#202020" cx="23.7" cy="18" r="10" />
|
||||
</svg>
|
||||
@@ -313,7 +320,7 @@ export default class SVGIcon {
|
||||
`
|
||||
|
||||
static referencePin = html`
|
||||
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg width="12" height="12" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
|
||||
<polygon class="ueb-pin-tofill" points="4 16 16 4 28 16 16 28" stroke="currentColor" stroke-width="5" />
|
||||
</svg>
|
||||
`
|
||||
@@ -325,8 +332,8 @@ export default class SVGIcon {
|
||||
</svg>
|
||||
`
|
||||
|
||||
static set = html`
|
||||
<svg viewBox="2 2 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
static setPin = html`
|
||||
<svg width="16" height="16" viewBox="2 2 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M1 7.99956V6.99956C1.62451 6.89501 2.23976 6.7412 2.84 6.53956C3.02865 6.44859 3.18802 6.30655 3.3 6.12956C3.44478 5.91383 3.53723 5.6673 3.57 5.40956C3.6183 5.04164 3.63836 4.67055 3.63 4.29956C3.60615 3.68664 3.64974 3.07296 3.76 2.46956C3.82982 2.152 3.99359 1.86279 4.23 1.63956C4.51974 1.39713 4.86221 1.22589 5.23 1.13956C5.68612 1.03782 6.15275 0.990826 6.62 0.999563H7V1.99956C6.69952 2.01634 6.4103 2.11967 6.16722 2.2971C5.92414 2.47453 5.73757 2.71849 5.63 2.99956C5.5431 3.18346 5.5052 3.3867 5.52 3.58956C5.52 3.86956 5.52 4.40956 5.46 5.19956C5.44584 5.56977 5.38194 5.9364 5.27 6.28956C5.18779 6.5495 5.05527 6.79074 4.88 6.99956C4.62654 7.36597 4.33121 7.70157 4 7.99956" fill="currentColor" />
|
||||
<path d="M4 7.99951C4.33723 8.31397 4.63295 8.67019 4.88 9.05951C5.05095 9.2601 5.18319 9.49067 5.27 9.73951C5.38194 10.0927 5.44584 10.4593 5.46 10.8295C5.5 11.6228 5.52 12.1628 5.52 12.4495C5.5061 12.6523 5.54395 12.8553 5.63 13.0395C5.74563 13.3117 5.93533 13.546 6.17752 13.7157C6.41972 13.8854 6.70468 13.9837 7 13.9995V14.9995H6.62C6.15021 15.0156 5.68019 14.9753 5.22 14.8795C4.85378 14.7889 4.51224 14.6181 4.22 14.3795C3.98551 14.1548 3.8221 13.8662 3.75 13.5495C3.64077 12.946 3.59718 12.3324 3.62 11.7195C3.63014 11.3418 3.61007 10.964 3.56 10.5895C3.52723 10.3318 3.43478 10.0852 3.29 9.86951C3.17802 9.69252 3.01865 9.55048 2.83 9.45951C2.23302 9.25838 1.62113 9.10457 1 8.99951V7.99951" fill="currentColor" />
|
||||
<path d="M12 7.99955C11.6688 7.70156 11.3735 7.36596 11.12 6.99955C10.947 6.79667 10.8146 6.56242 10.73 6.30955C10.6181 5.95638 10.5542 5.58976 10.54 5.21954C10.54 4.42954 10.48 3.88955 10.48 3.60955C10.4983 3.40004 10.4604 3.18944 10.37 2.99955C10.2624 2.71847 10.0759 2.47452 9.83278 2.29708C9.5897 2.11965 9.30048 2.01632 9 1.99955V0.999545H9.38C9.84979 0.983442 10.3198 1.02373 10.78 1.11955C11.1478 1.20587 11.4903 1.37711 11.78 1.61955C12.0164 1.84278 12.1802 2.13198 12.25 2.44955C12.3603 3.05294 12.4039 3.66662 12.38 4.27955C12.3706 4.6572 12.3907 5.03501 12.44 5.40954C12.4728 5.66728 12.5652 5.91382 12.71 6.12955C12.822 6.30653 12.9813 6.44858 13.17 6.53955C13.767 6.74067 14.3789 6.89448 15 6.99955V7.99955" fill="currentColor" />
|
||||
|
||||
@@ -128,7 +128,7 @@ export default class IEntity extends Serializable {
|
||||
.getSerializer(defaultType)
|
||||
.read(/** @type {String} */(value))
|
||||
}
|
||||
assignAttribute(Utility.sanitize(value, /** @type {AnyConstructor<*>} */(defaultType)))
|
||||
assignAttribute(Utility.sanitize(value, /** @type {SimpleValueType<SimpleValue>} */(defaultType)))
|
||||
continue // We have a value, need nothing more
|
||||
}
|
||||
if (Object.hasOwn(attribute, "default")) { // Accept also explicit undefined
|
||||
|
||||
@@ -941,8 +941,9 @@ export default class ObjectEntity extends IEntity {
|
||||
)
|
||||
}
|
||||
switch (memberParent) {
|
||||
case Configuration.paths.slateBlueprintLibrary:
|
||||
case Configuration.paths.blueprintGameplayTagLibrary:
|
||||
case Configuration.paths.kismetMathLibrary:
|
||||
case Configuration.paths.slateBlueprintLibrary:
|
||||
case Configuration.paths.timeManagementBlueprintLibrary:
|
||||
const leadingLetter = memberName.match(/[BF]([A-Z]\w+)/)
|
||||
if (leadingLetter) {
|
||||
|
||||
@@ -91,7 +91,7 @@ export default class PinTemplate extends ITemplate {
|
||||
return SVGIcon.pcgPin
|
||||
case "Param":
|
||||
case "Param[]":
|
||||
return SVGIcon.pcgPinParam
|
||||
return SVGIcon.pcgParamPin
|
||||
case "Spatial":
|
||||
case "Spatial[]":
|
||||
return SVGIcon.pcgSpatialPin
|
||||
@@ -105,17 +105,20 @@ export default class PinTemplate extends ITemplate {
|
||||
case "Point":
|
||||
case "Surface":
|
||||
case "Volume":
|
||||
return SVGIcon.pcgPinStack
|
||||
return SVGIcon.pcgStackPin
|
||||
}
|
||||
}
|
||||
switch (this.element.entity.PinType.ContainerType?.toString()) {
|
||||
case "Array": return SVGIcon.array
|
||||
case "Set": return SVGIcon.set
|
||||
case "Map": return SVGIcon.map
|
||||
switch (this.element.entity.PinType?.ContainerType?.toString()) {
|
||||
case "Array": return SVGIcon.arrayPin
|
||||
case "Set": return SVGIcon.setPin
|
||||
case "Map": return SVGIcon.mapPin
|
||||
}
|
||||
if (this.element.entity.PinType.PinCategory.toLocaleLowerCase() === "delegate") {
|
||||
if (this.element.entity.PinType?.PinCategory?.toLocaleLowerCase() === "delegate") {
|
||||
return SVGIcon.delegate
|
||||
}
|
||||
if (this.element.nodeElement?.template instanceof VariableOperationNodeTemplate) {
|
||||
return SVGIcon.operationPin
|
||||
}
|
||||
return SVGIcon.genericPin
|
||||
}
|
||||
|
||||
|
||||
@@ -53,8 +53,8 @@ ueb-blueprint svg {
|
||||
margin-left: auto;
|
||||
padding: 5px;
|
||||
color: #2b2b2b;
|
||||
/* 1.53846 is to get an effective font size of 20px from --ueb-font-size which is 13 px */
|
||||
font-size: calc(1.53846 * var(--ueb-font-size));
|
||||
/* 160% is to get an effective font size of 20px from --ueb-font-size which is 12.5 px by default */
|
||||
font-size: 160%;
|
||||
font-weight: bold;
|
||||
letter-spacing: -1px;
|
||||
}
|
||||
|
||||
@@ -72,7 +72,6 @@ ueb-node[data-selected="true"]>.ueb-node-border {
|
||||
}
|
||||
|
||||
.ueb-node-outputs ueb-pin[data-type="exec"] .ueb-pin-wrapper {
|
||||
margin-right: -3px;
|
||||
min-height: 26px;
|
||||
}
|
||||
|
||||
@@ -100,8 +99,8 @@ ueb-blueprint[data-scrolling="false"][data-selecting="false"] ueb-node.ueb-node-
|
||||
.ueb-node-top {
|
||||
grid-area: top;
|
||||
color: #d0d0d0;
|
||||
/* 1.030769 is to get an effective font size of 13.4px from --ueb-font-size which is 13 px */
|
||||
font-size: calc(1.030769 * var(--ueb-font-size));
|
||||
/* 112% is to get an effective font size of 14px from --ueb-font-size which is 12.5 px by default */
|
||||
font-size: 112%;
|
||||
font-weight: bold;
|
||||
line-height: 120%;
|
||||
white-space: nowrap;
|
||||
@@ -184,8 +183,8 @@ ueb-node[data-pure-function="true"] .ueb-node-name-symbol {
|
||||
.ueb-node-subtitle-text {
|
||||
padding-top: 1px;
|
||||
padding-right: 5px;
|
||||
/* 0.946154 is to get an effective font size of 12.3px from --ueb-font-size which is 13 px */
|
||||
font-size: calc(0.946154 * var(--ueb-font-size));
|
||||
/* Reset font size set by the parent */
|
||||
font-size: var(--ueb-font-size);
|
||||
font-weight: 100;
|
||||
font-style: italic;
|
||||
color: #a9b78f;
|
||||
@@ -196,8 +195,8 @@ ueb-node[data-pure-function="true"] .ueb-node-name-symbol {
|
||||
}
|
||||
|
||||
ueb-node.ueb-node-has-inputs .ueb-node-inputs {
|
||||
padding-right: 20px;
|
||||
padding-left: 5px;
|
||||
padding-right: 15px;
|
||||
padding-left: 6px;
|
||||
}
|
||||
|
||||
.ueb-node-outputs {
|
||||
@@ -206,7 +205,7 @@ ueb-node.ueb-node-has-inputs .ueb-node-inputs {
|
||||
|
||||
.ueb-node-outputs,
|
||||
.ueb-node-variadic {
|
||||
padding-right: 8px;
|
||||
padding-right: 6px;
|
||||
}
|
||||
|
||||
.ueb-node-variadic {
|
||||
@@ -324,8 +323,8 @@ ueb-node.ueb-node-style-operation .ueb-node-top {
|
||||
align-self: center;
|
||||
justify-self: center;
|
||||
padding: 0;
|
||||
/* 2.15385 is to get an effective font size of 28px from --ueb-font-size which is 13 px */
|
||||
font-size: calc(2.15385 * var(--ueb-font-size));
|
||||
/* 224% is to get an effective font size of 28px from --ueb-font-size which is 12.5 px by default */
|
||||
font-size: 224%;
|
||||
font-stretch: condensed;
|
||||
font-weight: bold;
|
||||
line-height: 100%;
|
||||
@@ -390,8 +389,8 @@ ueb-node.ueb-node-style-comment .ueb-node-top {
|
||||
border-radius: 0;
|
||||
background: rgb(var(--ueb-node-color));
|
||||
color: white;
|
||||
/* 1.84615 is to get an effective font size of 24px from --ueb-font-size which is 13 px */
|
||||
font-size: calc(1.84615 * var(--ueb-font-size));
|
||||
/* 192% is to get an effective font size of 24px from --ueb-font-size which is 12.5 px */
|
||||
font-size: 192%;
|
||||
text-shadow: 2px 1px 1px #444, 0 0 2px #bbb;
|
||||
line-height: 1.22;
|
||||
z-index: 1;
|
||||
|
||||
@@ -39,7 +39,7 @@ ueb-node[data-advanced-display="Hidden"] ueb-pin[data-advanced-view="true"][data
|
||||
.ueb-pin-wrapper {
|
||||
display: inline-flex;
|
||||
box-sizing: border-box;
|
||||
padding: 3px 5px;
|
||||
padding: 3px 6px;
|
||||
min-height: 24px;
|
||||
align-items: center;
|
||||
}
|
||||
@@ -74,8 +74,6 @@ ueb-blueprint[data-scrolling="false"][data-selecting="false"] .ueb-pin-wrapper:h
|
||||
|
||||
.ueb-pin-icon {
|
||||
color: var(--ueb-pin-color);
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
@@ -89,7 +87,7 @@ ueb-pin[data-connectable="false"] .ueb-pin-icon {
|
||||
}
|
||||
|
||||
.ueb-node-inputs .ueb-pin-icon {
|
||||
margin-right: 10px;
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
.ueb-node-outputs .ueb-pin-icon {
|
||||
@@ -97,7 +95,7 @@ ueb-pin[data-connectable="false"] .ueb-pin-icon {
|
||||
}
|
||||
|
||||
.ueb-pin-icon>svg {
|
||||
vertical-align: top;
|
||||
display: block;
|
||||
}
|
||||
|
||||
ueb-pin[data-direction="output"] .ueb-pin-reflect-output {
|
||||
@@ -138,10 +136,6 @@ ueb-pin.ueb-node-variadic-default {
|
||||
}
|
||||
}
|
||||
|
||||
.ueb-pin-name {
|
||||
letter-spacing: -0.25px;
|
||||
}
|
||||
|
||||
.ueb-zoom--6 .ueb-pin-content {
|
||||
visibility: hidden;
|
||||
}
|
||||
@@ -219,8 +213,8 @@ ueb-pin[data-type="/Script/CoreUObject.LinearColor"] .ueb-pin-input {
|
||||
min-width: 10px;
|
||||
max-width: 400px;
|
||||
max-height: 16em;
|
||||
/* 0.96923 is to get an effective font size of 12.6px from --ueb-font-size which is 13 px */
|
||||
font-size: calc(0.96923 * var(--ueb-font-size));
|
||||
/* 108% is to get an effective font size of 13.5px from --ueb-font-size which is 12.5 px by default */
|
||||
font-size: 108%;
|
||||
white-space: nowrap;
|
||||
background: none;
|
||||
color: inherit;
|
||||
|
||||
Reference in New Issue
Block a user