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() =
default;
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
void _registerCustomDimensionWithFactory(::std::string_view name,
::DimensionType type);
81 MCAPI
bool _registerDimensionWithDimensionDefinitionGroup(
82 ::std::string_view name,
87 MCAPI
void _registerFixedVanillaDimensionIds();
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;
97 MCAPI ::std::optional<::DimensionDefinitionGroup::DimensionDefinition>
101 MCAPI ::std::string getDimensionIdentifier(
::DimensionType type)
const;
103 MCAPI ::WeakRef<::Dimension> getOrCreateDimension(::std::string_view dimensionName);
105 MCAPI ::WeakRef<::Dimension> getOrCreateDimension(
::DimensionType dimensionType);
107 MCAPI
void serverSaveDimensionNameIdStoreTable(
::LevelStorage& levelStorage)
const;
109 MCAPI ::std::optional<::DimensionType> tryGetDimensionType(::std::string_view identifier)
const;
115 MCAPI
void* $ctor(::Bedrock::NotNullNonOwnerPtr<::IDimensionFactory> dimensionFactory);
119 ::Bedrock::NotNullNonOwnerPtr<::IDimensionFactory> dimensionFactory,
128 MCFOLD ::Bedrock::PubSub::Connector<void(::DimensionManager&)>&
129 $getOnReadyForCustomDimensionRegistrationConnector();
131 MCFOLD ::Bedrock::PubSub::Connector<void(
::Dimension&)>& $getOnNewDimensionCreatedConnector();