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 BlockPos;
16class BlockSource;
17class BlockType;
18class CompoundTag;
19class Container;
21class ItemDescriptor;
22class ItemInstance;
23class ItemStack;
24class ItemStackBase;
25class Level;
26class Material;
27class Player;
28class Vec3;
29struct Brightness;
30namespace Bedrock::Safety { class RedactableString; }
31// clang-format on
32
33class BucketItem : public ::Item {
34public:
35 // member variables
36 // NOLINTBEGIN
37 ::ll::TypedStorage<2, 2, ::BucketFillType> mFillType;
38 // NOLINTEND
39
40public:
41 // prevent constructor by default
42 BucketItem();
43
44public:
45 // virtual functions
46 // NOLINTBEGIN
47 virtual ::Item& setIconInfo(::std::string const& name, int id) /*override*/;
48
49 virtual uchar getMaxStackSize(::ItemDescriptor const&) const /*override*/;
50
51 virtual bool canUseOnSimTick() const /*override*/;
52
53 virtual ::ItemStack& use(::ItemStack& item, ::Player& player) const /*override*/;
54
55 virtual void releaseUsing(::ItemStack& inoutInstance, ::Player* player, int durationLeft) const /*override*/;
56
57 virtual ::ItemUseMethod useTimeDepleted(::ItemStack& inoutInstance, ::Level* level, ::Player* player) const
58 /*override*/;
59
60 virtual bool uniqueAuxValues() const /*override*/;
61
62 virtual bool isBucket() const /*override*/;
63
64 virtual bool dispense(::BlockSource& region, ::Container& container, int slot, ::Vec3 const& pos, uchar face) const
65 /*override*/;
66
67 virtual bool isLiquidClipItem() const /*override*/;
68
69 virtual ::std::string buildDescriptionId(::ItemDescriptor const& userData, ::CompoundTag const*) const /*override*/;
70
71 virtual bool validFishInteraction(int) const /*override*/;
72
73 virtual ::Brightness getLightEmission(int) const /*override*/;
74
75 virtual bool isValidAuxValue(int auxValue) const /*override*/;
76
77 virtual bool isDestructive(int auxValue) const /*override*/;
78
79 virtual void appendFormattedHovertext(
80 ::ItemStackBase const& stack,
81 ::Level& level,
83 bool const showCategory
84 ) const /*override*/;
85
86 virtual ::InteractionResult
87 _useOn(::ItemStack& instance, ::Actor& entity, ::BlockPos pos, uchar face, ::Vec3 const& clickPos) const
88 /*override*/;
89 // NOLINTEND
90
91public:
92 // member functions
93 // NOLINTBEGIN
94 MCAPI BucketItem(::std::string const& name, int id, ::BucketFillType type);
95
96 MCAPI void _broadcastBucketEmptySound(::BlockSource& region, ::Actor& entity, ::BlockPos const& pos) const;
97
98 MCAPI void _broadcastBucketFillSound(::BlockSource& region, ::Actor& entity, ::Material const& material) const;
99
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 void _replaceWithEmptyBucket(::ItemStack& instance, ::Actor& entity) 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 ::BlockType 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 functions
137 // NOLINTBEGIN
138 MCAPI static ::std::string getSchoolName(int color, int color2, int variant, int markVariant);
139 // NOLINTEND
140
141public:
142 // static variables
143 // NOLINTBEGIN
144 MCAPI static ::std::vector<::std::pair<::BucketFillType, ::ActorType>> const& mFillTypeToEntityType();
145 // NOLINTEND
146
147public:
148 // constructor thunks
149 // NOLINTBEGIN
150 MCAPI void* $ctor(::std::string const& name, int id, ::BucketFillType type);
151 // NOLINTEND
152
153public:
154 // virtual function thunks
155 // NOLINTBEGIN
156 MCAPI ::Item& $setIconInfo(::std::string const& name, int id);
157
158 MCAPI uchar $getMaxStackSize(::ItemDescriptor const&) const;
159
160 MCAPI bool $canUseOnSimTick() const;
161
162 MCAPI ::ItemStack& $use(::ItemStack& item, ::Player& player) const;
163
164 MCAPI void $releaseUsing(::ItemStack& inoutInstance, ::Player* player, int durationLeft) const;
165
166 MCAPI ::ItemUseMethod $useTimeDepleted(::ItemStack& inoutInstance, ::Level* level, ::Player* player) const;
167
168 MCFOLD bool $uniqueAuxValues() const;
169
170 MCFOLD bool $isBucket() const;
171
172 MCAPI bool $dispense(::BlockSource& region, ::Container& container, int slot, ::Vec3 const& pos, uchar face) const;
173
174 MCAPI bool $isLiquidClipItem() const;
175
176 MCAPI ::std::string $buildDescriptionId(::ItemDescriptor const& userData, ::CompoundTag const*) const;
177
178 MCAPI bool $validFishInteraction(int) const;
179
180 MCAPI ::Brightness $getLightEmission(int) const;
181
182 MCFOLD bool $isValidAuxValue(int auxValue) const;
183
184 MCAPI bool $isDestructive(int auxValue) const;
185
186 MCAPI void $appendFormattedHovertext(
187 ::ItemStackBase const& stack,
188 ::Level& level,
190 bool const showCategory
191 ) const;
192
193 MCAPI ::InteractionResult
194 $_useOn(::ItemStack& instance, ::Actor& entity, ::BlockPos pos, uchar face, ::Vec3 const& clickPos) const;
195
196
197 // NOLINTEND
198
199public:
200 // vftables
201 // NOLINTBEGIN
202 MCAPI static void** $vftable();
203 // NOLINTEND
204};
Definition Actor.h:125
Definition RedactableString.h:10
Definition BlockPos.h:21
Definition BlockSource.h:73
Definition BlockType.h:84
Definition Block.h:69
Definition CompoundTag.h:23
Definition Container.h:34
Definition InteractionResult.h:5
Definition ItemDescriptor.h:25
Definition ItemInstance.h:15
Definition ItemStackBase.h:52
Definition ItemStack.h:35
Definition Level.h:255
Definition Material.h:8
Definition Player.h:137
Definition Vec3.h:10
Definition Brightness.h:8