56 ::ll::TypedStorage<1, 1, bool> mCompareAux;
57 ::ll::TypedStorage<1, 1, bool> mCompareRelevantUserData;
58 ::ll::TypedStorage<1, 1, bool> mCompareDamage;
63 LLNDAPI std::string getTypeName()
const;
64 LLNDAPI std::string getDescriptionName()
const;
65 LLNDAPI
bool isEnchanted()
const;
66 LLNDAPI
bool removeEnchants()
const;
67 LLAPI
void deserializeComponents(
IDataInput& input);
68 LLAPI
bool operator==(ItemStackBase
const& other)
const;
69 LLNDAPI
short getId()
const;
70 LLNDAPI
short getAuxValue()
const;
71 LLAPI
void setDamageValue(
short newDamage);
72 inline void add(
int count) { set(mCount + count); }
73 inline void remove(
int count) { set(mCount - count); }
79 ::WeakPtr<::Item> mItem;
80 ::std::unique_ptr<::CompoundTag> mUserData;
81 ::Block
const* mBlock;
84 bool mValid_DeprecatedSeeComment;
87 ::std::chrono::steady_clock::time_point mPickupTime;
88 ::std::vector<::BlockType const*> mCanPlaceOn;
89 uint64 mCanPlaceOnHash;
90 ::std::vector<::BlockType const*> mCanDestroy;
91 uint64 mCanDestroyHash;
93 ::std::unique_ptr<::ItemInstance> mChargedItem;
103 virtual ~ItemStackBase();
105 virtual void reinit(::Item
const& item,
int count,
int auxValue);
107 virtual void reinit(::Block
const& block,
int count);
109 virtual void reinit(::std::string_view
const name,
int count,
int auxValue);
111 virtual void setNull(::std::optional<::std::string> reason);
113 virtual ::std::string toString()
const;
115 virtual ::std::string toDebugString()
const;
121 MCAPI
explicit ItemStackBase(::RecipeIngredient
const& ingredient);
123 MCAPI ItemStackBase(::ItemStackBase
const& rhs);
125 MCAPI ItemStackBase(::Block
const& block,
int count = 1, ::CompoundTag
const* _userData =
nullptr);
127 MCAPI ItemStackBase(::Item
const& item,
int count = 1,
int auxValue = 0, ::CompoundTag
const* _userData =
nullptr);
130 ItemStackBase(::std::string_view name,
int count = 1,
int auxValue = 0, ::CompoundTag
const* _userData =
nullptr);
132 MCAPI
void _addCustomUserDataCommon(::std::unique_ptr<::CompoundTag>&& tag);
134 MCAPI
void _checkForItemWorldCompatibility();
136 MCAPI
void _cloneComponents(::ItemStackBase
const& other);
138 MCAPI ::std::string _getHoverFormattingPrefix()
const;
141 MCAPI
bool _hasFullOrPartialTag(::HashedString
const&
string)
const;
144 MCAPI
bool _isInstance(::std::string_view itemName)
const;
146 MCAPI
void _loadItem(::CompoundTag
const& compoundTag);
148 MCAPI
void _setChargedItem(::ItemInstance
const& item);
150 MCAPI
bool _setItem(
int id,
bool doRemap);
152 MCAPI
void _updateCompareHashes();
154 MCAPI
bool addComponents(::Json::Value
const& root, ::std::string& errorMsg);
156 MCAPI
void addCustomUserData(::ContainerComponent
const& containerComponent);
158 MCAPI
void addCustomUserData(::BlockActor& blockEntity, ::BlockSource& region);
160 MCAPI
void clearCustomLore();
162 MCAPI ::ItemEnchants constructItemEnchantsFromUserData()
const;
164 MCAPI ::SharedTypes::Legacy::ArmorSlot getArmorSlot()
const;
166 MCAPI
int getBaseRepairCost()
const;
169 MCAPI ::Block
const* getBlockForRendering()
const;
172 MCAPI ::WeakPtr<::BlockType const>
const& getBlockType()
const;
175 MCAPI ::WeakPtr<::BlockType const>
const& getBlockTypeForRendering()
const;
178 MCAPI ::mce::Color getColor()
const;
180 MCAPI ::std::vector<::std::string> getCustomLore()
const;
182 MCAPI ::std::string getCustomName()
const;
184 MCAPI
short getDamageValue()
const;
186 MCAPI ::std::string getDescriptionId()
const;
188 MCAPI ::ItemDescriptor getDescriptor()
const;
190 MCAPI ::std::unique_ptr<::DynamicProperties> getDynamicProperties()
const;
192 MCAPI ::std::optional<::std::variant<double, float, bool, ::std::string, ::Vec3>>
193 getDynamicProperty(::std::string
const& key, ::std::string
const& collectionName)
const;
196 MCAPI ::Bedrock::Safety::RedactableString getFormattedHovertext(::Level& level,
bool showCategory)
const;
199 MCAPI ::HashedString
const& getFullNameHash()
const;
202 MCAPI ::std::string getHoverName()
const;
205 MCAPI
int getIdAux()
const;
208 MCAPI
int getIdAuxEnchanted()
const;
211 MCAPI uchar getMaxStackSize()
const;
213 MCAPI ::std::string getName()
const;
215 MCAPI
float getPickupPopPercentage()
const;
217 MCAPI ::HashedString
const& getRawNameHash()
const;
219 MCAPI ::std::string getRawNameId()
const;
221 MCAPI ::Bedrock::Safety::RedactableString getRedactedCustomName()
const;
223 MCAPI ::Bedrock::Safety::RedactableString getRedactedHoverName()
const;
225 MCAPI ::Bedrock::Safety::RedactableString getRedactedName()
const;
227 MCAPI
bool hasChargedItem()
const;
230 MCAPI
bool hasComponent(::std::string
const& name)
const;
233 MCAPI
bool hasSameAuxValue(::ItemStackBase
const& other)
const;
235 MCAPI
bool hasSameUserData(::ItemStackBase
const& other)
const;
237 MCAPI
bool hasTag(::ItemTag
const&
string)
const;
239 MCAPI
bool hurtAndBreak(
int deltaDamage, ::Actor* owner);
241 MCAPI
void init(
int id,
int count_,
int aux_,
bool doRemap);
243 MCAPI
void init(::Item
const& item,
int count,
int auxValue, ::CompoundTag
const* userData,
bool doRemap);
245 MCAPI
bool isArmorItem()
const;
248 MCAPI
bool isAttachableEquipment()
const;
251 MCAPI
bool isDamageableItem()
const;
253 MCAPI
bool isDamaged()
const;
255 MCAPI
bool isEnchantingBook()
const;
257 MCAPI
bool isFullStack()
const;
259 MCAPI
bool isHorseArmorItem()
const;
261 MCAPI
bool isHumanoidWearableBlockItem()
const;
263 MCAPI
bool isInstance(::HashedString
const& itemName,
bool useItemLookup)
const;
265 MCAPI
bool isNull()
const;
268 MCAPI
bool isOnCooldown(::Player& player, ::SharedTypes::ItemCooldownType type)
const;
272 isOneOfBlockInstances(::std::vector<::std::reference_wrapper<::HashedString const>>
const& blockTypeIds)
const;
276 isOneOfBlockInstances(::std::initializer_list<::std::reference_wrapper<::HashedString const>> blocks)
const;
279 MCAPI
bool isOneOfInstances(
280 ::std::initializer_list<::std::reference_wrapper<::HashedString const>> items,
284 MCAPI
bool isPotionItem()
const;
286 MCAPI
bool isStackable()
const;
288 MCAPI
bool isStackable(::ItemStackBase
const& other)
const;
291 MCAPI
bool isTransparentAttachable()
const;
294 MCAPI
bool matchesEitherWearableCase(::CompoundTag
const* userData)
const;
296 MCAPI
bool matchesItem(::ItemStackBase
const& other)
const;
298 MCAPI
explicit operator bool()
const;
300 MCAPI ::ItemStackBase& operator=(::ItemStackBase
const& rhs);
302 MCAPI
void resetHoverName();
304 MCAPI
bool sameItem(::ItemStackBase
const& other, ::ItemStackBase::ComparisonOptions
const& options)
const;
306 MCAPI ::std::unique_ptr<::CompoundTag> save(::SaveContext
const& saveContext)
const;
308 MCAPI
void saveEnchantsToUserData(::ItemEnchants
const& enchant);
310 MCAPI
void serializeComponents(::IDataOutput& output)
const;
312 MCAPI
void set(
int inCount);
314 MCAPI
void setChargedItem(::ItemInstance
const& instance,
bool isSwapping);
316 MCAPI
void setCustomLore(::std::vector<::std::string>
const& lore);
318 MCAPI
void setCustomName(::Bedrock::Safety::RedactableString
const& name);
320 MCAPI
void setDynamicProperty(
321 ::std::string
const& key,
322 ::std::variant<double, float, bool, ::std::string, ::Vec3>
const& value,
323 ::std::string
const& collectionName
326 MCAPI
void setJustBrewed(
bool justBrewed);
328 MCAPI
void setPickupTime();
330 MCAPI
void setRepairCost(
int cost);
332 MCAPI
void setUnbreakable(
bool isUnbreakable);
334 MCAPI
void setUserData(::std::unique_ptr<::CompoundTag> tag);
336 MCAPI
bool shouldVanish()
const;
338 MCAPI
void startCooldown(::Player& player, ::SharedTypes::ItemCooldownType type)
const;
345 _loadBlocksForCanPlaceOnCanDestroy(::std::vector<::BlockType const*>& blockList, ::std::string
const& blockName);
348 MCAPI
static void loadItemStacksFromDescriptor(
349 ::std::vector<::ItemStack>& outItems,
350 ::std::vector<::NetworkItemStackDescriptor>
const& descriptors,
351 ::BlockPalette& blockPalette,
360 MCAPI static ::ItemStackBase::ComparisonOptions
const& COMPARISONOPTIONS_AUXANDRELEVANTUSERDATA();
362 MCAPI static ::ItemStackBase::ComparisonOptions
const& COMPARISONOPTIONS_RELEVANTUSERDATA();
364 MCAPI static ::std::string
const& TAG_CAN_DESTROY();
366 MCAPI static ::std::string
const& TAG_CAN_PLACE_ON();
368 MCAPI static ::std::string
const& TAG_CHARGED_ITEM();
370 MCAPI static ::std::string
const& TAG_DISPLAY();
372 MCAPI static ::std::string
const& TAG_DISPLAY_FILTERED_NAME();
374 MCAPI static ::std::string
const& TAG_DISPLAY_NAME();
376 MCAPI static ::std::string
const& TAG_ENCHANTS();
378 MCAPI static ::std::string
const& TAG_LORE();
380 MCAPI static ::std::string
const& TAG_REPAIR_COST();
382 MCAPI static ::std::string
const& TAG_STORE_CAN_DESTROY();
384 MCAPI static ::std::string
const& TAG_STORE_CAN_PLACE_ON();
386 MCAPI static ::std::string
const& TAG_UNBREAKABLE();
392 MCAPI
void* $ctor(::RecipeIngredient
const& ingredient);
394 MCAPI
void* $ctor(::ItemStackBase
const& rhs);
396 MCAPI
void* $ctor(::Block
const& block,
int count, ::CompoundTag
const* _userData);
398 MCAPI
void* $ctor(::Item
const& item,
int count,
int auxValue, ::CompoundTag
const* _userData);
400 MCAPI
void* $ctor(::std::string_view name,
int count,
int auxValue, ::CompoundTag
const* _userData);
412 MCFOLD
void $reinit(::Item
const& item,
int count,
int auxValue);
414 MCFOLD
void $reinit(::Block
const& block,
int count);
416 MCFOLD
void $reinit(::std::string_view
const name,
int count,
int auxValue);
418 MCAPI
void $setNull(::std::optional<::std::string> reason);
420 MCAPI ::std::string $toString()
const;
422 MCAPI ::std::string $toDebugString()
const;
430 MCAPI
static void** $vftable();