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
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(
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 void addItemToTagMap(::Item const& item) const;
114
115 MCAPI ::TagUpdateToken allowTagUpdate() const;
116
117 MCAPI void alterAvailableCreativeItems(::ActorInfoRegistry* infoRegistry, ::LevelData& levelData) const;
118
119 MCAPI void bindDynamicScriptTypes(::ServerScriptManager& scripts) const;
120
121#ifdef LL_PLAT_C
122 MCAPI void buildClientRegistryFromServer(
123 ::std::vector<::ItemData> const& serverItemData,
124 ::Experiments const& experiments,
125 ::BaseGameVersion const& baseGameVersion
126 ) const;
127#endif
128
129 MCAPI void buildServerRegistry(
130 ::Experiments const& experiments,
131 ::BaseGameVersion const& baseGameVersion,
134 ::IMinecraftEventing& eventing
135 ) const;
136
137 MCAPI bool canUpdateTags() const;
138
139 MCAPI ::Bedrock::NonOwnerPointer<::cereal::ReflectionCtx const> cerealContext() const;
140
141 MCAPI void clearDeadItemRegistry() const;
142
143#ifdef LL_PLAT_C
144 MCAPI void findAllAttachableDefinitions() const;
145#endif
146
147 MCAPI ::std::vector<::std::reference_wrapper<::HashedString const>> const&
148 getComplexAliasSplitNames(::HashedString const& oldName) const;
149
150 MCAPI ::Bedrock::NonOwnerPointer<::CreativeItemRegistry const> getCreativeItemRegistry() const;
151
152 MCAPI ::Bedrock::NonOwnerPointer<::CreativeItemRegistry> getCreativeItemRegistry();
153
154 MCFOLD ::WeakPtr<::Item> getItem(::HashedString const& id) const;
155
156 MCAPI ::WeakPtr<::Item> getItem(short itemId) const;
157
158 MCAPI int getItemCount() const;
159
160#ifdef LL_PLAT_C
161 MCAPI uint getMaxItemID() const;
162#endif
163
164 MCAPI ::HashedString getNameFromLegacyID(short id) const;
165
166 MCAPI ::std::unordered_map<::HashedString, ::WeakPtr<::Item>> const& getNameToItemMap() const;
167
168 MCAPI ::BaseGameVersion getWorldBaseGameVersion() const;
169
170#ifdef LL_PLAT_C
171 MCAPI void initCreativeItemsClient(
172 ::CreativeContentPacket const& creativeContentPacket,
173 ::BlockPalette const& blockPalette
174 ) const;
175#endif
176
177 MCAPI void initCreativeItemsServer(
178 ::BlockDefinitionGroup const& blockDefinitionGroup,
179 ::Experiments const& experiment,
180 ::ResourcePackManager const& resourcePackManager,
182 ::IMinecraftEventing& eventing,
183 ::std::function<void(
187 ::BaseGameVersion const&,
188 ::Experiments const&,
193 )> registerCallback
194 ) const;
195
196 MCAPI bool isComplexAlias(::HashedString const& oldName) const;
197
198 MCAPI bool isCreativeItem(::ItemInstance const& itemInstance) const;
199
200 MCAPI bool isRegistryInitialized() const;
201
202 MCAPI bool isServerInitializingCreativeItems() const;
203
204 MCAPI ::ItemRegistryRef::LockGuard lockItemWorldCompatibilityMutex() const;
205
206 MCAPI ::WeakPtr<::Item> lookupByName(::HashedString const& inString) const;
207
208 MCAPI ::WeakPtr<::Item> lookupByName(int& outItemAux, ::std::string_view inString) const;
209
210 MCAPI ::WeakPtr<::Item> lookupByName(int& outItemId, int& outItemAux, ::std::string_view inString) const;
211
212 MCAPI ::WeakPtr<::Item> lookupByNameNoAlias(::HashedString const& inString) const;
213
214 MCAPI ::WeakPtr<::Item> lookupByNameNoAlias(::std::string_view inString) const;
215
216 MCAPI ::WeakPtr<::Item> lookupByNameNoParsing(int& inOutItemAux, ::HashedString const& fullName) const;
217
218 MCAPI ::std::unordered_set<::Item const*> lookupByTag(::ItemTag const& tag) const;
219
220 MCFOLD ::WeakPtr<::Item> lookupByVanillaName(::HashedString const& inString) const;
221
222 MCAPI ::Bedrock::PubSub::Connector<void()>* onFinishedInitServer() const;
223
224 MCAPI void onLevelInit(
225 ::WeakRef<::IDynamicContainerSerialization> containerSerialization,
228 ) const;
229
230#ifdef LL_PLAT_C
231 MCAPI void populateClientItemData(
232 ::ResourcePackManager& packManager,
233 ::Experiments const& experiments,
234 ::std::optional<::ItemIconInfo> (*iconFactory)(::std::string const&, int)
235 ) const;
236#endif
237
238 MCAPI void
239 registerAlias(::HashedString const& alias, ::HashedString const& name, ::BaseGameVersion const& fromVersion) const;
240
241 MCAPI ::WeakPtr<::Item>
242 registerComplexAlias(::HashedString const& alias, ::ItemRegistryComplexAlias const& complexAlias) const;
243
244 MCAPI void registerExtraItemInitCallback(::std::function<void(::ItemRegistryRef)> callback) const;
245
246 MCAPI void registerLegacyID(::HashedString const& name, short id) const;
247
248 MCAPI void registerLegacyMapping(
249 ::HashedString const& alias,
250 ::HashedString const& name,
251 ::BaseGameVersion const& fromVersion
252 ) const;
253
254 MCAPI uint64 remapToFullLegacyNameByHash(uint64 newHash) const;
255
256 MCAPI uint64 remapToLegacyNameByHash(uint64 newHash) const;
257
258 MCAPI void setCheckForItemWorldCompatibility(bool value) const;
259
260 MCAPI void setServerInitializingCreativeItems(bool value) const;
261
262 MCAPI bool shouldCheckForItemWorldCompatibility() const;
263
264 MCAPI void shutdown() const;
265
266 MCAPI void unregisterItem(::HashedString const& itemName) const;
267
268 MCAPI ::std::vector<::std::string> validateServerItemComponents(::std::vector<::ItemData> const& itemData);
269 // NOLINTEND
270};
Definition ActorInfoRegistry.h:10
Definition BaseGameVersion.h:8
Definition NonOwnerPointer.h:9
Definition Mutex.h:10
Definition BlockDefinitionGroup.h:34
Definition BlockPalette.h:19
Definition CreativeContentPacket.h:19
Definition CreativeItemRegistry.h:21
Definition Experiments.h:14
Definition HashedString.h:5
Definition IContainerRegistryAccess.h:14
Definition IContainerRegistryTracker.h:15
Definition IDynamicContainerSerialization.h:12
Definition IMinecraftEventing.h:145
Definition ItemInstance.h:15
Definition ItemRegistryRef.h:60
Definition ItemRegistryRef.h:42
Definition ItemRegistry.h:43
Definition Item.h:71
Definition LevelData.h:55
Definition LinkedAssetValidator.h:8
Definition ResourcePackManager.h:38
Definition ServerScriptManager.h:76
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