UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ExternalDataLayerEngineSubsystem.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "CoreFwd.h"
6#include "UObject/ObjectKey.h"
9#include "Tickable.h"
11
12#include "ExternalDataLayerEngineSubsystem.generated.h"
13
14struct FAssetData;
16
23
24UCLASS(Config = Engine, MinimalAPI)
26{
28
29public:
31
32#if WITH_EDITOR
34 ENGINE_API virtual void Deinitialize() override;
35
36 virtual bool IsTickableInEditor() const override { return true; }
37 virtual UWorld* GetTickableGameObjectWorld() const override;
38#endif
39 virtual bool IsTickable() const override;
40 virtual void Tick(float DeltaTime) override;
42 virtual TStatId GetStatId() const override;
43
44 ENGINE_API void RegisterExternalDataLayerAsset(const UExternalDataLayerAsset* InExternalDataLayerAsset, const UObject* InClient);
45 ENGINE_API void UnregisterExternalDataLayerAsset(const UExternalDataLayerAsset* InExternalDataLayerAsset, const UObject* InClient);
46 ENGINE_API void ActivateExternalDataLayerAsset(const UExternalDataLayerAsset* InExternalDataLayerAsset, const UObject* InClient);
47 ENGINE_API void DeactivateExternalDataLayerAsset(const UExternalDataLayerAsset* InExternalDataLayerAsset, const UObject* InClient);
48 ENGINE_API bool IsExternalDataLayerAssetRegistered(const UExternalDataLayerAsset* InExternalDataLayerAsset, const UObject* InClient = nullptr) const;
49 ENGINE_API bool IsExternalDataLayerAssetActive(const UExternalDataLayerAsset* InExternalDataLayerAsset, const UObject* InClient = nullptr) const;
50 ENGINE_API EExternalDataLayerRegistrationState GetExternalDataLayerAssetRegistrationState(const UExternalDataLayerAsset* InExternalDataLayerAsset) const;
51 ENGINE_API TArray<UObject*> GetClientsForExternalDataLayerAsset(const UExternalDataLayerAsset* InExternalDataLayerAsset) const;
52
55
58 ENGINE_API bool CanInjectOverride(const UWorld* InWorld, const UExternalDataLayerAsset* InExternalDataLayerAsset, bool& bOutOverrideValue) const;
59
60private:
61#if WITH_EDITOR
62 void OnAssetsPreDelete(const TArray<UObject*>& Objects);
65#endif
66 ENGINE_API bool CanWorldInjectExternalDataLayerAsset(const UWorld* InWorld, const UExternalDataLayerAsset* InExternalDataLayerAsset, FText* OutFailureReason = nullptr) const;
67
68#if WITH_EDITORONLY_DATA
69 UPROPERTY(Config)
71
74#endif
75
76 struct FRegisteredExternalDataLayers
77 {
78 TSet<FObjectKey> RegisteredClients;
79 TSet<FObjectKey> ActiveClients;
81 };
82
83 using FRegisteredExternalDataLayerAssetMap = TMap<TObjectPtr<const UExternalDataLayerAsset>, FRegisteredExternalDataLayers>;
84 const FRegisteredExternalDataLayerAssetMap& GetRegisteredExternalDataLayerAssets() const { return ExternalDataLayerAssets; }
85
86 FRegisteredExternalDataLayerAssetMap ExternalDataLayerAssets;
87
88#if WITH_EDITOR
90
93
96#endif
97
99 friend class UGameFeatureActionConvertContentBundleWorldPartitionBuilder;
100};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EExternalDataLayerRegistrationState
Definition ExternalDataLayerEngineSubsystem.h:18
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
ETickableTickType
Definition Tickable.h:20
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition Engine.Build.cs:7
Definition IDelegateInstance.h:14
Definition SubsystemCollection.h:15
Definition Text.h:385
Definition Tickable.h:135
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition SubclassOf.h:30
Definition EngineSubsystem.h:22
Definition ExternalDataLayerAsset.h:16
Definition ExternalDataLayerEngineSubsystem.h:26
DECLARE_MULTICAST_DELEGATE_ThreeParams(FExternalDataLayerAssetRegistrationStateChangedEventDelegate, const UExternalDataLayerAsset *ExternalDataLayerAsset, EExternalDataLayerRegistrationState OldState, EExternalDataLayerRegistrationState NewState)
virtual ETickableTickType GetTickableTickType() const override
Definition ExternalDataLayerEngineSubsystem.h:41
FExternalDataLayerOverrideInjectionDelegate OnExternalDataLayerOverrideInjection
Definition ExternalDataLayerEngineSubsystem.h:57
FExternalDataLayerAssetRegistrationStateChangedEventDelegate OnExternalDataLayerAssetRegistrationStateChanged
Definition ExternalDataLayerEngineSubsystem.h:54
DECLARE_MULTICAST_DELEGATE_ThreeParams(FExternalDataLayerOverrideInjectionDelegate, const UWorld *InWorld, const UExternalDataLayerAsset *InExternalDataLayerAsset, bool &bOutOverrideValue)
Definition ExternalDataLayerManager.h:27
COREUOBJECT_API bool IsTemplate(EObjectFlags TemplateTypes=RF_ArchetypeObject|RF_ClassDefaultObject) const
Definition UObjectBaseUtility.cpp:290
Definition Object.h:95
Definition World.h:918
Definition AssetData.h:162
Definition ObjectPtr.h:488
Definition LightweightStats.h:416
Definition Tuple.h:652