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 Bedrock::Threading { class Mutex; }
39namespace cereal { struct ReflectionCtx; }
40// clang-format on
41
42class ItemRegistryRef {
43public:
44 // ItemRegistryRef inner types declare
45 // clang-format off
46 struct LoadedItem;
47 class LockGuard;
48 // clang-format on
49
50 // ItemRegistryRef inner types define
51 struct LoadedItem {
52 public:
53 // member variables
54 // NOLINTBEGIN
55 ::ll::TypedStorage<8, 8, ::WeakPtr<::Item>> mItem;
56 ::ll::TypedStorage<8, 32, ::PuvLoadData::LoadResultWithTiming> mTiming;
57 // NOLINTEND
58 };
59
60 class LockGuard {
61 public:
62 // member variables
63 // NOLINTBEGIN
64 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::Bedrock::Threading::Mutex>> mMutex;
65 // NOLINTEND
66
67 public:
68 // prevent constructor by default
69 LockGuard();
70
71 public:
72 // member functions
73 // NOLINTBEGIN
74 MCAPI explicit LockGuard(::std::shared_ptr<::Bedrock::Threading::Mutex> mutex);
75
76 MCAPI ~LockGuard();
77 // NOLINTEND
78
79 public:
80 // constructor thunks
81 // NOLINTBEGIN
82 MCAPI void* $ctor(::std::shared_ptr<::Bedrock::Threading::Mutex> mutex);
83 // NOLINTEND
84
85 public:
86 // destructor thunk
87 // NOLINTBEGIN
88 MCAPI void $dtor();
89 // NOLINTEND
90 };
91
92 using CreativeItemsServerInitCallbackSignature = void(
93 ::ItemRegistryRef,
96 ::BaseGameVersion const&,
97 ::Experiments const&,
102 );
103
104public:
105 // member variables
106 // NOLINTBEGIN
107 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::ItemRegistry>> mWeakRegistry;
108 // NOLINTEND
109
110public:
111 // member functions
112 // NOLINTBEGIN
113 MCAPI ItemRegistryRef();
114
115 MCAPI explicit ItemRegistryRef(::std::weak_ptr<::ItemRegistry> registry);
116
117 MCAPI ::std::shared_ptr<::ItemRegistry> _lockRegistry() const;
118
119 MCAPI void addItemToTagMap(::Item const& item) const;
120
121 MCAPI ::TagUpdateToken allowTagUpdate() const;
122
123 MCAPI void alterAvailableCreativeItems(::ActorInfoRegistry* infoRegistry, ::LevelData& levelData) const;
124
125 MCAPI void bindDynamicScriptTypes(::ServerScriptManager& scripts) const;
126
127 MCAPI bool canUpdateTags() const;
128
129 MCAPI ::Bedrock::NonOwnerPointer<::cereal::ReflectionCtx const> cerealContext() const;
130
131 MCAPI void clearDeadItemRegistry() const;
132
133#ifdef LL_PLAT_C
134 MCAPI void findAllAttachableDefinitions() const;
135#endif
136
137 MCAPI ::std::vector<::std::reference_wrapper<::HashedString const>> const&
138 getComplexAliasSplitNames(::HashedString const& oldName) const;
139
140 MCAPI ::Bedrock::NonOwnerPointer<::CreativeItemRegistry const> getCreativeItemRegistry() const;
141
142 MCAPI ::Bedrock::NonOwnerPointer<::CreativeItemRegistry> getCreativeItemRegistry();
143
144 MCFOLD ::WeakPtr<::Item> getItem(::HashedString const& id) const;
145
146 MCAPI ::WeakPtr<::Item> getItem(short itemId) const;
147
148 MCAPI int getItemCount() const;
149
150#ifdef LL_PLAT_C
151 MCAPI uint getMaxItemID() const;
152#endif
153
154 MCAPI ::HashedString getNameFromLegacyID(short id) const;
155
156 MCAPI ::std::unordered_map<::HashedString, ::WeakPtr<::Item>> const& getNameToItemMap() const;
157
158 MCAPI ::BaseGameVersion getWorldBaseGameVersion() const;
159
160#ifdef LL_PLAT_C
161 MCAPI void initClient(
162 ::std::vector<::ItemData> const& serverItemData,
163 ::Experiments const& experiments,
164 ::BaseGameVersion const& baseGameVersion
165 ) const;
166
167 MCAPI void initClientData(
168 ::ResourcePackManager& packManager,
169 ::Experiments const& experiments,
170 ::std::optional<::ItemIconInfo> (*iconFactory)(::std::string const&, int)
171 ) const;
172
173 MCAPI void initCreativeItemsClient(
174 ::CreativeContentPacket const& creativeContentPacket,
175 ::BlockPalette const& blockPalette
176 ) const;
177#endif
178
179 MCAPI void initCreativeItemsServer(
180 ::BlockDefinitionGroup const& blockDefinitionGroup,
181 ::Experiments const& experiment,
182 ::ResourcePackManager const& resourcePackManager,
184 ::IMinecraftEventing& eventing,
185 ::std::function<void(
186 ::ItemRegistryRef,
189 ::BaseGameVersion const&,
190 ::Experiments const&,
195 )> registerCallback
196 ) const;
197
198 MCAPI void initServer(
199 ::Experiments const& experiments,
200 ::BaseGameVersion const& baseGameVersion,
203 ::IMinecraftEventing& eventing
204 ) const;
205
206 MCAPI bool isComplexAlias(::HashedString const& oldName) const;
207
208 MCAPI bool isCreativeItem(::ItemInstance const& itemInstance) const;
209
210 MCAPI bool isRegistryInitialized() const;
211
212 MCAPI bool isServerInitializingCreativeItems() const;
213
214 MCAPI bool isValid() const;
215
216 MCAPI ::ItemRegistryRef::LockGuard lockItemWorldCompatibilityMutex() const;
217
218 MCAPI ::WeakPtr<::Item> lookupByName(::HashedString const& inString) const;
219
220 MCAPI ::WeakPtr<::Item> lookupByName(int& outItemAux, ::std::string_view inString) const;
221
222 MCAPI ::WeakPtr<::Item> lookupByName(int& outItemId, int& outItemAux, ::std::string_view inString) const;
223
224 MCAPI ::WeakPtr<::Item> lookupByNameNoAlias(::HashedString const& inString) const;
225
226 MCAPI ::WeakPtr<::Item> lookupByNameNoAlias(::std::string_view inString) const;
227
228 MCAPI ::WeakPtr<::Item> lookupByNameNoParsing(int& inOutItemAux, ::HashedString const& fullName) const;
229
230 MCAPI ::std::unordered_set<::Item const*> lookupByTag(::ItemTag const& tag) const;
231
232 MCFOLD ::WeakPtr<::Item> lookupByVanillaName(::HashedString const& inString) const;
233
234 MCAPI ::Bedrock::PubSub::Connector<void()>* onFinishedInitServer() const;
235
236 MCAPI void onLevelInit(
237 ::WeakRef<::IDynamicContainerSerialization> containerSerialization,
240 ) const;
241
242 MCAPI void
243 registerAlias(::HashedString const& alias, ::HashedString const& name, ::BaseGameVersion const& fromVersion) const;
244
245 MCAPI ::WeakPtr<::Item>
246 registerComplexAlias(::HashedString const& alias, ::ItemRegistryComplexAlias const& complexAlias) const;
247
248 MCAPI void registerExtraItemInitCallback(::std::function<void(::ItemRegistryRef)> callback) const;
249
250 MCAPI void registerLegacyID(::HashedString const& name, short id) const;
251
252 MCAPI void registerLegacyMapping(
253 ::HashedString const& alias,
254 ::HashedString const& name,
255 ::BaseGameVersion const& fromVersion
256 ) const;
257
258 MCAPI uint64 remapToFullLegacyNameByHash(uint64 newHash) const;
259
260 MCAPI uint64 remapToLegacyNameByHash(uint64 newHash) const;
261
262 MCAPI void setCheckForItemWorldCompatibility(bool value) const;
263
264 MCAPI void setServerInitializingCreativeItems(bool value) const;
265
266 MCAPI bool shouldCheckForItemWorldCompatibility() const;
267
268 MCAPI void shutdown() const;
269
270 MCAPI void unregisterItem(::HashedString const& itemName) const;
271
272 MCAPI ::std::vector<::std::string> validateServerItemComponents(::std::vector<::ItemData> const& itemData);
273
274 MCAPI ~ItemRegistryRef();
275 // NOLINTEND
276
277public:
278 // constructor thunks
279 // NOLINTBEGIN
280 MCFOLD void* $ctor();
281
282 MCFOLD void* $ctor(::std::weak_ptr<::ItemRegistry> registry);
283 // NOLINTEND
284
285public:
286 // destructor thunk
287 // NOLINTBEGIN
288 MCFOLD void $dtor();
289 // NOLINTEND
290};
Definition ActorInfoRegistry.h:10
Definition BaseGameVersion.h:13
Definition NonOwnerPointer.h:9
Definition Mutex.h:10
Definition BlockDefinitionGroup.h:39
Definition BlockPalette.h:21
Definition CreativeContentPacket.h:22
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:138
Definition ItemInstance.h:15
Definition ItemRegistryRef.h:60
Definition ItemRegistry.h:46
Definition Item.h:71
Definition LevelData.h:55
Definition LinkedAssetValidator.h:8
Definition ResourcePackManager.h:35
Definition ServerScriptManager.h:77
Definition TagUpdateToken.h:5
Definition WeakRef.h:8
Definition ItemData.h:15
Definition ItemIconInfo.h:5
Definition ItemRegistryComplexAlias.h:10
Definition ItemRegistryRef.h:51
Definition ItemTag.h:8
Definition ReflectionCtx.h:11