64 ::ll::TypedStorage<1, 1, bool> mCompareAux;
65 ::ll::TypedStorage<1, 1, bool> mCompareRelevantUserData;
66 ::ll::TypedStorage<1, 1, bool> mCompareDamage;
71 LLNDAPI std::string getTypeName()
const;
72 LLNDAPI std::string getDescriptionName()
const;
73 LLNDAPI
bool isEnchanted()
const;
74 LLNDAPI
bool removeEnchants()
const;
75 LLAPI
void deserializeComponents(
IDataInput& input);
81 ::std::unique_ptr<::CompoundTag> mUserData;
85 bool mValid_DeprecatedSeeComment;
88 ::std::chrono::steady_clock::time_point mPickupTime;
89 ::std::vector<::BlockType const*> mCanPlaceOn;
90 uint64 mCanPlaceOnHash;
91 ::std::vector<::BlockType const*> mCanDestroy;
92 uint64 mCanDestroyHash;
94 ::std::unique_ptr<::ItemInstance> mChargedItem;
104 virtual ~ItemStackBase();
106 virtual void reinit(
::Item const& item,
int count,
int auxValue);
108 virtual void reinit(
::Block const& block,
int count);
110 virtual void reinit(::std::string_view
const name,
int count,
int auxValue);
112 virtual void setNull(::std::optional<::std::string> reason);
114 virtual ::std::string toString()
const;
116 virtual ::std::string toDebugString()
const;
124 MCAPI ItemStackBase(::ItemStackBase
const& rhs);
126 MCAPI ItemStackBase(
::Block const& block,
int count = 1,
::CompoundTag const* _userData =
nullptr);
128 MCAPI ItemStackBase(
::Item const& item,
int count = 1,
int auxValue = 0,
::CompoundTag const* _userData =
nullptr);
130 MCAPI 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 _loadComponents(
::CompoundTag const& compoundTag);
154 MCAPI
bool _setItem(
int id,
bool doRemap);
156 MCAPI
void _setItemFromBlockName(
::HashedString const& blockName);
158 MCAPI
void _updateCompareHashes();
160 MCAPI
void add(
int inCount);
162 MCAPI
bool addComponents(
::Json::Value const& root, ::std::string& errorMsg);
168 MCAPI
bool canBeCharged()
const;
170 MCAPI
bool canDestroy(
::Block const* block)
const;
172 MCAPI
bool canDestroySpecial(
::Block const& block)
const;
174 MCAPI
bool canPlaceOn(
::Block const* block)
const;
176 MCAPI
bool clearAllDynamicProperties(::std::string
const& collection);
178 MCAPI
void clearChargedItem();
180 MCAPI
void clearCustomLore();
182 MCAPI
bool componentsMatch(::ItemStackBase
const&)
const;
184 MCAPI ::ItemEnchants constructItemEnchantsFromUserData()
const;
186 MCAPI ::SharedTypes::Legacy::ArmorSlot getArmorSlot()
const;
188 MCAPI ::std::optional<::SharedTypes::Legacy::LevelSoundEvent> getAttackCriticalHitSound()
const;
190 MCAPI
int getAttackDamage()
const;
192 MCAPI
float getAttackDamageBonus(
::Actor const& attacker)
const;
194 MCAPI ::std::optional<::SharedTypes::Legacy::LevelSoundEvent> getAttackHitSound()
const;
196 MCAPI ::std::optional<::SharedTypes::Legacy::LevelSoundEvent> getAttackMissSound()
const;
198 MCAPI
short getAuxValue()
const;
200 MCAPI
int getBaseRepairCost()
const;
202 MCFOLD ::Block
const* getBlock()
const;
205 MCAPI ::Block
const* getBlockForRendering()
const;
208 MCAPI ::WeakPtr<::BlockType const>
const& getBlockType()
const;
211 MCAPI ::WeakPtr<::BlockType const>
const& getBlockTypeForRendering()
const;
214 MCFOLD ::Tick
const& getBlockingTick()
const;
216 MCFOLD ::std::vector<::BlockType const*>
const& getCanDestroy()
const;
218 MCFOLD ::std::vector<::BlockType const*>
const& getCanPlaceOn()
const;
220 MCAPI ::std::string getCategoryName()
const;
222 MCAPI ::ItemInstance
const& getChargedItem()
const;
224 MCAPI ::mce::Color getColor()
const;
226 MCAPI ::ItemComponent
const* getComponent(
::HashedString const&
id)
const;
228 MCAPI ::ComponentItem
const* getComponentItem()
const;
230 MCAPI ::std::vector<::std::string> getCustomLore()
const;
232 MCAPI ::std::string getCustomName()
const;
234 MCAPI
short getDamageValue()
const;
236 MCAPI ::std::string getDescriptionId()
const;
238 MCAPI ::ItemDescriptor getDescriptor()
const;
240 MCAPI ::std::unique_ptr<::DynamicProperties> getDynamicProperties()
const;
242 MCAPI ::std::optional<::std::variant<double, float, bool, ::std::string, ::Vec3>>
243 getDynamicProperty(::std::string
const& key, ::std::string
const& collectionName)
const;
245 MCAPI ::std::string getEffectName(
bool playerIsCreative)
const;
247 MCAPI
int getEnchantSlot()
const;
249 MCAPI
int getEnchantValue()
const;
252 MCAPI ::Bedrock::Safety::RedactableString getFormattedHovertext(
::Level& level,
bool showCategory)
const;
255 MCAPI ::HashedString
const& getFullNameHash()
const;
258 MCAPI ::std::string getHoverName()
const;
260 MCAPI ::ResolvedItemIconInfo getIconInfo(
int newAnimationFrame,
bool inInventoryPane)
const;
263 MCAPI
short getId()
const;
265 MCAPI
int getIdAux()
const;
268 MCAPI
int getIdAuxEnchanted()
const;
270 MCAPI
bool getIsValidPickupTime()
const;
273 MCAPI ::Item
const* getItem()
const;
275 MCAPI
short getMaxDamage()
const;
277 MCAPI uchar getMaxStackSize()
const;
279 MCAPI ::std::string getName()
const;
281 MCAPI ::std::unique_ptr<::CompoundTag> getNetworkUserData()
const;
284 MCAPI
float getPickupPopPercentage()
const;
286 MCFOLD ::std::chrono::steady_clock::time_point getPickupTime()
const;
289 MCAPI ::HashedString
const& getRawNameHash()
const;
291 MCAPI ::std::string getRawNameId()
const;
293 MCAPI ::Bedrock::Safety::RedactableString getRedactedCustomName()
const;
295 MCAPI ::Bedrock::Safety::RedactableString getRedactedHoverName()
const;
297 MCAPI ::Bedrock::Safety::RedactableString getRedactedName()
const;
300 MCAPI ::HashedString
const& getRendererId()
const;
303 MCAPI ::BaseGameVersion
const& getRequiredBaseGameVersion()
const;
305 MCAPI uint getSwingDuration()
const;
307 MCAPI ::SharedTypes::Legacy::UseAnimation getUseAnimation()
const;
309 MCFOLD ::CompoundTag
const* getUserData()
const;
311 MCFOLD ::CompoundTag* getUserData();
313 MCFOLD
bool getWasPickedUp()
const;
315 MCAPI
bool hasChargedItem()
const;
318 MCAPI
bool hasComponent(::std::string
const& name)
const;
321 MCAPI
bool hasCompoundTextUserData()
const;
323 MCAPI
bool hasContainerData()
const;
325 MCAPI
bool hasCooldown()
const;
327 MCAPI
bool hasCustomHoverName()
const;
329 MCAPI
bool hasDamageValue()
const;
331 MCAPI
bool hasDurability()
const;
333 MCAPI
bool hasSameAuxValue(::ItemStackBase
const& other)
const;
335 MCAPI
bool hasSameUserData(::ItemStackBase
const& other)
const;
337 MCAPI
bool hasTag(uint64
const& hash)
const;
339 MCAPI
bool hasTag(
::ItemTag const&
string)
const;
341 MCFOLD
bool hasUserData()
const;
343 MCAPI
bool hurtAndBreak(
int deltaDamage,
::Actor* owner);
345 MCAPI
void init(
::BlockType const& block,
int count);
347 MCAPI
void init(
::Item const& item,
int count,
int auxValue,
::CompoundTag const* userData,
bool doRemap);
349 MCAPI
bool isArmorItem()
const;
352 MCAPI
bool isAttachableEquipment()
const;
355 MCAPI
bool isBlock()
const;
357 MCAPI
bool isBlockInstance(
::HashedString const& blockName)
const;
359 MCAPI
bool isDamageableItem()
const;
361 MCAPI
bool isDamaged()
const;
363 MCAPI
bool isEnchantingBook()
const;
365 MCAPI
bool isExplodable()
const;
367 MCAPI
bool isFireResistant()
const;
369 MCAPI
bool isFullStack()
const;
371 MCAPI
bool isGlint()
const;
373 MCAPI
bool isHorseArmorItem()
const;
375 MCAPI
bool isHumanoidArmorItem()
const;
377 MCAPI
bool isHumanoidWearableBlockItem()
const;
379 MCAPI
bool isHumanoidWearableItem()
const;
381 MCAPI
bool isInstance(
::HashedString const& itemName,
bool useItemLookup)
const;
383 MCAPI
bool isLiquidClipItem()
const;
385 MCAPI
bool isMusicDiscItem()
const;
387 MCAPI
bool isNull()
const;
389 MCAPI
bool isOffhandItem()
const;
391 MCAPI
bool isOnCooldown(
::Player& player, ::SharedTypes::ItemCooldownType type)
const;
394 isOneOfBlockInstances(::std::vector<::std::reference_wrapper<::HashedString const>>
const& blockTypeIds)
const;
397 isOneOfBlockInstances(::std::initializer_list<::std::reference_wrapper<::HashedString const>> blocks)
const;
399 MCAPI
bool isOneOfInstances(
400 ::std::initializer_list<::std::reference_wrapper<::HashedString const>> items,
404 MCAPI
bool isPattern()
const;
406 MCAPI
bool isPotionItem()
const;
408 MCAPI
bool isStackable()
const;
410 MCAPI
bool isStackable(::ItemStackBase
const& other)
const;
412 MCAPI
bool isStackedByData()
const;
415 MCAPI
bool isThrowable()
const;
417 MCAPI
bool isTransparentAttachable()
const;
420 MCAPI
bool isUnbreakable()
const;
423 MCAPI
bool isUseable()
const;
426 MCAPI
bool isValidAuxValue(
int value)
const;
432 MCFOLD
bool matches(::ItemStackBase
const& other)
const;
434 MCAPI
bool matchesEitherWearableCase(
::CompoundTag const* userData)
const;
436 MCAPI
bool matchesItem(::ItemStackBase
const& other)
const;
438 MCAPI
explicit operator bool()
const;
440 MCAPI
bool operator!=(::ItemStackBase
const& rhs)
const;
442 MCAPI ::ItemStackBase& operator=(::ItemStackBase
const& rhs);
444 MCFOLD
bool operator==(::ItemStackBase
const& rhs)
const;
446 MCAPI
void refreshedInContainer(
::Level& level)
const;
448 MCAPI
void remove(
int inCount);
450 MCAPI
void removeDamageValue();
452 MCAPI
bool removeDynamicProperty(::std::string
const& key, ::std::string
const& collectionName);
454 MCAPI
void removeEnchants();
456 MCAPI
void resetHoverName();
460 MCAPI
bool sameItemAndAux(::ItemStackBase
const& other)
const;
462 MCAPI ::std::unique_ptr<::CompoundTag> save(
::SaveContext const& saveContext)
const;
466 MCAPI
bool sendEventTriggered(::std::string
const& event,
::RenderParams const& params);
470 MCAPI
void set(
int inCount);
472 MCAPI
void setAuxValue(
short value);
474 MCFOLD
void setBlock(
::Block const* block);
476 MCFOLD
void setBlockingTick(
::Tick blockingTick);
478 MCAPI
bool setCanDestroy(::std::vector<::std::string>
const& blockIds);
480 MCAPI
bool setCanPlaceOn(::std::vector<::std::string>
const& blockIds);
482 MCAPI
void setChargedItem(
::ItemInstance const& instance,
bool isSwapping);
484 MCAPI
void setCustomLore(::std::vector<::std::string>
const& lore);
488 MCAPI
void setDamageValue(
short newDamage);
490 MCAPI
void setDynamicProperty(
491 ::std::string
const& key,
492 ::std::variant<double, float, bool, ::std::string, ::Vec3>
const& value,
493 ::std::string
const& collectionName
496 MCAPI
void setJustBrewed(
bool justBrewed);
498 MCAPI
void setPickupTime();
501 MCFOLD
void setPickupTime(::std::chrono::steady_clock::time_point newPickupTime);
504 MCAPI
void setRepairCost(
int cost);
506 MCFOLD
void setShowPickUp(
bool show);
508 MCAPI
void setUnbreakable(
bool isUnbreakable);
510 MCAPI
void setUserData(::std::unique_ptr<::CompoundTag> tag);
512 MCFOLD
void setWasPickedUp(
bool wasPickedUp);
514 MCAPI
bool shouldInteractionWithBlockBypassLiquid(
::Block const& block)
const;
516 MCAPI
bool shouldVanish()
const;
519 MCFOLD
bool showPickUp()
const;
521 MCAPI
bool showsDurabilityInCreative()
const;
524 MCAPI
void startCooldown(
::Player& player, ::SharedTypes::ItemCooldownType type)
const;
526 MCAPI
bool updateComponent(::std::string
const& name,
::Json::Value const& data);
529 MCAPI
bool wasJustBrewed()
const;
537 _loadBlocksForCanPlaceOnCanDestroy(::std::vector<::BlockType const*>& blockList, ::std::string
const& blockName);
540 MCAPI
static void loadItemStacksFromDescriptor(
541 ::std::vector<::ItemStack>& outItems,
542 ::std::vector<::NetworkItemStackDescriptor>
const& descriptors,
547 MCAPI
static int retrieveAuxValFromIDAux(
int idAux);
549 MCAPI
static bool retrieveEnchantFromIDAux(
int idAux);
551 MCAPI
static short retrieveIDFromIDAux(
int idAux);
558 MCAPI static ::ItemStackBase::ComparisonOptions
const& COMPARISONOPTIONS_AUXANDRELEVANTUSERDATA();
560 MCAPI static ::ItemStackBase::ComparisonOptions
const& COMPARISONOPTIONS_RELEVANTUSERDATA();
562 MCAPI static ::std::string
const& TAG_CAN_DESTROY();
564 MCAPI static ::std::string
const& TAG_CAN_PLACE_ON();
566 MCAPI static ::std::string
const& TAG_CHARGED_ITEM();
568 MCAPI static ::std::string
const& TAG_DISPLAY();
570 MCAPI static ::std::string
const& TAG_DISPLAY_FILTERED_NAME();
572 MCAPI static ::std::string
const& TAG_DISPLAY_NAME();
574 MCAPI static ::std::string
const& TAG_ENCHANTS();
576 MCAPI static ::std::string
const& TAG_LORE();
578 MCAPI static ::std::string
const& TAG_REPAIR_COST();
580 MCAPI static ::std::string
const& TAG_STORE_CAN_DESTROY();
582 MCAPI static ::std::string
const& TAG_STORE_CAN_PLACE_ON();
584 MCAPI static ::std::string
const& TAG_UNBREAKABLE();
592 MCAPI
void* $ctor(::ItemStackBase
const& rhs);
596 MCAPI
void* $ctor(
::Item const& item,
int count,
int auxValue,
::CompoundTag const* _userData);
598 MCAPI
void* $ctor(::std::string_view name,
int count,
int auxValue,
::CompoundTag const* _userData);
610 MCFOLD
void $reinit(
::Item const& item,
int count,
int auxValue);
612 MCFOLD
void $reinit(
::Block const& block,
int count);
614 MCFOLD
void $reinit(::std::string_view
const name,
int count,
int auxValue);
616 MCAPI
void $setNull(::std::optional<::std::string> reason);
618 MCAPI ::std::string $toString()
const;
620 MCAPI ::std::string $toDebugString()
const;
628 MCAPI
static void** $vftable();