Enormouse overhaul
This commit is contained in:
@@ -61,24 +61,24 @@ FString WingUtils::ExternalizeID(FName Name)
|
||||
return WingTokenizer::ExternalizeID(Name);
|
||||
}
|
||||
|
||||
FName WingUtils::CheckInternalizeID(const FString &ExternalID)
|
||||
FName WingUtils::CheckInternalizeID(const FString &ExternalID, WingOut Errors)
|
||||
{
|
||||
FString Error;
|
||||
FName InternalID = WingTokenizer::TryInternalizeID(ExternalID, Error);
|
||||
if (!Error.IsEmpty())
|
||||
{
|
||||
UWingServer::Printf(TEXT("%s\n"), *Error);
|
||||
Errors.Printf(TEXT("%s\n"), *Error);
|
||||
UWingServer::SuggestManual(WingManual::Section::EscapeSequences);
|
||||
}
|
||||
return InternalID;
|
||||
}
|
||||
|
||||
FName WingUtils::CheckProposedName(const FString &ExternalID)
|
||||
FName WingUtils::CheckProposedName(const FString &ExternalID, WingOut Errors)
|
||||
{
|
||||
FName InternalID = CheckInternalizeID(ExternalID);
|
||||
FName InternalID = CheckInternalizeID(ExternalID, Errors);
|
||||
if (!InternalID.IsNone() && !WingTokenizer::WouldExternalizeReadably(InternalID))
|
||||
{
|
||||
UWingServer::Printf(TEXT("ERROR: id %s would not be a readable id, may not create item with this name"),
|
||||
Errors.Printf(TEXT("ERROR: id %s would not be a readable id, may not create item with this name"),
|
||||
*ExternalID);
|
||||
UWingServer::SuggestManual(WingManual::Section::EscapeSequences);
|
||||
return FName();
|
||||
@@ -341,7 +341,7 @@ FString WingUtils::EnumToString(UEnum* Enum, int64 Value)
|
||||
return Enum->GetNameStringByValue(Value);
|
||||
}
|
||||
|
||||
bool WingUtils::StringToEnum(UEnum* Enum, const FString& Str, int64& OutValue)
|
||||
bool WingUtils::StringToEnum(UEnum* Enum, const FString& Str, int64& OutValue, WingOut Errors)
|
||||
{
|
||||
int32 Index = Enum->GetIndexByNameString(Str);
|
||||
if (Index == INDEX_NONE)
|
||||
@@ -352,7 +352,7 @@ bool WingUtils::StringToEnum(UEnum* Enum, const FString& Str, int64& OutValue)
|
||||
}
|
||||
if (Index == INDEX_NONE)
|
||||
{
|
||||
UWingServer::Printf(TEXT("ERROR: '%s' is not a valid value for %s\n"), *Str, *Enum->GetName());
|
||||
Errors.Printf(TEXT("ERROR: '%s' is not a valid value for %s\n"), *Str, *Enum->GetName());
|
||||
OutValue = 0;
|
||||
return false;
|
||||
}
|
||||
@@ -365,53 +365,53 @@ bool WingUtils::StringToEnum(UEnum* Enum, const FString& Str, int64& OutValue)
|
||||
// Common Error Reporting
|
||||
// ============================================================
|
||||
|
||||
bool WingUtils::CheckExactlyOneNamed(int Count, const TCHAR *Kind, const FString &Name)
|
||||
bool WingUtils::CheckExactlyOneNamed(int Count, const TCHAR *Kind, const FString &Name, WingOut Errors)
|
||||
{
|
||||
if (Count == 0)
|
||||
{
|
||||
UWingServer::Printf(TEXT("Could not find a %s named %s.\n"), Kind, *Name);
|
||||
Errors.Printf(TEXT("Could not find a %s named %s.\n"), Kind, *Name);
|
||||
return false;
|
||||
}
|
||||
if (Count > 1)
|
||||
{
|
||||
UWingServer::Printf(TEXT("More than one %s named %s\n"), Kind, *Name);
|
||||
Errors.Printf(TEXT("More than one %s named %s\n"), Kind, *Name);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool WingUtils::CheckExactlyOneNamed(int Count, const TCHAR *Kind, FName Name)
|
||||
bool WingUtils::CheckExactlyOneNamed(int Count, const TCHAR *Kind, FName Name, WingOut Errors)
|
||||
{
|
||||
return CheckExactlyOneNamed(Count, Kind, ExternalizeID(Name));
|
||||
return CheckExactlyOneNamed(Count, Kind, ExternalizeID(Name), Errors);
|
||||
}
|
||||
|
||||
bool WingUtils::CheckExactlyNoneNamed(int Count, const TCHAR *Kind, const FString &Name)
|
||||
bool WingUtils::CheckExactlyNoneNamed(int Count, const TCHAR *Kind, const FString &Name, WingOut Errors)
|
||||
{
|
||||
if (Count > 0)
|
||||
{
|
||||
UWingServer::Printf(TEXT("A %s named %s already exists."), Kind, *Name);
|
||||
Errors.Printf(TEXT("A %s named %s already exists."), Kind, *Name);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool WingUtils::CheckExactlyNoneNamed(int Count, const TCHAR *Kind, FName Name)
|
||||
bool WingUtils::CheckExactlyNoneNamed(int Count, const TCHAR *Kind, FName Name, WingOut Errors)
|
||||
{
|
||||
return CheckExactlyNoneNamed(Count, Kind, ExternalizeID(Name));
|
||||
return CheckExactlyNoneNamed(Count, Kind, ExternalizeID(Name), Errors);
|
||||
}
|
||||
|
||||
bool WingUtils::CheckCanRename(UEdGraphNode* Node, const FString &Name)
|
||||
bool WingUtils::CheckCanRename(UEdGraphNode* Node, const FString &Name, WingOut Errors)
|
||||
{
|
||||
if (!Node->bCanRenameNode)
|
||||
{
|
||||
UWingServer::Printf(TEXT("ERROR: Node %s does not support renaming.\n"), *FormatName(Node));
|
||||
Errors.Printf(TEXT("ERROR: Node %s does not support renaming.\n"), *FormatName(Node));
|
||||
return false;
|
||||
}
|
||||
TSharedPtr<INameValidatorInterface> Validator = FNameValidatorFactory::MakeValidator(Node);
|
||||
EValidatorResult Result = Validator->IsValid(Name, false);
|
||||
if (Result != EValidatorResult::Ok && Result != EValidatorResult::ExistingName)
|
||||
{
|
||||
UWingServer::Printf(TEXT("ERROR: %s\n"), *INameValidatorInterface::GetErrorString(Name, Result));
|
||||
Errors.Printf(TEXT("ERROR: %s\n"), *INameValidatorInterface::GetErrorString(Name, Result));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@@ -573,7 +573,7 @@ UAnimationStateMachineGraph* WingUtils::FindStateMachineGraph(UBlueprint* BP, co
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
UAnimStateNode* WingUtils::FindStateByName(UAnimationStateMachineGraph* SMGraph, const FString& StateName)
|
||||
UAnimStateNode* WingUtils::FindStateByName(UAnimationStateMachineGraph* SMGraph, const FString& StateName, WingOut Errors)
|
||||
{
|
||||
for (UEdGraphNode* Node : SMGraph->Nodes)
|
||||
{
|
||||
@@ -585,7 +585,7 @@ UAnimStateNode* WingUtils::FindStateByName(UAnimationStateMachineGraph* SMGraph,
|
||||
}
|
||||
}
|
||||
}
|
||||
UWingServer::Printf(TEXT("ERROR: State '%s' not found in graph '%s'\n"), *StateName, *SMGraph->GetName());
|
||||
Errors.Printf(TEXT("ERROR: State '%s' not found in graph '%s'\n"), *StateName, *SMGraph->GetName());
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user