18#include "Misc/Optional.h"
100 ENGINE_API virtual FString GetDescription()
const override;
104#include "LevelStreaming.generated.h"
142 enum class UE_DEPRECATED(5.2,
"ULevelStreaming::ECurrentState has been replaced by ELevelStreamingState")
178 struct FLevelAnnotation
180 FLevelAnnotation() {}
183 inline bool IsDefault()
194#if WITH_EDITORONLY_DATA
197 FName PackageName_DEPRECATED;
202 UPROPERTY(Category=
LevelStreaming, VisibleAnywhere, BlueprintReadOnly, meta=(DisplayName =
"Level", AllowPrivateAccess=
"true"))
231 bool bClientOnlyVisible;
233#if WITH_EDITORONLY_DATA
246 uint8 bIsRequestingUnloadAndRemoval:1;
249 mutable uint8 bHasCachedWorldAssetPackageFName:1;
252 mutable uint8 bHasCachedLoadedLevelPackageName:1;
254#if WITH_EDITORONLY_DATA
262 uint8 bShouldBeVisible:1;
270 uint8 bSkipClientUseMakingInvisibleTransactionRequest:1;
273 uint8 bSkipClientUseMakingVisibleTransactionRequest:1;
324 uint8 bGarbageCollectionClusteringEnabled : 1;
326#if WITH_EDITORONLY_DATA
341 UPROPERTY(EditAnywhere, AdvancedDisplay, Category=
LevelStreaming, meta=(ClampMin = "0", UIMin = "0", UIMax = "10"))
342 float MinTimeBetweenVolumeUnloadRequests;
345 float LastVolumeUnloadRequestTime;
347#if WITH_EDITORONLY_DATA
367 UE_DEPRECATED(5.2,
"ULevelStreaming::ECurrentState has been replaced by ELevelStreamingState. Use GetLevelStreamingState instead.")
381 ENGINE_API virtual bool RequestVisibilityChange(
bool bVisible);
392 ENGINE_API bool ShouldClientUseMakingInvisibleTransactionRequest()
const;
394 ENGINE_API bool ShouldClientUseMakingVisibleTransactionRequest()
const;
475 return (LoadedLevel || PendingUnloadLevel);
481 return AsyncRequestIDs;
486 bool GetIsRequestingUnloadAndRemoval()
const {
return bIsRequestingUnloadAndRemoval; }
492#if WITH_EDITORONLY_DATA
514 ENGINE_API FString GetWorldAssetPackageName()
const;
517 UFUNCTION(BlueprintCallable, Category =
"Game")
536 virtual bool ShouldBeLoaded()
const {
return true; }
544 ENGINE_API virtual bool ShouldBeVisible()
const;
554 UFUNCTION(BlueprintCallable, Category=
"Game")
555 ULevel* GetLoadedLevel()
const {
return LoadedLevel; }
575 return Candidate->GetWorldAssetPackageFName() == PackageName;
592 bool IsLevelLoaded()
const {
return (LoadedLevel !=
nullptr); }
595 UFUNCTION(BlueprintCallable, Category=
"Game")
596 ENGINE_API bool IsStreamingStatePending() const;
603 UFUNCTION(BlueprintPure, meta = (BlueprintInternalUseOnly = "
true"))
607 ENGINE_API bool IsValidStreamingLevel() const;
651 static ENGINE_API bool DefaultAllowClientUseMakingInvisibleTransactionRequests();
654 static ENGINE_API bool DefaultAllowClientUseMakingVisibleTransactionRequests();
756#if WITH_EDITORONLY_DATA
764 mutable FName CachedWorldAssetPackageFName;
767 mutable FName CachedLoadedLevelPackageName;
773 ENGINE_API bool IsConcernedByNetVisibilityTransactionAck()
const;
802 static void OnLevelAdded(
ULevelStreaming* StreamingLevel) { StreamingLevel->OnLevelAdded(); }
804 static void OnLevelRemoved(
ULevelStreaming* StreamingLevel) { StreamingLevel->OnLevelRemoved(); }
806 static bool UpdateTargetState(
ULevelStreaming* StreamingLevel) {
return StreamingLevel->UpdateTargetState(); }
#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 DECLARE_DYNAMIC_MULTICAST_DELEGATE(DelegateName)
Definition DelegateCombinations.h:38
return true
Definition ExternalRpcRegistry.cpp:601
auto Response
Definition ExternalRpcRegistry.cpp:598
ENGINE_API const TCHAR * EnumToString(ELevelStreamingState InState)
Definition LevelStreaming.cpp:1246
ELevelStreamingState
Definition LevelStreaming.h:111
ENetLevelVisibilityRequest
Definition LevelStreaming.h:29
ELevelStreamingTargetState
Definition LevelStreaming.h:124
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
EStreamingStatus
Definition ProfilingHelpers.h:16
uint32 Offset
Definition VulkanMemory.cpp:4033
Definition LevelStreamingVolume.h:30
Definition PlayerController.h:261
Definition Archive.h:1208
Definition NameTypes.h:617
Definition PackagePath.h:89
Definition LatentActions.h:73
Definition LevelStreaming.h:54
static ENGINE_API FString MakeSafeLevelName(const FName &InLevelName, UWorld *InWorld)
Definition LevelStreaming.cpp:277
ENGINE_API void ActivateLevel(ULevelStreaming *LevelStreamingObject)
Definition LevelStreaming.cpp:303
static ENGINE_API ULevelStreaming * FindAndCacheLevelStreamingObject(const FName LevelName, UWorld *InWorld)
Definition LevelStreaming.cpp:244
FName LevelName
Definition LevelStreaming.h:60
virtual ENGINE_API void UpdateOperation(FLatentResponse &Response) override
Definition LevelStreaming.cpp:215
FLatentActionInfo LatentInfo
Definition LevelStreaming.h:62
bool bMakeVisibleAfterLoad
Definition LevelStreaming.h:57
TWeakObjectPtr< ULevelStreaming > Level
Definition LevelStreaming.h:59
ENGINE_API bool UpdateLevel(ULevelStreaming *LevelStreamingObject)
Definition LevelStreaming.cpp:365
bool bLoading
Definition LevelStreaming.h:56
bool bShouldBlock
Definition LevelStreaming.h:58
Definition UObjectAnnotation.h:33
Definition WorldPartitionRuntimeCellInterface.h:19
Definition LevelStreaming.h:139
virtual const IWorldPartitionCell * GetWorldPartitionCell() const
Definition LevelStreaming.h:356
virtual ENGINE_API bool RequestLevel(UWorld *PersistentWorld, bool bAllowLevelLoadRequests, EReqLevelBlock BlockPolicy)
Definition LevelStreaming.cpp:1551
friend bool operator==(ELevelStreamingState A, ECurrentState B)
Definition LevelStreaming.h:156
friend bool operator!=(ELevelStreamingState A, ECurrentState B)
Definition LevelStreaming.h:164
virtual bool ShouldBeAlwaysLoaded() const
Definition LevelStreaming.h:548
const TArray< int32 > & GetAsyncRequestIDs() const
Definition LevelStreaming.h:479
virtual void OnCurrentStateChanged(ELevelStreamingState OldState, ELevelStreamingState NewState)
Definition LevelStreaming.h:720
friend bool operator==(ECurrentState A, ELevelStreamingState B)
Definition LevelStreaming.h:160
friend bool operator!=(ECurrentState A, ELevelStreamingState B)
Definition LevelStreaming.h:168
virtual bool ShouldBlockOnUnload() const
Definition LevelStreaming.h:546
virtual ENGINE_API void SetLoadedLevel(ULevel *Level)
Definition LevelStreaming.cpp:1367
virtual bool ShouldRequireFullVisibilityToRender() const
Definition LevelStreaming.h:437
EReqLevelBlock
Definition LevelStreaming.h:684
@ BlockAlwaysLoadedLevelsOnly
Definition LevelStreaming.h:686
@ AlwaysBlock
Definition LevelStreaming.h:688
@ NeverBlock
Definition LevelStreaming.h:690
int32 GetLevelLODIndex() const
Definition LevelStreaming.h:450
void ClearLoadedLevel()
Definition LevelStreaming.h:558
bool GetShouldBeVisibleFlag() const
Definition LevelStreaming.h:430
virtual void OnLevelLoadedChanged(ULevel *Level)
Definition LevelStreaming.h:717
bool HasLoadRequestPending() const
Definition LevelStreaming.h:470
bool HasLoadedLevel() const
Definition LevelStreaming.h:473
virtual bool CanReplicateStreamingStatus() const
Definition LevelStreaming.h:440
int32 GetPriority() const
Definition LevelStreaming.h:457
const TSoftObjectPtr< UWorld > & GetWorldAsset() const
Definition LevelStreaming.h:508
Definition UObjectGlobals.h:692
Definition AsyncRegisterLevelContext.cpp:16
@ false
Definition radaudio_common.h:23
Definition LevelStreaming.h:784
Definition LatentActionManager.h:19
Definition LatentActions.h:10
Definition LevelStreaming.h:35
bool bHasClientPendingRequest
Definition LevelStreaming.h:41
TOptional< bool > ClientAckedRequestCanMakeVisible
Definition LevelStreaming.h:36
void InvalidateClientPendingRequest()
Definition LevelStreaming.h:43
TOptional< ENetLevelVisibilityRequest > PendingRequestType
Definition LevelStreaming.h:37
uint32 ClientPendingRequestIndex
Definition LevelStreaming.h:39
uint32 ServerRequestIndex
Definition LevelStreaming.h:38
uint32 ClientAckedRequestIndex
Definition LevelStreaming.h:40
Definition UpdateLevelVisibilityLevelInfo.h:10
Definition UnrealType.h:6865
Definition LevelStreaming.h:794
Definition ObjectPtr.h:488
Definition Optional.h:131
void Reset()
Definition Optional.h:306
Definition SoftObjectPtr.h:174
Definition WeakObjectPtrTemplates.h:25
Definition LevelStreaming.h:567
FName PackageName
Definition LevelStreaming.h:578
FPackageNameMatcher(const FName &InPackageName)
Definition LevelStreaming.h:568
bool operator()(const ULevelStreaming *Candidate) const
Definition LevelStreaming.h:573