void UK2Node_MakeStruct::AllocateDefaultPins() { const UEdGraphSchema_K2* Schema = GetDefault<UEdGraphSchema_K2>(); if(Schema && StructType) { CreatePin(EGPD_Output, Schema->PC_Struct, TEXT(""), StructType, false, false, StructType->GetName()); { FStructOnScope StructOnScope(Cast<UScriptStruct>(StructType)); FMakeStructPinManager OptionalPinManager(StructOnScope.GetStructMemory()); OptionalPinManager.RebuildPropertyList(ShowPinForProperties, StructType); OptionalPinManager.CreateVisiblePins(ShowPinForProperties, StructType, EGPD_Input, this); } // When struct has a lot of fields, mark their pins as advanced if(Pins.Num() > 5) { if(ENodeAdvancedPins::NoPins == AdvancedPinDisplay) { AdvancedPinDisplay = ENodeAdvancedPins::Hidden; } for(int32 PinIndex = 3; PinIndex < Pins.Num(); ++PinIndex) { if(UEdGraphPin * EdGraphPin = Pins[PinIndex]) { EdGraphPin->bAdvancedView = true; } } } } }
void UK2Node_SetFieldsInStruct::AllocateDefaultPins() { const UEdGraphSchema_K2* Schema = GetDefault<UEdGraphSchema_K2>(); if (Schema && StructType) { CreatePin(EGPD_Input, Schema->PC_Exec, TEXT(""), NULL, false, false, Schema->PN_Execute); CreatePin(EGPD_Output, Schema->PC_Exec, TEXT(""), NULL, false, false, Schema->PN_Then); CreatePin(EGPD_Input, Schema->PC_Struct, TEXT(""), StructType, false, true, SetFieldsInStructHelper::StructRefPinName()); { FStructOnScope StructOnScope(Cast<UScriptStruct>(StructType)); FMakeStructPinManager OptionalPinManager(StructOnScope.GetStructMemory()); OptionalPinManager.RebuildPropertyList(ShowPinForProperties, StructType); OptionalPinManager.CreateVisiblePins(ShowPinForProperties, StructType, EGPD_Input, this); } } }