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