74 enum class OffhandAllowed : uchar {
83 ::ll::TypedStorage<4, 4, ::ItemVersion> mItemParseVersion;
84 ::ll::TypedStorage<8, 32, ::std::string> mTextureAtlasFile;
85 ::ll::TypedStorage<4, 4, int> mFrameCount;
86 ::ll::TypedStorage<1, 1, bool> mAnimatesInToolbar;
87 ::ll::TypedStorage<1, 1, bool> mIsMirroredArt;
88 ::ll::TypedStorage<1, 1, ::SharedTypes::Legacy::UseAnimation> mUseAnim;
89 ::ll::TypedStorage<8, 32, ::std::string> mHoverTextColorFormat;
90 ::ll::TypedStorage<4, 4, int> mIconFrame;
91 ::ll::TypedStorage<4, 4, int> mAtlasFrame;
92 ::ll::TypedStorage<4, 4, int> mAtlasTotalFrames;
93 ::ll::TypedStorage<8, 32, ::std::string> mIconName;
94 ::ll::TypedStorage<8, 32, ::std::string> mAtlasName;
95 ::ll::TypedStorage<1, 1, uchar> mMaxStackSize;
96 ::ll::TypedStorage<2, 2, short> mId;
97 ::ll::TypedStorage<8, 32, ::std::string> mDescriptionId;
98 ::ll::TypedStorage<8, 48, ::HashedString> mRawNameId;
99 ::ll::TypedStorage<8, 32, ::std::string> mNamespace;
100 ::ll::TypedStorage<8, 48, ::HashedString> mFullName;
101 ::ll::TypedStorage<2, 2, short> mMaxDamage;
103 bool mHandEquipped : 1;
104 bool mIsStackedByData : 1;
105 bool mRequiresWorldBuilder : 1;
106 bool mExplodable : 1;
107 bool mFireResistant : 1;
108 bool mShouldDespawn : 1;
109 bool mIgnoresPermissions : 1;
110 ::ll::TypedStorage<4, 4, int> mMaxUseDuration;
111 ::ll::TypedStorage<8, 32, ::BaseGameVersion> mMinRequiredBaseGameVersion;
112 ::ll::TypedStorage<8, 8, ::BlockType const*> mBlockType;
113 ::ll::TypedStorage<1, 1, ::SharedTypes::CreativeItemCategory> mCreativeCategory;
114 ::ll::TypedStorage<8, 8, ::Item*> mCraftingRemainingItem;
115 ::ll::TypedStorage<8, 32, ::std::string> mCreativeGroup;
116 ::ll::TypedStorage<4, 4, float> mFurnaceBurnIntervalModifier;
117 ::ll::TypedStorage<4, 4, float> mFurnaceXPmultiplier;
118 ::ll::TypedStorage<1, 1, ::ItemCommandVisibility> mIsHiddenInCommands;
119 ::ll::TypedStorage<4, 4, ::Rarity> mBaseRarity;
120 ::ll::TypedStorage<4, 4, ::Interactions::Mining::MineBlockItemEffectType> mMineBlockType;
121 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::FoodItemComponentLegacy>> mFoodComponentLegacy;
122 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::SeedItemComponentLegacy>> mSeedComponent;
123 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::CameraItemComponentLegacy>> mCameraComponentLegacy;
124 ::ll::TypedStorage<8, 24, ::std::vector<::std::function<void()>>> mOnResetBAICallbacks;
125 ::ll::TypedStorage<8, 24, ::std::vector<::ItemTag>> mTags;
126 ::Item::OffhandAllowed mAllowOffhand : 2;
138 virtual void initServer(
142 ::std::optional<::LegacyEventItemComponentData> legacyEventData
145 virtual void tearDown();
147 virtual ::Item& setDescriptionId(::std::string
const& description);
149 virtual ::std::string
const& getDescriptionId()
const;
151 virtual int getMaxUseDuration(
::ItemStack const* instance)
const;
153 virtual ::BlockType
const* getBlockTypeForRendering()
const;
155 virtual bool isMusicDisk()
const;
159 virtual bool isComponentBased()
const;
161 virtual bool isHumanoidArmor()
const;
163 virtual bool isBlockPlanterItem()
const;
165 virtual bool isBucket()
const;
167 virtual bool isCandle()
const;
169 virtual bool isDamageable()
const;
171 virtual bool isDyeable()
const;
173 virtual bool isDye()
const;
175 virtual ::ItemColor getItemColor()
const;
177 virtual bool isFertilizer()
const;
179 virtual bool isFood()
const;
181 virtual bool isThrowable()
const;
183 virtual bool isUseable()
const;
185 virtual bool isTrimAllowed()
const;
187 virtual bool isBodyArmor()
const;
189 virtual ::ItemComponent* getComponent(
::HashedString const&
id)
const;
191 virtual ::IFoodItemComponent* getFood()
const;
193 virtual ::Item& setMaxDamage(
int maxDamage);
195 virtual ::Item& setMaxUseDuration(
int maxUseDuration);
197 virtual ::std::unique_ptr<::CompoundTag> buildNetworkTag()
const;
199 virtual void initializeFromNetwork(
::CompoundTag const& tag);
201 virtual ::std::vector<::std::string> validateFromNetwork(
::CompoundTag const& tag);
203 virtual ::BlockShape getBlockShape()
const;
205 virtual bool canBeDepleted()
const;
207 virtual bool canDestroySpecial(
::Block const& block)
const;
209 virtual int getLevelDataForAuxValue(
int auxValue)
const;
211 virtual bool isStackedByData()
const;
213 virtual short getMaxDamage()
const;
215 virtual int getAttackDamage()
const;
217 virtual float getAttackDamageBonus(
::Actor const& attacker)
const;
219 virtual bool isHandEquipped()
const;
223 virtual bool isPattern()
const;
225 virtual int getPatternIndex()
const;
227 virtual ::Rarity getBaseRarity()
const;
231 virtual uint getSwingDuration()
const;
233 virtual bool showsDurabilityInCreative()
const;
235 virtual bool isWearableThroughLootTable(
::CompoundTag const* userData)
const;
237 virtual bool canDestroyInCreative()
const;
239 virtual bool isDestructive(
int auxValue)
const;
241 virtual bool isLiquidClipItem()
const;
243 virtual bool shouldInteractionWithBlockBypassLiquid(
::Block const& block)
const;
245 virtual bool requiresInteract()
const;
247 virtual ::std::string getHoverTextColor(
::ItemStackBase const& stack)
const;
249 virtual void appendFormattedHovertext(
256 virtual bool isValidRepairItem(
262 virtual int getEnchantSlot()
const;
264 virtual int getEnchantValue()
const;
266 virtual int getArmorValue()
const;
268 virtual int getToughnessValue()
const;
270 virtual float getKnockbackResistanceValue()
const;
272 virtual ::std::optional<::SoundEventIdentifier> getAttackMissSound()
const;
274 virtual ::std::optional<::SoundEventIdentifier> getAttackHitSound()
const;
276 virtual ::std::optional<::SoundEventIdentifier> getAttackCriticalHitSound()
const;
278 virtual ::SharedTypes::Legacy::LevelSoundEvent getBreakSound()
const;
280 virtual ::SharedTypes::Legacy::LevelSoundEvent getEquipSound()
const;
282 virtual bool isComplex()
const;
284 virtual bool isValidAuxValue(
int auxValue)
const;
286 virtual int getDamageChance(
int unbreaking)
const;
288 virtual float getViewDamping()
const;
290 virtual bool uniqueAuxValues()
const;
292 virtual bool isActorPlacerItem()
const;
294 virtual ::ItemTintStrategy getTintStrategy()
const;
300 virtual bool hasCustomColor(
::CompoundTag const* userData)
const;
306 virtual ::ActorDefinitionIdentifier getActorIdentifier(
::ItemStack const&)
const;
308 virtual int buildIdAux(
short auxValue,
::CompoundTag const* userData)
const;
310 virtual bool canUseOnSimTick()
const;
314 virtual bool canUseAsAttack()
const;
319 virtual ::Actor* createProjectileActor(
323 ::Vec3 const& aimDirection
340 virtual ::std::string buildDescriptionName(
::ItemStackBase const& stack)
const;
342 virtual ::Bedrock::Safety::RedactableString
const buildRedactedDescriptionName(
::ItemStackBase const& stack)
const;
344 virtual ::std::string
347 virtual ::Bedrock::Safety::RedactableString getRedactedCustomName(
::ItemStackBase const& stack)
const;
351 virtual ::std::string buildEffectDescriptionName(
::ItemStackBase const& stack,
bool playerIsCreative)
const;
364 virtual ::HashedString
const& getCooldownCategory()
const;
366 virtual int getCooldownDuration()
const;
368 virtual ::SharedTypes::ItemCooldownType getCooldownType()
const;
374 virtual ::InHandUpdateType getInHandUpdateType(
378 bool const isMainHand,
379 bool const slotChanged
382 virtual bool validFishInteraction(
int)
const;
386 virtual ::SharedTypes::Legacy::ActorLocation getEquipLocation()
const;
388 virtual bool shouldEmitInUseGameEvents()
const;
390 virtual bool useInterruptedByAttacking()
const;
394 virtual void initClient(
398 ::std::optional<::ItemIconInfo> (*iconFactory)(::std::string
const&,
int)
401 virtual ::Item& setIconInfo(::std::string
const& name,
int index);
403 virtual ::ResolvedItemIconInfo
404 getIconInfo(
::ItemStackBase const& item,
int newAnimationFrame,
bool inInventoryPane)
const;
406 virtual ::std::string getInteractText(
::Player const& player)
const;
409 getAnimationFrameFor(
::Mob* holder,
bool asItemEntity,
::ItemStack const* item,
bool shouldAnimate)
const;
411 virtual bool isEmissive(
int auxValue)
const;
413 virtual ::Brightness getLightEmission(
int data)
const;
415 virtual bool canBeCharged()
const;
417 virtual void playSoundIncrementally(
::ItemStack const& item,
::Mob& mob)
const;
419 virtual float getFurnaceXPmultiplier(
::ItemStackBase const& instance)
const;
423 virtual ::std::string _getHoverTextDescription()
const;
430 virtual bool _shouldAutoCalculatePlacePos()
const;
432 virtual ::InteractionResult _useOn(
445 MCAPI Item(::std::string
const& nameId,
short id);
449 MCAPI
void _helpChangeInventoryItemInPlace(
453 ::ItemAcquisitionMethod acquisitionMethod
456 MCAPI ::CoordinatorResult _sendTryPlaceBlockEvent(
465 MCAPI
void addOnResetBAICallback(::std::function<
void()> callback);
467 MCAPI ::Item& addTag(
::ItemTag const& tag);
471 MCAPI
void clearTags();
473 MCAPI ::std::vector<::CommandName> getCommandNames()
const;
475 MCAPI
short getDamageValue(
::CompoundTag const* userData)
const;
477 MCAPI ::std::string getSerializedName()
const;
479 MCAPI
bool hasTag(
::ItemTag const& tag)
const;
483 MCAPI
void setDamageValue(
::ItemStackBase& stack,
short newDamage)
const;
488 MCAPI ::InteractionResult useOn(
510 MCAPI static ::SemVersionConstant
const& DATA_DRIVEN_NEXT_VERSION();
512 MCAPI static ::SemVersionConstant
const& DATA_DRIVEN_VERSION();
514 MCAPI static ::std::string
const& ICON_DESCRIPTION_PREFIX();
516 MCAPI static ::std::string
const& TAG_DAMAGE();
522 MCAPI
void* $ctor(::std::string
const& nameId,
short id);
534 MCAPI
void $initServer(
538 ::std::optional<::LegacyEventItemComponentData> legacyEventData
541 MCFOLD
void $tearDown();
543 MCAPI ::Item& $setDescriptionId(::std::string
const& description);
545 MCAPI ::std::string
const& $getDescriptionId()
const;
547 MCAPI
int $getMaxUseDuration(
::ItemStack const* instance)
const;
549 MCAPI ::BlockType
const* $getBlockTypeForRendering()
const;
551 MCFOLD
bool $isMusicDisk()
const;
555 MCFOLD
bool $isComponentBased()
const;
557 MCFOLD
bool $isHumanoidArmor()
const;
559 MCFOLD
bool $isBlockPlanterItem()
const;
561 MCFOLD
bool $isBucket()
const;
563 MCFOLD
bool $isCandle()
const;
565 MCAPI
bool $isDamageable()
const;
567 MCFOLD
bool $isDyeable()
const;
569 MCFOLD
bool $isDye()
const;
571 MCFOLD ::ItemColor $getItemColor()
const;
573 MCFOLD
bool $isFertilizer()
const;
575 MCFOLD
bool $isFood()
const;
577 MCFOLD
bool $isThrowable()
const;
579 MCFOLD
bool $isUseable()
const;
581 MCFOLD
bool $isTrimAllowed()
const;
583 MCFOLD
bool $isBodyArmor()
const;
585 MCFOLD ::ItemComponent* $getComponent(
::HashedString const&
id)
const;
587 MCAPI ::IFoodItemComponent* $getFood()
const;
589 MCAPI ::Item& $setMaxDamage(
int maxDamage);
591 MCAPI ::Item& $setMaxUseDuration(
int maxUseDuration);
593 MCAPI ::std::unique_ptr<::CompoundTag> $buildNetworkTag()
const;
597 MCFOLD ::std::vector<::std::string> $validateFromNetwork(
::CompoundTag const& tag);
599 MCFOLD ::BlockShape $getBlockShape()
const;
601 MCAPI
bool $canBeDepleted()
const;
603 MCFOLD
bool $canDestroySpecial(
::Block const& block)
const;
605 MCFOLD
int $getLevelDataForAuxValue(
int auxValue)
const;
607 MCAPI
bool $isStackedByData()
const;
609 MCAPI
short $getMaxDamage()
const;
611 MCFOLD
int $getAttackDamage()
const;
613 MCFOLD
float $getAttackDamageBonus(
::Actor const& attacker)
const;
615 MCAPI
bool $isHandEquipped()
const;
619 MCFOLD
bool $isPattern()
const;
621 MCFOLD
int $getPatternIndex()
const;
623 MCAPI ::Rarity $getBaseRarity()
const;
627 MCFOLD uint $getSwingDuration()
const;
629 MCFOLD
bool $showsDurabilityInCreative()
const;
631 MCFOLD
bool $isWearableThroughLootTable(
::CompoundTag const* userData)
const;
633 MCFOLD
bool $canDestroyInCreative()
const;
635 MCFOLD
bool $isDestructive(
int auxValue)
const;
637 MCFOLD
bool $isLiquidClipItem()
const;
639 MCFOLD
bool $shouldInteractionWithBlockBypassLiquid(
::Block const& block)
const;
641 MCFOLD
bool $requiresInteract()
const;
643 MCAPI ::std::string $getHoverTextColor(
::ItemStackBase const& stack)
const;
645 MCAPI
void $appendFormattedHovertext(
652 MCFOLD
bool $isValidRepairItem(
658 MCFOLD
int $getEnchantSlot()
const;
660 MCFOLD
int $getEnchantValue()
const;
662 MCFOLD
int $getArmorValue()
const;
664 MCFOLD
int $getToughnessValue()
const;
666 MCFOLD
float $getKnockbackResistanceValue()
const;
668 MCFOLD ::std::optional<::SoundEventIdentifier> $getAttackMissSound()
const;
670 MCFOLD ::std::optional<::SoundEventIdentifier> $getAttackHitSound()
const;
672 MCFOLD ::std::optional<::SoundEventIdentifier> $getAttackCriticalHitSound()
const;
674 MCFOLD ::SharedTypes::Legacy::LevelSoundEvent $getBreakSound()
const;
676 MCAPI ::SharedTypes::Legacy::LevelSoundEvent $getEquipSound()
const;
678 MCFOLD
bool $isComplex()
const;
680 MCFOLD
bool $isValidAuxValue(
int auxValue)
const;
682 MCAPI
int $getDamageChance(
int unbreaking)
const;
684 MCFOLD
float $getViewDamping()
const;
686 MCFOLD
bool $uniqueAuxValues()
const;
688 MCFOLD
bool $isActorPlacerItem()
const;
690 MCFOLD ::ItemTintStrategy $getTintStrategy()
const;
696 MCFOLD
bool $hasCustomColor(
::CompoundTag const* userData)
const;
702 MCAPI ::ActorDefinitionIdentifier $getActorIdentifier(
::ItemStack const&)
const;
704 MCAPI
int $buildIdAux(
short auxValue,
::CompoundTag const* userData)
const;
706 MCFOLD
bool $canUseOnSimTick()
const;
710 MCFOLD
bool $canUseAsAttack()
const;
715 MCFOLD ::Actor* $createProjectileActor(
719 ::Vec3 const& aimDirection
736 MCAPI ::std::string $buildDescriptionName(
::ItemStackBase const& stack)
const;
738 MCAPI ::Bedrock::Safety::RedactableString
const $buildRedactedDescriptionName(
::ItemStackBase const& stack)
const;
743 MCAPI ::Bedrock::Safety::RedactableString $getRedactedCustomName(
::ItemStackBase const& stack)
const;
747 MCAPI ::std::string $buildEffectDescriptionName(
::ItemStackBase const& stack,
bool playerIsCreative)
const;
760 MCAPI ::HashedString
const& $getCooldownCategory()
const;
762 MCAPI
int $getCooldownDuration()
const;
764 MCFOLD ::SharedTypes::ItemCooldownType $getCooldownType()
const;
770 MCAPI ::InHandUpdateType $getInHandUpdateType(
774 bool const isMainHand,
775 bool const slotChanged
778 MCFOLD
bool $validFishInteraction(
int)
const;
782 MCFOLD ::SharedTypes::Legacy::ActorLocation $getEquipLocation()
const;
784 MCFOLD
bool $shouldEmitInUseGameEvents()
const;
786 MCFOLD
bool $useInterruptedByAttacking()
const;
790 MCAPI
void $initClient(
794 ::std::optional<::ItemIconInfo> (*iconFactory)(::std::string
const&,
int)
797 MCFOLD ::Item& $setIconInfo(::std::string
const& name,
int index);
799 MCAPI ::ResolvedItemIconInfo
800 $getIconInfo(
::ItemStackBase const& item,
int newAnimationFrame,
bool inInventoryPane)
const;
802 MCAPI ::std::string $getInteractText(
::Player const& player)
const;
805 $getAnimationFrameFor(
::Mob* holder,
bool asItemEntity,
::ItemStack const* item,
bool shouldAnimate)
const;
807 MCAPI
bool $isEmissive(
int auxValue)
const;
809 MCFOLD ::Brightness $getLightEmission(
int data)
const;
811 MCFOLD
bool $canBeCharged()
const;
813 MCFOLD
void $playSoundIncrementally(
::ItemStack const& item,
::Mob& mob)
const;
815 MCAPI
float $getFurnaceXPmultiplier(
::ItemStackBase const& instance)
const;
819 MCAPI ::std::string $_getHoverTextDescription()
const;
826 MCFOLD
bool $_shouldAutoCalculatePlacePos()
const;
828 MCAPI ::InteractionResult $_useOn(