29class TickingAreasManager {
37 enum class AreaLimitCheck :
int {
40 ActiveAndPendingStandalone = 2,
47 ::ll::TypedStorage<8, 16, ::mce::UUID> mUuid;
48 ::ll::TypedStorage<8, 32, ::std::string> mName;
49 ::ll::TypedStorage<4, 48, ::Bounds> mBounds;
50 ::ll::TypedStorage<1, 1, bool> mFinishedLoading;
51 ::ll::TypedStorage<1, 1, bool> mIsActive;
67 using ActivePerDimension = ::std::map<::DimensionType, ::std::shared_ptr<::TickingAreaList>>;
69 using PendingPerDimension = ::std::unordered_map<::DimensionType, ::std::vector<::PendingArea>>;
74 ::ll::TypedStorage<8, 16, ::std::map<::DimensionType, ::std::shared_ptr<::TickingAreaList>>> mActiveAreas;
75 ::ll::TypedStorage<8, 64, ::std::unordered_map<::DimensionType, ::std::vector<::PendingArea>>> mPendingAreas;
76 ::ll::TypedStorage<1, 1, bool> mIsPreloadDone;
77 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::LevelStorage>
const> mLevelStorage;
78 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mPostReloadActorAdded;
79 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnCanStartGameSaveTimerCheckSubscription;
84 TickingAreasManager();
91 MCAPI ::AddTickingAreaStatus _addArea(
92 ::DimensionType dimensionId,
93 ::std::string
const& name,
96 ::TickingAreasManager::AreaLimitCheck limitCheck,
98 ::TickingAreaLoadMode loadMode,
104 MCAPI ::std::string _findUsableDefaultName(
106 ::std::vector<::PendingArea>
const& pendingAreas
109 MCAPI ::std::vector<::TickingAreaDescription> _getPendingAreaDescriptionsFiltered(
110 ::DimensionType dimensionId,
115 _hasPendingTickingAreaNamed(::std::string
const& name, ::std::vector<::PendingArea>
const& dimensionAreas)
const;
117 MCAPI
void _postReloadActorAdded(
::Actor& actor);
119 MCAPI
void _processAdds(
::Level& level);
127 MCAPI
void addEntityArea(::DimensionType dimensionId,
::Actor const& actor,
::LevelStorage& levelStorage);
129 MCAPI
void addEntityArea(
130 ::DimensionType dimensionId,
134 float maxDistToPlayers,
138 MCAPI ::TickingAreasManager::ScopedContext addTransientScopedArea(
139 ::DimensionType dimensionId,
140 ::std::string
const& name,
146 MCAPI uint countActiveStandaloneTickingAreas()
const;
148 MCAPI uint countStandaloneTickingAreas()
const;
150 MCAPI
void onTickingEntityAdded(::DimensionType dimensionId,
::Actor& actor,
::LevelStorage& levelStorage);
156 MCAPI ::std::vector<::TickingAreaDescription>
157 removePendingAreaByName(::DimensionType dimensionId, ::std::string
const& name,
::LevelStorage& levelStorage);
159 MCAPI ::std::vector<::TickingAreaDescription>
162 MCAPI
void removeScopedAreas(::std::vector<::mce::UUID>
const& uuids);
164 MCAPI ::std::vector<::TickingAreaDescription> setPendingAreaLoadModeByName(
165 ::DimensionType dimensionId,
166 ::std::string
const& name,
167 ::TickingAreaLoadMode loadMode,
171 MCAPI ::std::vector<::TickingAreaDescription> setPendingAreaLoadModeByPosition(
172 ::DimensionType dimensionId,
174 ::TickingAreaLoadMode loadMode,
184 MCAPI static ::TickingAreasManager::AreaLimitCheck getLimitCheck(
::Level const& level,
bool enforce);
Definition TickingAreasManager.h:43