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&, ::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*) const;
137
138 virtual ::WeakPtr<::BlockType const> const& getBlockTypeForRendering() const;
139
140 virtual bool isMusicDisk() const;
141
142 virtual void executeEvent(::ItemStackBase&, ::std::string const&, ::RenderParams&) 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&) 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&);
187
188 virtual ::BlockShape getBlockShape() const;
189
190 virtual bool canBeDepleted() const;
191
192 virtual bool canDestroySpecial(::Block const&) const;
193
194 virtual int getLevelDataForAuxValue(int) 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&) 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*) const;
221
222 virtual bool canDestroyInCreative() const;
223
224 virtual bool isDestructive(int) const;
225
226 virtual bool isLiquidClipItem() const;
227
228 virtual bool shouldInteractionWithBlockBypassLiquid(::Block const&) 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(::ItemStackBase const&, ::ItemStackBase const&, ::BaseGameVersion const&) const;
242
243 virtual int getEnchantSlot() const;
244
245 virtual int getEnchantValue() const;
246
247 virtual int getArmorValue() const;
248
249 virtual int getToughnessValue() const;
250
251 virtual float getKnockbackResistanceValue() const;
252
253 virtual ::std::optional<::SharedTypes::Legacy::LevelSoundEvent> getAttackMissSound() const;
254
255 virtual ::std::optional<::SharedTypes::Legacy::LevelSoundEvent> getAttackHitSound() const;
256
257 virtual ::std::optional<::SharedTypes::Legacy::LevelSoundEvent> getAttackCriticalHitSound() const;
258
259 virtual ::SharedTypes::Legacy::LevelSoundEvent getBreakSound() const;
260
261 virtual ::SharedTypes::Legacy::LevelSoundEvent getEquipSound() const;
262
263 virtual bool isComplex() const;
264
265 virtual bool isValidAuxValue(int) const;
266
267 virtual int getDamageChance(int unbreaking) const;
268
269 virtual float getViewDamping() const;
270
271 virtual bool uniqueAuxValues() const;
272
273 virtual bool isActorPlacerItem() const;
274
275 virtual ::ItemTintStrategy getTintStrategy() const;
276
277 virtual ::mce::Color getColor(::CompoundTag const*, ::ItemDescriptor const&) const;
278
279 virtual bool hasCustomColor(::ItemStackBase const&) const;
280
281 virtual bool hasCustomColor(::CompoundTag const*) const;
282
283 virtual void clearColor(::ItemStackBase&) const;
284
285 virtual void setColor(::ItemStackBase&, ::mce::Color const&) const;
286
287 virtual ::ActorDefinitionIdentifier getActorIdentifier(::ItemStack const&) const;
288
289 virtual int buildIdAux(short auxValue, ::CompoundTag const*) const;
290
291 virtual bool canUseOnSimTick() const;
292
293 virtual ::ItemStack& use(::ItemStack& item, ::Player& player) const;
294
295 virtual bool canUseAsAttack() const;
296
297 virtual ::ItemStack& useAsAttack(::ItemStack& item, ::Player& player, ::Vec3 const&) const;
298
299 virtual ::Actor* createProjectileActor(::BlockSource&, ::ItemStack const&, ::Vec3 const&, ::Vec3 const&) const;
300
301 virtual bool dispense(::BlockSource& region, ::Container& container, int slot, ::Vec3 const& pos, uchar) const;
302
303 virtual ::ItemUseMethod useTimeDepleted(::ItemStack& inoutInstance, ::Level* level, ::Player* player) const;
304
305 virtual void releaseUsing(::ItemStack& item, ::Player* player, int durationLeft) const;
306
307 virtual float getDestroySpeed(::ItemStackBase const&, ::Block const&) const;
308
309 virtual void hurtActor(::ItemStack& item, ::Actor& actor, ::Mob& attacker) const;
310
311 virtual void hitActor(::ItemStack&, ::Actor&, ::Mob&) const;
312
313 virtual void hitBlock(::ItemStack&, ::Block const&, ::BlockPos const&, ::Mob&) const;
314
315 virtual ::std::string buildDescriptionName(::ItemStackBase const& stack) const;
316
317 virtual ::Bedrock::Safety::RedactableString const buildRedactedDescriptionName(::ItemStackBase const& stack) const;
318
319 virtual ::std::string buildDescriptionId(::ItemDescriptor const&, ::CompoundTag const*) const;
320
321 virtual ::Bedrock::Safety::RedactableString getRedactedCustomName(::ItemStackBase const& stack) const;
322
323 virtual bool hasCustomHoverName(::ItemStackBase const& stack) const;
324
325 virtual ::std::string buildEffectDescriptionName(::ItemStackBase const& stack, bool) const;
326
327 virtual void
328 readUserData(::ItemStackBase& stack, ::IDataInput& input, ::ReadOnlyBinaryStream& underlyingStream) const;
329
330 virtual void writeUserData(::ItemStackBase const& stack, ::IDataOutput& output) const;
331
332 virtual uchar getMaxStackSize(::ItemDescriptor const&) const;
333
334 virtual bool inventoryTick(::ItemStack&, ::Level&, ::Actor&, int, bool) const;
335
336 virtual void refreshedInContainer(::ItemStackBase const&, ::Level&) const;
337
338 virtual ::HashedString const& getCooldownCategory() const;
339
340 virtual int getCooldownDuration() const;
341
342 virtual ::SharedTypes::ItemCooldownType getCooldownType() const;
343
344 virtual void fixupCommon(::ItemStackBase& stack) const;
345
346 virtual void fixupCommon(::ItemStackBase& stack, ::ILevel&) const;
347
348 virtual ::InHandUpdateType getInHandUpdateType(
349 ::Player const&,
350 ::ItemStack const& oldItem,
351 ::ItemStack const& newItem,
352 bool const,
353 bool const slotChanged
354 ) const;
355
356 virtual bool validFishInteraction(int) const;
357
358 virtual void enchantProjectile(::ItemStackBase const&, ::Actor&) const;
359
360 virtual ::SharedTypes::Legacy::ActorLocation getEquipLocation() const;
361
362 virtual bool shouldEmitInUseGameEvents() const;
363
364 virtual bool useInterruptedByAttacking() const;
365
366 virtual bool hasSameRelevantUserData(::ItemStackBase const&, ::ItemStackBase const&) const;
367
368 virtual ::PuvLoadData::LoadResultWithTiming
369 initClient(::Json::Value const& data, ::SemVersion const&, ::PackLoadContext&, ::ItemIconInfoFactory iconFactory);
370
371 virtual ::Item& setIconInfo(::std::string const& name, int index);
372
373 virtual ::ResolvedItemIconInfo getIconInfo(::ItemStackBase const& item, int, bool) const;
374
375 virtual ::std::string getInteractText(::Player const& player) const;
376
377 virtual int getAnimationFrameFor(::Mob*, bool, ::ItemStack const*, bool) const;
378
379 virtual bool isEmissive(int auxValue) const;
380
381 virtual ::Brightness getLightEmission(int) const;
382
383 virtual bool canBeCharged() const;
384
385 virtual void playSoundIncrementally(::ItemStack const&, ::Mob&) const;
386
387 virtual float getFurnaceXPmultiplier(::ItemStackBase const&) const;
388
389 virtual bool calculatePlacePos(::ItemStackBase& instance, ::Actor& entity, uchar& face, ::BlockPos& pos) const;
390
391 virtual bool
392 _checkUseOnPermissions(::Actor& entity, ::ItemStackBase& item, uchar const& face, ::BlockPos const& pos) const;
393
394 virtual bool _calculatePlacePos(::ItemStackBase&, ::Actor&, uchar&, ::BlockPos&) const;
395
396 virtual bool _shouldAutoCalculatePlacePos() const;
397
398 virtual ::InteractionResult
399 _useOn(::ItemStack& instance, ::Actor& entity, ::BlockPos pos, uchar face, ::Vec3 const& clickPos) const;
400 // NOLINTEND
401
402public:
403 // member functions
404 // NOLINTBEGIN
405 MCAPI Item(::std::string const& nameId, short id);
406
407 MCAPI bool _dispenseHoneycombItem(::BlockSource& region, ::Container& container, int slot, ::Vec3 const& pos) const;
408
409 MCAPI void _helpChangeInventoryItemInPlace(
410 ::Actor& actor,
411 ::ItemStack& startingItem,
412 ::ItemStack& replacementItem,
413 ::ItemAcquisitionMethod acquisitionMethod
414 ) const;
415
416 MCAPI ::CoordinatorResult _sendTryPlaceBlockEvent(
417 ::Block const& block,
418 ::BlockSource const& region,
419 ::Actor const& actor,
420 ::BlockPos const& pos,
421 uchar face,
422 ::Vec3 const& clickPos
423 ) const;
424
425 MCAPI ::Item& addTag(::ItemTag const& tag);
426
427 MCAPI ::Item& addTag(::HashedString const& tag);
428
429 MCAPI ::Item& addTags(::std::initializer_list<::std::reference_wrapper<::ItemTag const>> tags);
430
431 MCAPI ::std::string buildCategoryDescriptionName() const;
432
433 MCAPI bool canBeUsedInCommands(::BaseGameVersion const& baseGameVersion) const;
434
435 MCAPI void clearTags();
436
437 MCAPI ::std::vector<::CommandName> getCommandNames() const;
438
439 MCAPI short getDamageValue(::CompoundTag const* userData) const;
440
441 MCAPI ::std::string getSerializedName() const;
442
443 MCAPI bool hasTag(::ItemTag const& tag) const;
444
445 MCAPI bool hasTag(::HashedString const& tag) const;
446
447 MCAPI bool isElytra() const;
448
449 MCAPI bool operator==(::Item const& rhs) const;
450
451 MCAPI ::Item& setAllowOffhand(bool offhand);
452
453 MCAPI ::Item& setCreativeGroup(::std::string const& group);
454
455 MCAPI ::Item& setFireResistant(bool resistant);
456
457 MCAPI ::Item& setMinRequiredBaseGameVersion(::BaseGameVersion const& baseGameVersion);
458
459 MCAPI ::Item& setShouldDespawn(bool despawn);
460
461 MCAPI ::Item& setStackedByData(bool isStackedByData);
462
463 MCAPI bool
464 updateCustomBlockEntityTag(::BlockSource& region, ::ItemStackBase& instance, ::BlockPos const& pos) const;
465
466 MCAPI ::InteractionResult useOn(
467 ::ItemStack& item,
468 ::Actor& entity,
469 int x,
470 int y,
471 int z,
472 uchar face,
473 ::Vec3 const& clickPos,
474 ::ItemUsedOnEventContext itemUsedOnEventContext
475 ) const;
476 // NOLINTEND
477
478public:
479 // static functions
480 // NOLINTBEGIN
481 MCAPI static bool isElytra(::ItemDescriptor const& itemDescriptor);
482
483 MCAPI static bool isElytraBroken(int value);
484
485 MCAPI static bool isSameTypeAndItem(::ItemStackBase const& firstItem, ::ItemStackBase const& secondItem);
486 // NOLINTEND
487
488public:
489 // static variables
490 // NOLINTBEGIN
491 MCAPI static ::std::string const& ICON_DESCRIPTION_PREFIX();
492
493 MCAPI static ::std::string const& TAG_DAMAGE();
494 // NOLINTEND
495
496public:
497 // constructor thunks
498 // NOLINTBEGIN
499 MCAPI void* $ctor(::std::string const& nameId, short id);
500 // NOLINTEND
501
502public:
503 // destructor thunk
504 // NOLINTBEGIN
505 MCAPI void $dtor();
506 // NOLINTEND
507
508public:
509 // virtual function thunks
510 // NOLINTBEGIN
511 MCAPI ::PuvLoadData::LoadResultWithTiming
512 $initServer(::Json::Value const& data, ::SemVersion const&, ::PackLoadContext& packLoadContext);
513
514 MCFOLD void $tearDown();
515
516 MCAPI ::Item& $setDescriptionId(::std::string const& description);
517
518 MCAPI ::std::string const& $getDescriptionId() const;
519
520 MCAPI int $getMaxUseDuration(::ItemStack const*) const;
521
522 MCFOLD ::WeakPtr<::BlockType const> const& $getBlockTypeForRendering() const;
523
524 MCFOLD bool $isMusicDisk() const;
525
526 MCFOLD void $executeEvent(::ItemStackBase&, ::std::string const&, ::RenderParams&) const;
527
528 MCFOLD bool $isComponentBased() const;
529
530 MCFOLD bool $isHumanoidArmor() const;
531
532 MCFOLD bool $isBlockPlanterItem() const;
533
534 MCFOLD bool $isBucket() const;
535
536 MCFOLD bool $isCandle() const;
537
538 MCAPI bool $isDamageable() const;
539
540 MCFOLD bool $isDyeable() const;
541
542 MCFOLD bool $isDye() const;
543
544 MCFOLD bool $isFertilizer() const;
545
546 MCFOLD bool $isFood() const;
547
548 MCFOLD bool $isThrowable() const;
549
550 MCFOLD bool $isUseable() const;
551
552 MCFOLD bool $isTrimAllowed() const;
553
554 MCFOLD bool $isBodyArmor() const;
555
556 MCFOLD ::ItemComponent* $getComponent(::HashedString const&) const;
557
558 MCAPI ::IFoodItemComponent* $getFood() const;
559
560 MCAPI ::Item& $setMaxDamage(int maxDamage);
561
562 MCAPI ::Item& $setMaxUseDuration(int maxUseDuration);
563
564 MCAPI ::std::unique_ptr<::CompoundTag> $buildNetworkTag() const;
565
566 MCAPI void $initializeFromNetwork(::CompoundTag const& tag);
567
568 MCFOLD ::std::vector<::std::string> $validateFromNetwork(::CompoundTag const&);
569
570 MCFOLD ::BlockShape $getBlockShape() const;
571
572 MCAPI bool $canBeDepleted() const;
573
574 MCFOLD bool $canDestroySpecial(::Block const&) const;
575
576 MCFOLD int $getLevelDataForAuxValue(int) const;
577
578 MCAPI bool $isStackedByData() const;
579
580 MCFOLD short $getMaxDamage() const;
581
582 MCFOLD int $getAttackDamage() const;
583
584 MCFOLD float $getAttackDamageBonus(::Actor const&) const;
585
586 MCAPI bool $isHandEquipped() const;
587
588 MCFOLD bool $isGlint(::ItemStackBase const& stack) const;
589
590 MCFOLD bool $isPattern() const;
591
592 MCFOLD int $getPatternIndex() const;
593
594 MCAPI ::Rarity $getBaseRarity() const;
595
596 MCAPI ::Rarity $getRarity(::ItemStackBase const& stack) const;
597
598 MCFOLD uint $getSwingDuration() const;
599
600 MCFOLD bool $showsDurabilityInCreative() const;
601
602 MCFOLD bool $isWearableThroughLootTable(::CompoundTag const*) const;
603
604 MCFOLD bool $canDestroyInCreative() const;
605
606 MCFOLD bool $isDestructive(int) const;
607
608 MCFOLD bool $isLiquidClipItem() const;
609
610 MCFOLD bool $shouldInteractionWithBlockBypassLiquid(::Block const&) const;
611
612 MCFOLD bool $requiresInteract() const;
613
614 MCAPI ::std::string $getHoverTextColor(::ItemStackBase const& stack) const;
615
616 MCAPI void $appendFormattedHovertext(
617 ::ItemStackBase const& stack,
618 ::Level& level,
620 bool showCategory
621 ) const;
622
623 MCFOLD bool $isValidRepairItem(::ItemStackBase const&, ::ItemStackBase const&, ::BaseGameVersion const&) const;
624
625 MCFOLD int $getEnchantSlot() const;
626
627 MCFOLD int $getEnchantValue() const;
628
629 MCFOLD int $getArmorValue() const;
630
631 MCFOLD int $getToughnessValue() const;
632
633 MCFOLD float $getKnockbackResistanceValue() const;
634
635 MCFOLD ::std::optional<::SharedTypes::Legacy::LevelSoundEvent> $getAttackMissSound() const;
636
637 MCFOLD ::std::optional<::SharedTypes::Legacy::LevelSoundEvent> $getAttackHitSound() const;
638
639 MCFOLD ::std::optional<::SharedTypes::Legacy::LevelSoundEvent> $getAttackCriticalHitSound() const;
640
641 MCFOLD ::SharedTypes::Legacy::LevelSoundEvent $getBreakSound() const;
642
643 MCAPI ::SharedTypes::Legacy::LevelSoundEvent $getEquipSound() const;
644
645 MCFOLD bool $isComplex() const;
646
647 MCFOLD bool $isValidAuxValue(int) const;
648
649 MCAPI int $getDamageChance(int unbreaking) const;
650
651 MCFOLD float $getViewDamping() const;
652
653 MCFOLD bool $uniqueAuxValues() const;
654
655 MCFOLD bool $isActorPlacerItem() const;
656
657 MCFOLD ::ItemTintStrategy $getTintStrategy() const;
658
659 MCFOLD ::mce::Color $getColor(::CompoundTag const*, ::ItemDescriptor const&) const;
660
661 MCFOLD bool $hasCustomColor(::ItemStackBase const&) const;
662
663 MCFOLD bool $hasCustomColor(::CompoundTag const*) const;
664
665 MCFOLD void $clearColor(::ItemStackBase&) const;
666
667 MCFOLD void $setColor(::ItemStackBase&, ::mce::Color const&) const;
668
669 MCAPI ::ActorDefinitionIdentifier $getActorIdentifier(::ItemStack const&) const;
670
671 MCAPI int $buildIdAux(short auxValue, ::CompoundTag const*) const;
672
673 MCFOLD bool $canUseOnSimTick() const;
674
675 MCAPI ::ItemStack& $use(::ItemStack& item, ::Player& player) const;
676
677 MCFOLD bool $canUseAsAttack() const;
678
679 MCAPI ::ItemStack& $useAsAttack(::ItemStack& item, ::Player& player, ::Vec3 const&) const;
680
681 MCFOLD ::Actor* $createProjectileActor(::BlockSource&, ::ItemStack const&, ::Vec3 const&, ::Vec3 const&) const;
682
683 MCAPI bool $dispense(::BlockSource& region, ::Container& container, int slot, ::Vec3 const& pos, uchar) const;
684
685 MCAPI ::ItemUseMethod $useTimeDepleted(::ItemStack& inoutInstance, ::Level* level, ::Player* player) const;
686
687 MCFOLD void $releaseUsing(::ItemStack& item, ::Player* player, int durationLeft) const;
688
689 MCFOLD float $getDestroySpeed(::ItemStackBase const&, ::Block const&) const;
690
691 MCAPI void $hurtActor(::ItemStack& item, ::Actor& actor, ::Mob& attacker) const;
692
693 MCFOLD void $hitActor(::ItemStack&, ::Actor&, ::Mob&) const;
694
695 MCFOLD void $hitBlock(::ItemStack&, ::Block const&, ::BlockPos const&, ::Mob&) const;
696
697 MCAPI ::std::string $buildDescriptionName(::ItemStackBase const& stack) const;
698
699 MCAPI ::Bedrock::Safety::RedactableString const $buildRedactedDescriptionName(::ItemStackBase const& stack) const;
700
701 MCFOLD ::std::string $buildDescriptionId(::ItemDescriptor const&, ::CompoundTag const*) const;
702
703 MCAPI ::Bedrock::Safety::RedactableString $getRedactedCustomName(::ItemStackBase const& stack) const;
704
705 MCAPI bool $hasCustomHoverName(::ItemStackBase const& stack) const;
706
707 MCAPI ::std::string $buildEffectDescriptionName(::ItemStackBase const& stack, bool) const;
708
709 MCAPI void
710 $readUserData(::ItemStackBase& stack, ::IDataInput& input, ::ReadOnlyBinaryStream& underlyingStream) const;
711
712 MCAPI void $writeUserData(::ItemStackBase const& stack, ::IDataOutput& output) const;
713
714 MCFOLD uchar $getMaxStackSize(::ItemDescriptor const&) const;
715
716 MCFOLD bool $inventoryTick(::ItemStack&, ::Level&, ::Actor&, int, bool) const;
717
718 MCFOLD void $refreshedInContainer(::ItemStackBase const&, ::Level&) const;
719
720 MCAPI ::HashedString const& $getCooldownCategory() const;
721
722 MCAPI int $getCooldownDuration() const;
723
724 MCFOLD ::SharedTypes::ItemCooldownType $getCooldownType() const;
725
726 MCAPI void $fixupCommon(::ItemStackBase& stack) const;
727
728 MCFOLD void $fixupCommon(::ItemStackBase& stack, ::ILevel&) const;
729
730 MCAPI ::InHandUpdateType $getInHandUpdateType(
731 ::Player const&,
732 ::ItemStack const& oldItem,
733 ::ItemStack const& newItem,
734 bool const,
735 bool const slotChanged
736 ) const;
737
738 MCFOLD bool $validFishInteraction(int) const;
739
740 MCFOLD void $enchantProjectile(::ItemStackBase const&, ::Actor&) const;
741
742 MCFOLD bool $shouldEmitInUseGameEvents() const;
743
744 MCFOLD bool $useInterruptedByAttacking() const;
745
746 MCFOLD bool $hasSameRelevantUserData(::ItemStackBase const&, ::ItemStackBase const&) const;
747
748 MCAPI ::PuvLoadData::LoadResultWithTiming
749 $initClient(::Json::Value const& data, ::SemVersion const&, ::PackLoadContext&, ::ItemIconInfoFactory iconFactory);
750
751 MCFOLD ::Item& $setIconInfo(::std::string const& name, int index);
752
753 MCAPI ::ResolvedItemIconInfo $getIconInfo(::ItemStackBase const& item, int, bool) const;
754
755 MCAPI ::std::string $getInteractText(::Player const& player) const;
756
757 MCFOLD int $getAnimationFrameFor(::Mob*, bool, ::ItemStack const*, bool) const;
758
759 MCAPI bool $isEmissive(int auxValue) const;
760
761 MCFOLD ::Brightness $getLightEmission(int) const;
762
763 MCFOLD bool $canBeCharged() const;
764
765 MCFOLD void $playSoundIncrementally(::ItemStack const&, ::Mob&) const;
766
767 MCAPI float $getFurnaceXPmultiplier(::ItemStackBase const&) const;
768
769 MCAPI bool $calculatePlacePos(::ItemStackBase& instance, ::Actor& entity, uchar& face, ::BlockPos& pos) const;
770
771 MCFOLD bool
772 $_checkUseOnPermissions(::Actor& entity, ::ItemStackBase& item, uchar const& face, ::BlockPos const& pos) const;
773
774 MCFOLD bool $_calculatePlacePos(::ItemStackBase&, ::Actor&, uchar&, ::BlockPos&) const;
775
776 MCFOLD bool $_shouldAutoCalculatePlacePos() const;
777
778 MCAPI ::InteractionResult
779 $_useOn(::ItemStack& instance, ::Actor& entity, ::BlockPos pos, uchar face, ::Vec3 const& clickPos) const;
780
781#ifdef LL_PLAT_C
782 MCFOLD ::ItemColor $getItemColor() const;
783#endif
784
785
786 // NOLINTEND
787
788public:
789 // vftables
790 // NOLINTBEGIN
791 MCAPI static void** $vftable();
792 // NOLINTEND
793};
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