34 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::Util::NameIdStore<::DimensionIdType>>>>
35 mDimensionNameIdStore;
36 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::DimensionRegistry>>> mDimensionRegistry;
37 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IDimensionFactory>
const> mDimensionFactory;
38 ::ll::TypedStorage<8, 16, ::DimensionDefinitionGroup> mDimensionDefinitionGroup;
43 mOnReadyForCustomDimensionRegistrationPublisher;
48 mOnNewDimensionCreatedPublisher;
49 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnLevelStorageSaveSubscription;
50 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnLevelStorageStartLeaveGameSubscription;
60 virtual ~DimensionManager() =
default;
62 virtual ::Bedrock::PubSub::Connector<void(::DimensionManager&)>&
63 getOnReadyForCustomDimensionRegistrationConnector() ;
65 virtual ::Bedrock::PubSub::Connector<void(
::Dimension&)>& getOnNewDimensionCreatedConnector() ;
71 MCAPI
explicit DimensionManager(::Bedrock::NotNullNonOwnerPtr<::IDimensionFactory> dimensionFactory);
74 MCAPI DimensionManager(
75 ::Bedrock::NotNullNonOwnerPtr<::IDimensionFactory> dimensionFactory,
80 MCAPI
bool _registerCustomDimensionWithDimensionDefinitionGroup(
81 ::std::string_view name,
86 MCAPI
void _registerCustomDimensionWithFactory(::std::string_view name,
::DimensionType type);
89 MCAPI
void _registerFixedVanillaDimensionIds();
92 MCFOLD
void forEachDimension(::std::function<
bool(
::Dimension&)> callback);
94 MCFOLD
void forEachDimension(::std::function<
bool(
::Dimension const&)> callback)
const;
96 MCAPI ::WeakRef<::Dimension> getDimension(
::DimensionType dimensionType)
const;
99 MCAPI ::std::optional<::DimensionDefinitionGroup::DimensionDefinition>
103 MCAPI ::WeakRef<::Dimension> getOrCreateDimension(::std::string_view dimensionName);
105 MCAPI ::WeakRef<::Dimension> getOrCreateDimension(
::DimensionType dimensionType);
107 MCAPI
void serverInitialize(
112 MCAPI
void serverSaveDimensionNameIdStoreTable(
::LevelStorage& levelStorage)
const;
118 MCAPI
void* $ctor(::Bedrock::NotNullNonOwnerPtr<::IDimensionFactory> dimensionFactory);
122 ::Bedrock::NotNullNonOwnerPtr<::IDimensionFactory> dimensionFactory,
132 MCAPI ::Bedrock::PubSub::Connector<void(::DimensionManager&)>& $getOnReadyForCustomDimensionRegistrationConnector();
134 MCFOLD ::Bedrock::PubSub::Connector<void(::DimensionManager&)>&
135 $getOnReadyForCustomDimensionRegistrationConnector();
139 MCAPI ::Bedrock::PubSub::Connector<void(
::Dimension&)>& $getOnNewDimensionCreatedConnector();
141 MCFOLD ::Bedrock::PubSub::Connector<void(
::Dimension&)>& $getOnNewDimensionCreatedConnector();