33 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::Util::NameIdStore<::DimensionIdType>>>>
34 mDimensionNameIdStore;
35 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::DimensionRegistry>>> mDimensionRegistry;
36 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IDimensionFactory>
const> mDimensionFactory;
37 ::ll::TypedStorage<8, 16, ::DimensionDefinitionGroup> mDimensionDefinitionGroup;
42 mOnReadyForCustomDimensionRegistrationPublisher;
47 mOnNewDimensionCreatedPublisher;
48 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnLevelStorageSaveSubscription;
49 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnLevelStorageStartLeaveGameSubscription;
59 virtual ~DimensionManager();
61 virtual ::Bedrock::PubSub::Connector<void(::DimensionManager&)>&
62 getOnReadyForCustomDimensionRegistrationConnector() ;
64 virtual ::Bedrock::PubSub::Connector<void(
::Dimension&)>& getOnNewDimensionCreatedConnector() ;
70 MCAPI
explicit DimensionManager(::Bedrock::NotNullNonOwnerPtr<::IDimensionFactory> dimensionFactory);
73 MCAPI DimensionManager(
74 ::Bedrock::NotNullNonOwnerPtr<::IDimensionFactory> dimensionFactory,
79 MCAPI
bool _registerCustomDimensionWithDimensionDefinitionGroup(::std::string_view name, ::DimensionType type);
81 MCAPI
void _registerCustomDimensionWithFactory(::std::string_view name, ::DimensionType type);
83 MCAPI
void _registerFixedVanillaDimensionIds();
86 MCAPI
void clientRegisterCustomDimension(::std::string_view name, ::DimensionType type);
89 MCFOLD
void forEachDimension(::std::function<
bool(
::Dimension&)> callback);
91 MCFOLD
void forEachDimension(::std::function<
bool(
::Dimension const&)> callback)
const;
93 MCAPI ::WeakRef<::Dimension> getDimension(::DimensionType dimensionType)
const;
95 MCAPI ::std::optional<::DimensionDefinitionGroup::DimensionDefinition>
96 getDimensionDefinition(::std::string
const& dimensionName)
const;
98 MCFOLD ::DimensionDefinitionGroup& getDimensionDefinitionGroup();
100 MCAPI ::DimensionType getDimensionId(::std::string_view name)
const;
103 MCAPI ::std::string getDimensionName(::DimensionType type)
const;
106 MCAPI ::WeakRef<::Dimension> getOrCreateDimension(::std::string_view dimensionName);
108 MCAPI ::WeakRef<::Dimension> getOrCreateDimension(::DimensionType dimensionType);
110 MCAPI ::WeakRef<::Dimension> getRandomDimension(
::Random& random);
112 MCAPI
bool hasDimensions()
const;
114 MCAPI
bool isDimensionTypeActive(::DimensionType type)
const;
116 MCAPI
void serverInitialize(
121 MCAPI
void serverLoadDimensionNameIdStoreTable(
::LevelStorage const& levelStorage);
123 MCAPI ::std::optional<::DimensionType> serverRegisterCustomDimension(::std::string_view name);
125 MCAPI
void serverSaveDimensionNameIdStoreTable(
::LevelStorage& levelStorage)
const;
127 MCAPI
void shutdown();
133 MCAPI
void* $ctor(::Bedrock::NotNullNonOwnerPtr<::IDimensionFactory> dimensionFactory);
137 ::Bedrock::NotNullNonOwnerPtr<::IDimensionFactory> dimensionFactory,
152 MCFOLD ::Bedrock::PubSub::Connector<void(::DimensionManager&)>&
153 $getOnReadyForCustomDimensionRegistrationConnector();
155 MCFOLD ::Bedrock::PubSub::Connector<void(
::Dimension&)>& $getOnNewDimensionCreatedConnector();