LeviLamina
Loading...
Searching...
No Matches
ItemRegistryRef.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/common/WeakPtr.h"
7#include "mc/deps/core/utility/NonOwnerPointer.h"
8#include "mc/deps/core/utility/pub_sub/Connector.h"
9#include "mc/deps/game_refs/WeakRef.h"
10#include "mc/deps/puv/puv_load_data/LoadResultWithTiming.h"
11
12// auto generated forward declare list
13// clang-format off
15class BaseGameVersion;
17class BlockPalette;
20class Experiments;
21class HashedString;
26class Item;
27class ItemInstance;
28class ItemRegistry;
29class LevelData;
33class TagUpdateToken;
34struct ItemData;
35struct ItemIconInfo;
37struct ItemTag;
38namespace cereal { struct ReflectionCtx; }
39// clang-format on
40
42public:
43 // ItemRegistryRef inner types declare
44 // clang-format off
45 struct LoadedItem;
46 class LockGuard;
47 // clang-format on
48
49 // ItemRegistryRef inner types define
50 struct LoadedItem {
51 public:
52 // member variables
53 // NOLINTBEGIN
54 ::ll::TypedStorage<8, 8, ::WeakPtr<::Item>> mItem;
55 ::ll::TypedStorage<8, 32, ::PuvLoadData::LoadResultWithTiming> mTiming;
56 // NOLINTEND
57 };
58
59 class LockGuard {
60 public:
61 // member variables
62 // NOLINTBEGIN
63 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::std::mutex>> mMutex;
64 // NOLINTEND
65
66 public:
67 // prevent constructor by default
68 LockGuard();
69
70 public:
71 // member functions
72 // NOLINTBEGIN
73 MCAPI explicit LockGuard(::std::shared_ptr<::std::mutex> mutex);
74
75 MCAPI ~LockGuard();
76 // NOLINTEND
77
78 public:
79 // constructor thunks
80 // NOLINTBEGIN
81 MCAPI void* $ctor(::std::shared_ptr<::std::mutex> mutex);
82 // NOLINTEND
83
84 public:
85 // destructor thunk
86 // NOLINTBEGIN
87 MCAPI void $dtor();
88 // NOLINTEND
89 };
90
91 using CreativeItemsServerInitCallbackSignature = void(
95 ::BaseGameVersion const&,
96 ::Experiments const&,
101 );
102
103public:
104 // member variables
105 // NOLINTBEGIN
106 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::ItemRegistry>> mWeakRegistry;
107 // NOLINTEND
108
109public:
110 // member functions
111 // NOLINTBEGIN
112 MCAPI void addItemToTagMap(::Item const& item) const;
113
114 MCAPI ::TagUpdateToken allowTagUpdate() const;
115
116 MCAPI void alterAvailableCreativeItems(::ActorInfoRegistry* infoRegistry, ::LevelData& levelData) const;
117
118 MCAPI void bindDynamicScriptTypes(::ServerScriptManager& scripts) const;
119
120#ifdef LL_PLAT_C
121 MCAPI void buildClientRegistryFromServer(
122 ::std::vector<::ItemData> const& serverItemData,
123 ::Experiments const& experiments,
124 ::BaseGameVersion const& baseGameVersion
125 ) const;
126#endif
127
128 MCAPI void buildServerRegistry(
129 ::Experiments const& experiments,
130 ::BaseGameVersion const& baseGameVersion,
133 ::IMinecraftEventing& eventing
134 ) const;
135
136 MCAPI bool canUpdateTags() const;
137
138 MCAPI ::Bedrock::NonOwnerPointer<::cereal::ReflectionCtx const> cerealContext() const;
139
140 MCAPI void clearDeadItemRegistry() const;
141
142#ifdef LL_PLAT_C
143 MCAPI void findAllAttachableDefinitions() const;
144#endif
145
146 MCAPI ::std::vector<::std::reference_wrapper<::HashedString const>> const&
147 getComplexAliasSplitNames(::HashedString const& oldName) const;
148
149 MCAPI ::Bedrock::NonOwnerPointer<::CreativeItemRegistry const> getCreativeItemRegistry() const;
150
151 MCAPI ::Bedrock::NonOwnerPointer<::CreativeItemRegistry> getCreativeItemRegistry();
152
153 MCFOLD ::WeakPtr<::Item> getItem(::HashedString const& id) const;
154
155 MCAPI ::WeakPtr<::Item> getItem(short itemId) const;
156
157 MCAPI int getItemCount() const;
158
159#ifdef LL_PLAT_C
160 MCAPI uint getMaxItemID() const;
161#endif
162
163 MCAPI ::HashedString getNameFromLegacyID(short id) const;
164
165 MCAPI ::std::unordered_map<::HashedString, ::WeakPtr<::Item>> const& getNameToItemMap() const;
166
167 MCAPI ::BaseGameVersion getWorldBaseGameVersion() const;
168
169#ifdef LL_PLAT_C
170 MCAPI void initCreativeItemsClient(
171 ::CreativeContentPacket const& creativeContentPacket,
172 ::BlockPalette const& blockPalette
173 ) const;
174#endif
175
176 MCAPI void initCreativeItemsServer(
177 ::BlockDefinitionGroup const& blockDefinitionGroup,
178 ::Experiments const& experiment,
179 ::ResourcePackManager const& resourcePackManager,
181 ::IMinecraftEventing& eventing,
182 ::std::function<void(
186 ::BaseGameVersion const&,
187 ::Experiments const&,
192 )> registerCallback
193 ) const;
194
195 MCAPI bool isComplexAlias(::HashedString const& oldName) const;
196
197 MCAPI bool isCreativeItem(::ItemInstance const& itemInstance) const;
198
199 MCAPI bool isRegistryInitialized() const;
200
201 MCAPI bool isServerInitializingCreativeItems() const;
202
203 MCAPI ::ItemRegistryRef::LockGuard lockItemWorldCompatibilityMutex() const;
204
205 MCAPI ::WeakPtr<::Item> lookupByName(::HashedString const& inString) const;
206
207 MCAPI ::WeakPtr<::Item> lookupByName(int& outItemAux, ::std::string_view inString) const;
208
209 MCAPI ::WeakPtr<::Item> lookupByName(int& outItemId, int& outItemAux, ::std::string_view inString) const;
210
211 MCAPI ::WeakPtr<::Item> lookupByNameNoAlias(::HashedString const& inString) const;
212
213 MCAPI ::WeakPtr<::Item> lookupByNameNoAlias(::std::string_view inString) const;
214
215 MCAPI ::WeakPtr<::Item> lookupByNameNoParsing(int& inOutItemAux, ::HashedString const& fullName) const;
216
217 MCAPI ::std::unordered_set<::Item const*> lookupByTag(::ItemTag const& tag) const;
218
219 MCFOLD ::WeakPtr<::Item> lookupByVanillaName(::HashedString const& inString) const;
220
221 MCAPI ::Bedrock::PubSub::Connector<void()>* onFinishedInitServer() const;
222
223 MCAPI void onLevelInit(
224 ::WeakRef<::IDynamicContainerSerialization> containerSerialization,
227 ) const;
228
229#ifdef LL_PLAT_C
230 MCAPI void populateClientItemData(
231 ::ResourcePackManager& packManager,
232 ::Experiments const& experiments,
233 ::std::optional<::ItemIconInfo> (*iconFactory)(::std::string const&, int)
234 ) const;
235#endif
236
237 MCAPI void
238 registerAlias(::HashedString const& alias, ::HashedString const& name, ::BaseGameVersion const& fromVersion) const;
239
240 MCAPI ::WeakPtr<::Item>
241 registerComplexAlias(::HashedString const& alias, ::ItemRegistryComplexAlias const& complexAlias) const;
242
243 MCAPI void registerExtraItemInitCallback(::std::function<void(::ItemRegistryRef)> callback) const;
244
245 MCAPI void registerLegacyID(::HashedString const& name, short id) const;
246
247 MCAPI void registerLegacyMapping(
248 ::HashedString const& alias,
249 ::HashedString const& name,
250 ::BaseGameVersion const& fromVersion
251 ) const;
252
253 MCAPI uint64 remapToFullLegacyNameByHash(uint64 newHash) const;
254
255 MCAPI uint64 remapToLegacyNameByHash(uint64 newHash) const;
256
257 MCAPI void setCheckForItemWorldCompatibility(bool value) const;
258
259 MCAPI void setServerInitializingCreativeItems(bool value) const;
260
261 MCAPI bool shouldCheckForItemWorldCompatibility() const;
262
263 MCAPI void shutdown() const;
264
265 MCAPI void unregisterItem(::HashedString const& itemName) const;
266
267 MCAPI ::std::vector<::std::string> validateServerItemComponents(::std::vector<::ItemData> const& itemData);
268 // NOLINTEND
269};
Definition ActorInfoRegistry.h:10
Definition BaseGameVersion.h:8
Definition NonOwnerPointer.h:9
Definition BlockDefinitionGroup.h:35
Definition BlockPalette.h:18
Definition CreativeContentPacket.h:19
Definition CreativeItemRegistry.h:23
Definition Experiments.h:14
Definition HashedString.h:5
Definition IContainerRegistryAccess.h:14
Definition IContainerRegistryTracker.h:15
Definition IDynamicContainerSerialization.h:12
Definition IMinecraftEventing.h:147
Definition ItemInstance.h:15
Definition ItemRegistryRef.h:59
Definition ItemRegistryRef.h:41
Definition ItemRegistry.h:43
Definition Item.h:71
Definition LevelData.h:55
Definition LinkedAssetValidator.h:8
Definition ResourcePackManager.h:36
Definition ServerScriptManager.h:78
Definition TagUpdateToken.h:5
Definition WeakRef.h:8
Definition ItemData.h:15
Definition ItemIconInfo.h:5
Definition ItemRegistryComplexAlias.h:10
Definition ItemRegistryRef.h:50
Definition ItemTag.h:8
Definition ReflectionCtx.h:11