57 bool mExcludeUserDataDiffCheck : 1;
58 bool mCanDestroyInCreative : 1;
59 bool mRequiresInteract : 1;
60 bool mIsLiquidClipped : 1;
61 ::ll::TypedStorage<4, 4, float> mSpeed;
62 ::ll::TypedStorage<4, 4, int> mDamage;
63 ::ll::TypedStorage<4, 4, ::Enchant::Slot> mEnchantSlot;
64 ::ll::TypedStorage<4, 4, int> mEnchantValue;
65 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mAlias;
66 ::ll::TypedStorage<1, 1, bool> mIsAttachable;
67 ::ll::TypedStorage<8, 16, ::std::map<::HashedString, ::std::shared_ptr<::ItemComponent>>> mItemComponents;
68 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::IconItemComponent>> mIcon;
69 ::ll::TypedStorage<8, 8, ::WeakPtr<::BlockLegacy const>> mLegacyBlockForRendering;
70 ::ll::TypedStorage<8, 16, ::std::map<::std::string, ::std::shared_ptr<::ItemComponent>>>
71 mRegisteredCerealComponents;
72 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::cereal::ReflectionCtx const>> mCtx;
90 virtual void tearDown() ;
93 virtual bool isComponentBased()
const ;
96 virtual bool isHumanoidArmor()
const ;
99 virtual bool isBlockPlanterItem()
const ;
102 virtual bool isDamageable()
const ;
105 virtual bool isDyeable()
const ;
108 virtual bool isFood()
const ;
111 virtual bool isThrowable()
const ;
114 virtual bool isUseable()
const ;
117 virtual bool isMusicDisk()
const ;
120 virtual bool isTrimAllowed()
const ;
123 virtual ::WeakPtr<::BlockLegacy const>
const& getLegacyBlockForRendering()
const ;
126 virtual ::ItemComponent* getComponent(
::HashedString const&
id)
const ;
129 virtual ::IFoodItemComponent* getFood()
const ;
132 virtual ::Item& setMaxDamage(
int maxDamage) ;
135 virtual ::std::string
const& getDescriptionId()
const ;
138 virtual ::BlockShape getBlockShape()
const ;
141 virtual bool canBeDepleted()
const ;
144 virtual bool canDestroySpecial(
::Block const& block)
const ;
147 virtual int getLevelDataForAuxValue(
int)
const ;
150 virtual short getMaxDamage()
const ;
153 virtual int getAttackDamage()
const ;
159 virtual bool canDestroyInCreative()
const ;
162 virtual bool isDestructive(
int)
const ;
165 virtual bool isLiquidClipItem()
const ;
168 virtual bool requiresInteract()
const ;
171 virtual void appendFormattedHovertext(
175 bool const showCategory
179 virtual bool isValidRepairItem(
186 virtual int getEnchantSlot()
const ;
189 virtual int getEnchantValue()
const ;
192 virtual int getArmorValue()
const ;
195 virtual int getDamageChance(
int unbreaking)
const ;
213 virtual ::Actor* createProjectileActor(
248 virtual ::std::string buildEffectDescriptionName(
::ItemStackBase const& stack)
const ;
254 virtual ::HashedString
const& getCooldownType()
const ;
257 virtual int getCooldownTime()
const ;
260 virtual ::SharedTypes::Legacy::ActorLocation getEquipLocation()
const ;
263 virtual ::SharedTypes::Legacy::LevelSoundEvent getEquipSound()
const ;
266 virtual bool useVariant(
int,
int,
bool)
const;
269 virtual int getVariant(
int,
int,
bool)
const;
276 virtual ::std::string getInteractText(
::Player const& player)
const ;
279 virtual int getAnimationFrameFor(
::Mob*,
bool,
::ItemStack const*,
bool)
const ;
282 virtual bool isEmissive(
int auxValue)
const ;
285 virtual ::ResolvedItemIconInfo
286 getIconInfo(
::ItemStackBase const& item,
int newAnimationFrame,
bool inInventoryPane)
const ;
289 virtual ::Item& setIconInfo(::std::string
const& name,
int index) ;
292 virtual bool canBeCharged()
const ;
295 virtual ::ComponentItem& setDescriptionId(::std::string
const& descriptionId) ;
298 virtual bool shouldUseJsonForRenderMatrix()
const;
301 virtual ::std::unique_ptr<::CompoundTag> buildNetworkTag()
const ;
304 virtual void initializeFromNetwork(
::CompoundTag const& tag) ;
307 virtual ::std::vector<::std::string> validateFromNetwork(
::CompoundTag const& tag) ;
319 virtual bool _shouldAutoCalculatePlacePos()
const ;
322 virtual ::InteractionResult
332 MCAPI
void _addRegisteredCerealComponent(
333 ::std::pair<::std::string
const, ::std::shared_ptr<::ItemComponent>>& cerealComponent
338 MCAPI ::std::unique_ptr<::ListTag> _buildItemTagsNetworkTag()
const;
340 MCAPI
bool _doesNotTakeDurabilityDamage()
const;
342 MCAPI
void _initializeLoadedComponents(
343 ::std::optional<::SemVersion> documentVersion,
344 ::std::optional<::Experiments> _experiments
347 MCAPI
void _loadComponentsFromNetworkTag(
348 ::std::string
const& componentName,
355 MCAPI
void _loadItemTagsNetworkTag(
::ListTag const& listTag);
357 MCAPI
bool _validateSchemaAndInitItem(
360 ::JsonBetaState canUseBeta,
384 MCAPI ::Bedrock::PubSub::Connector<
399 MCAPI static ::std::pair<bool, ::SemVersion> upgradeJson(
401 ::std::string& document,
403 ::std::optional<::SemVersion> minVersion
422 MCFOLD
void $tearDown();
424 MCFOLD
bool $isComponentBased()
const;
426 MCAPI
bool $isHumanoidArmor()
const;
428 MCAPI
bool $isBlockPlanterItem()
const;
430 MCAPI
bool $isDamageable()
const;
432 MCAPI
bool $isDyeable()
const;
434 MCFOLD
bool $isFood()
const;
436 MCAPI
bool $isThrowable()
const;
438 MCAPI
bool $isUseable()
const;
440 MCAPI
bool $isMusicDisk()
const;
442 MCAPI
bool $isTrimAllowed()
const;
444 MCAPI ::WeakPtr<::BlockLegacy const>
const& $getLegacyBlockForRendering()
const;
446 MCAPI ::ItemComponent* $getComponent(
::HashedString const&
id)
const;
448 MCAPI ::IFoodItemComponent* $getFood()
const;
450 MCAPI ::Item& $setMaxDamage(
int maxDamage);
452 MCAPI ::std::string
const& $getDescriptionId()
const;
454 MCFOLD ::BlockShape $getBlockShape()
const;
456 MCAPI
bool $canBeDepleted()
const;
458 MCAPI
bool $canDestroySpecial(
::Block const& block)
const;
460 MCFOLD
int $getLevelDataForAuxValue(
int)
const;
462 MCAPI
short $getMaxDamage()
const;
464 MCAPI
int $getAttackDamage()
const;
468 MCAPI
bool $canDestroyInCreative()
const;
470 MCFOLD
bool $isDestructive(
int)
const;
472 MCAPI
bool $isLiquidClipItem()
const;
474 MCAPI
bool $requiresInteract()
const;
476 MCAPI
void $appendFormattedHovertext(
480 bool const showCategory
483 MCAPI
bool $isValidRepairItem(
489 MCAPI
int $getEnchantSlot()
const;
491 MCFOLD
int $getEnchantValue()
const;
493 MCAPI
int $getArmorValue()
const;
495 MCAPI
int $getDamageChance(
int unbreaking)
const;
507 MCAPI ::Actor* $createProjectileActor(
530 MCAPI ::std::string $buildEffectDescriptionName(
::ItemStackBase const& stack)
const;
534 MCAPI ::HashedString
const& $getCooldownType()
const;
536 MCAPI
int $getCooldownTime()
const;
538 MCAPI ::SharedTypes::Legacy::ActorLocation $getEquipLocation()
const;
540 MCFOLD
bool $useVariant(
int,
int,
bool)
const;
542 MCFOLD
int $getVariant(
int,
int,
bool)
const;
544 MCAPI ::std::string $getInteractText(
::Player const& player)
const;
546 MCFOLD
int $getAnimationFrameFor(
::Mob*,
bool,
::ItemStack const*,
bool)
const;
548 MCFOLD
bool $isEmissive(
int auxValue)
const;
550 MCAPI ::ResolvedItemIconInfo
551 $getIconInfo(
::ItemStackBase const& item,
int newAnimationFrame,
bool inInventoryPane)
const;
553 MCAPI ::Item& $setIconInfo(::std::string
const& name,
int index);
555 MCAPI
bool $canBeCharged()
const;
557 MCAPI ::ComponentItem& $setDescriptionId(::std::string
const& descriptionId);
559 MCAPI
bool $shouldUseJsonForRenderMatrix()
const;
561 MCAPI ::std::unique_ptr<::CompoundTag> $buildNetworkTag()
const;
565 MCAPI ::std::vector<::std::string> $validateFromNetwork(
::CompoundTag const& tag);
572 MCAPI
bool $_shouldAutoCalculatePlacePos()
const;
574 MCAPI ::InteractionResult