40 using BlockLookupMap = ::std::map<::HashedString, ::SharedPtr<::BlockType>>;
42 using BlockAliasLookupMap = ::std::unordered_map<::HashedString, ::HashedString>;
48 ::ll::TypedStorage<8, 48, ::HashedString> stateName;
49 ::ll::TypedStorage<4, 4, int> value;
65 using BlockComplexAliasCallback = ::std::function<
::Block const*(int)>;
71 ::ll::TypedStorage<8, 64, ::std::function<
::Block const*(int)>> mCallback;
72 ::ll::TypedStorage<8, 32, ::BaseGameVersion> mMinRequiredVersion;
73 ::ll::TypedStorage<8, 24, ::SemVersion> mFlattenedInBlocksJsonVersion;
74 ::ll::TypedStorage<4, 4, int> mStartVariant;
86 MCAPI ::Block
const* operator()(
int data)
const;
100 using BlockComplexAliasLookupMap = ::entt::dense_map<::HashedString, ::BlockTypeRegistry::BlockComplexAliasContent>;
106 ::ll::TypedStorage<8, 8, ::WeakPtr<::BlockType const>> mBlockType;
107 ::ll::TypedStorage<8, 8, ::Block const*> mBlock;
127 MCAPI
void* $ctor(
::Block const* block,
bool resolveBlockType);
135 using BlockComplexAliasPostSplitBlockNames = ::std::vector<::std::reference_wrapper<::HashedString const>>;
137 using BlockComplexAliasPostSplitBlockNamesList =
138 ::std::vector<::std::vector<::std::reference_wrapper<::HashedString const>>>;
140 using BlockComplexAliasPostSplitBlockNamesLookupMap = ::entt::dense_map<uint64, uint64>;
142 using BlockNameHashToHashedStringMap = ::entt::dense_map<uint64, ::HashedString>;
148 ::ll::TypedStorage<8, 8, ::BlockType const&> mAirBlock;
158 enum class LookupByNameImplResolve :
int {
166 ::ll::TypedStorage<8, 16, ::std::map<::HashedString, ::SharedPtr<::BlockType>>> mBlockLookupMap;
167 ::ll::TypedStorage<8, 64, ::std::unordered_map<::HashedString, ::HashedString>> mBlockAliasLookupMap;
168 ::ll::TypedStorage<8, 72, ::entt::dense_map<::HashedString, ::BlockTypeRegistry::BlockComplexAliasContent>>
169 mBlockComplexAliasLookupMap;
170 ::ll::TypedStorage<8, 24, ::std::vector<::std::vector<::std::reference_wrapper<::HashedString const>>>>
171 mBlockComplexAliasPostSplitBlockNamesList;
172 ::ll::TypedStorage<8, 72, ::entt::dense_map<uint64, uint64>> mBlockComplexAliasPostSplitBlockNamesLookupMap;
173 ::ll::TypedStorage<8, 16, ::std::map<::HashedString, ::HashedString>> mBlockComplexAliasPreSplitBlockNamesLookupMap;
174 ::ll::TypedStorage<8, 16, ::std::set<::std::string>> mKnownNamespaces;
175 ::ll::TypedStorage<8, 72, ::entt::dense_map<uint64, ::HashedString>> mBlockNameHashToStringMap;
176 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::BlockTypeRegistry::DirectAccessBlocks>> mDirectAccessBlocks;
177 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::BlockTypeRegistryRWLock>> mRWLock;
185 MCAPI ::BlockTypeRegistryReadLock _lockAgainstRegistryModifications()
const;
187 MCAPI ::BlockTypeRegistryModificationsLock _lockForRegistryModifications()
const;
189 MCAPI ::BlockTypeRegistry::LookupByNameImplReturnType _lookupByNameImpl(
192 ::BlockTypeRegistry::LookupByNameImplResolve resolve,
198 MCAPI
void checkBlockPermutationCap()
const;
200 MCAPI uint64 computeBlockTypeRegistryChecksum(
::BaseGameVersion const& worldBaseGameVersion)
const;
202 MCAPI
void finalizeBlockComponentStorage();
212 MCAPI ::HashedString
const& getBlockNameFromNameHash(uint64 hash)
const;
214 MCAPI ::std::vector<::std::reference_wrapper<::HashedString const>>
const&
215 getComplexAliasPostSplitBlockNames(
::HashedString const& oldName)
const;
217 MCAPI ::Block
const& getDefaultBlockState(
::HashedString const& name,
bool logNotFound)
const;
219 MCAPI ::BlockTypeRegistry::DirectAccessBlocks
const& getDirectAccessBlocks()
const;
221 MCAPI
int getStartVariantForComplexAliasBlock(
::HashedString const& blockName)
const;
223 MCAPI
void initHardCodedBlockComponents(
::Experiments const& experiments);
225 MCAPI
bool isComplexAliasBlock(
::HashedString const& blockName)
const;
229 MCAPI ::WeakPtr<::BlockType> lookupByName(
::HashedString const& name,
bool logNotFound)
const;
231 MCAPI
void prepareBlocks(uint latestUpdaterVersion);
235 MCAPI
void registerComplexAlias(
237 ::std::function<
::Block const*(
int)> callback,
238 ::std::vector<::std::reference_wrapper<::HashedString const>>
const& postSplitBlockNames,
245 MCAPI
void setupDirectAccessBlocks();
247 MCAPI
void setupVoxelShapeRegistryAccessOnAllBlocks(
248 ::std::shared_ptr<::VoxelShapes::VoxelShapeRegistry>
const& voxelShapeRegistry
253 MCAPI
void unregisterBlocks();
261 MCAPI static ::BlockTypeRegistry& get();
263 MCAPI static ::Bedrock::NotNullNonOwnerPtr<::BlockTypeRegistry> getNonOwner();
269 MCAPI static ::Bedrock::Owner<::BlockTypeRegistry>& mBlockTypeRegistry();
Definition BlockComponentFinalizerForRendererContext.h:15