17#include "WorldDataLayers.generated.h"
20class UDataLayerInstance;
21class UDataLayerInstanceWithAsset;
23class UExternalDataLayerInstance;
37 FName CurrentColorizedDataLayerInstanceName;
44 DataLayerInstanceNames.Reset();
46 CurrentColorizedDataLayerInstanceName =
NAME_None;
68 TSet<FName> ReplicatedEffectiveActiveDataLayerNames;
69 TSet<FName> ReplicatedEffectiveLoadedDataLayerNames;
74 mutable int32 AllEffectiveActiveDataLayerNamesEpoch;
75 mutable int32 AllEffectiveLoadedDataLayerNamesEpoch;
76 mutable TSet<FName> AllEffectiveActiveDataLayerNames;
77 mutable TSet<FName> AllEffectiveLoadedDataLayerNames;
83UCLASS(
hidecategories = (
Actor,
HLOD, Cooking,
Transform, Advanced,
Display, Events,
Object,
Physics, Attachment,
Info,
Input, Blueprint, Layers,
Tags, Replication), notplaceable, MinimalAPI)
99 virtual bool IsEditorOnly()
const override;
102 virtual bool IsUserManaged()
const override {
return false; }
152 UE_DEPRECATED(5.4,
"Use GetWorldPartitionWorldDataLayersName() instead.")
163 UE_DEPRECATED(5.4,
"Use ForEachDataLayerInstance() instead.")
166 UE_DEPRECATED(5.4,
"Use ForEachDataLayerInstance() instead.")
190 UE_DEPRECATED(5.0,
"Use SetDataLayerRuntimeState() instead.")
193 UE_DEPRECATED(5.0,
"Use GetDataLayerRuntimeStateByName() instead.")
196 UE_DEPRECATED(5.0,
"Use GetEffectiveActiveDataLayerNames() instead.")
199 UE_DEPRECATED(5.0,
"Use GetEffectiveLoadedDataLayerNames() instead.")
203 UE_DEPRECATED(5.1,
"Convert DataLayer using UDataLayerToAssetCommandlet and use UDataLayerInstance* overload instead.")
207 UE_DEPRECATED(5.1,
"Convert DataLayer using UDataLayerToAssetCommandlet and use UDataLayerInstance* overload instead.")
224 UE_DEPRECATED(5.3, "This
function has been deprecated.")
246 enum class ESetDataLayerRuntimeStateError
249 ClientOnlyFromServer,
250 ServerOnlyFromClient,
251 AuthoritativeFromClient
257 bool AddExternalDataLayerInstance(UExternalDataLayerInstance* ExternalDataLayerInstance);
258 bool RemoveExternalDataLayerInstance(UExternalDataLayerInstance* ExternalDataLayerInstance);
266 ENGINE_API void OnDataLayerManagerInitialized();
267 ENGINE_API void OnDataLayerManagerDeinitialized();
269 ENGINE_API void DumpDataLayerRecursively(
const UDataLayerInstance* DataLayer, FString Prefix,
FOutputDevice& OutputDevice)
const;
270 bool CanChangeDataLayerRuntimeState(
const UDataLayerInstance*
InDataLayerInstance, ESetDataLayerRuntimeStateError*
OutReason =
nullptr)
const;
275 virtual const UExternalDataLayerInstance* GetRootExternalDataLayerInstance()
const override {
return RootExternalDataLayerInstance; }
292 friend class UDataLayerInstanceWithAsset;
304#if WITH_EDITORONLY_DATA
319 TObjectPtr<UExternalDataLayerInstance> RootExternalDataLayerInstance;
322 TSet<
TObjectPtr<UDataLayerInstance>> DataLayerInstances;
326 TSet<
TObjectPtr<UDataLayerInstance>> ExternalPackageDataLayerInstances;
330 TArray<
TObjectPtr<UDataLayerInstance>> LoadedExternalPackageDataLayerInstances;
351 TSet<
FName> ActiveDataLayerNames;
352 TSet<
FName> LoadedDataLayerNames;
354 TSet<
FName> LocalActiveDataLayerNames;
355 TSet<
FName> LocalLoadedDataLayerNames;
365 int32 DataLayersStateEpoch;
368 bool bHasDeprecatedDataLayers;
395template <
typename T,
typename =
int>
405 if constexpr (HasDataLayerInstanceClass<DataLayerInstanceType>::value)
406 ClassToUse = DataLayerInstanceType::GetDataLayerInstanceClass();
416 check(!bIsTransient);
446template<
class IdentifierType>
454 check(!GetWorld()->bMatchStarted);
470 RepActiveDataLayerNames = ActiveDataLayerNames.Array();
488 RepLoadedDataLayerNames = LoadedDataLayerNames.Array();
495 ResolveEffectiveRuntimeState(DataLayerInstance, false);
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
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
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 DataLayerInstanceProviderInterface.h:19
virtual const UExternalDataLayerAsset * GetRootExternalDataLayerAsset() const
Definition DataLayerInstanceProviderInterface.cpp:13
Definition AssetRegistryState.h:50
Definition UnrealString.h.inl:34
Definition StringBuilder.h:509
Definition UniquePtr.h:107
Definition DataLayer.h:52
Definition DataLayerAsset.h:30
Definition DataLayerManager.h:48
Definition ExternalDataLayerAsset.h:16
Definition ExternalDataLayerManager.h:27
Definition WorldPartitionStreamingPolicy.h:94
Definition WorldPartition.h:142
ECompressionLevel Level
Definition OodleDataCompression.cpp:70
Definition ActorDataLayer.h:16
Definition WorldDataLayers.h:27
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