20 : public UActorComponent {
30 UFUNCTION(BlueprintPure, Category =
"Cesium|Sub-levels")
31 TArray<ALevelInstance*> GetRegisteredSubLevels() const noexcept;
38 const TArray<TWeakObjectPtr<ALevelInstance>>&
39 GetRegisteredSubLevelsWeak() const noexcept {
40 return this->_sublevels;
46 UFUNCTION(BlueprintPure, Category =
"Cesium|Sub-levels")
47 ALevelInstance* GetCurrentSubLevel() const noexcept;
53 UFUNCTION(BlueprintPure, Category = "Cesium|Sub-levels")
54 ALevelInstance* GetTargetSubLevel() const noexcept;
60 UFUNCTION(BlueprintCallable, Category = "Cesium|Sub-levels")
61 void SetTargetSubLevel(ALevelInstance* LevelInstance) noexcept;
66 friend class UCesiumSubLevelComponent;
67 friend class CesiumEditorSubLevelMutex;
73 void RegisterSubLevel(ALevelInstance* pSubLevel) noexcept;
79 void UnregisterSubLevel(ALevelInstance* pSubLevel) noexcept;
81 virtual
void TickComponent(
83 enum ELevelTick TickType,
84 FActorComponentTickFunction* ThisTickFunction) override;
86 void _updateSubLevelStateGame();
88 void _updateSubLevelStateEditor();
96 _getLevelStreamingForSubLevel(ALevelInstance* SubLevel)
const;
99 UPROPERTY(Transient, DuplicateTransient, TextExportTransient)
100 TArray<TWeakObjectPtr<ALevelInstance>> _sublevels;
103 UPROPERTY(Transient, DuplicateTransient, TextExportTransient)
104 TWeakObjectPtr<ALevelInstance> _pCurrent =
nullptr;
107 UPROPERTY(DuplicateTransient, TextExportTransient)
108 TWeakObjectPtr<ALevelInstance> _pTarget =
nullptr;
110 bool _doExtraChecksOnNextTick =
false;
111 bool _isTransitioningSubLevels =
false;