CelticCraft/Plugins/VoxelFree/Source/VoxelGraph/Private/CppTranslation/VoxelVariables.cpp

47 lines
921 B
C++
Raw Normal View History

2023-07-03 16:17:13 +00:00
// Copyright 2020 Phyronnaz
#include "CppTranslation/VoxelVariables.h"
#include "VoxelNodes/VoxelExposedNodes.h"
FString FVoxelVariable::SanitizeName(const FString& InName)
{
static const FString ValidChars = TEXT("_0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
static const FString ValidStartChars = TEXT("_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
FString SanitizedName;
for (int32 CharIdx = 0; CharIdx < InName.Len(); ++CharIdx)
{
FString Char = InName.Mid(CharIdx, 1);
if (!ValidChars.Contains(*Char))
{
SanitizedName += TEXT("_");
}
else
{
SanitizedName += Char;
}
}
if (SanitizedName == "None")
{
return "None1";
}
if (SanitizedName.IsEmpty() || SanitizedName == TEXT("_"))
{
return TEXT("Name");
}
if (ValidStartChars.Contains(*SanitizedName.Mid(0, 1)))
{
return SanitizedName;
}
else
{
return TEXT("_") + SanitizedName;
}
}