15#include "Algo/AnyOf.h"
17#include "WorldPartitionRuntimeCell.generated.h"
21class UDataLayerInstance;
22class UExternalDataLayerInstance;
26class FStreamingGenerationActorDescView;
47#if WITH_EDITORONLY_DATA
55#if WITH_EDITORONLY_DATA
78#if WITH_EDITORONLY_DATA
80 , bIsEditorOnly(
false)
97#if WITH_EDITORONLY_DATA
113#if WITH_EDITORONLY_DATA
160 FName ContainerPackage;
172 FGuid ActorInstanceGuid;
234UCLASS(Abstract, MinimalAPI)
246 static_assert(!std::is_same<T, UWorld>::value,
"Use GetOuterWorld instead");
247 static_assert(!std::is_same<T, UWorldPartition>::value,
"Use GetOuterWorld()->GetWorldPartition() instead");
248 return Super::GetTypedOuter<T>();
253 virtual bool CanUnload()
const PURE_VIRTUAL(UWorldPartitionRuntimeCell::CanUnload,
return true;);
256 virtual ULevel* GetLevel()
const PURE_VIRTUAL(UWorldPartitionRuntimeCell::GetLevel,
return nullptr;);
259 virtual bool IsAlwaysLoaded()
const {
return bIsAlwaysLoaded; }
260 virtual bool IsSpatiallyLoaded()
const {
return bIsSpatiallyLoaded; }
266 bool GetClientOnlyVisible()
const {
return bClientOnlyVisible; }
267 virtual FGuid const& GetContentBundleID()
const {
return ContentBundleID; }
272 ENGINE_API virtual const UExternalDataLayerInstance* GetExternalDataLayerInstance()
const override;
275 ENGINE_API virtual bool HasContentBundle()
const override;
276 virtual const TArray<FName>& GetDataLayers()
const override {
return GetDataLayersInline(); }
277 virtual FName GetExternalDataLayer()
const override {
return DataLayers.GetExternalDataLayer(); }
283 ENGINE_API virtual FString GetDebugName()
const override;
290 inline bool HasDataLayers()
const {
return !DataLayers.IsEmpty(); }
294 virtual bool IsLoading()
const {
return false; }
296 virtual bool IsAddedToWorld()
const {
return false; }
298 virtual bool CanAddToWorld()
const {
return false; }
299 UE_DEPRECATED(5.5,
"Use version that takes FWorldPartitionStreamingContext instead.")
301 UE_DEPRECATED(5.5,
"Use version that takes FWorldPartitionStreamingContext instead.")
306 bool GetBlockOnSlowLoading()
const {
return bBlockOnSlowLoading; }
321 UE_DEPRECATED(5.4,
"Implement FStreamingGenerationActorDescView version instead")
326 virtual void Fixup()
PURE_VIRTUAL(UWorldPartitionRuntimeCell::Fixup, );
327 virtual int32 GetActorCount()
const PURE_VIRTUAL(UWorldPartitionRuntimeCell::GetActorCount,
return 0;);
330 UE_DEPRECATED(5.5,
"Use version with IWorldPartitionCookPackageContext")
333 UE_DEPRECATED(5.4,
"PopulateGeneratorPackageForCook is deprecated, it was replaced by OnPrepareGeneratorPackageForCook")
335 UE_DEPRECATED(5.4,
"PopulateGeneratedPackageForCook is deprecated, it was replaced by OnPopulateGeneratedPackageForCook")
340 virtual const UExternalDataLayerAsset* GetExternalDataLayerAsset()
const override {
return ExternalDataLayerAsset; }
352 bool GetIsHLOD()
const {
return bIsHLOD; }
355 bool GetIsCustomHLODPlaceholderCell()
const {
return bIsCustomHLODPlaceholderCell; }
357 const FGuid& GetGuid()
const {
return CellGuid; }
360 const FLinearColor& GetCellDebugColor()
const {
return CellDebugColor; }
363 const FGuid& GetSourceCellGuid()
const {
return SourceCellGuid; }
366#if !UE_BUILD_SHIPPING
370#if WITH_EDITORONLY_DATA
392 bool bIsSpatiallyLoaded;
399 bool bClientOnlyVisible;
405 bool bIsCustomHLODPlaceholderCell;
408 bool bBlockOnSlowLoading;
411 FGuid ContentBundleID;
424#if !UE_BUILD_SHIPPING
430 FName LevelPackageName;
433#if WITH_EDITORONLY_DATA
454 inline FBox GetStreamingBounds()
const {
return bIsCustomHLODPlaceholderCell ? RuntimeCellData->GetCellBounds() : RuntimeCellData->GetStreamingBounds(); }
460 UE_DEPRECATED(5.5,
"Use version that takes FWorldPartitionStreamingContext instead.")
#define PURE_VIRTUAL(func,...)
Definition CoreMiscDefines.h:103
#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
EDataLayerRuntimeState
Definition DataLayerInstance.h:26
return true
Definition ExternalRpcRegistry.cpp:601
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
EStreamingStatus
Definition ProfilingHelpers.h:16
@ LEVEL_Unloaded
Definition ProfilingHelpers.h:17
bool IsLoading()
Definition UObjectGlobals.cpp:2087
EWorldPartitionRuntimeCellState
Definition WorldPartitionRuntimeCell.h:202
EWorldPartitionRuntimeCellVisualizeMode
Definition WorldPartitionRuntimeCell.h:33
EWorldPartitionDataLayersLogicOperator
Definition WorldPartition.h:89
Definition NameTypes.h:617
Definition WorldPartitionStreamingSource.h:11
Definition WorldPartitionRuntimeCellInterface.h:19
Definition WorldPartitionCookPackageInterface.h:19
Definition ActorDescContainer.h:40
Definition DataLayerAsset.h:30
Definition DataLayerManager.h:48
Definition ExternalDataLayerAsset.h:16
T * GetTypedOuter() const
Definition UObjectBaseUtility.h:537
virtual void PostDuplicate(bool bDuplicateForPIE)
Definition Object.h:538
Definition WorldPartitionRuntimeCellData.h:16
Definition WorldPartitionRuntimeCell.h:236
void AppendStreamingSourceInfo(const FWorldPartitionStreamingSource &Source, const FSphericalSector &SourceShape, const FWorldPartitionStreamingContext &Context) const
Definition WorldPartitionRuntimeCell.h:443
EDataLayerRuntimeState EffectiveWantedState
Definition WorldPartitionRuntimeCell.h:438
int32 EffectiveWantedStateEpoch
Definition WorldPartitionRuntimeCell.h:439
void MergeStreamingSourceInfo() const
Definition WorldPartitionRuntimeCell.h:444
EDataLayerRuntimeState GetCellEffectiveWantedStateRaw() const
Definition WorldPartitionRuntimeCell.h:386
FBox GetCellBounds() const
Definition WorldPartitionRuntimeCell.h:451
virtual bool ShouldServerWaitForClientLevelVisibility() const
Definition WorldPartitionRuntimeCell.h:384
const TArray< FName > & GetDataLayersInline() const
Definition WorldPartitionRuntimeCell.h:376
float DebugStreamingPriority
Definition WorldPartitionRuntimeCell.h:426
const FBox & GetContentBounds() const
Definition WorldPartitionRuntimeCell.h:448
FBox GetStreamingBounds() const
Definition WorldPartitionRuntimeCell.h:454
Definition WorldPartitionStreamingPolicy.h:94
Definition WorldPartition.h:142
UE_REWRITE bool AnyOf(const RangeType &Range)
Definition AnyOf.h:20
Definition WorldPartitionActorContainerID.h:44
Definition WorldPartitionActorContainerID.h:9
Definition DataLayerInstanceNames.h:10
Definition HierarchicalLogArchive.h:14
constexpr FLinearColor CopyWithNewOpacity(float NewOpacity) const
Definition Color.h:290
static CORE_API const FLinearColor Black
Definition Color.h:458
Definition WorldPartitionRuntimeSpatialHash.h:132
Definition TopLevelAssetPath.h:38
Definition WorldPartitionRuntimeCell.h:210
Definition WorldPartitionRuntimeCell.h:74
FWorldPartitionRuntimeCellObjectMapping(FName InPackage, FName InPath, const FTopLevelAssetPath &InBaseClass, const FTopLevelAssetPath &InNativeClass, const FActorContainerID &InContainerID, const FTransform &InContainerTransform, const FTransform &InEditorOnlyParentTransform, FName InContainerPackage, FName InWorldPackage, const FGuid &InActorInstanceGuid, bool bInIsEditorOnly)
Definition WorldPartitionRuntimeCell.h:84
Definition WorldPartitionRuntimeCell.h:40
FWorldPartitionRuntimeCellPropertyOverride(const FActorContainerID &InOwnerContainerID, const FString &InAssetPath, FName InPackageName, const FActorContainerPath &InContainerPath)
Definition WorldPartitionRuntimeCell.h:46
Definition WorldPartitionRuntimeHash.h:166
Definition WorldPartitionStreamingSource.h:344
Definition ObjectPtr.h:488