UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AssetRegistryTagsContext.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
6#include "Containers/Map.h"
8#include "Misc/Optional.h"
11#include "UObject/CookEnums.h"
12#include "UObject/Object.h" // UObject::FAssetRegistryTag
13
14class ITargetPlatform;
15class UObject;
16struct FAssetBundleData;
17
18namespace UE::AssetRegistry
19{
20
26inline constexpr FStringView CookTagPrefix = TEXTVIEW("Cook_");
27
28}
29
55
79
98{
99public:
100 // This is an implicit constructor to reduce the boilerplate for calling GetAssetRegistryTags
103
105 COREUOBJECT_API const UObject* GetObject() const;
106
108 COREUOBJECT_API bool IsFullUpdate() const;
110 COREUOBJECT_API bool IsSaving() const;
118 COREUOBJECT_API bool IsCooking() const;
121
126 COREUOBJECT_API bool IsCookByTheBook() const;
131 COREUOBJECT_API bool IsCookOnTheFly() const;
147
156 COREUOBJECT_API bool ContainsTag(FName TagName) const;
160 COREUOBJECT_API void RemoveTag(FName TagName);
165
173
178 COREUOBJECT_API bool WantsCookTags() const;
179
185 COREUOBJECT_API bool ContainsCookTag(FName TagName) const;
189 COREUOBJECT_API void RemoveCookTag(FName TagName);
190
191private:
192 bool TryValidateTagName(FName TagName) const;
193 FName TransformTagName(FName TagName, FStringView PrefixToAdd, bool bCreateNameIfDoesNotExist = true) const;
194 UObject::FAssetRegistryTag& FindOrAddTagInternal(FName TagName, FStringView PrefixToAdd, bool* bOutAlreadyExists);
195 UObject::FAssetRegistryTag* FindTagInternal(FName TagName, FStringView PrefixToAdd);
196 bool ContainsTagInternal(FName TagName, FStringView PrefixToAdd) const;
198 void RemoveTagInternal(FName TagName, FStringView PrefixToAdd);
199
200private:
202 friend class UObject;
203};
EAssetRegistryTagsCaller
Definition AssetRegistryTagsContext.h:32
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 TEXTVIEW(str)
Definition StringView.h:553
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition AssetRegistryTagsContext.h:98
COREUOBJECT_API bool IsProceduralSave() const
Definition AssetRegistryTagsContext.cpp:46
COREUOBJECT_API void AddTag(UObject::FAssetRegistryTag TagResult)
Definition AssetRegistryTagsContext.cpp:101
COREUOBJECT_API bool IsCookOnTheFly() const
Definition AssetRegistryTagsContext.cpp:66
COREUOBJECT_API void EnumerateTags(TFunctionRef< void(const UObject::FAssetRegistryTag &)> Visitor) const
Definition AssetRegistryTagsContext.cpp:116
COREUOBJECT_API UE::Cook::ECookingDLC GetCookingDLC() const
Definition AssetRegistryTagsContext.cpp:81
COREUOBJECT_API bool WantsCookTags() const
Definition AssetRegistryTagsContext.cpp:139
COREUOBJECT_API UObject::FAssetRegistryTag & FindOrAddCookTag(FName TagName, bool *bOutAlreadyExists)
Definition AssetRegistryTagsContext.cpp:144
COREUOBJECT_API void RemoveCookTag(FName TagName)
Definition AssetRegistryTagsContext.cpp:182
COREUOBJECT_API EAssetRegistryTagsCaller GetCaller() const
Definition AssetRegistryTagsContext.cpp:31
COREUOBJECT_API const FAssetBundleData * GetBundleResult()
Definition AssetRegistryTagsContext.cpp:129
COREUOBJECT_API UObject::FAssetRegistryTag * FindCookTag(FName TagName)
Definition AssetRegistryTagsContext.cpp:155
COREUOBJECT_API bool IsFullUpdate() const
Definition AssetRegistryTagsContext.cpp:36
COREUOBJECT_API const UObject * GetObject() const
Definition AssetRegistryTagsContext.cpp:26
COREUOBJECT_API void RemoveTag(FName TagName)
Definition AssetRegistryTagsContext.cpp:106
COREUOBJECT_API void SetBundleResult(const FAssetBundleData *InBundleResult)
Definition AssetRegistryTagsContext.cpp:134
COREUOBJECT_API bool ContainsTag(FName TagName) const
Definition AssetRegistryTagsContext.cpp:96
COREUOBJECT_API void AddCookTag(UObject::FAssetRegistryTag TagResult)
Definition AssetRegistryTagsContext.cpp:173
COREUOBJECT_API const ITargetPlatform * GetTargetPlatform() const
Definition AssetRegistryTagsContext.cpp:56
COREUOBJECT_API bool ContainsCookTag(FName TagName) const
Definition AssetRegistryTagsContext.cpp:164
COREUOBJECT_API bool IsCookTypeUnknown() const
Definition AssetRegistryTagsContext.cpp:71
COREUOBJECT_API bool IsCookByTheBook() const
Definition AssetRegistryTagsContext.cpp:61
COREUOBJECT_API UObject::FAssetRegistryTag * FindTag(FName TagName)
Definition AssetRegistryTagsContext.cpp:91
COREUOBJECT_API UE::Cook::ECookType GetCookType() const
Definition AssetRegistryTagsContext.cpp:76
COREUOBJECT_API bool WantsBundleResult() const
Definition AssetRegistryTagsContext.cpp:124
COREUOBJECT_API UObject::FAssetRegistryTag & FindOrAddTag(FName TagName, bool *bOutAlreadyExists=nullptr)
Definition AssetRegistryTagsContext.cpp:86
COREUOBJECT_API bool IsSaving() const
Definition AssetRegistryTagsContext.cpp:41
COREUOBJECT_API bool IsCooking() const
Definition AssetRegistryTagsContext.cpp:51
COREUOBJECT_API int32 GetNumTags() const
Definition AssetRegistryTagsContext.cpp:111
Definition NameTypes.h:617
Definition AssetRegistryState.h:50
Definition UnrealString.h.inl:34
Definition Object.h:95
Definition PackageReader.h:15
constexpr FStringView CookTagPrefix
Definition AssetRegistryTagsContext.h:26
ECookingDLC
Definition CookEnums.h:19
ECookType
Definition CookEnums.h:12
Definition AssetBundleData.h:82
Definition AssetRegistryTagsContext.h:62
UE::Cook::ECookingDLC CookingDLC
Definition AssetRegistryTagsContext.h:73
bool bProceduralSave
Definition AssetRegistryTagsContext.h:74
bool bFullUpdateRequested
Definition AssetRegistryTagsContext.h:77
const ITargetPlatform * TargetPlatform
Definition AssetRegistryTagsContext.h:69
TMap< FName, UObject::FAssetRegistryTag > Tags
Definition AssetRegistryTagsContext.h:67
const FAssetBundleData * BundleResult
Definition AssetRegistryTagsContext.h:70
const UObject * Object
Definition AssetRegistryTagsContext.h:68
bool bWantsCookTags
Definition AssetRegistryTagsContext.h:76
bool bWantsBundleResult
Definition AssetRegistryTagsContext.h:75
EAssetRegistryTagsCaller Caller
Definition AssetRegistryTagsContext.h:71
UE::Cook::ECookType CookType
Definition AssetRegistryTagsContext.h:72
Definition Object.h:827