You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Control Rig: Fix python script when array nodes are present
#jira UE-135084 #rb jack.cai #preflight 619d21f3f70a9e92db3ef361 #ROBOMERGE-AUTHOR: sara.schvartzman #ROBOMERGE-SOURCE: CL 18281528 in //UE5/Release-5.0/... via CL 18281551 #ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469) #ROBOMERGE[STARSHIP]: UE5-Main [CL 18281577 by sara schvartzman in ue5-release-engine-test branch]
This commit is contained in:
@@ -398,12 +398,7 @@ FString URigVMArrayNode::GetCPPType() const
|
||||
{
|
||||
return FString();
|
||||
}
|
||||
const FString& CPPType = ArrayPin->GetCPPType();
|
||||
if (RigVMTypeUtils::IsArrayType(CPPType))
|
||||
{
|
||||
return CPPType.Mid(7, CPPType.Len() - 8);
|
||||
}
|
||||
return CPPType;
|
||||
return RigVMTypeUtils::BaseTypeFromArrayType(ArrayPin->GetCPPType());
|
||||
}
|
||||
|
||||
UObject* URigVMArrayNode::GetCPPTypeObject() const
|
||||
|
||||
@@ -1006,7 +1006,7 @@ URigVMVariableNode* URigVMController::AddVariableNode(const FName& InVariableNam
|
||||
InCPPTypeObject = URigVMPin::FindObjectFromCPPTypeObjectPath<UObject>(InCPPType);
|
||||
}
|
||||
|
||||
FString CPPType = PostProcessCPPType(InCPPType, InCPPTypeObject, InCPPType.StartsWith(TArrayPrefix));
|
||||
FString CPPType = PostProcessCPPType(InCPPType, InCPPTypeObject);
|
||||
|
||||
FString Name = GetValidNodeName(InNodeName.IsEmpty() ? FString(TEXT("VariableNode")) : InNodeName);
|
||||
URigVMVariableNode* Node = NewObject<URigVMVariableNode>(Graph, *Name);
|
||||
@@ -1637,7 +1637,7 @@ URigVMParameterNode* URigVMController::AddParameterNode(const FName& InParameter
|
||||
|
||||
if (DefaultValuePin)
|
||||
{
|
||||
DefaultValuePin->CPPType = PostProcessCPPType(InCPPType, InCPPTypeObject, InCPPType.StartsWith(TArrayPrefix));
|
||||
DefaultValuePin->CPPType = PostProcessCPPType(InCPPType, InCPPTypeObject);
|
||||
DefaultValuePin->CPPTypeObject = InCPPTypeObject;
|
||||
if(DefaultValuePin->CPPTypeObject)
|
||||
{
|
||||
@@ -1645,7 +1645,7 @@ URigVMParameterNode* URigVMController::AddParameterNode(const FName& InParameter
|
||||
}
|
||||
}
|
||||
|
||||
ValuePin->CPPType = PostProcessCPPType(InCPPType, InCPPTypeObject, InCPPType.StartsWith(TArrayPrefix));
|
||||
ValuePin->CPPType = PostProcessCPPType(InCPPType, InCPPTypeObject);
|
||||
ValuePin->CPPTypeObject = InCPPTypeObject;
|
||||
if(ValuePin->CPPTypeObject)
|
||||
{
|
||||
@@ -7664,7 +7664,7 @@ FName URigVMController::AddExposedPin(const FName& InPinName, ERigVMPinDirection
|
||||
}, false, true);
|
||||
|
||||
URigVMPin* Pin = NewObject<URigVMPin>(LibraryNode, PinName);
|
||||
Pin->CPPType = PostProcessCPPType(InCPPType, CPPTypeObject, InCPPType.StartsWith(TArrayPrefix));
|
||||
Pin->CPPType = PostProcessCPPType(InCPPType, CPPTypeObject);
|
||||
Pin->CPPTypeObjectPath = InCPPTypeObjectPath;
|
||||
Pin->bIsConstant = false;
|
||||
Pin->Direction = InDirection;
|
||||
@@ -9553,7 +9553,7 @@ URigVMIfNode* URigVMController::AddIfNode(const FString& InCPPType, const FName&
|
||||
}
|
||||
}
|
||||
|
||||
FString CPPType = PostProcessCPPType(InCPPType, CPPTypeObject, InCPPType.StartsWith(TArrayPrefix));
|
||||
FString CPPType = PostProcessCPPType(InCPPType, CPPTypeObject);
|
||||
|
||||
FString DefaultValue;
|
||||
if(UScriptStruct* ScriptStruct = Cast<UScriptStruct>(CPPTypeObject))
|
||||
@@ -9669,7 +9669,7 @@ URigVMSelectNode* URigVMController::AddSelectNode(const FString& InCPPType, cons
|
||||
}
|
||||
}
|
||||
|
||||
FString CPPType = PostProcessCPPType(InCPPType, CPPTypeObject, InCPPType.StartsWith(TArrayPrefix));
|
||||
FString CPPType = PostProcessCPPType(InCPPType, CPPTypeObject);
|
||||
|
||||
FString DefaultValue;
|
||||
if (UScriptStruct* ScriptStruct = Cast<UScriptStruct>(CPPTypeObject))
|
||||
@@ -9939,7 +9939,7 @@ URigVMArrayNode* URigVMController::AddArrayNode(ERigVMOpCode InOpCode, const FSt
|
||||
InCPPTypeObject = URigVMPin::FindObjectFromCPPTypeObjectPath<UObject>(InCPPType);
|
||||
}
|
||||
|
||||
FString CPPType = PostProcessCPPType(InCPPType, InCPPTypeObject, InCPPType.StartsWith(TArrayPrefix));
|
||||
FString CPPType = PostProcessCPPType(InCPPType, InCPPTypeObject);
|
||||
|
||||
const FString Name = GetValidNodeName(InNodeName.IsEmpty() ? FString(TEXT("ArrayNode")) : InNodeName);
|
||||
URigVMArrayNode* Node = NewObject<URigVMArrayNode>(Graph, *Name);
|
||||
@@ -12041,7 +12041,7 @@ void URigVMController::PostProcessDefaultValue(URigVMPin* Pin, FString& OutDefau
|
||||
}
|
||||
}
|
||||
|
||||
FString URigVMController::PostProcessCPPType(const FString& InCPPType, UObject* InCPPTypeObject, bool bIsArray)
|
||||
FString URigVMController::PostProcessCPPType(const FString& InCPPType, UObject* InCPPTypeObject)
|
||||
{
|
||||
FString CPPType = InCPPType;
|
||||
|
||||
@@ -12058,12 +12058,14 @@ FString URigVMController::PostProcessCPPType(const FString& InCPPType, UObject*
|
||||
CPPType = Enum->CppType;
|
||||
}
|
||||
|
||||
if(bIsArray)
|
||||
if(CPPType != InCPPType)
|
||||
{
|
||||
if(!CPPType.StartsWith(TArrayPrefix))
|
||||
FString TemplateType = InCPPType;
|
||||
while (RigVMTypeUtils::IsArrayType(TemplateType))
|
||||
{
|
||||
CPPType = FString::Printf(TArrayTemplate, *CPPType);
|
||||
}
|
||||
CPPType = RigVMTypeUtils::ArrayTypeFromBaseType(CPPType);
|
||||
TemplateType = RigVMTypeUtils::BaseTypeFromArrayType(TemplateType);
|
||||
}
|
||||
}
|
||||
|
||||
return CPPType;
|
||||
@@ -12509,7 +12511,7 @@ bool URigVMController::EnsurePinValidity(URigVMPin* InPin, bool bRecursive)
|
||||
}
|
||||
}
|
||||
|
||||
InPin->CPPType = PostProcessCPPType(InPin->CPPType, InPin->GetCPPTypeObject(), InPin->IsArray());
|
||||
InPin->CPPType = PostProcessCPPType(InPin->CPPType, InPin->GetCPPTypeObject());
|
||||
|
||||
if(bRecursive)
|
||||
{
|
||||
|
||||
@@ -503,7 +503,7 @@ int32 URigVMPin::GetArraySize() const
|
||||
|
||||
FString URigVMPin::GetCPPType() const
|
||||
{
|
||||
return URigVMController::PostProcessCPPType(CPPType, GetCPPTypeObject(), IsArray());
|
||||
return URigVMController::PostProcessCPPType(CPPType, GetCPPTypeObject());
|
||||
}
|
||||
|
||||
FString URigVMPin::GetArrayElementCppType() const
|
||||
|
||||
Reference in New Issue
Block a user