LeviLamina
Loading...
Searching...
No Matches
ButtonBlock.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/optional_ref.h"
7#include "mc/world/Direction.h"
8#include "mc/world/level/block/BlockLegacy.h"
9
10// auto generated forward declare list
11// clang-format off
12class AABB;
13class Actor;
14class Block;
15class BlockPos;
16class BlockSource;
17class Experiments;
20class Player;
21class Random;
22class Vec3;
23namespace BlockEvents { class BlockPlaceEvent; }
24// clang-format on
25
26class ButtonBlock : public ::BlockLegacy {
27public:
28 // member variables
29 // NOLINTBEGIN
30 ::ll::TypedStorage<1, 1, bool const> mSensitive;
31 // NOLINTEND
32
33public:
34 // virtual functions
35 // NOLINTBEGIN
36 // vIndex: 5
37 virtual ::AABB getCollisionShape(
38 ::Block const& block,
40 ::BlockPos const& pos,
42 ) const /*override*/;
43
44 // vIndex: 9
45 virtual ::AABB const&
46 getOutline(::Block const& block, ::IConstBlockSource const&, ::BlockPos const& pos, ::AABB& bufferValue) const
47 /*override*/;
48
49 // vIndex: 11
50 virtual ::AABB const& getVisualShape(::Block const& block, ::AABB& bufferAABB) const /*override*/;
51
52 // vIndex: 12
53 virtual ::AABB const& getUIShape(::Block const& block, ::AABB& bufferAABB) const /*override*/;
54
55 // vIndex: 8
56 virtual void addAABBs(
57 ::Block const& block,
58 ::IConstBlockSource const& region,
59 ::BlockPos const& pos,
60 ::AABB const* intersectTestBox,
61 ::std::vector<::AABB>& inoutBoxes
62 ) const /*override*/;
63
64 // vIndex: 67
65 virtual void setupRedstoneComponent(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
66
67 // vIndex: 80
68 virtual bool mayPlace(::BlockSource& region, ::BlockPos const& pos, uchar facing) const /*override*/;
69
70 // vIndex: 79
71 virtual bool mayPlace(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
72
73 // vIndex: 87
74 virtual void neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const
75 /*override*/;
76
77 // vIndex: 92
78 virtual ::Block const&
79 getPlacementBlock(::Actor const& by, ::BlockPos const& pos, uchar face, ::Vec3 const& clickPos, int itemValue) const
80 /*override*/;
81
82 // vIndex: 139
83 virtual bool use(::Player& player, ::BlockPos const& pos, uchar) const /*override*/;
84
85 // vIndex: 136
86 virtual void tick(::BlockSource& region, ::BlockPos const& pos, ::Random& random) const /*override*/;
87
88 // vIndex: 149
89 virtual void entityInside(::BlockSource& region, ::BlockPos const& pos, ::Actor&) const /*override*/;
90
91 // vIndex: 94
92 virtual bool isAttachedTo(::BlockSource& region, ::BlockPos const& pos, ::BlockPos& outAttachedTo) const
93 /*override*/;
94
95 // vIndex: 54
96 virtual bool
97 shouldConnectToRedstone(::BlockSource& region, ::BlockPos const& pos, ::Direction::Type direction) const
98 /*override*/;
99
100 // vIndex: 138
101 virtual bool isInteractiveBlock() const /*override*/;
102
103 // vIndex: 44
104 virtual bool isSignalSource() const /*override*/;
105
106 // vIndex: 118
107 virtual int getVariant(::Block const& block) const /*override*/;
108
109 // vIndex: 119
110 virtual bool canSpawnOn(::Actor*) const /*override*/;
111
112 // vIndex: 40
113 virtual bool isButtonBlock() const /*override*/;
114
115 // vIndex: 57
116 virtual bool checkIsPathable(::Actor& entity, ::BlockPos const& lastPathPos, ::BlockPos const& pathPos) const
117 /*override*/;
118
119 // vIndex: 142
120 virtual bool canSurvive(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
121
122 // vIndex: 131
123 virtual void _addHardCodedBlockComponents(::Experiments const&) /*override*/;
124
125 // vIndex: 148
126 virtual void _onHitByActivatingAttack(::BlockSource& region, ::BlockPos const& pos, ::Actor*) const /*override*/;
127
128 // vIndex: 0
129 virtual ~ButtonBlock() /*override*/ = default;
130 // NOLINTEND
131
132public:
133 // member functions
134 // NOLINTBEGIN
135 MCAPI void
136 _buttonUnpressed(::BlockSource& region, ::Block const& buttonBlock, ::Vec3 const& pos, ::Actor* sourceActor) const;
137
138 MCAPI void _checkPressed(::BlockSource& region, ::BlockPos const& pos) const;
139
140 MCAPI ::AABB _getShape(bool pressed, uchar facingDirection, bool ignorePressedState) const;
141
142 MCAPI void
143 buttonPressed(::BlockSource& region, ::Block const& buttonBlock, ::Vec3 const& pos, ::Actor* sourceActor) const;
144
145 MCFOLD void onPlace(::BlockEvents::BlockPlaceEvent& eventData) const;
146 // NOLINTEND
147
148public:
149 // static functions
150 // NOLINTBEGIN
151 MCAPI static bool canAttachTo(::BlockSource& region, ::BlockPos const& pos, uchar facing);
152 // NOLINTEND
153
154public:
155 // destructor thunk
156 // NOLINTBEGIN
157
158 // NOLINTEND
159
160public:
161 // virtual function thunks
162 // NOLINTBEGIN
163 MCAPI ::AABB $getCollisionShape(
164 ::Block const& block,
165 ::IConstBlockSource const&,
166 ::BlockPos const& pos,
168 ) const;
169
170 MCAPI ::AABB const&
171 $getOutline(::Block const& block, ::IConstBlockSource const&, ::BlockPos const& pos, ::AABB& bufferValue) const;
172
173 MCAPI ::AABB const& $getVisualShape(::Block const& block, ::AABB& bufferAABB) const;
174
175 MCAPI ::AABB const& $getUIShape(::Block const& block, ::AABB& bufferAABB) const;
176
177 MCAPI void $addAABBs(
178 ::Block const& block,
179 ::IConstBlockSource const& region,
180 ::BlockPos const& pos,
181 ::AABB const* intersectTestBox,
182 ::std::vector<::AABB>& inoutBoxes
183 ) const;
184
185 MCAPI void $setupRedstoneComponent(::BlockSource& region, ::BlockPos const& pos) const;
186
187 MCFOLD bool $mayPlace(::BlockSource& region, ::BlockPos const& pos, uchar facing) const;
188
189 MCAPI bool $mayPlace(::BlockSource& region, ::BlockPos const& pos) const;
190
191 MCAPI void $neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const;
192
193 MCFOLD ::Block const&
194 $getPlacementBlock(::Actor const& by, ::BlockPos const& pos, uchar face, ::Vec3 const& clickPos, int itemValue)
195 const;
196
197 MCAPI bool $use(::Player& player, ::BlockPos const& pos, uchar) const;
198
199 MCAPI void $tick(::BlockSource& region, ::BlockPos const& pos, ::Random& random) const;
200
201 MCAPI void $entityInside(::BlockSource& region, ::BlockPos const& pos, ::Actor&) const;
202
203 MCAPI bool $isAttachedTo(::BlockSource& region, ::BlockPos const& pos, ::BlockPos& outAttachedTo) const;
204
205 MCFOLD bool
206 $shouldConnectToRedstone(::BlockSource& region, ::BlockPos const& pos, ::Direction::Type direction) const;
207
208 MCFOLD bool $isInteractiveBlock() const;
209
210 MCFOLD bool $isSignalSource() const;
211
212 MCFOLD int $getVariant(::Block const& block) const;
213
214 MCFOLD bool $canSpawnOn(::Actor*) const;
215
216 MCFOLD bool $isButtonBlock() const;
217
218 MCFOLD bool $checkIsPathable(::Actor& entity, ::BlockPos const& lastPathPos, ::BlockPos const& pathPos) const;
219
220 MCFOLD bool $canSurvive(::BlockSource& region, ::BlockPos const& pos) const;
221
222 MCAPI void $_addHardCodedBlockComponents(::Experiments const&);
223
224 MCAPI void $_onHitByActivatingAttack(::BlockSource& region, ::BlockPos const& pos, ::Actor*) const;
225 // NOLINTEND
226
227public:
228 // vftables
229 // NOLINTBEGIN
230 MCAPI static void** $vftable();
231 // NOLINTEND
232};
Definition AABB.h:16
Definition Actor.h:104
Definition BlockPlaceEvent.h:15
Definition BlockLegacy.h:88
Definition BlockPos.h:18
Definition BlockSource.h:67
Definition Block.h:36
Definition ButtonBlock.h:26
Definition Experiments.h:14
Definition GetCollisionShapeInterface.h:13
Definition IConstBlockSource.h:24
Definition Player.h:119
Definition Random.h:16
Definition Vec3.h:10
Definition optional_ref.h:10