LeviLamina
Loading...
Searching...
No Matches
BucketItem.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/actor/ActorType.h"
7#include "mc/world/item/BucketFillType.h"
8#include "mc/world/item/Item.h"
9#include "mc/world/item/ItemUseMethod.h"
10
11// auto generated forward declare list
12// clang-format off
13class Actor;
14class Block;
15class BlockLegacy;
16class BlockPos;
17class BlockSource;
18class CompoundTag;
19class Container;
20class HashedString;
22class ItemDescriptor;
23class ItemInstance;
24class ItemStack;
25class Level;
26class Player;
27class Vec3;
28struct Brightness;
29// clang-format on
30
31class BucketItem : public ::Item {
32public:
33 // member variables
34 // NOLINTBEGIN
35 ::ll::TypedStorage<2, 2, ::BucketFillType> mFillType;
36 // NOLINTEND
37
38public:
39 // virtual functions
40 // NOLINTBEGIN
41 // vIndex: 107
42 virtual ::Item& setIconInfo(::std::string const& name, int index) /*override*/;
43
44 // vIndex: 91
45 virtual uchar getMaxStackSize(::ItemDescriptor const&) const /*override*/;
46
47 // vIndex: 75
48 virtual bool canUseOnSimTick() const /*override*/;
49
50 // vIndex: 76
51 virtual ::ItemStack& use(::ItemStack& item, ::Player& player) const /*override*/;
52
53 // vIndex: 80
54 virtual void releaseUsing(::ItemStack& item, ::Player* player, int durationLeft) const /*override*/;
55
56 // vIndex: 79
57 virtual ::ItemUseMethod useTimeDepleted(::ItemStack& inoutInstance, ::Level* level, ::Player* player) const
58 /*override*/;
59
60 // vIndex: 63
61 virtual bool uniqueAuxValues() const /*override*/;
62
63 // vIndex: 12
64 virtual bool isBucket() const /*override*/;
65
66 // vIndex: 78
67 virtual bool dispense(::BlockSource& region, ::Container& container, int slot, ::Vec3 const& pos, uchar face) const
68 /*override*/;
69
70 // vIndex: 48
71 virtual bool isLiquidClipItem() const /*override*/;
72
73 // vIndex: 87
74 virtual ::std::string buildDescriptionId(::ItemDescriptor const&, ::CompoundTag const* userData) const /*override*/;
75
76 // vIndex: 99
77 virtual bool validFishInteraction(int) const /*override*/;
78
79 // vIndex: 112
80 virtual ::Brightness getLightEmission(int) const /*override*/;
81
82 // vIndex: 60
83 virtual bool isValidAuxValue(int auxValue) const /*override*/;
84
85 // vIndex: 47
86 virtual bool isDestructive(int auxValue) const /*override*/;
87
88 // vIndex: 120
89 virtual ::InteractionResult
90 _useOn(::ItemStack& instance, ::Actor& entity, ::BlockPos pos, uchar face, ::Vec3 const& clickPos) const
91 /*override*/;
92
93 // vIndex: 0
94 virtual ~BucketItem() /*override*/ = default;
95 // NOLINTEND
96
97public:
98 // member functions
99 // NOLINTBEGIN
100 MCAPI bool _canEmptyBucketIntoBlock(
101 ::BlockSource& region,
102 ::BlockPos const& pos,
103 ::Block const& block,
104 ::Block const& extraBlock,
105 ::Actor const* placer
106 ) const;
107
108 MCAPI bool _emptyBucket(
109 ::BlockSource& region,
110 ::Block const& contents,
111 ::BlockPos const& pos,
112 ::Actor* placer,
113 ::ItemStack const& instance,
114 uchar face
115 ) const;
116
117 MCAPI bool _supportsEntityType(::ActorType const& entityType, ::HashedString& bucketType) const;
118
119 MCAPI bool _takeLiquid(::ItemStack& item, ::Actor& entity, ::BlockPos const& pos) const;
120
121 MCAPI bool _takePowderSnow(::ItemStack& item, ::Actor& actor, ::BlockPos const& pos) const;
122
123 MCAPI ::BlockLegacy const* _tryGetBlock(::BucketFillType contents) const;
124
125 MCAPI void addBucketEntitySaveData(::Actor& entity, ::ItemStack& instance) const;
126
127 MCAPI bool readBucketEntitySaveData(
128 ::BlockSource& region,
129 ::Actor* placer,
130 ::BlockPos pos,
131 ::ItemInstance const& instance
132 ) const;
133 // NOLINTEND
134
135public:
136 // static variables
137 // NOLINTBEGIN
138 MCAPI static ::std::vector<::std::pair<::BucketFillType, ::ActorType>> const& mFillTypeToEntityType();
139 // NOLINTEND
140
141public:
142 // virtual function thunks
143 // NOLINTBEGIN
144 MCAPI ::Item& $setIconInfo(::std::string const& name, int index);
145
146 MCAPI uchar $getMaxStackSize(::ItemDescriptor const&) const;
147
148 MCAPI bool $canUseOnSimTick() const;
149
150 MCAPI ::ItemStack& $use(::ItemStack& item, ::Player& player) const;
151
152 MCFOLD void $releaseUsing(::ItemStack& item, ::Player* player, int durationLeft) const;
153
154 MCFOLD bool $uniqueAuxValues() const;
155
156 MCFOLD bool $isBucket() const;
157
158 MCAPI bool $dispense(::BlockSource& region, ::Container& container, int slot, ::Vec3 const& pos, uchar face) const;
159
160 MCAPI bool $isLiquidClipItem() const;
161
162 MCAPI ::std::string $buildDescriptionId(::ItemDescriptor const&, ::CompoundTag const* userData) const;
163
164 MCAPI bool $validFishInteraction(int) const;
165
166 MCAPI ::Brightness $getLightEmission(int) const;
167
168 MCFOLD bool $isValidAuxValue(int auxValue) const;
169
170 MCAPI bool $isDestructive(int auxValue) const;
171
172 MCAPI ::InteractionResult
173 $_useOn(::ItemStack& instance, ::Actor& entity, ::BlockPos pos, uchar face, ::Vec3 const& clickPos) const;
174 // NOLINTEND
175
176public:
177 // vftables
178 // NOLINTBEGIN
179 MCAPI static void** $vftable();
180 // NOLINTEND
181};
Definition Actor.h:103
Definition BlockLegacy.h:86
Definition BlockPos.h:18
Definition BlockSource.h:67
Definition Block.h:38
Definition BucketItem.h:31
Definition CompoundTag.h:13
Definition Container.h:30
Definition HashedString.h:5
Definition InteractionResult.h:5
Definition ItemDescriptor.h:22
Definition ItemInstance.h:16
Definition ItemStack.h:25
Definition Item.h:65
Definition Level.h:239
Definition Player.h:120
Definition Vec3.h:10
Definition Brightness.h:8