diff --git a/Plugins/UEWingman/Source/UEWingman/Private/WingUtils.cpp b/Plugins/UEWingman/Source/UEWingman/Private/WingUtils.cpp index ae7119e2..6a80c9e4 100644 --- a/Plugins/UEWingman/Source/UEWingman/Private/WingUtils.cpp +++ b/Plugins/UEWingman/Source/UEWingman/Private/WingUtils.cpp @@ -60,16 +60,27 @@ void WingUtils::SanitizeNameInPlace(FString &Name) for (int32 Src = 0; Src < Name.Len(); Src++) { TCHAR c = Name[Src]; - if (c <= 0x20 || c == '_' || c == 0x7F) continue; - if (c >= 0x21 && c <= 0x7E && !FChar::IsAlnum(c)) - Name[Dst++] = '_'; - else - Name[Dst++] = c; + if (c < 0x20 || c == 0x7F) continue; + if ((c == ' ') || (c == ',') || (c == ':')) c = '_'; + Name[Dst++] = c; } + if (Dst == 0) Name[Dst++] = '_'; Name.LeftInline(Dst); - if (Name.IsEmpty()) Name = TEXT("_"); } +FString WingUtils::SanitizeName(const FString &Name) +{ + FString Result = Name; + SanitizeNameInPlace(Result); + return Result; +} + +FString WingUtils::SanitizeName(FName Name) +{ + FString Result = Name.ToString(); + SanitizeNameInPlace(Result); + return Result; +} FString WingUtils::FormatName(const UWorld *World) { @@ -83,52 +94,43 @@ FString WingUtils::FormatName(const UBlueprint *BP) FString WingUtils::FormatName(const UActorComponent *C) { - return C->GetName(); + return SanitizeName(C->GetName()); } FString WingUtils::FormatName(const USCS_Node *Node) { - return Node->GetVariableName().ToString(); + return SanitizeName(Node->GetVariableName()); } FString WingUtils::FormatName(const UEdGraph *Graph) { - FString Name = Graph->GetName(); - SanitizeNameInPlace(Name); - return Name; + + return SanitizeName(Graph->GetName()); } FString WingUtils::FormatName(const UEdGraphNode* Node) { - return Node->GetName(); + return SanitizeName(Node->GetName()); } FString WingUtils::FormatName(const UEdGraphPin *Pin) { - FString Name = Pin->PinName.ToString(); - SanitizeNameInPlace(Name); - return Name; + return SanitizeName(Pin->GetName()); } FString WingUtils::FormatName(const FMemberReference &Ref) { - FString Name = Ref.GetMemberName().ToString(); - SanitizeNameInPlace(Name); - return Name; + return SanitizeName(Ref.GetMemberName()); } FString WingUtils::FormatName(const FBPVariableDescription &Var) { - FString Name = Var.VarName.ToString(); - SanitizeNameInPlace(Name); - return Name; + return SanitizeName(Var.VarName); } FString WingUtils::FormatName(const UStruct *Struct) { - FString Name = Struct->GetName(); - SanitizeNameInPlace(Name); - return Name; + return SanitizeName(Struct->GetName()); } FString WingUtils::FormatName(const UMaterial *Material) @@ -148,9 +150,7 @@ FString WingUtils::FormatName(const UMaterialFunction *MaterialFunction) FString WingUtils::FormatName(const UMaterialExpression *Expression) { - FString Name = Expression->GetName(); - SanitizeNameInPlace(Name); - return Name; + return SanitizeName(Expression->GetName()); } FString WingUtils::FormatName(const UStaticMesh *Mesh) @@ -180,21 +180,17 @@ FString WingUtils::FormatName(const UTexture *Texture) FString WingUtils::FormatName(const UScriptStruct *Struct) { - FString Name = Struct->GetName(); - SanitizeNameInPlace(Name); - return Name; + return SanitizeName(Struct->GetName());; } FString WingUtils::FormatName(const UEnum *Enum) { - FString Name = Enum->GetName(); - SanitizeNameInPlace(Name); - return Name; + return SanitizeName(Enum->GetName()); } FString WingUtils::FormatName(const FProperty *Prop) { - return Prop->GetName(); + return SanitizeName(Prop->GetName()); } // ============================================================ diff --git a/Plugins/UEWingman/Source/UEWingman/Public/WingUtils.h b/Plugins/UEWingman/Source/UEWingman/Public/WingUtils.h index ba86c145..c7ec3c17 100644 --- a/Plugins/UEWingman/Source/UEWingman/Public/WingUtils.h +++ b/Plugins/UEWingman/Source/UEWingman/Public/WingUtils.h @@ -95,6 +95,8 @@ public: //////////////////////////////////////////////////////// static void SanitizeNameInPlace(FString& Name); + static FString SanitizeName(const FString& Name); + static FString SanitizeName(FName Name); static FString FormatNodeTitle(const UEdGraphNode *Node); // ----- Enum helpers -----