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 MCNAPI
explicit DimensionManager(::Bedrock::NotNullNonOwnerPtr<::IDimensionFactory> dimensionFactory);
74 MCNAPI DimensionManager(
75 ::Bedrock::NotNullNonOwnerPtr<::IDimensionFactory> dimensionFactory,
80 MCAPI
void _registerCustomDimensionWithFactory(::std::string_view name,
::DimensionType type);
82 MCAPI
bool _registerDimensionWithDimensionDefinitionGroup(
83 ::std::string_view name,
88 MCNAPI
void _registerFixedVanillaDimensionIds();
95 MCAPI ::WeakRef<::Dimension> getDimension(
::DimensionType dimensionType)
const;
98 MCNAPI ::std::optional<::DimensionDefinitionGroup::DimensionDefinition>
104 MCAPI ::WeakRef<::Dimension> getOrCreateDimension(::std::string_view dimensionName);
106 MCAPI ::WeakRef<::Dimension> getOrCreateDimension(
::DimensionType dimensionType);
115 MCAPI ::std::optional<::DimensionType> tryGetDimensionType(::std::string_view identifier)
const;
121 MCNAPI
void*
$ctor(::Bedrock::NotNullNonOwnerPtr<::IDimensionFactory> dimensionFactory);
125 ::Bedrock::NotNullNonOwnerPtr<::IDimensionFactory> dimensionFactory,
134 MCNAPI ::Bedrock::PubSub::Connector<void(::DimensionManager&)>&