UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
WorldDataLayers.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
14#include "Engine/World.h"
15#include "Engine/Level.h"
17#include "WorldDataLayers.generated.h"
18
20class UDataLayerInstance;
21class UDataLayerInstanceWithAsset;
22class UDataLayerAsset;
23class UExternalDataLayerInstance;
24
25USTRUCT()
27{
29
30 UPROPERTY()
31 TArray<FName> DataLayerInstanceNames;
32
33 UPROPERTY()
34 FName ExternalDataLayerName;
35
36 UPROPERTY()
37 FName CurrentColorizedDataLayerInstanceName;
38
39 UPROPERTY()
40 int32 ContextID = INT32_MAX;
41
42 void Reset()
43 {
44 DataLayerInstanceNames.Reset();
45 ExternalDataLayerName = NAME_None;
46 CurrentColorizedDataLayerInstanceName = NAME_None;
47 }
48};
49
51{
56 int32 GetUpdateEpoch() const { return UpdateEpoch; }
57
58protected:
59 void Reset();
63 const TSet<FName>& GetReplicatedEffectiveActiveDataLayerNames() const { return ReplicatedEffectiveActiveDataLayerNames; }
64 const TSet<FName>& GetReplicatedEffectiveLoadedDataLayerNames() const { return ReplicatedEffectiveLoadedDataLayerNames; }
65 friend class AWorldDataLayers;
66
67private:
68 TSet<FName> ReplicatedEffectiveActiveDataLayerNames;
69 TSet<FName> ReplicatedEffectiveLoadedDataLayerNames;
70 TSet<FName> LocalEffectiveActiveDataLayerNames;
71 TSet<FName> LocalEffectiveLoadedDataLayerNames;
72
73 int32 UpdateEpoch;
74 mutable int32 AllEffectiveActiveDataLayerNamesEpoch;
75 mutable int32 AllEffectiveLoadedDataLayerNamesEpoch;
76 mutable TSet<FName> AllEffectiveActiveDataLayerNames;
77 mutable TSet<FName> AllEffectiveLoadedDataLayerNames;
78};
79
83UCLASS(hidecategories = (Actor, HLOD, Cooking, Transform, Advanced, Display, Events, Object, Physics, Attachment, Info, Input, Blueprint, Layers, Tags, Replication), notplaceable, MinimalAPI)
85{
87
88public:
89 //~ Begin UObject Interface
90 ENGINE_API virtual void PostLoad() override;
91 virtual void Serialize(FArchive& Ar) override;
92 //~ End UObject Interface
93
94 //~ Begin AActor Interface
95#if WITH_EDITOR
96 ENGINE_API virtual void PreEditUndo() override;
97 ENGINE_API virtual void PostEditUndo() override;
98 virtual bool ShouldLevelKeepRefIfExternal() const override;
99 virtual bool IsEditorOnly() const override;
100 virtual bool ShouldImport(FStringView ActorPropString, bool IsMovingLevel) override { return false; }
101 virtual bool IsLockLocation() const { return true; }
102 virtual bool IsUserManaged() const override { return false; }
103 virtual bool ActorTypeSupportsDataLayer() const override { return false; }
104 virtual bool ActorTypeSupportsExternalDataLayer() const override { return false; }
106 virtual void OnLoadedActorRemovedFromLevel() override;
107 //~ End AActor Interface
108
111
112 ENGINE_API bool IsEmpty() const;
113 bool HasDeprecatedDataLayers() const { return bHasDeprecatedDataLayers; }
114
115 template<class DataLayerInstanceType, typename ...CreationsArgs>
117
118 ENGINE_API bool RemoveDataLayer(const UDataLayerInstance* InDataLayer, bool bInResolveActorDescContainers = true);
122
123 ENGINE_API bool IsActorEditorContextCurrentColorized(const UDataLayerInstance* InDataLayerInstance) const;
124 ENGINE_API bool IsInActorEditorContext(const UDataLayerInstance* InDataLayerInstance) const;
130
131 //~ Begin Helper Functions
135 //~ End Helper Functions
136
137 // Allows overriding of DataLayers with PlayFromHere
138 template<class T>
140
141 ENGINE_API bool IsReadOnly(FText* OutReason = nullptr) const;
142 ENGINE_API bool IsSubWorldDataLayers() const;
143
147
148
150#endif
151
152 UE_DEPRECATED(5.4, "Use GetWorldPartitionWorldDataLayersName() instead.")
154
155 static FName GetWorldPartitionWorldDataLayersName() { return FName(TEXT("WorldDataLayers")); } // reserved for ULevel::WorldDataLayers
156
157 ENGINE_API void DumpDataLayers(FOutputDevice& OutputDevice) const;
158 ENGINE_API bool ContainsDataLayer(const UDataLayerInstance* InDataLayer) const;
159 ENGINE_API const UDataLayerInstance* GetDataLayerInstance(const FName& InDataLayerInstanceName) const;
160 ENGINE_API const UDataLayerInstance* GetDataLayerInstance(const UDataLayerAsset* InDataLayerAsset) const;
161 ENGINE_API const UDataLayerInstance* GetDataLayerInstanceFromAssetName(const FName& InDataLayerAssetPathName) const;
162
163 UE_DEPRECATED(5.4, "Use ForEachDataLayerInstance() instead.")
164 void ForEachDataLayer(TFunctionRef<bool(UDataLayerInstance*)> Func) { return ForEachDataLayerInstance(Func); }
165
166 UE_DEPRECATED(5.4, "Use ForEachDataLayerInstance() instead.")
167 void ForEachDataLayer(TFunctionRef<bool(UDataLayerInstance*)> Func) const { return ForEachDataLayerInstance(Func); }
168
169 ENGINE_API void ForEachDataLayerInstance(TFunctionRef<bool(UDataLayerInstance*)> Func);
170 ENGINE_API void ForEachDataLayerInstance(TFunctionRef<bool(UDataLayerInstance*)> Func) const;
171
173 ENGINE_API const UExternalDataLayerInstance* GetExternalDataLayerInstance(const UExternalDataLayerAsset* InExternalDataLayerAsset) const;
175
176 // DataLayer Runtime State
177 ENGINE_API bool SetDataLayerRuntimeState(const UDataLayerInstance* InDataLayerInstance, EDataLayerRuntimeState InState, bool bIsRecursive = false);
182 UFUNCTION(NetMulticast, Reliable)
184 int32 GetDataLayersStateEpoch() const { return DataLayersStateEpoch; }
185
186 //~ Begin Deprecated
187
188 PRAGMA_DISABLE_DEPRECATION_WARNINGS // Suppress compiler warning on override of deprecated function
189
190 UE_DEPRECATED(5.0, "Use SetDataLayerRuntimeState() instead.")
192
193 UE_DEPRECATED(5.0, "Use GetDataLayerRuntimeStateByName() instead.")
195
196 UE_DEPRECATED(5.0, "Use GetEffectiveActiveDataLayerNames() instead.")
198
199 UE_DEPRECATED(5.0, "Use GetEffectiveLoadedDataLayerNames() instead.")
201
202#if WITH_EDITOR
203 UE_DEPRECATED(5.1, "Convert DataLayer using UDataLayerToAssetCommandlet and use UDataLayerInstance* overload instead.")
205#endif
206
207 UE_DEPRECATED(5.1, "Convert DataLayer using UDataLayerToAssetCommandlet and use UDataLayerInstance* overload instead.")
209
211
212 UE_DEPRECATED(5.1, "Use GetDataLayerInstance with FName or UDataLayerAsset instead")
213 ENGINE_API const UDataLayerInstance* GetDataLayerInstance(const FActorDataLayer& InActorDataLayer) const;
214
215 UE_DEPRECATED(5.1, "Use GetDataLayerInstanceNames with UDataLayerAsset instead")
217
218 UE_DEPRECATED(5.1, "Use GetDataLayerInstances with FName or UDataLayerAsset instead")
219 ENGINE_API TArray<const UDataLayerInstance*> GetDataLayerInstances(const TArray<FActorDataLayer>& InActorDataLayers) const;
220
221 UE_DEPRECATED(5.1, "Convert UDataLayers to UDataLayerAsset and UDataLayerInstance using DataLayerToAssetCommandLet")
222 ENGINE_API const UDataLayerInstance* GetDataLayerFromLabel(const FName& InDataLayerLabel) const;
223
224 UE_DEPRECATED(5.3, "This function has been deprecated.")
226
227 //~ End Deprecated
228
229protected:
232
233 UFUNCTION()
235
236 UFUNCTION()
238
239 UFUNCTION()
241
242 UFUNCTION()
244
245private:
246 enum class ESetDataLayerRuntimeStateError
247 {
248 NotRuntime,
249 ClientOnlyFromServer,
250 ServerOnlyFromClient,
251 AuthoritativeFromClient
252 };
253
254 ENGINE_API const FWorldDataLayersEffectiveStates& GetEffectiveStates() const;
255
256 // External Data Layers
257 bool AddExternalDataLayerInstance(UExternalDataLayerInstance* ExternalDataLayerInstance);
258 bool RemoveExternalDataLayerInstance(UExternalDataLayerInstance* ExternalDataLayerInstance);
260
261#if WITH_EDITOR
262 // ExternalPackage Data Layer Instances
264#endif
265
266 ENGINE_API void OnDataLayerManagerInitialized();
267 ENGINE_API void OnDataLayerManagerDeinitialized();
268 ENGINE_API void ResolveEffectiveRuntimeState(const UDataLayerInstance* InDataLayer, bool bInNotifyChange = true);
269 ENGINE_API void DumpDataLayerRecursively(const UDataLayerInstance* DataLayer, FString Prefix, FOutputDevice& OutputDevice) const;
270 bool CanChangeDataLayerRuntimeState(const UDataLayerInstance* InDataLayerInstance, ESetDataLayerRuntimeStateError* OutReason = nullptr) const;
271
272 //~ Begin IDataLayerInstanceProvider interface
273 ENGINE_API virtual TSet<TObjectPtr<UDataLayerInstance>>& GetDataLayerInstances() override;
274 virtual const TSet<TObjectPtr<UDataLayerInstance>>& GetDataLayerInstances() const override { return const_cast<AWorldDataLayers*>(this)->GetDataLayerInstances(); }
275 virtual const UExternalDataLayerInstance* GetRootExternalDataLayerInstance() const override { return RootExternalDataLayerInstance; }
276 //~ End IDataLayerInstanceProvider interface
277
278#if !WITH_EDITOR
279 void UpdateAccelerationTable(const UDataLayerInstance* DataLayerInstance, bool bIsAdding);
280#endif
281
282#if WITH_EDITOR
283 virtual bool ActorTypeIsMainWorldOnly() const override { return true; }
284
285 ENGINE_API void AddDataLayerInstance(UDataLayerInstance* InDataLayerInstance);
291
292 friend class UDataLayerInstanceWithAsset;
293 friend class UDataLayerToAssetCommandlet;
294
295 // Used to compare state pre/post undo
297#endif
298
299#if !WITH_EDITOR
300 TMap<FName, const UDataLayerInstance*> InstanceNameToInstance;
302#endif
303
304#if WITH_EDITORONLY_DATA
305 UPROPERTY()
307
308 // True when Runtime Data Layer editing is allowed.
309 UPROPERTY()
311
314
316#endif
317
318 UPROPERTY()
319 TObjectPtr<UExternalDataLayerInstance> RootExternalDataLayerInstance;
320
321 UPROPERTY()
322 TSet<TObjectPtr<UDataLayerInstance>> DataLayerInstances;
323
326 TSet<TObjectPtr<UDataLayerInstance>> ExternalPackageDataLayerInstances;
327
330 TArray<TObjectPtr<UDataLayerInstance>> LoadedExternalPackageDataLayerInstances;
331
333 TArray<TObjectPtr<UDataLayerInstance>> TransientDataLayerInstances;
334
335 static_assert(DATALAYER_TO_INSTANCE_RUNTIME_CONVERSION_ENABLED, "DeprecatedDataLayerNameToDataLayerInstance Property is deprecated and needs to be deleted.");
336 UPROPERTY()
337 TMap<FName, TWeakObjectPtr<UDataLayerInstance>> DeprecatedDataLayerNameToDataLayerInstance;
338
340 UPROPERTY(meta = (DeprecatedProperty, DeprecationMessage = "Convert Data layers to DataLayerInstances and DataLayerAssets using DataLayerToAsset CommandLet and use DataLayerInstances instead."))
341 TSet<TObjectPtr<UDEPRECATED_DataLayer>> WorldDataLayers_DEPRECATED;
343
344 UPROPERTY(Transient, Replicated, ReplicatedUsing=OnRep_ActiveDataLayerNames)
345 TArray<FName> RepActiveDataLayerNames;
346
347 UPROPERTY(Transient, Replicated, ReplicatedUsing=OnRep_LoadedDataLayerNames)
348 TArray<FName> RepLoadedDataLayerNames;
349
350 // TSet do not support replication so we replicate an array and update the set in the OnRep_ActiveDataLayerNames/OnRep_LoadedDataLayerNames
351 TSet<FName> ActiveDataLayerNames;
352 TSet<FName> LoadedDataLayerNames;
353
354 TSet<FName> LocalActiveDataLayerNames;
355 TSet<FName> LocalLoadedDataLayerNames;
356
357 UPROPERTY(Transient, Replicated, ReplicatedUsing=OnRep_EffectiveActiveDataLayerNames)
358 TArray<FName> RepEffectiveActiveDataLayerNames;
359
360 UPROPERTY(Transient, Replicated, ReplicatedUsing=OnRep_EffectiveLoadedDataLayerNames)
361 TArray<FName> RepEffectiveLoadedDataLayerNames;
362
363 FWorldDataLayersEffectiveStates EffectiveStates;
364
365 int32 DataLayersStateEpoch;
366
367 static_assert(DATALAYER_TO_INSTANCE_RUNTIME_CONVERSION_ENABLED, "bHasDeprecatedDataLayers is deprecated and needs to be deleted.");
368 bool bHasDeprecatedDataLayers;
369
373 friend class UDataLayerEditorSubsystem;
375};
376
389
390
392
393#if WITH_EDITOR
394
395template <typename T, typename = int>
396struct HasDataLayerInstanceClass : std::false_type {};
397
398template <typename T>
399struct HasDataLayerInstanceClass<T, decltype(&T::GetDataLayerInstanceClass, 0)> : std::true_type {};
400
401template<class DataLayerInstanceType, typename ...CreationsArgs>
402DataLayerInstanceType* AWorldDataLayers::CreateDataLayer(CreationsArgs... InCreationArgs)
403{
404 UClass* ClassToUse = DataLayerInstanceType::StaticClass();
405 if constexpr (HasDataLayerInstanceClass<DataLayerInstanceType>::value)
406 ClassToUse = DataLayerInstanceType::GetDataLayerInstanceClass();
407 UPackage* ExternalPackage = nullptr;
408 UObject* OuterObject = this;
410
412 {
414 const ULevel* Level = GetLevel();
415 const bool bIsTransient = (Level->IsInstancedLevel() && !Level->IsPersistentLevel()) || Level->GetPackage()->HasAnyPackageFlags(PKG_PlayInEditor);
416 check(!bIsTransient);
417
418 // We generate a globally unique name to avoid any potential clash of 2 users creating the same object
420 FString ShortName = DataLayerInstanceType::StaticClass()->GetName() + TEXT("_UID_") + NewObjectGuid.ToString(EGuidFormats::UniqueObjectGuid);
422 GloballyUniqueObjectPath += OuterObject->GetPathName();
424 GloballyUniqueObjectPath += ShortName;
425
426 ExternalPackage = FExternalPackageHelper::CreateExternalPackage(OuterObject, *GloballyUniqueObjectPath, FExternalPackageHelper::GetDefaultExternalPackageFlags(), GetRootExternalDataLayerAsset());
428 NewObjectName = *ShortName;
429 }
430 else
431 {
432 NewObjectName = DataLayerInstanceType::MakeName(Forward<CreationsArgs>(InCreationArgs)...);
433 }
434
435 DataLayerInstanceType* NewDataLayer = NewObject<DataLayerInstanceType>(OuterObject, ClassToUse, NewObjectName, RF_Transactional, nullptr, /*bCopyTransientsFromClassDefaults*/false, /*InstanceGraph*/nullptr, ExternalPackage);
436 check(NewDataLayer != nullptr);
439
442 return NewDataLayer;
443}
444
445//todo_ow: Remove this
446template<class IdentifierType>
447void AWorldDataLayers::OverwriteDataLayerRuntimeStates(const TArray<IdentifierType>* InActiveDataLayers, const TArray<IdentifierType>* InLoadedDataLayers)
448{
449 if (GetLocalRole() == ROLE_Authority)
450 {
451 FlushNetDormancy();
452
453 // This should get called before game starts. It doesn't send out events
454 check(!GetWorld()->bMatchStarted);
455
457 {
458 ActiveDataLayerNames.Empty(InActiveDataLayers->Num());
460 {
464 if (DataLayerInstance && DataLayerInstance->IsRuntime())
465 {
466 ActiveDataLayerNames.Add(DataLayerInstance->GetDataLayerFName());
467 }
468 }
469 MARK_PROPERTY_DIRTY_FROM_NAME(AWorldDataLayers, RepActiveDataLayerNames, this);
470 RepActiveDataLayerNames = ActiveDataLayerNames.Array();
471 }
472
473
475 {
476 LoadedDataLayerNames.Empty(InLoadedDataLayers->Num());
478 {
482 if (DataLayerInstance && DataLayerInstance->IsRuntime())
483 {
484 LoadedDataLayerNames.Add(DataLayerInstance->GetDataLayerFName());
485 }
486 }
487 MARK_PROPERTY_DIRTY_FROM_NAME(AWorldDataLayers, RepLoadedDataLayerNames, this);
488 RepLoadedDataLayerNames = LoadedDataLayerNames.Array();
489 }
490
491 ForEachDataLayerInstance([this](class UDataLayerInstance* DataLayerInstance)
492 {
493 if (DataLayerInstance->IsRuntime())
494 {
495 ResolveEffectiveRuntimeState(DataLayerInstance, /*bNotifyChange*/false);
496 }
497 return true;
498 });
499
500 MARK_PROPERTY_DIRTY_FROM_NAME(AWorldDataLayers, RepEffectiveActiveDataLayerNames, this);
501 RepEffectiveActiveDataLayerNames = EffectiveStates.GetReplicatedEffectiveActiveDataLayerNames().Array();
502 MARK_PROPERTY_DIRTY_FROM_NAME(AWorldDataLayers, RepEffectiveLoadedDataLayerNames, this);
503 RepEffectiveLoadedDataLayerNames = EffectiveStates.GetReplicatedEffectiveLoadedDataLayerNames().Array();
504 }
505}
506
507#endif // WITH_EDITOR
OODEFFUNC typedef const int const char * function
Definition oodle2.h:710
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define check(expr)
Definition AssertionMacros.h:314
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define TEXT(x)
Definition Platform.h:1272
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 DATALAYER_TO_INSTANCE_RUNTIME_CONVERSION_ENABLED
Definition DataLayerInstance.h:14
EDataLayerRuntimeState
Definition DataLayerInstance.h:26
DIRECTLINK_API Display
Definition DirectLinkLog.h:8
#define PRAGMA_ENABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:12
#define PRAGMA_DISABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:8
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
@ PKG_PlayInEditor
Set if the package was created for the purpose of PIE.
Definition ObjectMacros.h:150
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UFUNCTION(...)
Definition ObjectMacros.h:745
@ RF_Transactional
Object is transactional.
Definition ObjectMacros.h:562
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define MARK_PROPERTY_DIRTY_FROM_NAME(ClassName, PropertyName, Object)
Definition PushModel.h:479
#define DEFINE_ACTORDESC_TYPE(ActorType, ActorDescType)
Definition WorldPartitionActorDescType.h:36
Definition WorldDataLayers.h:85
ENGINE_API EDataLayerRuntimeState GetDataLayerRuntimeStateByName(FName InDataLayerName) const
Definition WorldDataLayers.cpp:325
const TSet< FName > & GetActiveDataLayerNames() const
Definition WorldDataLayers.h:197
ENGINE_API bool IsExternalDataLayerWorldDataLayers() const
Definition WorldDataLayers.cpp:1072
static FName GetWorldPartitionWorldDataLayersName()
Definition WorldDataLayers.h:155
ENGINE_API bool SetDataLayerRuntimeState(const UDataLayerInstance *InDataLayerInstance, EDataLayerRuntimeState InState, bool bIsRecursive=false)
Definition WorldDataLayers.cpp:210
EDataLayerState GetDataLayerStateByName(FName InDataLayerName) const
Definition WorldDataLayers.h:194
const TSet< FName > & GetLoadedDataLayerNames() const
Definition WorldDataLayers.h:200
ENGINE_API const UDataLayerInstance * GetDataLayerInstance(const FName &InDataLayerInstanceName) const
Definition WorldDataLayers.cpp:975
static FName GetWorldPartionWorldDataLayersName()
Definition WorldDataLayers.h:153
void GetUserLoadedInEditorStates(TArray< FName > &OutDataLayersLoadedInEditor, TArray< FName > &OutDataLayersNotLoadedInEditor) const
Definition WorldDataLayers.h:225
ENGINE_API void ResetDataLayerRuntimeStates(bool bFlushNet=true)
Definition WorldDataLayers.cpp:190
ENGINE_API void OnRep_LoadedDataLayerNames()
Definition WorldDataLayers.cpp:318
ENGINE_API const UExternalDataLayerInstance * GetExternalDataLayerInstance(const UExternalDataLayerAsset *InExternalDataLayerAsset) const
Definition WorldDataLayers.cpp:1087
const TSet< FName > & GetEffectiveActiveDataLayerNames() const
Definition WorldDataLayers.cpp:376
int32 GetDataLayersStateEpoch() const
Definition WorldDataLayers.h:184
ENGINE_API void OnRep_EffectiveActiveDataLayerNames()
Definition WorldDataLayers.cpp:351
ENGINE_API void OnRep_EffectiveLoadedDataLayerNames()
Definition WorldDataLayers.cpp:358
ENGINE_API EDataLayerRuntimeState GetDataLayerEffectiveRuntimeStateByName(FName InDataLAyerName) const
Definition WorldDataLayers.cpp:365
ENGINE_API void ForEachDataLayerInstance(TFunctionRef< bool(UDataLayerInstance *)> Func)
Definition WorldDataLayers.cpp:1092
ENGINE_API bool ContainsDataLayer(const UDataLayerInstance *InDataLayer) const
Definition WorldDataLayers.cpp:956
ENGINE_API void InitializeDataLayerRuntimeStates()
Definition WorldDataLayers.cpp:133
void ForEachDataLayer(TFunctionRef< bool(UDataLayerInstance *)> Func)
Definition WorldDataLayers.h:164
ENGINE_API void OnRep_ActiveDataLayerNames()
Definition WorldDataLayers.cpp:311
ENGINE_API void OnDataLayerRuntimeStateChanged(const UDataLayerInstance *InDataLayer, EDataLayerRuntimeState InState)
ENGINE_API const UDataLayerInstance * GetDataLayerFromLabel(const FName &InDataLayerLabel) const
Definition WorldDataLayers.cpp:1620
PRAGMA_DISABLE_DEPRECATION_WARNINGS void SetDataLayerState(FActorDataLayer InDataLayer, EDataLayerState InState)
Definition WorldDataLayers.h:191
ENGINE_API const UDataLayerInstance * GetDataLayerInstanceFromAssetName(const FName &InDataLayerAssetPathName) const
Definition WorldDataLayers.cpp:1016
const TSet< FName > & GetEffectiveLoadedDataLayerNames() const
Definition WorldDataLayers.cpp:381
ENGINE_API void DumpDataLayers(FOutputDevice &OutputDevice) const
Definition WorldDataLayers.cpp:533
ENGINE_API TArray< FName > GetDataLayerInstanceNames(const TArray< FActorDataLayer > &InActorDataLayers) const
Definition WorldDataLayers.cpp:1644
Definition Archive.h:1208
Definition NameTypes.h:617
Definition UnrealType.h:3087
Definition OutputDevice.h:133
Definition Text.h:385
Definition DataLayerInstanceProviderInterface.h:19
virtual const UExternalDataLayerAsset * GetRootExternalDataLayerAsset() const
Definition DataLayerInstanceProviderInterface.cpp:13
Definition Array.h:670
Definition AssetRegistryState.h:50
Definition UnrealString.h.inl:34
Definition StringBuilder.h:509
Definition UniquePtr.h:107
Definition Class.h:3793
Definition DataLayer.h:52
Definition DataLayerAsset.h:30
Definition DataLayerManager.h:48
Definition ExternalDataLayerAsset.h:16
Definition ExternalDataLayerManager.h:27
Definition Level.h:423
Definition Object.h:95
Definition Package.h:216
Definition WorldPartitionStreamingPolicy.h:94
Definition WorldPartition.h:142
Definition World.h:918
ECompressionLevel Level
Definition OodleDataCompression.cpp:70
Definition ActorDataLayer.h:16
Definition WorldDataLayers.h:27
Definition World.h:419
Definition Guid.h:109
static CORE_API FGuid NewGuid()
Definition Guid.cpp:236
Definition WorldDataLayers.h:378
Definition WorldDataLayers.h:51
void SetReplicatedEffectiveLoadedDataLayerNames(const TArray< FName > &InRepEffectiveLoadedDataLayerNames)
Definition WorldDataLayers.cpp:1703
int32 GetUpdateEpoch() const
Definition WorldDataLayers.h:56
const TSet< FName > & GetAllEffectiveActiveDataLayerNames() const
Definition WorldDataLayers.cpp:1771
bool SetDataLayerEffectiveRuntimeState(FName InDataLayerName, bool bIsLocalDataLayer, EDataLayerRuntimeState NewEffectiveRuntimeState, EDataLayerRuntimeState &OutOldEffectiveRuntimeState)
Definition WorldDataLayers.cpp:1710
FWorldDataLayersEffectiveStates()
Definition WorldDataLayers.cpp:1690
const TSet< FName > & GetAllEffectiveLoadedDataLayerNames() const
Definition WorldDataLayers.cpp:1782
void SetReplicatedEffectiveActiveDataLayerNames(const TArray< FName > &InRepEffectiveActiveDataLayerNames)
Definition WorldDataLayers.cpp:1696
EDataLayerRuntimeState GetDataLayerEffectiveRuntimeStateByName(FName InDataLayerName) const
Definition WorldDataLayers.cpp:1745
const TSet< FName > & GetReplicatedEffectiveLoadedDataLayerNames() const
Definition WorldDataLayers.h:64
const TSet< FName > & GetReplicatedEffectiveActiveDataLayerNames() const
Definition WorldDataLayers.h:63
void Reset()
Definition WorldDataLayers.cpp:1736
Definition WorldPartitionRuntimeHash.h:166
Definition ObjectPtr.h:488
Definition WeakObjectPtrTemplates.h:25