Implemented new functions FindOneWithExternalID, etc.

This commit is contained in:
2026-03-28 23:47:05 -04:00
parent 9790fa34e1
commit 2ad86bac1d
2 changed files with 123 additions and 39 deletions

View File

@@ -65,10 +65,15 @@ FString WingUtils::ExternalizeID(FName Name)
return WingTokenizer::ExternalizeID(Name.ToString());
}
FName WingUtils::CheckInternalizeID(const FString &ExternalID)
{
return FName(WingTokenizer::CheckInternalizeID(ExternalID));
}
FString WingUtils::CheckProposedName(const FString &ExternalID)
{
FString InternalID = WingTokenizer::CheckInternalizeID(ExternalID);
if (!InternalID.IsEmpty() && WingTokenizer::WouldExternalizeReadably(InternalID))
if (!InternalID.IsEmpty() && !WingTokenizer::WouldExternalizeReadably(InternalID))
{
UWingServer::Printf(TEXT("ERROR: id %s would not be a readable id, may not create item with this name"),
*ExternalID);
@@ -351,6 +356,11 @@ bool WingUtils::CheckExactlyOneNamed(int Count, const TCHAR *Kind, const FString
return true;
}
bool WingUtils::CheckExactlyOneNamed(int Count, const TCHAR *Kind, FName Name)
{
return CheckExactlyOneNamed(Count, Kind, ExternalizeID(Name));
}
bool WingUtils::CheckExactlyNoneNamed(int Count, const TCHAR *Kind, const FString &Name)
{
if (Count > 0)
@@ -361,6 +371,11 @@ bool WingUtils::CheckExactlyNoneNamed(int Count, const TCHAR *Kind, const FStrin
return true;
}
bool WingUtils::CheckExactlyNoneNamed(int Count, const TCHAR *Kind, FName Name)
{
return CheckExactlyNoneNamed(Count, Kind, ExternalizeID(Name));
}
bool WingUtils::CheckCanRename(UEdGraphNode* Node, const FString &Name)
{
if (!Node->bCanRenameNode)