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