Files
UnrealEngineUWP/Engine/Source/Runtime/Overlay/Private/Assets/LocalizedOverlays.cpp
matt peters 64658cf6ae GetAssetRegistryTags deprecation: Make the old GetAssetRegistryTags and related functions deprecated.
Upgrade the overrides and callsites in all of Epic's code.
Every class that can be subclassed by licensees that has its override change needs to keep the old version of the function as deprecated. Otherwise subclasses that call Super::GetAssetRegistryTags will have a compile error instead of a deprecation warning.
Several classes had their own extension method for GetAssetRegistryTags being passed on to user data classes. Updated all of those to take FAssetRegistryTagsContext just like GetAssetRegistryTags does.
#rnx
#rb Francis.Hurteau

[CL 30224166 by matt peters in ue5-main branch]
2023-12-08 21:45:21 -05:00

86 lines
2.3 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "LocalizedOverlays.h"
#include "BasicOverlays.h"
#include "Internationalization/Internationalization.h"
#include "Internationalization/Culture.h"
#include "UObject/AssetRegistryTagsContext.h"
#include UE_INLINE_GENERATED_CPP_BY_NAME(LocalizedOverlays)
#if WITH_EDITORONLY_DATA
#include "EditorFramework/AssetImportData.h"
#endif // WITH_EDITORONLY_DATA
void ULocalizedOverlays::PostInitProperties()
{
#if WITH_EDITORONLY_DATA
if (!HasAnyFlags(RF_ClassDefaultObject))
{
AssetImportData = NewObject<UAssetImportData>(this, TEXT("AssetImportData"));
}
#endif
Super::PostInitProperties();
}
void ULocalizedOverlays::GetAssetRegistryTags(TArray<FAssetRegistryTag>& OutTags) const
{
PRAGMA_DISABLE_DEPRECATION_WARNINGS;
Super::GetAssetRegistryTags(OutTags);
PRAGMA_ENABLE_DEPRECATION_WARNINGS;
}
void ULocalizedOverlays::GetAssetRegistryTags(FAssetRegistryTagsContext Context) const
{
#if WITH_EDITORONLY_DATA
if (AssetImportData)
{
Context.AddTag(FAssetRegistryTag(SourceFileTagName(), AssetImportData->GetSourceData().ToJson(), FAssetRegistryTag::TT_Hidden));
}
#endif // WITH_EDITORONLY_DATA
Super::GetAssetRegistryTags(Context);
}
UBasicOverlays* ULocalizedOverlays::GetCurrentLocaleOverlays() const
{
UBasicOverlays* OverlaysToUse = DefaultOverlays;
// Determine what out current culture is, and grab the most appropriate set of subtitles for it
FInternationalization& Internationalization = FInternationalization::Get();
const TArray<FString> PrioritizedCultureNames = Internationalization.GetPrioritizedCultureNames(Internationalization.GetCurrentCulture()->GetName());
for (const FString& CultureName : PrioritizedCultureNames)
{
if (LocaleToOverlaysMap.Contains(CultureName))
{
OverlaysToUse = *LocaleToOverlaysMap.Find(CultureName);
break;
}
}
return OverlaysToUse;
}
TArray<FOverlayItem> ULocalizedOverlays::GetAllOverlays() const
{
UBasicOverlays* OverlaysToUse = GetCurrentLocaleOverlays();
return (OverlaysToUse != nullptr) ? OverlaysToUse->GetAllOverlays() : TArray<FOverlayItem>();
}
void ULocalizedOverlays::GetOverlaysForTime(const FTimespan& Time, TArray<FOverlayItem>& OutOverlays) const
{
OutOverlays.Empty();
UBasicOverlays* OverlaysToUse = GetCurrentLocaleOverlays();
if (OverlaysToUse != nullptr)
{
OverlaysToUse->GetOverlaysForTime(Time, OutOverlays);
}
}