Files
UnrealEngineUWP/Engine/Plugins/Experimental/ConsoleVariables/Source/ConsoleVariablesEditor/Private/ConsoleVariablesAsset.cpp
aurel cordonnier a12d56ff31 Merge from Release-Engine-Staging @ 17791557 to Release-Engine-Test
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485

[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-12 21:21:22 -04:00

90 lines
2.4 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "ConsoleVariablesAsset.h"
#include "Algo/Find.h"
#include "Editor.h"
void FConsoleVariablesUiCommandInfo::ExecuteCommand() const
{
GEngine->Exec(GEditor->GetWorld(), *FString::Printf(TEXT("%s %s"), *Command, *ValueAsString));
}
void UConsoleVariablesAsset::SetVariableCollectionName(const FName& InVariableCollectionName)
{
VariableCollectionName = InVariableCollectionName;
}
void UConsoleVariablesAsset::SetVariableCollectionDescription(const FString& InVariableCollectionDescription)
{
VariableCollectionDescription = InVariableCollectionDescription;
}
bool UConsoleVariablesAsset::FindCommandInfoByCommandString(const FString& InCommand, FConsoleVariablesUiCommandInfo& OutCommandInfo)
{
FConsoleVariablesUiCommandInfo* MatchedInfo = Algo::FindByPredicate(
SavedCommandsAndValues, [&InCommand](const FConsoleVariablesUiCommandInfo& Info)
{
return Info.Command.Equals(InCommand);
});
if (MatchedInfo)
{
OutCommandInfo = *MatchedInfo;
}
return MatchedInfo ? true : false;
}
void UConsoleVariablesAsset::AddOrSetConsoleVariableSavedValue(const FConsoleVariablesUiCommandInfo InCommandInfo)
{
const int32 IndexOfMatch = SavedCommandsAndValues.IndexOfByPredicate([&InCommandInfo](const FConsoleVariablesUiCommandInfo& Comparator)
{
return Comparator.SimilarTo(InCommandInfo);
});
if (IndexOfMatch > -1)
{
SavedCommandsAndValues[IndexOfMatch] = InCommandInfo;
}
else
{
SavedCommandsAndValues.Add(InCommandInfo);
}
}
bool UConsoleVariablesAsset::RemoveConsoleVariable(const FConsoleVariablesUiCommandInfo InCommandInfo)
{
const int32 IndexOfMatch = SavedCommandsAndValues.IndexOfByPredicate([&InCommandInfo](const FConsoleVariablesUiCommandInfo& Comparator)
{
return Comparator.SimilarTo(InCommandInfo);
});
if (IndexOfMatch > -1)
{
SavedCommandsAndValues.RemoveAt(IndexOfMatch);
return true;
}
return false;
}
const FText& UConsoleVariablesAsset::GetSource() const
{
return Source;
}
void UConsoleVariablesAsset::SetSource(const FText& InSourceText)
{
Source = InSourceText;
}
void UConsoleVariablesAsset::CopyFrom(UConsoleVariablesAsset* InAssetToCopy)
{
VariableCollectionName = InAssetToCopy->VariableCollectionName;
VariableCollectionDescription = InAssetToCopy->VariableCollectionDescription;
SavedCommandsAndValues = InAssetToCopy->SavedCommandsAndValues;
Source = InAssetToCopy->Source;
}