43class ItemRegistry :
public ::std::enable_shared_from_this<::ItemRegistry> {
54 using ItemRegistryMap = ::std::vector<::SharedPtr<::Item>>;
60 ::ll::TypedStorage<8, 16, ::Json::Value> mUpgradedJsonRoot;
61 ::ll::TypedStorage<8, 24, ::SemVersion> mDocumentVersion;
62 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::IPackLoadContext>> mPackLoadContext;
63 ::ll::TypedStorage<8, 32, ::std::string> mLoadedPackName;
93 using CreativeItemsServerInitCallbackSignature = void(
109 ::ll::TypedStorage<8, 48, ::HashedString> currentName;
110 ::ll::TypedStorage<8, 32, ::BaseGameVersion> sinceVersion;
130 ::ll::TypedStorage<8, 8, uint64> aliasName;
131 ::ll::TypedStorage<8, 32, ::BaseGameVersion> sinceVersion;
167 ::ll::TypedStorage<8, 96, ::std::optional<::ItemRegistry::LoadedItemAsset>> mLoadedItemAsset;
168 ::ll::TypedStorage<8, 32, ::std::string> mError;
187 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::cereal::ReflectionCtx>>> mCerealContext;
188 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::LinkedAssetValidator>> mValidator;
189 ::ll::TypedStorage<8, 24, ::std::vector<::SharedPtr<::Item>>> mItemRegistry;
190 ::ll::TypedStorage<8, 64, ::std::unordered_map<int, ::WeakPtr<::Item>>> mIdToItemMap;
191 ::ll::TypedStorage<8, 64, ::std::unordered_map<::HashedString, ::WeakPtr<::Item>>> mNameToItemMap;
192 ::ll::TypedStorage<8, 64, ::std::unordered_map<::HashedString, ::WeakPtr<::Item>>> mTileNamespaceToItemMap;
193 ::ll::TypedStorage<8, 64, ::std::unordered_map<::HashedString, ::WeakPtr<::Item>>> mTileItemNameToItemMap;
194 ::ll::TypedStorage<8, 64, ::std::unordered_map<::HashedString, ::ItemRegistry::ItemAlias>> mItemAliasLookupMap;
195 ::ll::TypedStorage<8, 64, ::std::unordered_map<uint64, ::ItemRegistry::ItemHashAlias>> mReverseAliasLookupMap;
196 ::ll::TypedStorage<8, 64, ::std::unordered_map<uint64, ::ItemRegistry::ItemHashAlias>>
197 mReverseFullNameAliasLookupMap;
198 ::ll::TypedStorage<8, 64, ::std::unordered_map<::HashedString, ::ItemRegistryComplexAlias>> mComplexAliasLookupMap;
199 ::ll::TypedStorage<8, 64, ::std::unordered_map<short, ::HashedString>> mLegacyIDToNameMap;
200 ::ll::TypedStorage<2, 2, short> mMaxItemID;
201 ::ll::TypedStorage<8, 24, ::std::vector<::HashedString>> mAttachableDefinitions;
202 ::ll::TypedStorage<8, 64, ::std::unordered_map<::ItemTag, ::std::unordered_set<::Item const*>>> mTagToItemsMap;
203 ::ll::TypedStorage<8, 64, ::std::unordered_set<::Item const*>
const> mEmptyItemSet;
204 ::ll::TypedStorage<1, 1, bool> mServerInitializingCreativeItems;
205 ::ll::TypedStorage<1, 1, bool> mIsInitialized;
206 ::ll::TypedStorage<8, 64, ::std::function<void(
::ItemRegistryRef)>> mExtraItemInitCallback;
211 mFinishedInitServerPublisher;
212 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::std::atomic<int>>> mCanUpdateTags;
213 ::ll::TypedStorage<8, 24, ::std::vector<::SharedPtr<::Item>>> mDeadItemRegistry;
214 ::ll::TypedStorage<8, 32, ::BaseGameVersion> mWorldBaseGameVersion;
215 ::ll::TypedStorage<1, 1, bool> mCheckForItemWorldCompatibility;
216 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::Bedrock::Threading::Mutex>> mCompatibilityCheckMutex;
217 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::CreativeItemRegistry>> mCreativeItemRegistry;
225 MCAPI
void _initServerData(
226 ::std::vector<::ItemRegistry::LoadedItemAsset>
const& allItemAssets,
231 MCAPI ::PuvLoadData::LoadResultWithTiming
234 MCAPI
void addItemToTagMap(
::Item const& item);
238 MCAPI
void clearItemAndCreativeItemRegistry();
240 MCAPI
void finishedRegistration();
242 MCAPI ::std::vector<::std::reference_wrapper<::HashedString const>>
const&
245 MCAPI ::WeakPtr<::Item> getItem(
short id);
247 MCAPI ::std::pair<::HashedString, int> getNameFromAlias(
::HashedString const& name,
int aux)
const;
249 MCAPI ::HashedString getNameFromLegacyID(
short id);
251 MCAPI
void initCreativeItemsServer(
257 ::std::function<
void(
270 MCAPI
void initServer(
278 MCAPI ::WeakPtr<::Item> lookupByName(
int& inOutItemAux, ::std::string_view inString)
const;
280 MCAPI ::WeakPtr<::Item> lookupByNameNoAlias(::std::string_view inString)
const;
282 MCAPI ::WeakPtr<::Item> lookupByNameNoParsing(
int& inOutItemAux,
::HashedString const& fullName)
const;
284 MCAPI
void onLevelInit(
293 MCAPI ::WeakPtr<::Item>
298 MCAPI
void registerLegacyMapping(
304 MCAPI
void registerValidatorIdentifier(::std::string
const& str);
306 MCAPI
void setCheckForItemWorldCompatibility(
bool value);
310 MCAPI ::std::vector<::std::string> validateServerItemComponents(::std::vector<::ItemData>
const& items);
318 MCAPI static ::std::vector<::ItemRegistry::LoadedItemAsset> _loadAllItemAssets(
325 MCAPI static ::ItemRegistry::ItemLoadResult _tryLoadItemAsset(
326 ::std::string jsonData,
327 ::std::shared_ptr<::IPackLoadContext> packLoadContext,
330 ::std::string
const& packName
337 MCAPI static ::std::string_view
const& MINECRAFT_NAMESPACE();
Definition IPackLoadContext.h:20
Definition ItemParseContext.h:19