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();
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(::std::string_view name,
::DimensionType type);
82 MCAPI
void _registerCustomDimensionWithFactory(::std::string_view name,
::DimensionType type);
84 MCAPI
void _registerFixedVanillaDimensionIds();
87 MCAPI
void clientRegisterCustomDimension(::std::string_view name,
::DimensionType type);
90 MCFOLD
void forEachDimension(::std::function<
bool(
::Dimension&)> callback);
92 MCFOLD
void forEachDimension(::std::function<
bool(
::Dimension const&)> callback)
const;
94 MCAPI ::WeakRef<::Dimension> getDimension(
::DimensionType dimensionType)
const;
96 MCAPI ::std::optional<::DimensionDefinitionGroup::DimensionDefinition>
97 getDimensionDefinition(::std::string
const& dimensionName)
const;
99 MCFOLD ::DimensionDefinitionGroup& getDimensionDefinitionGroup();
101 MCAPI ::DimensionType getDimensionId(::std::string_view name)
const;
107 MCAPI ::WeakRef<::Dimension> getOrCreateDimension(::std::string_view dimensionName);
109 MCAPI ::WeakRef<::Dimension> getOrCreateDimension(
::DimensionType dimensionType);
111 MCAPI ::WeakRef<::Dimension> getRandomDimension(
::Random& random);
113 MCAPI
bool hasDimensions()
const;
117 MCAPI
void serverInitialize(
122 MCAPI
void serverLoadDimensionNameIdStoreTable(
::LevelStorage const& levelStorage);
124 MCAPI ::std::optional<::DimensionType> serverRegisterCustomDimension(::std::string_view name);
126 MCAPI
void serverSaveDimensionNameIdStoreTable(
::LevelStorage& levelStorage)
const;
128 MCAPI
void shutdown();
134 MCAPI
void* $ctor(::Bedrock::NotNullNonOwnerPtr<::IDimensionFactory> dimensionFactory);
138 ::Bedrock::NotNullNonOwnerPtr<::IDimensionFactory> dimensionFactory,
153 MCFOLD ::Bedrock::PubSub::Connector<void(::DimensionManager&)>&
154 $getOnReadyForCustomDimensionRegistrationConnector();
156 MCFOLD ::Bedrock::PubSub::Connector<void(
::Dimension&)>& $getOnNewDimensionCreatedConnector();