UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AssetRegistryState.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
8#include "Containers/Array.h"
11#include "Containers/Map.h"
12#include "Containers/Set.h"
14#include "CoreTypes.h"
15#include "HAL/PlatformCrt.h"
18#include "UObject/NameTypes.h"
21
36#ifndef UE_ASSETREGISTRY_CACHEDASSETSBYTAG
37#define UE_ASSETREGISTRY_CACHEDASSETSBYTAG WITH_EDITORONLY_DATA
38#endif
39
40class FArchive;
43class FAssetRegistryGenerator;
44class FDependsNode;
45class FString;
46namespace UE::AssetRegistry { class FAssetRegistryImpl; }
49struct FPrimaryAssetId;
50template <typename FuncType> class TFunctionRef;
52
122
132
134{
139
140 /* Remove FDependsNodes that do not point to packages */
142
143 /* List of types that should not be pruned because they do not have a package */
145};
146
152
158{
159private:
161#if UE_ASSETREGISTRY_INDIRECT_ASSETDATA_POINTERS
163 using FAssetDataPtrIndex = UE::AssetRegistry::Private::FAssetDataPtrIndex;
164 using FAssetDataArrayIndex = UE::AssetRegistry::Private::FAssetDataArrayIndex;
165 using FAssetDataOrArrayIndex = UE::AssetRegistry::Private::FAssetDataOrArrayIndex;
166#endif
167
168public:
169#if !UE_ASSETREGISTRY_INDIRECT_ASSETDATA_POINTERS
170 // These types are an implementation detail and they and the functions which take/return them are subject to change
171 // without deprecation warnings.
174#endif
175
180
183
186
192 ASSETREGISTRY_API bool HasAssets(const FName PackagePath, bool bARFiltering=false) const;
193
207
220 TFunctionRef<bool(const FAssetData&)> Callback,
221 EEnumerateAssetsFlags InEnumerateFlags = EEnumerateAssetsFlags::AllowUnfilteredArAssets) const;
222
231 bool bARFiltering = false) const;
232
241 EEnumerateAssetsFlags InEnumerateFlags = EEnumerateAssetsFlags::AllowAll) const;
242
254 TFunctionRef<bool(const FAssetData&)> Callback,
255 EEnumerateAssetsFlags InEnumerateFlags = EEnumerateAssetsFlags::AllowUnfilteredArAssets) const;
256
263
272
282
295 TArray<FAssetIdentifier>& OutDependencies,
299 TArray<FAssetDependency>& OutDependencies,
302
318
338
346
348
355 void EnumerateAssetsByPackageName(const FName PackageName,
356 TFunctionRef<bool(const FAssetData* AssetData)> Callback) const;
359 int32 NumAssetsByPackageName(const FName PackageName) const;
360
362 TFunctionRef<bool(const FAssetData* AssetData)> Callback) const;
363
371 TFunctionRef<bool(const FAssetData* AssetData)> Callback) const;
372
378 void EnumerateTags(TFunctionRef<bool(FName TagName)> Callback) const;
379
381 bool ContainsTag(FName TagName) const;
382
390 TFunctionRef<bool(const FAssetData* AssetData)> Callback) const;
391
400
403
406
412
415
418
420 ASSETREGISTRY_API bool RemovePackageData(FName PackageName);
421
424
427
431
434 bool* bOutModified = nullptr);
436 bool* bOutModified = nullptr);
437
445 ASSETREGISTRY_API bool UpdateAssetDataPackageFlags(FName PackageName, uint32 PackageFlags);
446
455
494
497
499 EInitializationMode InitializationMode = EInitializationMode::Rebuild, FAssetRegistryAppendResult* OutAppendResult = nullptr);
500
510 ASSETREGISTRY_API void PruneAssetData(const TSet<FName>& RequiredPackages, const TSet<FName>& RemovePackages,
511 const TSet<int32> ChunksToKeep, const FAssetRegistrySerializationOptions& Options);
512 ASSETREGISTRY_API void PruneAssetData(const TSet<FName>& RequiredPackages, const TSet<FName>& RemovePackages,
515
516
530 const TSet<FName>& RequiredPackages, const TSet<FName>& RemovePackages, const TSet<int32> ChunksToKeep,
532
535
536
539
545
553
556
559
561 int32 GetNumAssets() const;
562
564 int32 GetNumPackages() const;
565
566#if ASSET_REGISTRY_STATE_DUMPING_ENABLED
579 ASSETREGISTRY_API void Dump(const TArray<FString>& Arguments, TArray<FString>& OutPages,
580 int32 LinesPerPage=1) const;
581#endif
582
583private:
584 // Accessors of mutable FAssetData*, for friend classes
585 ASSETREGISTRY_API void EnumerateAllMutableAssets(TFunctionRef<void(FAssetData&)> Callback,
586 EEnumerateAssetsFlags InEnumerateFlags = EEnumerateAssetsFlags::AllowAll) const;
593 ASSETREGISTRY_API TArray<FAssetData*> GetMutableAssetsSortedByObjectPath();
594
595 FAssetData* GetMutableAssetByObjectPath(const FSoftObjectPath& ObjectPath) const;
596 FAssetData* GetMutableAssetByObjectPath(const UE::AssetRegistry::Private::FCachedAssetKey& Key) const;
597 void EnumerateMutableAssetsByPackageName(const FName PackageName,
598 TFunctionRef<bool(FAssetData* AssetData)> Callback) const;
599 void EnumerateMutableAssetsByPackagePath(FName LongPackagePathName,
600 TFunctionRef<bool(FAssetData* AssetData)> Callback) const;
601
607 EInitializationMode InitializationMode = EInitializationMode::Rebuild,
609
610 template<class Archive>
611 void Load(Archive&& Ar, const FAssetRegistryHeader& Header, const FAssetRegistryLoadOptions& Options);
612
614 void SetAssetDatas(TArrayView<FAssetData> AssetDatas, const FAssetRegistryLoadOptions& Options);
615
619
621 FDependsNode* FindDependsNode(const FAssetIdentifier& Identifier) const;
622
624 FDependsNode* CreateOrFindDependsNode(const FAssetIdentifier& Identifier, bool* bAlreadyExists = nullptr);
625
627 bool RemoveDependsNode(const FAssetIdentifier& Identifier);
628
630 bool RemoveDependsNodes(const TSet<FAssetIdentifier>& Identifiers);
631
633 template<typename SetKeyFuncs, typename SetAllocator>
635
639
643
644 void LoadDependencies(FArchive& Ar, const FAssetRegistryLoadOptions& Options, FAssetRegistryVersion::Type Version);
645 template <bool bLatestVersion>
646 void LoadDependenciesImpl(FArchive& Ar, FAssetRegistryVersion::Type Version);
647 void LegacyLoadDependencies_BeforeFlags(FArchive& Ar, bool bSerializeDependencies, FAssetRegistryVersion::Type Version);
648
649 void SetTagsOnExistingAsset(FAssetData* AssetData, FAssetDataTagMap&& NewTags);
650
651 void SetDependencyNodeSorting(bool bSortDependencies, bool bSortReferencers);
652
653 void RemoveAssetData(FAssetData* AssetData, const FCachedAssetKey& Key, bool bRemoveDependencyData,
655 UE::AssetRegistry::Private::FAssetDataPtrIndex AssetIndex,
656#endif
658 );
659
660 template<typename BitArrayAllocator>
661 void RemoveAssetDatasImpl(TArrayView<FAssetData*> AssetDatas, bool bRemoveDependencyData,
663
664 template<typename BitArrayAllocator>
665 void RemoveAssetDatasImpl(TArrayView<FAssetData*> AssetDatas, TArrayView<const FCachedAssetKey> Keys, bool bRemoveDependencyData,
668#endif
670 );
671
673 void Shrink();
674
681 bool IsPackageUnmountedAndFiltered(const FName PackageName) const;
682
687 FAssetDataMap CachedAssets;
688#if UE_ASSETREGISTRY_INDIRECT_ASSETDATA_POINTERS
689 UE::AssetRegistry::Private::FIndirectAssetDataArrays IndirectAssetDataArrays;
690#endif
691
692#if !UE_ASSETREGISTRY_INDIRECT_ASSETDATA_POINTERS
694 TMap<FName, TArray<FAssetData*, TInlineAllocator<1>> > CachedAssetsByPackageName;
696 TMap<FName, TArray<FAssetData*> > CachedAssetsByPath;
699#else
701 UE::AssetRegistry::Private::FAssetPackageNameMap CachedAssetsByPackageName;
703 TMap<FName, TArray<FAssetDataPtrIndex> > CachedAssetsByPath;
706#endif
707
708#if UE_ASSETREGISTRY_CACHEDASSETSBYTAG
709#if !UE_ASSETREGISTRY_INDIRECT_ASSETDATA_POINTERS
712#else
715#endif
716#else
718 TMap<FName, TSet<FTopLevelAssetPath> > CachedClassesByTag;
719#endif
720
722 TMap<FAssetIdentifier, FDependsNode*> CachedDependsNodes;
723
725 TMap<FName, FAssetPackageData*> CachedPackageData;
726
731 TArray<FAssetData*> PreallocatedAssetDataBuffers;
732 TArray<FDependsNode*> PreallocatedDependsNodeDataBuffers;
733 TArray<FAssetPackageData*> PreallocatedPackageDataBuffers;
734
739 int32 NumAssets = 0;
740 int32 NumDependsNodes = 0;
741 int32 NumPackageData = 0;
742
744 bool bCookedGlobalAssetRegistryState = false;
745
747 friend class UAssetRegistryImpl;
749 friend class FAssetDataGatherer;
750};
751
752
754// Inline implementations
756
757
766
775
776inline void FAssetRegistrySerializationOptions::InitForDevelopment()
777{
784}
785
787 : bLoadDependencies(Options.bSerializeDependencies)
788 , bLoadPackageData(Options.bSerializePackageData)
789{
790}
791
793#if UE_ASSETREGISTRY_INDIRECT_ASSETDATA_POINTERS
794 : CachedAssetsByPackageName(CachedAssets, IndirectAssetDataArrays)
795#endif
796{
797}
798
800#if UE_ASSETREGISTRY_INDIRECT_ASSETDATA_POINTERS
801 : CachedAssetsByPackageName(CachedAssets, IndirectAssetDataArrays)
802#endif
803{
804 *this = MoveTemp(Rhs);
805}
806
811
814{
815 return GetMutableAssetByObjectPath(Key);
816}
817
818inline FAssetData* FAssetRegistryState::GetMutableAssetByObjectPath(const FSoftObjectPath& ObjectPath) const
819{
820 return GetMutableAssetByObjectPath(UE::AssetRegistry::Private::FCachedAssetKey(ObjectPath));
821}
822
823inline FAssetData* FAssetRegistryState::GetMutableAssetByObjectPath(
825{
826 FAssetData* const* FoundAsset = CachedAssets.Find(Key);
827 return FoundAsset ? *FoundAsset : nullptr;
828}
829
831 TFunctionRef<bool(const FAssetData* AssetData)> Callback) const
832{
833 EnumerateMutableAssetsByPackageName(PackageName, [&Callback](FAssetData* AssetData)
834 {
835 return Callback(AssetData);
836 });
837}
838
839inline void FAssetRegistryState::EnumerateMutableAssetsByPackageName(const FName PackageName,
840 TFunctionRef<bool(FAssetData* AssetData)> Callback) const
841{
842 using namespace UE::AssetRegistry::Private;
843
844#if !UE_ASSETREGISTRY_INDIRECT_ASSETDATA_POINTERS
846 = CachedAssetsByPackageName.Find(PackageName))
847 {
848 for (FAssetData* AssetData : *FoundAssetArray)
849 {
850 if (!Callback(AssetData))
851 {
852 break;
853 }
854 }
855 }
856#else
857 if (TOptional<TConstArrayView<FAssetDataPtrIndex>> AssetArray = CachedAssetsByPackageName.Find(PackageName))
858 {
860 {
861 if (!Callback(CachedAssets[Index]))
862 {
863 break;
864 }
865 }
866 }
867#endif
868}
869
871{
873 Result.Reserve(NumAssetsByPackageName(PackageName));
874 EnumerateAssetsByPackageName(PackageName, [&Result](const FAssetData* AssetData)
875 {
876 Result.Add(AssetData);
877 return true;
878 });
879 return Result;
880}
881
883{
884#if !UE_ASSETREGISTRY_INDIRECT_ASSETDATA_POINTERS
885 const auto* Array = CachedAssetsByPackageName.Find(PackageName);
886 return Array ? Array->Num() : 0;
887#else
888 const TOptional<TConstArrayView<FAssetDataPtrIndex>> Array = CachedAssetsByPackageName.Find(PackageName);
889 return Array ? Array->Num() : 0;
890#endif
891}
892
894 TFunctionRef<bool(const FAssetData* AssetData)> Callback) const
895{
896 EnumerateMutableAssetsByPackagePath(LongPackagePathName, [&Callback](FAssetData* AssetData)
897 {
898 return Callback(AssetData);
899 });
900}
901
902inline void FAssetRegistryState::EnumerateMutableAssetsByPackagePath(FName LongPackagePathName,
903 TFunctionRef<bool(FAssetData* AssetData)> Callback) const
904{
905 using namespace UE::AssetRegistry::Private;
906
907#if !UE_ASSETREGISTRY_INDIRECT_ASSETDATA_POINTERS
908 const TArray<FAssetData*>* AssetsInPath = CachedAssetsByPath.Find(LongPackagePathName);
909 if (AssetsInPath)
910 {
911 for (FAssetData* AssetData : *AssetsInPath)
912 {
913 if (!Callback(AssetData))
914 {
915 break;
916 }
917 }
918 }
919#else
920 const TArray<FAssetDataPtrIndex>* AssetsInPath = CachedAssetsByPath.Find(LongPackagePathName);
921 if (AssetsInPath)
922 {
923 for (FAssetDataPtrIndex AssetIndex : *AssetsInPath)
924 {
925 if (!Callback(CachedAssets[AssetIndex]))
926 {
927 break;
928 }
929 }
930 }
931#endif
932}
933
935 const FTopLevelAssetPath ClassPathName, TFunctionRef<bool(const FAssetData* AssetData)> Callback) const
936{
937 using namespace UE::AssetRegistry::Private;
938
939#if !UE_ASSETREGISTRY_INDIRECT_ASSETDATA_POINTERS
940 if (const TArray<FAssetData*>* FoundAssetArray = CachedAssetsByClass.Find(ClassPathName))
941 {
942 for (FAssetData* AssetData : *FoundAssetArray)
943 {
944 Callback(AssetData);
945 }
946 }
947#else
948 if (const TArray<FAssetDataPtrIndex>* FoundAssetArray = CachedAssetsByClass.Find(ClassPathName))
949 {
950 for (FAssetDataPtrIndex AssetIndex : *FoundAssetArray)
951 {
952 if (!Callback(CachedAssets[AssetIndex]))
953 {
954 break;
955 }
956 }
957 }
958#endif
959}
960
961inline void FAssetRegistryState::EnumerateTags(TFunctionRef<bool(FName TagName)> Callback) const
962{
963#if UE_ASSETREGISTRY_CACHEDASSETSBYTAG
964 for (const auto& Pair : CachedAssetsByTag)
965#else
966 for (const TPair<FName, TSet<FTopLevelAssetPath>>& Pair : CachedClassesByTag)
967#endif
968 {
969 if (!Callback(Pair.Key))
970 {
971 break;
972 }
973 }
974}
975
976inline bool FAssetRegistryState::ContainsTag(FName TagName) const
977{
978#if UE_ASSETREGISTRY_CACHEDASSETSBYTAG
979 return CachedAssetsByTag.Contains(TagName);
980#else
981 return CachedClassesByTag.Contains(TagName);
982#endif
983}
984
986{
987 return reinterpret_cast<const TMap<FName, const FAssetPackageData*>&>(CachedPackageData);
988}
989
991{
992 OutPackageNames.Reserve(CachedAssetsByPackageName.Num());
993 for (const auto& It : CachedAssetsByPackageName)
994 {
995 OutPackageNames.Add(It.Key);
996 }
997}
998
1000{
1001 return NumAssets;
1002}
1003
1005{
1006 return CachedAssetsByPackageName.Num();
1007}
1008
#define UE_ASSETREGISTRY_INDIRECT_ASSETDATA_POINTERS
Definition AssetDataMap.h:48
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::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
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition AssetDataGatherer.h:175
Definition AssetDataTagMap.h:303
Definition AssetDataTagMap.h:289
Definition AssetData.h:946
Definition AssetRegistryState.h:158
int32 GetNumAssets() const
Definition AssetRegistryState.h:999
ASSETREGISTRY_API void RemoveAssetData(FAssetData *AssetData, bool bRemoveDependencyData, bool &bOutRemovedAssetData, bool &bOutRemovedPackageData)
Definition AssetRegistryState.cpp:3387
ASSETREGISTRY_API FAssetPackageData * CreateOrGetAssetPackageData(FName PackageName)
Definition AssetRegistryState.cpp:3911
ASSETREGISTRY_API void RemoveAssetDatas(TArrayView< FAssetData * > AssetDatas, bool bRemoveDependencyData, TBitArray<> &bOutRemovedAssetData, TBitArray<> &bOutRemovedPackageData)
Definition AssetRegistryState.cpp:3397
FAssetRegistryState & operator=(const FAssetRegistryState &)=delete
ASSETREGISTRY_API void InitializeFromExistingAndPrune(const FAssetRegistryState &ExistingState, const TSet< FName > &RequiredPackages, const TSet< FName > &RemovePackages, const TSet< int32 > ChunksToKeep, const FAssetRegistrySerializationOptions &Options)
Definition AssetRegistryState.cpp:260
ASSETREGISTRY_API void GetPrimaryAssetsIds(TSet< FPrimaryAssetId > &OutPrimaryAssets) const
Definition AssetRegistryState.cpp:3868
ASSETREGISTRY_API void ClearDependencies(const FAssetIdentifier &AssetIdentifier, UE::AssetRegistry::EDependencyCategory Category)
Definition AssetRegistryState.cpp:2010
ASSETREGISTRY_API void AddAssetData(FAssetData *AssetData)
Definition AssetRegistryState.cpp:3009
ASSETREGISTRY_API bool GetAssets(const FARCompiledFilter &Filter, const TSet< FName > &PackageNamesToSkip, TArray< FAssetData > &OutAssetData, bool bSkipARFilteredAssets=false) const
Definition AssetRegistryState.cpp:1001
bool ContainsTag(FName TagName) const
Definition AssetRegistryState.h:976
UE::AssetRegistry::Private::FConstAssetDataMap FConstAssetDataMap
Definition AssetRegistryState.h:173
void EnumerateAssetsByClassPathName(const FTopLevelAssetPath ClassPathName, TFunctionRef< bool(const FAssetData *AssetData)> Callback) const
Definition AssetRegistryState.h:934
ASSETREGISTRY_API void AddDependencies(const FAssetIdentifier &AssetIdentifier, TConstArrayView< FAssetDependency > Dependencies)
Definition AssetRegistryState.cpp:2032
void EnumerateAssetsByPackageName(const FName PackageName, TFunctionRef< bool(const FAssetData *AssetData)> Callback) const
Definition AssetRegistryState.h:830
ASSETREGISTRY_API void GetPackagesByName(FStringView PackageName, TArray< FName > &OutPackageNames) const
Definition AssetRegistryState.cpp:1852
friend class FAssetRegistryGenerator
Definition AssetRegistryState.h:746
ASSETREGISTRY_API bool GetAllAssets(const TSet< FName > &PackageNamesToSkip, TArray< FAssetData > &OutAssetData, bool bARFiltering=false) const
Definition AssetRegistryState.cpp:1730
void EnumerateAssetsByPackagePath(FName LongPackagePathName, TFunctionRef< bool(const FAssetData *AssetData)> Callback) const
Definition AssetRegistryState.h:893
ASSETREGISTRY_API ~FAssetRegistryState()
Definition AssetRegistryState.cpp:75
ASSETREGISTRY_API bool ContainsDependency(const FAssetIdentifier &AssetIdentifier, const FAssetIdentifier &QueryAsset, UE::AssetRegistry::EDependencyCategory Category=UE::AssetRegistry::EDependencyCategory::All, const UE::AssetRegistry::FDependencyQuery &Flags=UE::AssetRegistry::FDependencyQuery()) const
Definition AssetRegistryState.cpp:1942
UE::AssetRegistry::Private::FAssetDataMap FAssetDataMap
Definition AssetRegistryState.h:172
ASSETREGISTRY_API void ClearReferencers(const FAssetIdentifier &AssetIdentifier, UE::AssetRegistry::EDependencyCategory Category)
Definition AssetRegistryState.cpp:2062
ASSETREGISTRY_API void EnumerateTagToAssetDatas(TFunctionRef< bool(FName TagName, IAssetRegistry::FEnumerateAssetDatasFunc EnumerateAssets)> Callback) const
Definition AssetRegistryState.cpp:4038
ASSETREGISTRY_API void SetReferencers(const FAssetIdentifier &AssetIdentifier, TConstArrayView< FAssetDependency > Referencers, UE::AssetRegistry::EDependencyCategory Category=UE::AssetRegistry::EDependencyCategory::All)
Definition AssetRegistryState.cpp:2099
ASSETREGISTRY_API FName GetFirstPackageByName(FStringView PackageName) const
Definition AssetRegistryState.cpp:1879
ASSETREGISTRY_API void SetDependencies(const FAssetIdentifier &AssetIdentifier, TConstArrayView< FAssetDependency > Dependencies, UE::AssetRegistry::EDependencyCategory Category=UE::AssetRegistry::EDependencyCategory::All)
Definition AssetRegistryState.cpp:2048
const TMap< FName, const FAssetPackageData * > & GetAssetPackageDataMap() const
Definition AssetRegistryState.h:985
ASSETREGISTRY_API void AddReferencers(const FAssetIdentifier &AssetIdentifier, TConstArrayView< FAssetDependency > Referencers)
Definition AssetRegistryState.cpp:2083
const FAssetData * GetAssetByObjectPath(const FSoftObjectPath &ObjectPath) const
Definition AssetRegistryState.h:807
ASSETREGISTRY_API void EnumerateAllAssets(TFunctionRef< void(const FAssetData &)> Callback, EEnumerateAssetsFlags InEnumerateFlags=EEnumerateAssetsFlags::AllowAll) const
Definition AssetRegistryState.cpp:1745
ASSETREGISTRY_API 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
Definition AssetRegistryState.cpp:1898
ASSETREGISTRY_API void EnumerateAssetsByTagName(const FName TagName, TFunctionRef< bool(const FAssetData *AssetData)> Callback) const
Definition AssetRegistryState.cpp:3961
int32 GetNumPackages() const
Definition AssetRegistryState.h:1004
ASSETREGISTRY_API void UpdateAssetData(const FAssetData &NewAssetData, bool bCreateIfNotExists=false)
Definition AssetRegistryState.cpp:3192
ASSETREGISTRY_API void AddTagsToAssetData(const FSoftObjectPath &InObjectPath, FAssetDataTagMap &&InTagsAndValues)
Definition AssetRegistryState.cpp:3050
ASSETREGISTRY_API void FilterTags(const FAssetRegistrySerializationOptions &Options)
Definition AssetRegistryState.cpp:3079
ASSETREGISTRY_API bool EnumerateAssets(const FARCompiledFilter &Filter, const TSet< FName > &PackageNamesToSkip, TFunctionRef< bool(const FAssetData &)> Callback, EEnumerateAssetsFlags InEnumerateFlags=EEnumerateAssetsFlags::AllowUnfilteredArAssets) const
Definition AssetRegistryState.cpp:1522
ASSETREGISTRY_API const FAssetPackageData * GetAssetPackageData(FName PackageName) const
Definition AssetRegistryState.cpp:3880
void EnumerateTags(TFunctionRef< bool(FName TagName)> Callback) const
Definition AssetRegistryState.h:961
FAssetRegistryState()
Definition AssetRegistryState.h:792
ASSETREGISTRY_API 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
Definition AssetRegistryState.cpp:1956
ASSETREGISTRY_API void EnumerateAllPaths(TFunctionRef< void(FName PathName)> Callback) const
Definition AssetRegistryState.cpp:1844
static ASSETREGISTRY_API bool LoadFromDisk(const TCHAR *InPath, const FAssetRegistryLoadOptions &InOptions, FAssetRegistryState &OutState, FAssetRegistryVersion::Type *OutVersion=nullptr)
Definition AssetRegistryState.cpp:2410
ASSETREGISTRY_API bool RemovePackageData(FName PackageName)
Definition AssetRegistryState.cpp:3922
TArray< const FAssetData * > CopyAssetsByPackageName(const FName PackageName) const
Definition AssetRegistryState.h:870
ASSETREGISTRY_API bool UpdateAssetDataPackageFlags(FName PackageName, uint32 PackageFlags)
Definition AssetRegistryState.cpp:3375
ASSETREGISTRY_API bool HasAssets(const FName PackagePath, bool bARFiltering=false) const
Definition AssetRegistryState.cpp:983
static ASSETREGISTRY_API bool IsFilterValid(const FARCompiledFilter &Filter)
Definition AssetRegistryState.cpp:3956
void InitializeFromExisting(const FAssetRegistryState &Existing, const FAssetRegistrySerializationOptions &Options, EInitializationMode InitializationMode=EInitializationMode::Rebuild, FAssetRegistryAppendResult *OutAppendResult=nullptr)
Definition AssetRegistryState.h:1009
int32 NumAssetsByPackageName(const FName PackageName) const
Definition AssetRegistryState.h:882
FAssetRegistryState(const FAssetRegistryState &)=delete
void GetPackageNames(TArray< FName > &OutPackageNames) const
Definition AssetRegistryState.h:990
ASSETREGISTRY_API void Reset()
Definition AssetRegistryState.cpp:80
ASSETREGISTRY_API SIZE_T GetAllocatedSize(bool bLogDetailed=false) const
Definition AssetRegistryState.cpp:2628
ASSETREGISTRY_API void PruneAssetData(const TSet< FName > &RequiredPackages, const TSet< FName > &RemovePackages, const TSet< int32 > ChunksToKeep, const FAssetRegistrySerializationOptions &Options)
Definition AssetRegistryState.cpp:745
Definition DependsNode.h:16
Definition NameTypes.h:617
Definition ArrayView.h:139
Definition Array.h:670
Definition AssetRegistryState.h:50
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition ContainerAllocationPolicies.h:894
Definition AssetRegistry.h:21
Definition AssetRegistryImpl.h:394
CORE_API void Reserve(int32 CharacterCount)
Definition String.cpp.inl:307
Definition SoftObjectPath.cpp:24
Definition AssetRegistryImpl.h:48
TSet< const FAssetData *, FCachedAssetKeyFuncs > FConstAssetDataMap
Definition AssetDataMap.h:114
TSet< FAssetData *, FCachedAssetKeyFuncs > FAssetDataMap
Definition AssetDataMap.h:113
Definition PackageReader.h:15
ESerializationTarget
Definition AssetRegistryInterface.h:195
EAppendMode
Definition IAssetRegistry.h:134
EEnumerateAssetsFlags
Definition AssetRegistryInterface.h:211
EDependencyCategory
Definition AssetRegistryInterface.h:71
U16 Index
Definition radfft.cpp:71
Definition ARFilter.h:193
Definition AssetData.h:162
Definition AssetIdentifier.h:12
Definition AssetRegistryState.h:148
TArray< const FAssetData * > UpdatedAssets
Definition AssetRegistryState.h:150
TArray< const FAssetData * > AddedAssets
Definition AssetRegistryState.h:149
Definition AssetRegistryArchive.h:14
Definition AssetRegistryState.h:124
int32 ParallelWorkers
Definition AssetRegistryState.h:130
FAssetRegistryLoadOptions()=default
bool bLoadDependencies
Definition AssetRegistryState.h:128
bool bLoadPackageData
Definition AssetRegistryState.h:129
Definition AssetRegistryState.h:134
TSet< FName > RemovePackages
Definition AssetRegistryState.h:136
TSet< int32 > ChunksToKeep
Definition AssetRegistryState.h:137
FAssetRegistrySerializationOptions Options
Definition AssetRegistryState.h:138
TSet< FPrimaryAssetType > RemoveDependenciesWithoutPackagesKeepPrimaryAssetTypes
Definition AssetRegistryState.h:144
TSet< FName > RequiredPackages
Definition AssetRegistryState.h:135
bool bRemoveDependenciesWithoutPackages
Definition AssetRegistryState.h:141
Definition AssetRegistryState.h:58
bool bSerializePackageData
Definition AssetRegistryState.h:75
bool bUseAssetRegistryTagsAllowListInsteadOfDenyList
Definition AssetRegistryState.h:78
TSet< FString > AssetBundlesDenyList
Definition AssetRegistryState.h:114
bool bSerializeManageDependencies
Definition AssetRegistryState.h:72
bool bFilterAssetDataWithNoTags
Definition AssetRegistryState.h:84
bool bKeepDevelopmentAssetRegistryTags
Definition AssetRegistryState.h:99
bool bFilterDependenciesWithNoTags
Definition AssetRegistryState.h:90
bool bFilterSearchableNames
Definition AssetRegistryState.h:93
void DisableFilters()
Definition AssetRegistryState.h:767
TMap< FTopLevelAssetPath, TSet< FName > > CookFilterlistTagsByClass
Definition AssetRegistryState.h:105
bool bSerializeAssetRegistry
Definition AssetRegistryState.h:63
bool bSerializeDependencies
Definition AssetRegistryState.h:66
bool bSerializeSearchableNameDependencies
Definition AssetRegistryState.h:69
FAssetRegistrySerializationOptions(UE::AssetRegistry::ESerializationTarget Target=UE::AssetRegistry::ESerializationTarget::ForGame)
Definition AssetRegistryState.h:758
TSet< FName > CookTagsAsName
Definition AssetRegistryState.h:108
TSet< FName > CookTagsAsPath
Definition AssetRegistryState.h:111
Type
Definition AssetData.h:73
Definition PrimaryAssetId.h:126
Definition SoftObjectPath.h:56
Definition TopLevelAssetPath.h:38
Definition Optional.h:131
Definition Tuple.h:652
Definition AssetRegistryInterface.h:255