UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IAssetRegistry.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
7#include "Containers/Array.h"
11#include "Misc/Optional.h"
12#include "Templates/Function.h"
13#include "Templates/PimplPtr.h"
14#include "UObject/Interface.h"
15#include "IAssetRegistry.generated.h"
16
17#ifndef ASSET_REGISTRY_STATE_DUMPING_ENABLED
18#define ASSET_REGISTRY_STATE_DUMPING_ENABLED !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
19#endif
20
21class FArchive;
23class FCbFieldView;
24class FCbWriter;
25class FDependsNode;
27namespace UE::AssetRegistry { struct FSetManageReferencesScratch; }
28struct FARFilter;
30struct FAssetData;
33struct FObjectExport;
34struct FObjectImport;
35class ITargetPlatform;
36
38{
39 enum Type
40 {
41 DoesNotExist, // asset chunkid does not exist
42 NotAvailable, // chunk containing asset has not been installed yet
43 LocalSlow, // chunk containing asset is on local slow media (optical)
44 LocalFast // chunk containing asset is on local fast media (HDD)
45 };
46}
47
49{
50 enum Type
51 {
52 ETA, // time remaining in seconds
53 PercentageComplete // percentage complete in 99.99 format
54 };
55}
56
57namespace UE::AssetRegistry
58{
59
60// Please update LexToString when modifying this enum
61enum class EScanFlags : uint32
62{
63 None = 0,
64 ForceRescan = 1 << 0, // the paths will be scanned again, even if they were previously scanned
65 IgnoreDenyListScanFilters = 1 << 1, // ignore deny list scan filters
66 WaitForInMemoryObjects = 1 << 2, // update the tags of all assets that have loaded into memory before returning from the scan
67 IgnoreInvalidPathWarning = 1 << 3, // By default, scans of invalid paths (unmounted, or /Temp) log a warning. Suppress that warning.
68};
70
72
75{
76 None = 0x0,
77 ScriptPackage = 0x1,
78};
80
103
129
133enum class EAppendMode
134{
135 Rebuild,
137 Append,
139};
140
141} // namespace UE::AssetRegistry
142
143USTRUCT(BlueprintType)
145{
147
148 bool GetPackageQuery(UE::AssetRegistry::FDependencyQuery& Flags) const;
149 bool GetSearchableNameQuery(UE::AssetRegistry::FDependencyQuery& Flags) const;
150 bool GetManageQuery(UE::AssetRegistry::FDependencyQuery& Flags) const;
151
153 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AssetRegistry")
154 bool bIncludeSoftPackageReferences = true;
155
157 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AssetRegistry")
158 bool bIncludeHardPackageReferences = true;
159
161 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AssetRegistry")
162 bool bIncludeGamePackageReferences = true;
163
165 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AssetRegistry")
166 bool bIncludeEditorOnlyPackageReferences = true;
167
169 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AssetRegistry")
170 bool bIncludeSearchableNames = false;
171
173 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AssetRegistry")
174 bool bIncludeSoftManagementReferences = false;
175
177 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AssetRegistry")
178 bool bIncludeHardManagementReferences = false;
179};
180
183{
187
189 {
190 return AssetId == Other.AssetId && Category == Other.Category && Properties == Other.Properties;
191 }
193 {
194 if (!(AssetId == Other.AssetId))
195 {
196 return AssetId.LexicalLess(Other.AssetId);
197 }
198 if (Category != Other.Category)
199 {
200 return Category < Other.Category;
201 }
202 return Properties < Other.Properties;
203 }
204
210
212 {
213 uint32 Hash = GetTypeHash(InHash.AssetId);
214 Hash = HashCombine(Hash, GetTypeHash(InHash.Category));
215 Hash = HashCombine(Hash, GetTypeHash(InHash.Properties));
216
217 return Hash;
218 }
219
220
221 ASSETREGISTRY_API void WriteCompactBinary(FCbWriter& Writer) const;
222private:
224 {
225 // Hidden friend function needs to be inline, but call a subfunction to hide the implementation
226 Dependency.WriteCompactBinary(Writer);
227 return Writer;
228 }
229 // Load Cannot be inline because we need to hide implementation and copy-by-value is invalid without definition
231};
232
233UINTERFACE(MinimalApi, BlueprintType, meta = (CannotImplementInterfaceInBlueprint))
238
263{
265public:
271 {
273 check(Singleton);
274 return *Singleton;
275 }
276
283 UFUNCTION(BlueprintCallable, BlueprintPure=false, Category = "AssetRegistry")
284 virtual bool HasAssets(const FName PackagePath, const bool bRecursive = false) const = 0;
285
295 UFUNCTION(BlueprintCallable, BlueprintPure=false, Category="AssetRegistry")
297 bool bIncludeOnlyOnDiskAssets = false, bool bSkipARFilteredAssets=true) const = 0;
298
308 UFUNCTION(BlueprintCallable, BlueprintPure=false, Category = "AssetRegistry")
309 virtual bool GetAssetsByPath(FName PackagePath, TArray<FAssetData>& OutAssetData, bool bRecursive = false,
310 bool bIncludeOnlyOnDiskAssets = false) const = 0;
311
321 UFUNCTION(BlueprintCallable, BlueprintPure = false, Category = "AssetRegistry")
322 virtual bool GetAssetsByPaths(TArray<FName> PackagePaths, TArray<FAssetData>& OutAssetData, bool bRecursive = false,
323 bool bIncludeOnlyOnDiskAssets = false) const = 0;
324
332 UFUNCTION(BlueprintCallable, BlueprintPure=false, Category = "AssetRegistry")
334
342
350
360 UFUNCTION(BlueprintCallable, BlueprintPure=false, Category="AssetRegistry")
363
375 UFUNCTION(BlueprintCallable, BlueprintPure=false, Category="AssetRegistry")
378
393 UE::AssetRegistry::EEnumerateAssetsFlags InEnumerateFlags = UE::AssetRegistry::EEnumerateAssetsFlags::None) const = 0;
395 UE::AssetRegistry::EEnumerateAssetsFlags InEnumerateFlags = UE::AssetRegistry::EEnumerateAssetsFlags::None) const = 0;
396
397 UE_DEPRECATED(5.6, "Asset path FNames have been deprecated, use Soft Object Path instead.")
398 UFUNCTION(BlueprintCallable, BlueprintPure=false, Category="AssetRegistry", meta=(DeprecatedFunction="Note", DeprecationMessage="Use other version that takes a SoftObjectPath"))
399 virtual FAssetData GetAssetByObjectPath( const FName ObjectPath, bool bIncludeOnlyOnDiskAssets = false ) const = 0;
400
410 UFUNCTION(BlueprintCallable, BlueprintPure=false, Category = "AssetRegistry", DisplayName="Get Asset By Object Path")
412 bool bIncludeOnlyOnDiskAssets = false, bool bSkipARFilteredAssets = true) const;
413
424 bool bIncludeOnlyOnDiskAssets = false, bool bSkipARFilteredAssets = true) const = 0;
425
435
445
457
464 UFUNCTION(BlueprintCallable, BlueprintPure=false, Category = "AssetRegistry")
465 virtual bool GetAllAssets(TArray<FAssetData>& OutAssetData, bool bIncludeOnlyOnDiskAssets = false) const = 0;
466
478 UE::AssetRegistry::EEnumerateAssetsFlags InEnumerateFlags = UE::AssetRegistry::EEnumerateAssetsFlags::None) const = 0;
479
488
498
512 UE::AssetRegistry::EDependencyCategory Category = UE::AssetRegistry::EDependencyCategory::All,
513 const UE::AssetRegistry::FDependencyQuery& Flags = UE::AssetRegistry::FDependencyQuery()) const = 0;
515 UE::AssetRegistry::EDependencyCategory Category = UE::AssetRegistry::EDependencyCategory::All,
516 const UE::AssetRegistry::FDependencyQuery& Flags = UE::AssetRegistry::FDependencyQuery()) const = 0;
517
530 virtual bool GetDependencies(FName PackageName, TArray<FName>& OutDependencies,
531 UE::AssetRegistry::EDependencyCategory Category = UE::AssetRegistry::EDependencyCategory::Package,
532 const UE::AssetRegistry::FDependencyQuery& Flags = UE::AssetRegistry::FDependencyQuery()) const = 0;
533
547 UE::AssetRegistry::EDependencyCategory Category = UE::AssetRegistry::EDependencyCategory::Package,
548 const UE::AssetRegistry::FDependencyQuery& Flags = UE::AssetRegistry::FDependencyQuery()) const = 0;
549
557 UFUNCTION(BlueprintCallable, BlueprintPure=false, Category = "AssetRegistry",
558 meta=(DisplayName="Get Dependencies", ScriptName="GetDependencies"))
560 TArray<FName>& OutDependencies) const;
561
575 UE::AssetRegistry::EDependencyCategory Category = UE::AssetRegistry::EDependencyCategory::All,
576 const UE::AssetRegistry::FDependencyQuery& Flags = UE::AssetRegistry::FDependencyQuery()) const = 0;
578 UE::AssetRegistry::EDependencyCategory Category = UE::AssetRegistry::EDependencyCategory::All,
579 const UE::AssetRegistry::FDependencyQuery& Flags = UE::AssetRegistry::FDependencyQuery()) const = 0;
580
593 UE::AssetRegistry::EDependencyCategory Category = UE::AssetRegistry::EDependencyCategory::Package,
594 const UE::AssetRegistry::FDependencyQuery& Flags = UE::AssetRegistry::FDependencyQuery()) const = 0;
595
603 UFUNCTION(BlueprintCallable, BlueprintPure=false, Category = "AssetRegistry",
604 meta=(DisplayName="Get Referencers", ScriptName="GetReferencers"))
607
610
613
622 virtual void EnumerateAllPackages(TFunctionRef<void(FName PackageName, const FAssetPackageData& PackageData)> Callback,
623 UE::AssetRegistry::EEnumeratePackagesFlags InEnumerateFlags = UE::AssetRegistry::EEnumeratePackagesFlags::None) const = 0;
624
625 /*
626 * Checks if the specified package exists on disk. If the package exists and the optional parameters are provided,
627 * OutCorrectCasePackageName will be populated with the case matching package name found on disk and
628 * OutExtension will be populated with the extension for the package (dot included) if the package contains assets
629 *
630 * @param PackageName the name of the package to check for existence on disk (eg, /Game/MyFolder/MyAsset)
631 * @param OutCorrectCasePackageName out package name matching the case on disk
632 * @param OutExtension out extension for packages containing assets (dot included)
633 */
634 virtual bool DoesPackageExistOnDisk(FName PackageName, FString* OutCorrectCasePackageName = nullptr,
635 FString* OutExtension = nullptr) const = 0;
636
642
647 UFUNCTION(BlueprintCallable, BlueprintPure = false, Category = "AssetRegistry",
648 meta=(DisplayName = "GetAncestorClassNames", ScriptName = "GetAncestorClassNames"))
649 virtual bool GetAncestorClassNames(FTopLevelAssetPath ClassPathName,
651
656 UFUNCTION(BlueprintCallable, BlueprintPure = false, Category = "AssetRegistry",
657 meta=(DisplayName = "GetDerivedClassNames", ScriptName = "GetDerivedClassNames"))
658 virtual void GetDerivedClassNames(const TArray<FTopLevelAssetPath>& ClassNames,
660
662 UFUNCTION(BlueprintCallable, BlueprintPure=false, Category = "AssetRegistry")
664
666 virtual void EnumerateAllCachedPaths(TFunctionRef<bool(FString)> Callback) const = 0;
667
670
672 UFUNCTION(BlueprintCallable, BlueprintPure=false, Category = "AssetRegistry")
674
677
679 virtual void EnumerateSubPaths(const FString& InBasePath, TFunctionRef<bool(FString)> Callback, bool bInRecurse) const = 0;
680
683
685 UFUNCTION(BlueprintCallable, BlueprintPure=false, Category = "AssetRegistry")
687
689 UFUNCTION(BlueprintCallable, BlueprintPure=false, Category = "AssetRegistry")
691
694
697
700
703
708 virtual void SetTemporaryCachingMode(bool bEnable) = 0;
714
717
724
733
739
746
754 virtual bool HasVerseFiles(FName PackagePath, bool bRecursive = false) const = 0;
755
764 virtual bool GetVerseFilesByPath(FName PackagePath, TArray<FName>& OutFilePaths, bool bRecursive = false) const = 0;
765
770 virtual bool AddPath(const FString& PathToAdd) = 0;
771
777
781
786 UFUNCTION(BlueprintCallable, Category = "AssetRegistry")
787 virtual void ScanPathsSynchronous(const TArray<FString>& InPaths, bool bForceRescan = false,
788 bool bIgnoreDenyListScanFilters = false) = 0;
789
794 UFUNCTION(BlueprintCallable, Category = "AssetRegistry")
795 virtual void ScanFilesSynchronous(const TArray<FString>& InFilePaths, bool bForceRescan = false) = 0;
796
799 UE::AssetRegistry::EScanFlags InScanFlags = UE::AssetRegistry::EScanFlags::None) = 0;
800
802 UFUNCTION(BlueprintCallable, Category = "AssetRegistry")
804
809 UFUNCTION(BlueprintCallable, Category = "AssetRegistry")
811
816 UFUNCTION(BlueprintCallable, Category = "AssetRegistry")
818
823 UFUNCTION(BlueprintCallable, Category = "AssetRegistry")
825
831
837
839 UFUNCTION(BlueprintCallable, Category = "AssetRegistry")
840 virtual void WaitForPackage(const FString& PackageName) = 0;
841
846 UFUNCTION(BlueprintCallable, Category = "AssetRegistry")
848
850 UFUNCTION(BlueprintCallable, Category = "AssetRegistry")
853
857
870
872 virtual void AssetCreated(UObject* NewAsset) = 0;
873
876
879
885
898
901
904
907
910
912
920
924
927
931
934
938
942
945
948
951
955
959
963
967
971
974
977
983
986 {
995
997 {
998 return NumTotalAssets == Other.NumTotalAssets
999 && NumAssetsProcessedByAssetRegistry == Other.NumAssetsProcessedByAssetRegistry
1000 && NumAssetsPendingDataLoad == Other.NumAssetsPendingDataLoad
1001 && bIsDiscoveringAssetFiles == Other.bIsDiscoveringAssetFiles;
1002 }
1003
1008 };
1009
1013
1018 UFUNCTION(BlueprintCallable, Category = "AssetRegistry")
1025
1030
1033
1035 virtual void Tick (float DeltaTime) = 0;
1036
1039 virtual void Serialize(FStructuredArchive::FRecord Record) = 0;
1040
1043
1046
1057 bool bRefreshExisting = false, const TSet<FName>& RequiredPackages = TSet<FName>(),
1058 const TSet<FName>& RemovePackages = TSet<FName>()) const = 0;
1059
1060#if ASSET_REGISTRY_STATE_DUMPING_ENABLED
1072 virtual void DumpState(const TArray<FString>& Arguments, TArray<FString>& OutPages, int32 LinesPerPage = 1) const = 0;
1073#endif
1074
1077
1079 virtual bool ContainsTag(FName TagName) const = 0;
1080
1082 UE_DEPRECATED(5.7, "Use version taking ITargetPlatform parameter instead")
1084 const FString& PlatformIniName,
1085 UE::AssetRegistry::ESerializationTarget Target) const;
1086
1089 const ITargetPlatform* TargetPlatform = nullptr,
1090 UE::AssetRegistry::ESerializationTarget Target = UE::AssetRegistry::ESerializationTarget::ForGame) const = 0;
1091
1101
1104
1106 virtual void LoadPackageRegistryData(const FString& PackageFilename, FLoadPackageRegistryData& InOutData) const = 0;
1107
1108 typedef TFunctionRef<bool(const FAssetData* AssetData)> FAssetDataFunc;
1110
1117 FEnumerateAssetDatasFunc EnumerateAssets)> Callback) const = 0;
1118
1128 typedef TFunction<EAssetSetManagerResult::Type(const FAssetIdentifier& Manager, const FAssetIdentifier& Source,
1132
1138 virtual bool IsPathBeautificationNeeded(const FString& InAssetPath) const = 0;
1139
1149
1156 virtual FEnumerateAssetsEvent& OnEnumerateAssetsEvent() = 0;
1157
1158protected:
1159
1160 // Implementation methods for FPauseBackgroundProcessingScope
1163
1164 // Functions specifically for calling from the asset manager
1165 friend class UAssetManager;
1166
1167 UE_DEPRECATED(5.6, "Use version that takes FSetManageReferencesContext.")
1169 bool bClearExisting, UE::AssetRegistry::EDependencyCategory RecurseType,
1170 TSet<FDependsNode*>& ExistingManagedNodes, ShouldSetManagerPredicate ShouldSetManager = nullptr) = 0;
1171
1178 virtual void SetManageReferences(UE::AssetRegistry::FSetManageReferencesContext& Context) = 0;
1179
1185};
1186
1187namespace UE::AssetRegistry
1188{
1196
1198 {
1199 int64 DependencyDataOffset = INDEX_NONE;
1200 int32 ObjectCount = 0;
1201
1202 ASSETREGISTRY_API bool DoSerialize(FArchive& BinaryArchive, const FPackageFileSummary& PackageFileSummary,
1204 };
1205
1214
1216 {
1217 FString Key;
1218 FString Value;
1219
1221 };
1222
1223 // Functions to read and write the data used by the AssetRegistry in each package; the format of this data is
1224 // separate from the format of the data in the asset registry.
1225 // WritePackageData is declared in AssetRegistryInterface.h, in the CoreUObject module, because it is needed by
1226 // SavePackage in CoreUObject
1227 ASSETREGISTRY_API bool ReadPackageDataMain(FArchive& BinaryArchive, const FString& PackageName,
1228 const FPackageFileSummary& PackageFileSummary, int64& OutDependencyDataOffset,
1230 const TArray<FObjectImport>* InImports = nullptr, const TArray<FObjectExport>* InExports = nullptr);
1232 {
1233 // Required inputs, must be initialized and non-null
1234 FArchive* BinaryNameAwareArchive = nullptr;
1235 int64 AssetRegistryDependencyDataOffset = -1;
1236 int32 NumImports = -1;
1237 int32 NumSoftPackageReferences = -1;
1239
1240 // Outputs
1244 int64 AssetRegistryDependencyDataSize = 0;
1245 };
1247
1255
1257 {
1258 None = 0,
1259
1260 /* Returns nullptr if there are multiple top level assets. */
1262
1263 /* Don't skip AR filtered classes (i.e. BP and BPGC). This is cruicial if you are
1264 * running in environments where the skip classes can't be initialized (i.e. Programs) as you
1265 * could get different results in such cases. */
1266 IgnoreSkipClasses = 0x2
1267 };
1268
1286 EGetMostImportantAssetFlags InFlags = EGetMostImportantAssetFlags::None);
1287
1288 /*
1289 * Returns true if the asset registry should start searching all assets on startup
1290 */
1291 ASSETREGISTRY_API bool ShouldSearchAllAssetsAtStart();
1292
1293 // Wildcards (*) used when looking up assets in the asset registry
1296
1297
1298 /*
1299 * Various FNames for asset tags that get added during staging if asset registry writeback is enabled.
1300 * Note that these sizes refer to the package as a whole, and some packages have more than one asset per
1301 * package. In that case, the data is stored on the asset returned by GetMostImportantAsset with IgnoreSkipClasses.
1302 *
1303 * NOTE some platforms do not compress in UnrealPak. For those platforms, all compressed sizes are actually
1304 * uncompressed!
1305 *
1306 * Stage_ChunkCountFName Total iostore chunks in the package.
1307 * Stage_ChunkSizeFName The total uncompressed size of the chunks in the package.
1308 * Stage_ChunkCompressedSizeFName The total compressed size of the chunks in the package. SEE NOTE ABOVE!
1309 * Stage_ChunkInstalledSizeFName The compressed size of all chunks that must be installed with the game/plugin.
1310 * Stage_ChunkStreamingSizeFName The compressed size of all chunks that are delivered using IAS.
1311 * Stage_ChunkOptionalSizeFName The compressed size of all chunks that are placed in an optional container.
1312 *
1313 * See CookMetadata.h - UE::Cook::EPluginSizeTypes for more information on size types.
1314 */
1321} // namespace UE::AssetRegistry
1322
1325
#define check(expr)
Definition AssertionMacros.h:314
EAssetRegistryTagsCaller
Definition AssetRegistryTagsContext.h:32
bool LoadFromCompactBinary(FCbFieldView Field, FAssetDependency &Dependency)
Definition AssetRegistry.cpp:10420
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::SIZE_T SIZE_T
An unsigned integer the same size as a pointer, the same as UPTRINT.
Definition Platform.h:1150
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_EVENT_OneParam(OwningType, EventName, Param1Type)
Definition DelegateCombinations.h:51
#define DECLARE_TS_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:50
#define DECLARE_TS_MULTICAST_DELEGATE_ThreeParams(DelegateName, Param1Type, Param2Type, Param3Type)
Definition DelegateCombinations.h:68
#define DECLARE_TS_MULTICAST_DELEGATE(DelegateName)
Definition DelegateCombinations.h:26
#define DECLARE_TS_MULTICAST_DELEGATE_TwoParams(DelegateName, Param1Type, Param2Type)
Definition DelegateCombinations.h:59
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
return true
Definition ExternalRpcRegistry.cpp:601
ASSETREGISTRY_API const TCHAR * GetDevelopmentAssetRegistryFilename()
Definition AssetRegistry.cpp:862
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define UPARAM(...)
Definition ObjectMacros.h:748
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define UINTERFACE(...)
Definition ObjectMacros.h:780
#define GENERATED_IINTERFACE_BODY(...)
Definition ObjectMacros.h:770
#define GENERATED_UINTERFACE_BODY(...)
Definition ObjectMacros.h:769
#define USTRUCT(...)
Definition ObjectMacros.h:746
constexpr uint32 HashCombine(uint32 A, uint32 C)
Definition TypeHash.h:36
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition AssetRegistry.Build.cs:6
Definition Archive.h:1208
Definition AssetData.h:946
Definition AssetRegistryState.h:158
Definition CompactBinary.h:610
Definition CompactBinaryWriter.h:68
Definition DependsNode.h:16
Definition NameTypes.h:617
Definition UnrealType.h:3087
Definition StructuredArchive.h:57
Definition IAssetRegistry.h:263
virtual void GetAllCachedPaths(TArray< FString > &OutPathList) const =0
virtual void RequestResumeBackgroundProcessing()
Definition IAssetRegistry.h:1162
virtual void SetManageReferences(const TMultiMap< FAssetIdentifier, FAssetIdentifier > &ManagerMap, bool bClearExisting, UE::AssetRegistry::EDependencyCategory RecurseType, TSet< FDependsNode * > &ExistingManagedNodes, ShouldSetManagerPredicate ShouldSetManager=nullptr)=0
virtual void InitializeTemporaryAssetRegistryState(FAssetRegistryState &OutState, const FAssetRegistrySerializationOptions &Options, bool bRefreshExisting=false, const TSet< FName > &RequiredPackages=TSet< FName >(), const TSet< FName > &RemovePackages=TSet< FName >()) const =0
virtual FAssetUpdatedEvent & OnAssetUpdated()=0
virtual SIZE_T GetAllocatedSize(bool bLogDetailed=false) const =0
DECLARE_TS_MULTICAST_DELEGATE_TwoParams(FEnumerateAssetsEvent, const FARCompiledFilter &, UE::AssetRegistry::EEnumerateAssetsFlags) virtual FEnumerateAssetsEvent &OnEnumerateAssetsEvent()=0
virtual FFilesLoadedEvent & OnFilesLoaded()=0
virtual bool HasSerializedDiscoveryCache() const =0
virtual bool GetInMemoryAssets(const FARFilter &Filter, TArray< FAssetData > &OutAssetData, bool bSkipARFilteredAssets=true) const =0
virtual EAssetAvailability::Type GetAssetAvailability(const FAssetData &AssetData) const =0
virtual FAssetsEvent & OnAssetsUpdatedOnDisk()=0
virtual bool IsGathering() const =0
virtual void AppendState(const FAssetRegistryState &InState, UE::AssetRegistry::EAppendMode AppendMode=UE::AssetRegistry::EAppendMode::Append)=0
virtual void SetTemporaryCachingMode(bool bEnable)=0
virtual bool IsSearchAllAssets() const =0
virtual FAssetUpdatedEvent & OnAssetUpdatedOnDisk()=0
virtual bool IsAssetExcludedByFilter(const FAssetData &AssetData, const FARCompiledFilter &Filter) const =0
virtual FSoftObjectPath GetRedirectedObjectPath(const FSoftObjectPath &ObjectPath)=0
virtual void EnumerateAllPackages(TFunctionRef< void(FName PackageName, const FAssetPackageData &PackageData)> Callback, UE::AssetRegistry::EEnumeratePackagesFlags InEnumerateFlags=UE::AssetRegistry::EEnumeratePackagesFlags::None) const =0
virtual ASSETREGISTRY_API FAssetData K2_GetAssetByObjectPath(const FSoftObjectPath &ObjectPath, bool bIncludeOnlyOnDiskAssets=false, bool bSkipARFilteredAssets=true) const
Definition AssetRegistry.cpp:867
virtual bool PathExists(const FString &PathToTest) const =0
virtual bool GetAssetsByTags(const TArray< FName > &AssetTags, TArray< FAssetData > &OutAssetData) const =0
TFunction< EAssetSetManagerResult::Type(const FAssetIdentifier &Manager, const FAssetIdentifier &Source, const FAssetIdentifier &Target, UE::AssetRegistry::EDependencyCategory Category, UE::AssetRegistry::EDependencyProperty Properties, EAssetSetManagerFlags::Type Flags)> ShouldSetManagerPredicate
Definition IAssetRegistry.h:1131
virtual FPathAddedEvent & OnPathAdded()=0
virtual TOptional< FAssetPackageData > GetAssetPackageDataCopy(FName PackageName) const =0
virtual bool GetVerseFilesByPath(FName PackagePath, TArray< FName > &OutFilePaths, bool bRecursive=false) const =0
virtual bool GetAssetsByPackageName(FName PackageName, TArray< FAssetData > &OutAssetData, bool bIncludeOnlyOnDiskAssets=false, bool bSkipARFilteredAssets=true) const =0
virtual void AssetTagsFinalized(const UObject &FinalizedAsset)=0
virtual FScanStartedEvent & OnScanStarted()=0
virtual bool GetAssetAvailabilityProgressTypeSupported(EAssetAvailabilityProgressReportingType::Type ReportType) const =0
virtual bool GetAssetsByPath(FName PackagePath, TArray< FAssetData > &OutAssetData, bool bRecursive=false, bool bIncludeOnlyOnDiskAssets=false) const =0
DECLARE_TS_MULTICAST_DELEGATE_OneParam(FFileLoadProgressUpdatedEvent, const FFileLoadProgressUpdateData &)
virtual void SearchAllAssets(bool bSynchronousSearch)=0
virtual bool AddPath(const FString &PathToAdd)=0
virtual bool EnumerateAssets(const FARFilter &Filter, TFunctionRef< bool(const FAssetData &)> Callback, UE::AssetRegistry::EEnumerateAssetsFlags InEnumerateFlags=UE::AssetRegistry::EEnumerateAssetsFlags::None) const =0
virtual FAssetData GetAssetByObjectPath(const FName ObjectPath, bool bIncludeOnlyOnDiskAssets=false) const =0
virtual void RequestPauseBackgroundProcessing()
Definition IAssetRegistry.h:1161
virtual void GetSubPaths(const FString &InBasePath, TArray< FString > &OutPathList, bool bInRecurse) const =0
virtual void WaitForCompletion()=0
virtual void RunAssetsThroughFilter(UPARAM(ref) TArray< FAssetData > &AssetDataList, const FARFilter &Filter) const =0
virtual void PackageDeleted(UPackage *DeletedPackage)=0
virtual void ScanPathsSynchronous(const TArray< FString > &InPaths, bool bForceRescan=false, bool bIgnoreDenyListScanFilters=false)=0
virtual FInMemoryAssetCreatedEvent & OnInMemoryAssetCreated()=0
virtual void WaitForPackage(const FString &PackageName)=0
virtual bool ShouldUpdateDiskCacheAfterLoad() const =0
virtual bool GetAssetsByTagValues(const TMultiMap< FName, FString > &AssetTagsAndValues, TArray< FAssetData > &OutAssetData) const =0
virtual void GetPackagesByName(FStringView PackageName, TArray< FName > &OutPackageNames) const =0
virtual bool GetAllAssets(TArray< FAssetData > &OutAssetData, bool bIncludeOnlyOnDiskAssets=false) const =0
virtual FFilesBlockedEvent & OnFilesBlocked()=0
virtual bool VerseDeleted(const FString &FilePathOnDisk)=0
virtual bool EnumerateAllAssets(TFunctionRef< bool(const FAssetData &)> Callback, UE::AssetRegistry::EEnumerateAssetsFlags InEnumerateFlags=UE::AssetRegistry::EEnumerateAssetsFlags::None) const =0
const FAssetRegistryDependencyOptions TArray< FName > &OutDependencies const
Definition IAssetRegistry.h:560
virtual bool GetDependencies(const FAssetIdentifier &AssetIdentifier, TArray< FAssetIdentifier > &OutDependencies, UE::AssetRegistry::EDependencyCategory Category=UE::AssetRegistry::EDependencyCategory::All, const UE::AssetRegistry::FDependencyQuery &Flags=UE::AssetRegistry::FDependencyQuery()) const =0
virtual bool SetPrimaryAssetIdForObjectPath(const FSoftObjectPath &ObjectPath, FPrimaryAssetId PrimaryAssetId)=0
virtual bool GetAssetsByClass(FTopLevelAssetPath ClassPathName, TArray< FAssetData > &OutAssetData, bool bSearchSubClasses=false) const =0
virtual bool GetTemporaryCachingMode() const =0
virtual bool GetAssets(const FARFilter &Filter, TArray< FAssetData > &OutAssetData, bool bSkipARFilteredAssets=true) const =0
virtual FFileLoadProgressUpdatedEvent & OnFileLoadProgressUpdated()=0
virtual void DumpState(const TArray< FString > &Arguments, TArray< FString > &OutPages, int32 LinesPerPage=1) const =0
virtual FVerseAddedEvent & OnVerseAdded()=0
virtual void LoadPackageRegistryData(FArchive &Ar, FLoadPackageRegistryData &InOutData) const =0
virtual bool RemovePath(const FString &PathToRemove)=0
virtual void EnumerateAllCachedPaths(TFunctionRef< bool(FString)> Callback) const =0
virtual void ScanFilesSynchronous(const TArray< FString > &InFilePaths, bool bForceRescan=false)=0
virtual float GetAssetAvailabilityProgress(const FAssetData &AssetData, EAssetAvailabilityProgressReportingType::Type ReportType) const =0
virtual void ScanModifiedAssetFiles(const TArray< FString > &InFilePaths)=0
virtual FPathRemovedEvent & OnPathRemoved()=0
virtual bool IsLoadingAssets() const =0
static IAssetRegistry * Get()
Definition IAssetRegistry.h:266
virtual bool ContainsTag(FName TagName) const =0
virtual bool ContainsDependency(FName PackageName, FName QueryDependencyName, UE::AssetRegistry::EDependencyCategory Category=UE::AssetRegistry::EDependencyCategory::Package, const UE::AssetRegistry::FDependencyQuery &Flags=UE::AssetRegistry::FDependencyQuery()) const =0
virtual void SetTemporaryCachingModeInvalidated()=0
virtual TSet< FName > GetCachedEmptyPackagesCopy() const =0
virtual FPathsEvent & OnPathsRemoved()=0
virtual void WaitForPremadeAssetRegistry()=0
virtual bool HasVerseFiles(FName PackagePath, bool bRecursive=false) const =0
TFunctionRef< bool(FAssetDataFunc AssetCallback)> FEnumerateAssetDatasFunc
Definition IAssetRegistry.h:1109
virtual bool VerseCreated(const FString &FilePathOnDisk)=0
const FAssetRegistryDependencyOptions & ReferenceOptions
Definition IAssetRegistry.h:605
virtual UE::AssetRegistry::EExists TryGetAssetByObjectPath(const FSoftObjectPath &ObjectPath, FAssetData &OutAssetData) const =0
virtual bool IsSearchAsync() const =0
virtual FKnownGathersCompleteEvent & OnKnownGathersComplete()=0
virtual void AssetDeleted(UObject *DeletedAsset)=0
virtual FVerseRemovedEvent & OnVerseRemoved()=0
virtual void CompileFilter(const FARFilter &InFilter, FARCompiledFilter &OutCompiledFilter) const =0
virtual void AssetUpdateTags(UObject *Object, EAssetRegistryTagsCaller Caller)=0
virtual void AssetRenamed(const UObject *RenamedAsset, const FString &OldObjectPath)=0
virtual bool IsPathBeautificationNeeded(const FString &InAssetPath) const =0
virtual FAssetsEvent & OnAssetsUpdated()=0
virtual bool GetReferencers(const FAssetIdentifier &AssetIdentifier, TArray< FAssetIdentifier > &OutReferencers, UE::AssetRegistry::EDependencyCategory Category=UE::AssetRegistry::EDependencyCategory::All, const UE::AssetRegistry::FDependencyQuery &Flags=UE::AssetRegistry::FDependencyQuery()) const =0
virtual bool DoesPackageExistOnDisk(FName PackageName, FString *OutCorrectCasePackageName=nullptr, FString *OutExtension=nullptr) const =0
virtual FAssetsEvent & OnAssetsRemoved()=0
virtual bool HasAssets(const FName PackagePath, const bool bRecursive=false) const =0
virtual void ReadLockEnumerateAllTagToAssetDatas(TFunctionRef< bool(FName TagName, FEnumerateAssetDatasFunc EnumerateAssets)> Callback) const =0
virtual FInMemoryAssetDeletedEvent & OnInMemoryAssetDeleted()=0
virtual FName GetFirstPackageByName(FStringView PackageName) const =0
virtual FAssetsEvent & OnAssetsAdded()=0
virtual ASSETREGISTRY_API void InitializeSerializationOptions(FAssetRegistrySerializationOptions &Options, const FString &PlatformIniName, UE::AssetRegistry::ESerializationTarget Target) const
Definition AssetRegistry.cpp:872
virtual void AssetsSaved(TArray< FAssetData > &&Assets)=0
virtual FPathsEvent & OnPathsAdded()=0
virtual void ScanSynchronous(const TArray< FString > &InPaths, const TArray< FString > &InFilePaths, UE::AssetRegistry::EScanFlags InScanFlags=UE::AssetRegistry::EScanFlags::None)=0
virtual void UseFilterToExcludeAssets(UPARAM(ref) TArray< FAssetData > &AssetDataList, const FARFilter &Filter) const =0
virtual bool IsAssetIncludedByFilter(const FAssetData &AssetData, const FARCompiledFilter &Filter) const =0
virtual bool GetAssetsByPaths(TArray< FName > PackagePaths, TArray< FAssetData > &OutAssetData, bool bRecursive=false, bool bIncludeOnlyOnDiskAssets=false) const =0
static IAssetRegistry & GetChecked()
Definition IAssetRegistry.h:270
virtual FScanEndedEvent & OnScanEnded()=0
virtual void ClearGathererCache()=0
virtual FAssetRemovedEvent & OnAssetRemoved()=0
TFunctionRef< bool(const FAssetData *AssetData)> FAssetDataFunc
Definition IAssetRegistry.h:1108
const TSet< FTopLevelAssetPath > & ExcludedClassNames
Definition IAssetRegistry.h:659
virtual FAssetRenamedEvent & OnAssetRenamed()=0
virtual void AssetCreated(UObject *NewAsset)=0
virtual void EnumerateSubPaths(const FString &InBasePath, TFunctionRef< bool(FString)> Callback, bool bInRecurse) const =0
virtual TArray< TOptional< FAssetPackageData > > GetAssetPackageDatasCopy(TArrayView< FName > PackageNames) const =0
virtual FAssetAddedEvent & OnAssetAdded()=0
virtual FAssetCollisionEvent & OnAssetCollision_Private()=0
virtual void PrioritizeSearchPath(const FString &PathToPrioritize)=0
virtual UE::AssetRegistry::EExists TryGetAssetPackageData(FName PackageName, FAssetPackageData &OutAssetPackageData) const =0
virtual void PrioritizeAssetInstall(const FAssetData &AssetData) const =0
const FAssetRegistryDependencyOptions & DependencyOptions
Definition IAssetRegistry.h:559
virtual void LoadPackageRegistryData(const FString &PackageFilename, FLoadPackageRegistryData &InOutData) const =0
Definition ArrayView.h:139
Definition Array.h:670
Definition AssetRegistryState.h:50
Definition AndroidPlatformMisc.h:14
Definition UnrealString.h.inl:34
Definition AssetManager.h:84
Definition IAssetRegistry.h:235
static IAssetRegistry * Get()
Definition AssetRegistryInterface.h:364
Definition Interface.h:19
Definition Object.h:95
Definition Package.h:216
Definition IAssetRegistry.h:49
Type
Definition IAssetRegistry.h:51
@ PercentageComplete
Definition IAssetRegistry.h:53
@ ETA
Definition IAssetRegistry.h:52
Definition IAssetRegistry.h:38
Type
Definition IAssetRegistry.h:40
@ NotAvailable
Definition IAssetRegistry.h:42
@ LocalSlow
Definition IAssetRegistry.h:43
@ DoesNotExist
Definition IAssetRegistry.h:41
@ LocalFast
Definition IAssetRegistry.h:44
Type
Definition AssetRegistryInterface.h:443
Type
Definition AssetRegistryInterface.h:433
Definition FieldSystemNoiseAlgo.cpp:6
Definition SoftObjectPath.cpp:24
Definition PackageReader.h:15
const FName WildcardFName(TEXT("*"))
Definition IAssetRegistry.h:1294
EReadPackageDataMainErrorCode
Definition IAssetRegistry.h:1190
@ InvalidTagCount
Definition IAssetRegistry.h:1193
@ InvalidObjectCount
Definition IAssetRegistry.h:1192
@ InvalidTag
Definition IAssetRegistry.h:1194
EAssetSetManagerAssetFlags
Definition IAssetRegistry.h:75
const FName Stage_ChunkCountFName(TEXT("Stage_ChunkCount"))
Definition IAssetRegistry.h:1315
const FName Stage_ChunkStreamingSizeFName(TEXT("Stage_ChunkStreamingSize"))
Definition IAssetRegistry.h:1319
bool ReadPackageDataMain(FArchive &BinaryArchive, const FString &PackageName, const FPackageFileSummary &PackageFileSummary, int64 &OutDependencyDataOffset, TArray< FAssetData * > &OutAssetDataList, EReadPackageDataMainErrorCode &OutError, const TArray< FObjectImport > *InImports, const TArray< FObjectExport > *InExports)
Definition PackageReader.cpp:1736
const FName Stage_ChunkOptionalSizeFName(TEXT("Stage_ChunkOptionalSize"))
Definition IAssetRegistry.h:1320
const FTopLevelAssetPath WildcardPathName(TEXT("/*"), TEXT("*"))
Definition IAssetRegistry.h:1295
EGetMostImportantAssetFlags
Definition IAssetRegistry.h:1257
EAppendMode
Definition IAssetRegistry.h:134
void GetAssetForPackages(TConstArrayView< FName > PackageNames, TMap< FName, FAssetData > &OutPackageToAssetData)
Definition AssetRegistry.cpp:11105
EScanFlags
Definition IAssetRegistry.h:62
const FName Stage_ChunkSizeFName(TEXT("Stage_ChunkSize"))
Definition IAssetRegistry.h:1316
const FName Stage_ChunkCompressedSizeFName(TEXT("Stage_ChunkCompressedSize"))
Definition IAssetRegistry.h:1317
EDependencyProperty
Definition AssetRegistryInterface.h:88
FString LexToString(EScanFlags Flags)
Definition AssetRegistry.cpp:149
EEnumerateAssetsFlags
Definition AssetRegistryInterface.h:211
EDependencyCategory
Definition AssetRegistryInterface.h:71
bool ReadPackageDataDependencies(FReadPackageDataDependenciesArgs &Args)
Definition PackageReader.cpp:1853
const FName Stage_ChunkInstalledSizeFName(TEXT("Stage_ChunkInstalledSize"))
Definition IAssetRegistry.h:1318
Definition AdvancedWidgetsModule.cpp:13
@ false
Definition radaudio_common.h:23
Definition ARFilter.h:193
Definition ARFilter.h:23
Definition AssetData.h:162
Definition IAssetRegistry.h:183
bool operator==(const FAssetDependency &Other) const
Definition IAssetRegistry.h:188
bool LexicalLess(const FAssetDependency &Other) const
Definition IAssetRegistry.h:192
friend uint32 GetTypeHash(const FAssetDependency &InHash)
Definition IAssetRegistry.h:211
static FAssetDependency PackageDependency(FName PackageName, UE::AssetRegistry::EDependencyProperty Properties)
Definition IAssetRegistry.h:205
friend FCbWriter & operator<<(FCbWriter &Writer, const FAssetDependency &Dependency)
Definition IAssetRegistry.h:223
FAssetIdentifier AssetId
Definition IAssetRegistry.h:184
Definition AssetIdentifier.h:12
bool LexicalLess(const FAssetIdentifier &Other) const
Definition AssetIdentifier.h:194
Definition IAssetRegistry.h:145
Definition AssetRegistryState.h:58
Definition ObjectResource.h:227
Definition ObjectResource.h:444
Definition PackageFileSummary.h:57
Definition ObjectVersion.h:762
Definition PrimaryAssetId.h:126
Definition SoftObjectPath.h:56
Definition TopLevelAssetPath.h:38
Definition IAssetRegistry.h:986
int32 NumTotalAssets
Definition IAssetRegistry.h:1004
FFileLoadProgressUpdateData(int32 InNumTotalAssets, int32 InNumAssetsProcessedByAssetRegistry, int32 InNumAssetsPendingDataLoad, bool InIsDiscoveringAssetFiles)
Definition IAssetRegistry.h:987
int32 NumAssetsPendingDataLoad
Definition IAssetRegistry.h:1006
bool bIsDiscoveringAssetFiles
Definition IAssetRegistry.h:1007
bool operator==(const FFileLoadProgressUpdateData &Other) const
Definition IAssetRegistry.h:996
int32 NumAssetsProcessedByAssetRegistry
Definition IAssetRegistry.h:1005
Definition IAssetRegistry.h:1093
TArray< FName > DataDependencies
Definition IAssetRegistry.h:1098
TArray< FAssetData > Data
Definition IAssetRegistry.h:1097
ASSETREGISTRY_API ~FLoadPackageRegistryData()
bool bGetDependencies
Definition IAssetRegistry.h:1099
Definition IAssetRegistry.h:1145
~FPauseBackgroundProcessingScope()
Definition IAssetRegistry.h:1147
FPauseBackgroundProcessingScope()
Definition IAssetRegistry.h:1146
Definition Optional.h:131
Definition PimplPtr.h:50
Definition AssetRegistryInterface.h:255
Definition IAssetRegistry.h:1207
FString ObjectPath
Definition IAssetRegistry.h:1208
FString ObjectClassName
Definition IAssetRegistry.h:1209
Definition IAssetRegistry.h:1198
Definition IAssetRegistry.h:1216
FString Value
Definition IAssetRegistry.h:1218
FString Key
Definition IAssetRegistry.h:1217
TBitArray ImportUsedInGame
Definition IAssetRegistry.h:1241
TArray< TPair< FName, EExtraDependencyFlags > > ExtraPackageDependencies
Definition IAssetRegistry.h:1243
TBitArray SoftPackageUsedInGame
Definition IAssetRegistry.h:1242
FPackageFileVersion PackageVersion
Definition IAssetRegistry.h:1238
Definition IAssetRegistry.h:110
const TMultiMap< FAssetIdentifier, FAssetIdentifier > * ManagerMap
Definition IAssetRegistry.h:112
TPimplPtr< FSetManageReferencesScratch > Scratch
Definition IAssetRegistry.h:127
bool bClearExisting
Definition IAssetRegistry.h:114
EDependencyCategory RecurseType
Definition IAssetRegistry.h:116
TOptional< TFunctionRef< EAssetSetManagerResult::Type(FShouldSetManagerContext &Context)> > ShouldSetManager
Definition IAssetRegistry.h:121
Definition IAssetRegistry.h:83
EAssetSetManagerAssetFlags SourceAssetFlags
Definition IAssetRegistry.h:93
const FAssetIdentifier & Manager
Definition IAssetRegistry.h:85
EDependencyProperty EdgeARProperties
Definition IAssetRegistry.h:101
EAssetSetManagerAssetFlags TargetAssetFlags
Definition IAssetRegistry.h:95
EDependencyCategory EdgeARCategory
Definition IAssetRegistry.h:99
const FAssetIdentifier & Source
Definition IAssetRegistry.h:87
const FAssetIdentifier & Target
Definition IAssetRegistry.h:89
EAssetSetManagerFlags::Type EdgeFlags
Definition IAssetRegistry.h:97
EAssetSetManagerAssetFlags ManagerAssetFlags
Definition IAssetRegistry.h:91