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