LeviLamina
Loading...
Searching...
No Matches
Item.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/string/HashedString.h"
8#include "mc/deps/shared_types/item/CreativeItemCategory.h"
9#include "mc/deps/shared_types/item/ItemCooldownType.h"
10#include "mc/deps/shared_types/legacy/LevelSoundEvent.h"
11#include "mc/deps/shared_types/legacy/actor/ActorLocation.h"
12#include "mc/deps/shared_types/legacy/item/UseAnimation.h"
13#include "mc/gameplayhandlers/CoordinatorResult.h"
14#include "mc/util/BaseGameVersion.h"
15#include "mc/world/interactions/mining/MineBlockItemEffectType.h"
16#include "mc/world/item/InHandUpdateType.h"
17#include "mc/world/item/ItemAcquisitionMethod.h"
18#include "mc/world/item/ItemColor.h"
19#include "mc/world/item/ItemCommandVisibility.h"
20#include "mc/world/item/ItemUseMethod.h"
21#include "mc/world/item/Rarity.h"
22#include "mc/world/item/registry/ItemVersion.h"
23#include "mc/world/level/block/BlockShape.h"
24
25// auto generated forward declare list
26// clang-format off
27class Actor;
28class Block;
29class BlockPos;
30class BlockSource;
31class BlockType;
33class CompoundTag;
34class Container;
35class Experiments;
37class IDataInput;
38class IDataOutput;
40class ILevel;
42class ItemComponent;
43class ItemDescriptor;
44class ItemInstance;
45class ItemStack;
46class ItemStackBase;
47class Level;
48class Mob;
49class Player;
51class RenderParams;
53class SemVersion;
55class Vec3;
57struct Brightness;
58struct CommandName;
59struct ItemIconInfo;
60struct ItemTag;
61struct ItemTintStrategy;
66namespace Bedrock::Safety { class RedactableString; }
67namespace SharedTypes::v1_26_30 { struct ItemDocument; }
68namespace mce { class Color; }
69// clang-format on
70
71class Item {
72public:
73 // member variables
74 // NOLINTBEGIN
75 ::ll::TypedStorage<4, 4, ::ItemVersion> mItemParseVersion;
76 ::ll::TypedStorage<8, 32, ::std::string> mTextureAtlasFile;
77 ::ll::TypedStorage<4, 4, int> mFrameCount;
78 ::ll::TypedStorage<1, 1, bool> mAnimatesInToolbar;
79 ::ll::TypedStorage<1, 1, bool> mIsMirroredArt;
80 ::ll::TypedStorage<1, 1, ::SharedTypes::Legacy::UseAnimation> mUseAnim;
81 ::ll::TypedStorage<8, 32, ::std::string> mHoverTextColorFormat;
82 ::ll::TypedStorage<4, 4, int> mIconFrame;
83 ::ll::TypedStorage<4, 4, int> mAtlasFrame;
84 ::ll::TypedStorage<4, 4, int> mAtlasTotalFrames;
85 ::ll::TypedStorage<8, 32, ::std::string> mIconName;
86 ::ll::TypedStorage<8, 32, ::std::string> mAtlasName;
87 ::ll::TypedStorage<1, 1, uchar> mMaxStackSize;
88 ::ll::TypedStorage<2, 2, short> mId;
89 ::ll::TypedStorage<8, 32, ::std::string> mDescriptionId;
90 ::ll::TypedStorage<8, 48, ::HashedString> mRawNameId;
91 ::ll::TypedStorage<8, 32, ::std::string> mNamespace;
92 ::ll::TypedStorage<8, 48, ::HashedString> mFullName;
93 ::ll::TypedStorage<2, 2, short> mMaxDamage;
94 bool mIsGlint : 1;
95 bool mHandEquipped : 1;
96 bool mIsStackedByData : 1;
97 bool mRequiresWorldBuilder : 1;
98 bool mExplodable : 1;
99 bool mFireResistant : 1;
100 bool mShouldDespawn : 1;
101 bool mAllowOffhand : 1;
102 bool mIgnoresPermissions : 1;
103 ::ll::TypedStorage<4, 4, int> mMaxUseDuration;
104 ::ll::TypedStorage<8, 32, ::BaseGameVersion> mMinRequiredBaseGameVersion;
105 ::ll::TypedStorage<8, 8, ::WeakPtr<::BlockType const>> mBlockType;
106 ::ll::TypedStorage<1, 1, ::SharedTypes::CreativeItemCategory> mCreativeCategory;
107 ::ll::TypedStorage<8, 8, ::Item*> mCraftingRemainingItem;
108 ::ll::TypedStorage<8, 32, ::std::string> mCreativeGroup;
109 ::ll::TypedStorage<4, 4, float> mFurnaceBurnIntervalModifier;
110 ::ll::TypedStorage<4, 4, float> mFurnaceXPmultiplier;
111 ::ll::TypedStorage<1, 1, ::ItemCommandVisibility> mIsHiddenInCommands;
112 ::ll::TypedStorage<4, 4, ::Rarity> mBaseRarity;
113 ::ll::TypedStorage<4, 4, ::Interactions::Mining::MineBlockItemEffectType> mMineBlockType;
114 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::FoodItemComponentLegacy>> mFoodComponentLegacy;
115 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::SeedItemComponentLegacy>> mSeedComponent;
116 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::CameraItemComponentLegacy>> mCameraComponentLegacy;
117 ::ll::TypedStorage<8, 24, ::std::vector<::std::function<void()>>> mOnResetBAICallbacks;
118 ::ll::TypedStorage<8, 24, ::std::vector<::ItemTag>> mTags;
119 // NOLINTEND
120
121public:
122 // prevent constructor by default
123 Item();
124
125public:
126 // virtual functions
127 // NOLINTBEGIN
128 virtual ~Item();
129
130 virtual void initServer(
132 ::SemVersion const& documentVersion,
133 ::Experiments const& experiments,
134 ::std::optional<::LegacyEventItemComponentData> legacyEventData
135 );
136
137 virtual void tearDown();
138
139 virtual ::Item& setDescriptionId(::std::string const& description);
140
141 virtual ::std::string const& getDescriptionId() const;
142
143 virtual int getMaxUseDuration(::ItemStack const* instance) const;
144
145 virtual ::WeakPtr<::BlockType const> const& getBlockTypeForRendering() const;
146
147 virtual bool isMusicDisk() const;
148
149 virtual void executeEvent(::ItemStackBase& item, ::std::string const& name, ::RenderParams& params) const;
150
151 virtual bool isComponentBased() const;
152
153 virtual bool isHumanoidArmor() const;
154
155 virtual bool isBlockPlanterItem() const;
156
157 virtual bool isBucket() const;
158
159 virtual bool isCandle() const;
160
161 virtual bool isDamageable() const;
162
163 virtual bool isDyeable() const;
164
165 virtual bool isDye() const;
166
167 virtual ::ItemColor getItemColor() const;
168
169 virtual bool isFertilizer() const;
170
171 virtual bool isFood() const;
172
173 virtual bool isThrowable() const;
174
175 virtual bool isUseable() const;
176
177 virtual bool isTrimAllowed() const;
178
179 virtual bool isBodyArmor() const;
180
181 virtual ::ItemComponent* getComponent(::HashedString const& id) const;
182
183 virtual ::IFoodItemComponent* getFood() const;
184
185 virtual ::Item& setMaxDamage(int maxDamage);
186
187 virtual ::Item& setMaxUseDuration(int maxUseDuration);
188
189 virtual ::std::unique_ptr<::CompoundTag> buildNetworkTag() const;
190
191 virtual void initializeFromNetwork(::CompoundTag const& tag);
192
193 virtual ::std::vector<::std::string> validateFromNetwork(::CompoundTag const& tag);
194
195 virtual ::BlockShape getBlockShape() const;
196
197 virtual bool canBeDepleted() const;
198
199 virtual bool canDestroySpecial(::Block const& block) const;
200
201 virtual int getLevelDataForAuxValue(int auxValue) const;
202
203 virtual bool isStackedByData() const;
204
205 virtual short getMaxDamage() const;
206
207 virtual int getAttackDamage() const;
208
209 virtual float getAttackDamageBonus(::Actor const& attacker) const;
210
211 virtual bool isHandEquipped() const;
212
213 virtual bool isGlint(::ItemStackBase const& stack) const;
214
215 virtual bool isPattern() const;
216
217 virtual int getPatternIndex() const;
218
219 virtual ::Rarity getBaseRarity() const;
220
221 virtual ::Rarity getRarity(::ItemStackBase const& stack) const;
222
223 virtual uint getSwingDuration() const;
224
225 virtual bool showsDurabilityInCreative() const;
226
227 virtual bool isWearableThroughLootTable(::CompoundTag const* userData) const;
228
229 virtual bool canDestroyInCreative() const;
230
231 virtual bool isDestructive(int auxValue) const;
232
233 virtual bool isLiquidClipItem() const;
234
235 virtual bool shouldInteractionWithBlockBypassLiquid(::Block const& block) const;
236
237 virtual bool requiresInteract() const;
238
239 virtual ::std::string getHoverTextColor(::ItemStackBase const& stack) const;
240
241 virtual void appendFormattedHovertext(
242 ::ItemStackBase const& stack,
243 ::Level& level,
245 bool showCategory
246 ) const;
247
248 virtual bool isValidRepairItem(
249 ::ItemStackBase const& source,
250 ::ItemStackBase const& repairItem,
251 ::BaseGameVersion const& baseGameVersion
252 ) const;
253
254 virtual int getEnchantSlot() const;
255
256 virtual int getEnchantValue() const;
257
258 virtual int getArmorValue() const;
259
260 virtual int getToughnessValue() const;
261
262 virtual float getKnockbackResistanceValue() const;
263
264 virtual ::std::optional<::SoundEventIdentifier> getAttackMissSound() const;
265
266 virtual ::std::optional<::SoundEventIdentifier> getAttackHitSound() const;
267
268 virtual ::std::optional<::SoundEventIdentifier> getAttackCriticalHitSound() const;
269
270 virtual ::SharedTypes::Legacy::LevelSoundEvent getBreakSound() const;
271
272 virtual ::SharedTypes::Legacy::LevelSoundEvent getEquipSound() const;
273
274 virtual bool isComplex() const;
275
276 virtual bool isValidAuxValue(int auxValue) const;
277
278 virtual int getDamageChance(int unbreaking) const;
279
280 virtual float getViewDamping() const;
281
282 virtual bool uniqueAuxValues() const;
283
284 virtual bool isActorPlacerItem() const;
285
286 virtual ::ItemTintStrategy getTintStrategy() const;
287
288 virtual ::mce::Color getColor(::CompoundTag const* userData, ::ItemDescriptor const& instance) const;
289
290 virtual bool hasCustomColor(::ItemStackBase const& instance) const;
291
292 virtual bool hasCustomColor(::CompoundTag const* userData) const;
293
294 virtual void clearColor(::ItemStackBase& item) const;
295
296 virtual void setColor(::ItemStackBase& item, ::mce::Color const& color) const;
297
298 virtual ::ActorDefinitionIdentifier getActorIdentifier(::ItemStack const&) const;
299
300 virtual int buildIdAux(short auxValue, ::CompoundTag const* userData) const;
301
302 virtual bool canUseOnSimTick() const;
303
304 virtual ::ItemStack& use(::ItemStack& item, ::Player& player) const;
305
306 virtual bool canUseAsAttack() const;
307
308 virtual ::ItemStack& useAsAttack(::ItemStack& item, ::Player& player, ::Vec3 const& aimDirection) const;
309
310 virtual ::Actor* createProjectileActor(
311 ::BlockSource& region,
312 ::ItemStack const& stack,
313 ::Vec3 const& pos,
314 ::Vec3 const& aimDirection
315 ) const;
316
317 virtual bool dispense(::BlockSource& region, ::Container& container, int slot, ::Vec3 const& pos, uchar face) const;
318
319 virtual ::ItemUseMethod useTimeDepleted(::ItemStack& inoutInstance, ::Level* level, ::Player* player) const;
320
321 virtual void releaseUsing(::ItemStack& item, ::Player* player, int durationLeft) const;
322
323 virtual float getDestroySpeed(::ItemStackBase const& item, ::Block const& block) const;
324
325 virtual void hurtActor(::ItemStack& item, ::Actor& actor, ::Mob& attacker) const;
326
327 virtual void hitActor(::ItemStack& item, ::Actor& actor, ::Mob& attacker) const;
328
329 virtual void hitBlock(::ItemStack& item, ::Block const& block, ::BlockPos const& blockPos, ::Mob& attacker) const;
330
331 virtual ::std::string buildDescriptionName(::ItemStackBase const& stack) const;
332
333 virtual ::Bedrock::Safety::RedactableString const buildRedactedDescriptionName(::ItemStackBase const& stack) const;
334
335 virtual ::std::string
336 buildDescriptionId(::ItemDescriptor const& itemDescriptor, ::CompoundTag const* userData) const;
337
338 virtual ::Bedrock::Safety::RedactableString getRedactedCustomName(::ItemStackBase const& stack) const;
339
340 virtual bool hasCustomHoverName(::ItemStackBase const& stack) const;
341
342 virtual ::std::string buildEffectDescriptionName(::ItemStackBase const& stack, bool playerIsCreative) const;
343
344 virtual void
345 readUserData(::ItemStackBase& stack, ::IDataInput& input, ::ReadOnlyBinaryStream& underlyingStream) const;
346
347 virtual void writeUserData(::ItemStackBase const& stack, ::IDataOutput& output) const;
348
349 virtual uchar getMaxStackSize(::ItemDescriptor const&) const;
350
351 virtual bool inventoryTick(::ItemStack& item, ::Level& level, ::Actor& owner, int slot, bool selected) const;
352
353 virtual void refreshedInContainer(::ItemStackBase const& stack, ::Level& level) const;
354
355 virtual ::HashedString const& getCooldownCategory() const;
356
357 virtual int getCooldownDuration() const;
358
359 virtual ::SharedTypes::ItemCooldownType getCooldownType() const;
360
361 virtual void fixupCommon(::ItemStackBase& stack) const;
362
363 virtual void fixupCommon(::ItemStackBase& stack, ::ILevel& level) const;
364
365 virtual ::InHandUpdateType getInHandUpdateType(
366 ::Player const& player,
367 ::ItemStack const& oldItem,
368 ::ItemStack const& newItem,
369 bool const isMainHand,
370 bool const slotChanged
371 ) const;
372
373 virtual bool validFishInteraction(int) const;
374
375 virtual void enchantProjectile(::ItemStackBase const& weapon, ::Actor& projectile) const;
376
377 virtual ::SharedTypes::Legacy::ActorLocation getEquipLocation() const;
378
379 virtual bool shouldEmitInUseGameEvents() const;
380
381 virtual bool useInterruptedByAttacking() const;
382
383 virtual bool hasSameRelevantUserData(::ItemStackBase const& stack, ::ItemStackBase const& other) const;
384
385 virtual void initClient(
387 ::SemVersion const&,
388 ::Experiments const&,
389 ::std::optional<::ItemIconInfo> (*iconFactory)(::std::string const&, int)
390 );
391
392 virtual ::Item& setIconInfo(::std::string const& name, int index);
393
394 virtual ::ResolvedItemIconInfo
395 getIconInfo(::ItemStackBase const& item, int newAnimationFrame, bool inInventoryPane) const;
396
397 virtual ::std::string getInteractText(::Player const& player) const;
398
399 virtual int
400 getAnimationFrameFor(::Mob* holder, bool asItemEntity, ::ItemStack const* item, bool shouldAnimate) const;
401
402 virtual bool isEmissive(int auxValue) const;
403
404 virtual ::Brightness getLightEmission(int data) const;
405
406 virtual bool canBeCharged() const;
407
408 virtual void playSoundIncrementally(::ItemStack const& item, ::Mob& mob) const;
409
410 virtual float getFurnaceXPmultiplier(::ItemStackBase const& instance) const;
411
412 virtual bool calculatePlacePos(::ItemStackBase& instance, ::Actor& entity, uchar& face, ::BlockPos& pos) const;
413
414 virtual bool
415 _checkUseOnPermissions(::Actor& entity, ::ItemStackBase& item, uchar const& face, ::BlockPos const& pos) const;
416
417 virtual bool _calculatePlacePos(::ItemStackBase& instance, ::Actor& entity, uchar& face, ::BlockPos& pos) const;
418
419 virtual bool _shouldAutoCalculatePlacePos() const;
420
421 virtual ::InteractionResult
422 _useOn(::ItemStack& instance, ::Actor& entity, ::BlockPos pos, uchar face, ::Vec3 const& clickPos) const;
423 // NOLINTEND
424
425public:
426 // member functions
427 // NOLINTBEGIN
428 MCAPI Item(::std::string const& nameId, short id);
429
430 MCAPI bool _dispenseHoneycombItem(::BlockSource& region, ::Container& container, int slot, ::Vec3 const& pos) const;
431
432 MCAPI void _helpChangeInventoryItemInPlace(
433 ::Actor& actor,
434 ::ItemStack& startingItem,
435 ::ItemStack& replacementItem,
436 ::ItemAcquisitionMethod acquisitionMethod
437 ) const;
438
439 MCAPI ::CoordinatorResult _sendTryPlaceBlockEvent(
440 ::Block const& block,
441 ::BlockSource const& region,
442 ::Actor const& actor,
443 ::BlockPos const& pos,
444 uchar face,
445 ::Vec3 const& clickPos
446 ) const;
447
448 MCAPI void addOnResetBAICallback(::std::function<void()> callback);
449
450 MCAPI ::Item& addTag(::ItemTag const& tag);
451
452 MCAPI ::Item& addTag(::HashedString const& tag);
453
454 MCAPI ::std::string buildCategoryDescriptionName() const;
455
456 MCAPI void clearTags();
457
458 MCAPI ::std::vector<::CommandName> getCommandNames() const;
459
460 MCAPI short getDamageValue(::CompoundTag const* userData) const;
461
462 MCAPI ::std::string getSerializedName() const;
463
464 MCAPI bool hasTag(::ItemTag const& tag) const;
465
466 MCAPI bool hasTag(::HashedString const& tag) const;
467
468 MCAPI void setDamageValue(::ItemStackBase& stack, short newDamage) const;
469
470 MCAPI ::Item& setMinRequiredBaseGameVersion(::BaseGameVersion const& baseGameVersion);
471
472 MCAPI bool
473 updateCustomBlockEntityTag(::BlockSource& region, ::ItemStackBase& instance, ::BlockPos const& pos) const;
474
475 MCAPI ::InteractionResult useOn(
476 ::ItemStack& item,
477 ::Actor& entity,
478 int x,
479 int y,
480 int z,
481 uchar face,
482 ::Vec3 const& clickPos,
483 ::ItemUsedOnEventContext itemUsedOnEventContext
484 ) const;
485 // NOLINTEND
486
487public:
488 // static functions
489 // NOLINTBEGIN
490 MCAPI static bool isElytra(::ItemDescriptor const& itemDescriptor);
491
492 MCAPI static bool isFlyEnabled(::ItemInstance const& item);
493 // NOLINTEND
494
495public:
496 // static variables
497 // NOLINTBEGIN
498 MCAPI static ::SemVersionConstant const& DATA_DRIVEN_NEXT_VERSION();
499
500 MCAPI static ::SemVersionConstant const& DATA_DRIVEN_VERSION();
501
502 MCAPI static ::std::string const& ICON_DESCRIPTION_PREFIX();
503
504 MCAPI static ::std::string const& TAG_DAMAGE();
505 // NOLINTEND
506
507public:
508 // constructor thunks
509 // NOLINTBEGIN
510 MCAPI void* $ctor(::std::string const& nameId, short id);
511 // NOLINTEND
512
513public:
514 // destructor thunk
515 // NOLINTBEGIN
516 MCAPI void $dtor();
517 // NOLINTEND
518
519public:
520 // virtual function thunks
521 // NOLINTBEGIN
522 MCAPI void $initServer(
524 ::SemVersion const& documentVersion,
525 ::Experiments const& experiments,
526 ::std::optional<::LegacyEventItemComponentData> legacyEventData
527 );
528
529 MCFOLD void $tearDown();
530
531 MCAPI ::Item& $setDescriptionId(::std::string const& description);
532
533 MCAPI ::std::string const& $getDescriptionId() const;
534
535 MCAPI int $getMaxUseDuration(::ItemStack const* instance) const;
536
537 MCAPI ::WeakPtr<::BlockType const> const& $getBlockTypeForRendering() const;
538
539 MCFOLD bool $isMusicDisk() const;
540
541 MCFOLD void $executeEvent(::ItemStackBase& item, ::std::string const& name, ::RenderParams& params) const;
542
543 MCFOLD bool $isComponentBased() const;
544
545 MCFOLD bool $isHumanoidArmor() const;
546
547 MCFOLD bool $isBlockPlanterItem() const;
548
549 MCFOLD bool $isBucket() const;
550
551 MCFOLD bool $isCandle() const;
552
553 MCAPI bool $isDamageable() const;
554
555 MCFOLD bool $isDyeable() const;
556
557 MCFOLD bool $isDye() const;
558
559 MCAPI ::ItemColor $getItemColor() const;
560
561 MCFOLD bool $isFertilizer() const;
562
563 MCFOLD bool $isFood() const;
564
565 MCFOLD bool $isThrowable() const;
566
567 MCFOLD bool $isUseable() const;
568
569 MCFOLD bool $isTrimAllowed() const;
570
571 MCFOLD bool $isBodyArmor() const;
572
573 MCFOLD ::ItemComponent* $getComponent(::HashedString const& id) const;
574
575 MCAPI ::IFoodItemComponent* $getFood() const;
576
577 MCAPI ::Item& $setMaxDamage(int maxDamage);
578
579 MCAPI ::Item& $setMaxUseDuration(int maxUseDuration);
580
581 MCAPI ::std::unique_ptr<::CompoundTag> $buildNetworkTag() const;
582
583 MCAPI void $initializeFromNetwork(::CompoundTag const& tag);
584
585 MCFOLD ::std::vector<::std::string> $validateFromNetwork(::CompoundTag const& tag);
586
587 MCFOLD ::BlockShape $getBlockShape() const;
588
589 MCAPI bool $canBeDepleted() const;
590
591 MCFOLD bool $canDestroySpecial(::Block const& block) const;
592
593 MCFOLD int $getLevelDataForAuxValue(int auxValue) const;
594
595 MCAPI bool $isStackedByData() const;
596
597 MCFOLD short $getMaxDamage() const;
598
599 MCFOLD int $getAttackDamage() const;
600
601 MCFOLD float $getAttackDamageBonus(::Actor const& attacker) const;
602
603 MCAPI bool $isHandEquipped() const;
604
605 MCFOLD bool $isGlint(::ItemStackBase const& stack) const;
606
607 MCFOLD bool $isPattern() const;
608
609 MCFOLD int $getPatternIndex() const;
610
611 MCAPI ::Rarity $getBaseRarity() const;
612
613 MCAPI ::Rarity $getRarity(::ItemStackBase const& stack) const;
614
615 MCFOLD uint $getSwingDuration() const;
616
617 MCFOLD bool $showsDurabilityInCreative() const;
618
619 MCFOLD bool $isWearableThroughLootTable(::CompoundTag const* userData) const;
620
621 MCFOLD bool $canDestroyInCreative() const;
622
623 MCFOLD bool $isDestructive(int auxValue) const;
624
625 MCFOLD bool $isLiquidClipItem() const;
626
627 MCFOLD bool $shouldInteractionWithBlockBypassLiquid(::Block const& block) const;
628
629 MCFOLD bool $requiresInteract() const;
630
631 MCAPI ::std::string $getHoverTextColor(::ItemStackBase const& stack) const;
632
633 MCAPI void $appendFormattedHovertext(
634 ::ItemStackBase const& stack,
635 ::Level& level,
637 bool showCategory
638 ) const;
639
640 MCFOLD bool $isValidRepairItem(
641 ::ItemStackBase const& source,
642 ::ItemStackBase const& repairItem,
643 ::BaseGameVersion const& baseGameVersion
644 ) const;
645
646 MCFOLD int $getEnchantSlot() const;
647
648 MCFOLD int $getEnchantValue() const;
649
650 MCFOLD int $getArmorValue() const;
651
652 MCFOLD int $getToughnessValue() const;
653
654 MCFOLD float $getKnockbackResistanceValue() const;
655
656 MCFOLD ::std::optional<::SoundEventIdentifier> $getAttackMissSound() const;
657
658 MCFOLD ::std::optional<::SoundEventIdentifier> $getAttackHitSound() const;
659
660 MCFOLD ::std::optional<::SoundEventIdentifier> $getAttackCriticalHitSound() const;
661
662 MCFOLD ::SharedTypes::Legacy::LevelSoundEvent $getBreakSound() const;
663
664 MCAPI ::SharedTypes::Legacy::LevelSoundEvent $getEquipSound() const;
665
666 MCFOLD bool $isComplex() const;
667
668 MCFOLD bool $isValidAuxValue(int auxValue) const;
669
670 MCAPI int $getDamageChance(int unbreaking) const;
671
672 MCFOLD float $getViewDamping() const;
673
674 MCFOLD bool $uniqueAuxValues() const;
675
676 MCFOLD bool $isActorPlacerItem() const;
677
678 MCFOLD ::ItemTintStrategy $getTintStrategy() const;
679
680 MCFOLD ::mce::Color $getColor(::CompoundTag const* userData, ::ItemDescriptor const& instance) const;
681
682 MCFOLD bool $hasCustomColor(::ItemStackBase const& instance) const;
683
684 MCFOLD bool $hasCustomColor(::CompoundTag const* userData) const;
685
686 MCFOLD void $clearColor(::ItemStackBase& item) const;
687
688 MCFOLD void $setColor(::ItemStackBase& item, ::mce::Color const& color) const;
689
690 MCAPI ::ActorDefinitionIdentifier $getActorIdentifier(::ItemStack const&) const;
691
692 MCAPI int $buildIdAux(short auxValue, ::CompoundTag const* userData) const;
693
694 MCFOLD bool $canUseOnSimTick() const;
695
696 MCAPI ::ItemStack& $use(::ItemStack& item, ::Player& player) const;
697
698 MCFOLD bool $canUseAsAttack() const;
699
700 MCAPI ::ItemStack& $useAsAttack(::ItemStack& item, ::Player& player, ::Vec3 const& aimDirection) const;
701
702 MCFOLD ::Actor* $createProjectileActor(
703 ::BlockSource& region,
704 ::ItemStack const& stack,
705 ::Vec3 const& pos,
706 ::Vec3 const& aimDirection
707 ) const;
708
709 MCAPI bool $dispense(::BlockSource& region, ::Container& container, int slot, ::Vec3 const& pos, uchar face) const;
710
711 MCAPI ::ItemUseMethod $useTimeDepleted(::ItemStack& inoutInstance, ::Level* level, ::Player* player) const;
712
713 MCFOLD void $releaseUsing(::ItemStack& item, ::Player* player, int durationLeft) const;
714
715 MCFOLD float $getDestroySpeed(::ItemStackBase const& item, ::Block const& block) const;
716
717 MCAPI void $hurtActor(::ItemStack& item, ::Actor& actor, ::Mob& attacker) const;
718
719 MCFOLD void $hitActor(::ItemStack& item, ::Actor& actor, ::Mob& attacker) const;
720
721 MCFOLD void $hitBlock(::ItemStack& item, ::Block const& block, ::BlockPos const& blockPos, ::Mob& attacker) const;
722
723 MCAPI ::std::string $buildDescriptionName(::ItemStackBase const& stack) const;
724
725 MCAPI ::Bedrock::Safety::RedactableString const $buildRedactedDescriptionName(::ItemStackBase const& stack) const;
726
727 MCAPI ::std::string
728 $buildDescriptionId(::ItemDescriptor const& itemDescriptor, ::CompoundTag const* userData) const;
729
730 MCAPI ::Bedrock::Safety::RedactableString $getRedactedCustomName(::ItemStackBase const& stack) const;
731
732 MCAPI bool $hasCustomHoverName(::ItemStackBase const& stack) const;
733
734 MCAPI ::std::string $buildEffectDescriptionName(::ItemStackBase const& stack, bool playerIsCreative) const;
735
736 MCAPI void
737 $readUserData(::ItemStackBase& stack, ::IDataInput& input, ::ReadOnlyBinaryStream& underlyingStream) const;
738
739 MCAPI void $writeUserData(::ItemStackBase const& stack, ::IDataOutput& output) const;
740
741 MCFOLD uchar $getMaxStackSize(::ItemDescriptor const&) const;
742
743 MCFOLD bool $inventoryTick(::ItemStack& item, ::Level& level, ::Actor& owner, int slot, bool selected) const;
744
745 MCFOLD void $refreshedInContainer(::ItemStackBase const& stack, ::Level& level) const;
746
747 MCAPI ::HashedString const& $getCooldownCategory() const;
748
749 MCAPI int $getCooldownDuration() const;
750
751 MCFOLD ::SharedTypes::ItemCooldownType $getCooldownType() const;
752
753 MCAPI void $fixupCommon(::ItemStackBase& stack) const;
754
755 MCAPI void $fixupCommon(::ItemStackBase& stack, ::ILevel& level) const;
756
757 MCAPI ::InHandUpdateType $getInHandUpdateType(
758 ::Player const& player,
759 ::ItemStack const& oldItem,
760 ::ItemStack const& newItem,
761 bool const isMainHand,
762 bool const slotChanged
763 ) const;
764
765 MCFOLD bool $validFishInteraction(int) const;
766
767 MCFOLD void $enchantProjectile(::ItemStackBase const& weapon, ::Actor& projectile) const;
768
769 MCFOLD ::SharedTypes::Legacy::ActorLocation $getEquipLocation() const;
770
771 MCFOLD bool $shouldEmitInUseGameEvents() const;
772
773 MCFOLD bool $useInterruptedByAttacking() const;
774
775 MCFOLD bool $hasSameRelevantUserData(::ItemStackBase const& stack, ::ItemStackBase const& other) const;
776
777 MCAPI void $initClient(
779 ::SemVersion const&,
780 ::Experiments const&,
781 ::std::optional<::ItemIconInfo> (*iconFactory)(::std::string const&, int)
782 );
783
784 MCFOLD ::Item& $setIconInfo(::std::string const& name, int index);
785
786 MCAPI ::ResolvedItemIconInfo
787 $getIconInfo(::ItemStackBase const& item, int newAnimationFrame, bool inInventoryPane) const;
788
789 MCAPI ::std::string $getInteractText(::Player const& player) const;
790
791 MCFOLD int
792 $getAnimationFrameFor(::Mob* holder, bool asItemEntity, ::ItemStack const* item, bool shouldAnimate) const;
793
794 MCAPI bool $isEmissive(int auxValue) const;
795
796 MCFOLD ::Brightness $getLightEmission(int data) const;
797
798 MCFOLD bool $canBeCharged() const;
799
800 MCFOLD void $playSoundIncrementally(::ItemStack const& item, ::Mob& mob) const;
801
802 MCAPI float $getFurnaceXPmultiplier(::ItemStackBase const& instance) const;
803
804 MCAPI bool $calculatePlacePos(::ItemStackBase& instance, ::Actor& entity, uchar& face, ::BlockPos& pos) const;
805
806 MCFOLD bool
807 $_checkUseOnPermissions(::Actor& entity, ::ItemStackBase& item, uchar const& face, ::BlockPos const& pos) const;
808
809 MCFOLD bool $_calculatePlacePos(::ItemStackBase& instance, ::Actor& entity, uchar& face, ::BlockPos& pos) const;
810
811 MCFOLD bool $_shouldAutoCalculatePlacePos() const;
812
813 MCAPI ::InteractionResult
814 $_useOn(::ItemStack& instance, ::Actor& entity, ::BlockPos pos, uchar face, ::Vec3 const& clickPos) const;
815
816
817 // NOLINTEND
818};
Definition Actor.h:113
Definition BaseGameVersion.h:8
Definition RedactableString.h:10
Definition BlockPos.h:21
Definition BlockSource.h:71
Definition BlockType.h:79
Definition Block.h:40
Definition CameraItemComponentLegacy.h:21
Definition CompoundTag.h:18
Definition Container.h:33
Definition Experiments.h:10
Definition FoodItemComponentLegacy.h:25
Definition HashedString.h:5
Definition IDataInput.h:8
Definition IDataOutput.h:5
Definition IFoodItemComponent.h:18
Definition ILevel.h:220
Definition InteractionResult.h:5
Definition ItemComponent.h:16
Definition ItemDescriptor.h:25
Definition ItemInstance.h:15
Definition ItemStackBase.h:44
Definition ItemStack.h:24
Definition Level.h:253
Definition Mob.h:55
Definition Player.h:128
Definition ReadOnlyBinaryStream.h:8
Definition RenderParams.h:29
Definition SeedItemComponentLegacy.h:21
Definition SemVersionConstant.h:8
Definition SemVersion.h:15
Definition Vec3.h:10
Definition Color.h:13
Definition ActorDefinitionIdentifier.h:15
Definition Brightness.h:8
Definition CommandName.h:5
Definition ItemIconInfo.h:5
Definition ItemTag.h:8
Definition ItemTintStrategy.h:9
Definition ItemUsedOnEventContext.h:8
Definition LegacyEventItemComponentData.h:10
Definition ResolvedItemIconInfo.h:8
Definition ItemDocument.h:19
Definition SoundEventIdentifier.h:13