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;
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 virtual ::Item& setIconInfo(::std::string const& name, int id) /*override*/;
42
43 virtual uchar getMaxStackSize(::ItemDescriptor const&) const /*override*/;
44
45 virtual bool canUseOnSimTick() const /*override*/;
46
47 virtual ::ItemStack& use(::ItemStack& item, ::Player& player) const /*override*/;
48
49 virtual void releaseUsing(::ItemStack& item, ::Player* player, int durationLeft) const /*override*/;
50
51 virtual ::ItemUseMethod useTimeDepleted(::ItemStack& inoutInstance, ::Level* level, ::Player* player) const
52 /*override*/;
53
54 virtual bool uniqueAuxValues() const /*override*/;
55
56 virtual bool isBucket() const /*override*/;
57
58 virtual bool dispense(::BlockSource& region, ::Container& container, int slot, ::Vec3 const& pos, uchar face) const
59 /*override*/;
60
61 virtual bool isLiquidClipItem() const /*override*/;
62
63 virtual ::std::string buildDescriptionId(::ItemDescriptor const&, ::CompoundTag const* userData) const /*override*/;
64
65 virtual bool validFishInteraction(int) const /*override*/;
66
67 virtual ::Brightness getLightEmission(int) const /*override*/;
68
69 virtual bool isValidAuxValue(int auxValue) const /*override*/;
70
71 virtual bool isDestructive(int auxValue) const /*override*/;
72
73 virtual ::InteractionResult
74 _useOn(::ItemStack& instance, ::Actor& entity, ::BlockPos pos, uchar face, ::Vec3 const& clickPos) const
75 /*override*/;
76
77 virtual ~BucketItem() /*override*/ = default;
78 // NOLINTEND
79
80public:
81 // member functions
82 // NOLINTBEGIN
83 MCAPI bool _canEmptyBucketIntoBlock(
84 ::BlockSource& region,
85 ::BlockPos const& pos,
86 ::Block const& block,
87 ::Block const& extraBlock,
88 ::Actor const* placer
89 ) const;
90
91 MCAPI bool _emptyBucket(
92 ::BlockSource& region,
93 ::Block const& contents,
94 ::BlockPos const& pos,
95 ::Actor* placer,
96 ::ItemStack const& instance,
97 uchar face
98 ) const;
99
100 MCAPI bool _supportsEntityType(::ActorType const& entityType, ::HashedString& bucketType) const;
101
102 MCAPI bool _takeLiquid(::ItemStack& item, ::Actor& entity, ::BlockPos const& pos) const;
103
104 MCAPI bool _takePowderSnow(::ItemStack& item, ::Actor& actor, ::BlockPos const& pos) const;
105
106 MCAPI ::BlockType const* _tryGetBlock(::BucketFillType contents) const;
107
108 MCAPI void addBucketEntitySaveData(::Actor& entity, ::ItemStack& instance) const;
109
110 MCAPI bool readBucketEntitySaveData(
111 ::BlockSource& region,
112 ::Actor* placer,
113 ::BlockPos pos,
114 ::ItemInstance const& instance
115 ) const;
116 // NOLINTEND
117
118public:
119 // static variables
120 // NOLINTBEGIN
121 MCAPI static ::std::vector<::std::pair<::BucketFillType, ::ActorType>> const& mFillTypeToEntityType();
122 // NOLINTEND
123
124public:
125 // virtual function thunks
126 // NOLINTBEGIN
127 MCAPI ::Item& $setIconInfo(::std::string const& name, int id);
128
129 MCAPI uchar $getMaxStackSize(::ItemDescriptor const&) const;
130
131 MCAPI bool $canUseOnSimTick() const;
132
133 MCAPI ::ItemStack& $use(::ItemStack& item, ::Player& player) const;
134
135 MCFOLD void $releaseUsing(::ItemStack& item, ::Player* player, int durationLeft) const;
136
137 MCFOLD bool $uniqueAuxValues() const;
138
139 MCFOLD bool $isBucket() const;
140
141 MCAPI bool $dispense(::BlockSource& region, ::Container& container, int slot, ::Vec3 const& pos, uchar face) const;
142
143 MCAPI bool $isLiquidClipItem() const;
144
145 MCAPI ::std::string $buildDescriptionId(::ItemDescriptor const&, ::CompoundTag const* userData) const;
146
147 MCAPI bool $validFishInteraction(int) const;
148
149 MCAPI ::Brightness $getLightEmission(int) const;
150
151 MCFOLD bool $isValidAuxValue(int auxValue) const;
152
153 MCAPI bool $isDestructive(int auxValue) const;
154
155 MCAPI ::InteractionResult
156 $_useOn(::ItemStack& instance, ::Actor& entity, ::BlockPos pos, uchar face, ::Vec3 const& clickPos) const;
157
158
159 // NOLINTEND
160
161public:
162 // vftables
163 // NOLINTBEGIN
164 MCAPI static void** $vftable();
165 // NOLINTEND
166};
Definition Actor.h:105
Definition BlockPos.h:19
Definition BlockSource.h:68
Definition BlockType.h:84
Definition Block.h:43
Definition BucketItem.h:31
Definition CompoundTag.h:23
Definition Container.h:33
Definition HashedString.h:5
Definition InteractionResult.h:5
Definition ItemDescriptor.h:23
Definition ItemInstance.h:15
Definition ItemStack.h:26
Definition Level.h:249
Definition Player.h:125
Definition Vec3.h:10
Definition Brightness.h:8