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& inoutInstance, ::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 ) const;
106
107 MCAPI bool _emptyBucket(
108 ::BlockSource& region,
109 ::Block const& contents,
110 ::BlockPos const& pos,
111 ::Actor* placer,
112 ::ItemStack const& instance,
113 uchar face
114 ) const;
115
116 MCAPI bool _supportsEntityType(::ActorType const& entityType, ::HashedString& bucketType) const;
117
118 MCAPI bool _takeLiquid(::ItemStack& item, ::Actor& entity, ::BlockPos const& pos) const;
119
120 MCAPI bool _takePowderSnow(::ItemStack& item, ::Actor& actor, ::BlockPos const& pos) const;
121
122 MCAPI ::BlockLegacy const* _tryGetBlock(::BucketFillType contents) const;
123
124 MCAPI void addBucketEntitySaveData(::Actor& entity, ::ItemStack& instance) const;
125
126 MCAPI bool
127 readBucketEntitySaveData(::BlockSource& region, ::Actor* placer, ::BlockPos pos, ::ItemInstance const& instance)
128 const;
129 // NOLINTEND
130
131public:
132 // static variables
133 // NOLINTBEGIN
134 MCAPI static ::std::vector<::std::pair<::BucketFillType, ::ActorType>> const& mFillTypeToEntityType();
135 // NOLINTEND
136
137public:
138 // destructor thunk
139 // NOLINTBEGIN
140
141 // NOLINTEND
142
143public:
144 // virtual function thunks
145 // NOLINTBEGIN
146 MCAPI ::Item& $setIconInfo(::std::string const& name, int index);
147
148 MCAPI uchar $getMaxStackSize(::ItemDescriptor const&) const;
149
150 MCAPI bool $canUseOnSimTick() const;
151
152 MCAPI ::ItemStack& $use(::ItemStack& item, ::Player& player) const;
153
154 MCFOLD void $releaseUsing(::ItemStack& inoutInstance, ::Player* player, int durationLeft) const;
155
156 MCFOLD bool $uniqueAuxValues() const;
157
158 MCFOLD bool $isBucket() const;
159
160 MCAPI bool $dispense(::BlockSource& region, ::Container& container, int slot, ::Vec3 const& pos, uchar face) const;
161
162 MCAPI bool $isLiquidClipItem() const;
163
164 MCAPI ::std::string $buildDescriptionId(::ItemDescriptor const&, ::CompoundTag const* userData) const;
165
166 MCAPI bool $validFishInteraction(int) const;
167
168 MCAPI ::Brightness $getLightEmission(int) const;
169
170 MCFOLD bool $isValidAuxValue(int auxValue) const;
171
172 MCAPI bool $isDestructive(int auxValue) const;
173
174 MCAPI ::InteractionResult
175 $_useOn(::ItemStack& instance, ::Actor& entity, ::BlockPos pos, uchar face, ::Vec3 const& clickPos) const;
176 // NOLINTEND
177
178public:
179 // vftables
180 // NOLINTBEGIN
181 MCAPI static void** $vftable();
182 // NOLINTEND
183};
Definition Actor.h:104
Definition BlockLegacy.h:88
Definition BlockPos.h:18
Definition BlockSource.h:67
Definition Block.h:36
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:234
Definition Player.h:119
Definition Vec3.h:10
Definition Brightness.h:8