30class TickingAreasManager {
38 enum class AreaLimitCheck :
int {
41 ActiveAndPendingStandalone = 2,
48 ::ll::TypedStorage<8, 16, ::mce::UUID> mUuid;
49 ::ll::TypedStorage<8, 32, ::std::string> mName;
50 ::ll::TypedStorage<4, 48, ::Bounds> mBounds;
51 ::ll::TypedStorage<1, 1, bool> mFinishedLoading;
52 ::ll::TypedStorage<1, 1, bool> mIsActive;
68 using ActivePerDimension = ::std::map<::DimensionType, ::std::shared_ptr<::TickingAreaList>>;
70 using PendingPerDimension = ::std::unordered_map<::DimensionType, ::std::vector<::PendingArea>>;
75 ::ll::TypedStorage<8, 16, ::std::map<::DimensionType, ::std::shared_ptr<::TickingAreaList>>> mActiveAreas;
76 ::ll::TypedStorage<8, 64, ::std::unordered_map<::DimensionType, ::std::vector<::PendingArea>>> mPendingAreas;
77 ::ll::TypedStorage<1, 1, bool> mIsPreloadDone;
78 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::LevelStorage>
const> mLevelStorage;
79 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mPostReloadActorAdded;
80 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnCanStartGameSaveTimerCheckSubscription;
85 TickingAreasManager();
92 MCAPI ::AddTickingAreaStatus _addArea(
94 ::std::string
const& name,
97 ::TickingAreasManager::AreaLimitCheck limitCheck,
99 ::TickingAreaLoadMode loadMode,
105 MCAPI ::std::string _findUsableDefaultName(
107 ::std::vector<::PendingArea>
const& pendingAreas
110 MCAPI ::std::vector<::TickingAreaDescription> _getPendingAreaDescriptionsFiltered(
115 MCAPI
void _postReloadActorAdded(
::Actor& actor);
117 MCAPI
void _processAdds(
::Level& level);
125 MCAPI ::AddTickingAreaStatus addArea(
127 ::std::string
const& name,
130 ::TickingAreasManager::AreaLimitCheck limitCheck,
132 ::TickingAreaLoadMode loadMode,
136 MCAPI ::AddTickingAreaStatus addArea(
138 ::std::string
const& name,
141 ::TickingAreasManager::AreaLimitCheck limitCheck,
143 ::TickingAreaLoadMode loadMode,
149 MCAPI
void addEntityArea(
154 float maxDistToPlayers,
158 MCAPI
void addTickingAreaListForDimension(
160 ::std::shared_ptr<::TickingAreaList>
const& tickingAreaList
163 MCAPI ::TickingAreasManager::ScopedContext addTransientScopedArea(
165 ::std::string
const& name,
171 MCAPI uint countStandaloneTickingAreas()
const;
173 MCAPI ::std::vector<::TickingAreaDescription>
174 getPendingStandaloneAreaDescriptions(
::DimensionType dimensionId)
const;
176 MCAPI ::std::vector<::TickingAreaDescription>
177 getPendingStandaloneAreaDescriptionsByName(
::DimensionType dimensionId, ::std::string
const& name)
const;
179 MCAPI ::std::vector<::TickingAreaDescription>
182 MCFOLD
bool isPreloadDone()
const;
184 MCAPI
void loadArea(::std::string
const& key,
::CompoundTag const* tag);
194 MCAPI ::std::vector<::TickingAreaDescription>
197 MCAPI ::std::vector<::TickingAreaDescription>
200 MCAPI
void removeScopedAreas(::std::vector<::mce::UUID>
const& uuids);
202 MCAPI ::std::vector<::TickingAreaDescription> setPendingAreaLoadModeByName(
204 ::std::string
const& name,
205 ::TickingAreaLoadMode loadMode,
209 MCAPI ::std::vector<::TickingAreaDescription> setPendingAreaLoadModeByPosition(
212 ::TickingAreaLoadMode loadMode,
216 MCAPI
void tick(
::Tick const& currentTick);
220 MCAPI ~TickingAreasManager();
226 MCAPI static ::TickingAreasManager::AreaLimitCheck getLimitCheck(
::Level const& level,
bool enforce);
Definition TickingAreasManager.h:44