// Copyright Epic Games, Inc. All Rights Reserved. #include "AutoReimport/AutoReimportUtilities.h" #include "EditorFramework/AssetImportData.h" #include "AutoReimport/AssetSourceFilenameCache.h" DEFINE_LOG_CATEGORY(LogAutoReimportManager); namespace Utils { TArray FindAssetsPertainingToFile(const IAssetRegistry& Registry, const FString& AbsoluteFilename) { return FAssetSourceFilenameCache::Get().GetAssetsPertainingToFile(Registry, AbsoluteFilename); } TArray ExtractSourceFilePaths(UObject* Object) { TArray Temp; ExtractSourceFilePaths(Object, Temp); return Temp; } void ExtractSourceFilePaths(UObject* Object, TArray& OutSourceFiles) { TArray TagList; Object->GetAssetRegistryTags(TagList); const FName TagName = UObject::SourceFileTagName(); for (const auto& Tag: TagList) { if (Tag.Name == TagName) { int32 PreviousNum = OutSourceFiles.Num(); TOptional ImportInfo = FAssetImportInfo::FromJson(Tag.Value); if (ImportInfo.IsSet()) { for (const auto& File: ImportInfo->SourceFiles) { OutSourceFiles.Emplace(UAssetImportData::ResolveImportFilename(File.RelativeFilename, Object->GetOutermost())); } } break; } } } } // namespace Utils