Skip to content
LeviLamina
Loading...
Searching...
No Matches
StairBlock.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/level/ShapeType.h"
8#include "mc/world/level/block/BlockType.h"
9
10// auto generated forward declare list
11// clang-format off
12class AABB;
13class Actor;
14class BaseGameVersion;
15class Block;
16class BlockPos;
17class BlockSource;
18class EntityContext;
19class Experiments;
21class HitResult;
23class Player;
24class Vec3;
26// clang-format on
27
28class StairBlock : public ::BlockType {
29public:
30 // member variables
31 // NOLINTBEGIN
32 ::ll::TypedStorage<8, 8, ::BlockType const&> mBase;
33 ::ll::TypedStorage<1, 1, bool const> mLeakyCornersFix;
34 ::ll::TypedStorage<1, 1, bool const> mStairConnectionsCauseNeighborUpdates;
35 // NOLINTEND
36
37public:
38 // prevent constructor by default
39 StairBlock& operator=(StairBlock const&);
40 StairBlock(StairBlock const&);
41 StairBlock();
42
43public:
44 // virtual functions
45 // NOLINTBEGIN
46 virtual ::HitResult clip(
47 ::Block const& block,
48 ::BlockSource const& region,
49 ::BlockPos const& pos,
50 ::Vec3 const& A,
51 ::Vec3 const& B,
52 ::ShapeType shapeType,
54 ) const /*override*/;
55
56 virtual ::AABB const&
57 getOutline(::Block const&, ::IConstBlockSource const&, ::BlockPos const& pos, ::AABB& bufferValue) const
58 /*override*/;
59
60 virtual void addAABBs(
61 ::Block const& block,
62 ::IConstBlockSource const& region,
63 ::BlockPos const& blockPos,
64 ::AABB const* intersectTestBox,
65 ::std::vector<::AABB>& inoutBoxes
66 ) const /*override*/;
67
68 virtual bool addCollisionShapes(
69 ::Block const& block,
70 ::IConstBlockSource const& region,
71 ::BlockPos const& pos,
72 ::AABB const* intersectTestBox,
73 ::std::vector<::AABB>& inoutBoxes,
75 ) const /*override*/;
76
77 virtual bool
78 getLiquidClipVolume(::Block const& block, ::BlockSource& region, ::BlockPos const& pos, ::AABB& includeBox) const
79 /*override*/;
80
81 virtual void animateTickBedrockLegacy(::BlockAnimateTickData const& tickData) const /*override*/;
82
83 virtual void animateTick(::BlockAnimateTickData const& tickData) const /*override*/;
84
85 virtual bool attack(::Player* player, ::BlockPos const& pos) const /*override*/;
86
87 virtual void
88 destroy(::BlockSource& region, ::BlockPos const& pos, ::Block const& block, ::Actor* entitySource) const
89 /*override*/;
90
91 virtual bool mayPick() const /*override*/;
92
93 virtual bool mayPick(::BlockSource const& region, ::Block const& block, bool liquid) const /*override*/;
94
95 virtual bool mayPlace(::BlockSource& region, ::BlockPos const& pos, uchar face) const /*override*/;
96
97 virtual void onRemove(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
98
99 virtual void onStandOn(::EntityContext& entity, ::BlockPos const& pos) const /*override*/;
100
101 virtual void onExploded(::BlockSource& region, ::BlockPos const& pos, ::Actor* entitySource) const /*override*/;
102
103 virtual ::Block const&
104 getPlacementBlock(::Actor const& by, ::BlockPos const& pos, uchar face, ::Vec3 const& clickPos, int itemValue) const
105 /*override*/;
106
107 virtual int getVariant(::Block const& block) const /*override*/;
108
109 virtual bool liquidCanFlowIntoFromDirection(
110 uchar flowIntoFacing,
111 ::std::function<::Block const&(::BlockPos const&)> const& getBlock,
112 ::BlockPos const& pos
113 ) const /*override*/;
114
115 virtual bool breaksFallingBlocks(::Block const& block, ::BaseGameVersion const version) const /*override*/;
116
117 virtual void _addHardCodedBlockComponents(::Experiments const&) /*override*/;
118 // NOLINTEND
119
120public:
121 // member functions
122 // NOLINTBEGIN
123 MCAPI StairBlock(
124 ::std::string const& nameId,
125 int id,
126 ::BlockType const& base,
127 bool leakyCornersFix,
128 bool stairConnectionsCauseNeighborUpdates
129 );
130
131 MCAPI bool _neighboringBlockCheckForCreatingBarrierInDirection(
132 ::std::function<::Block const&(::BlockPos const&)> const& getBlock,
133 ::BlockPos const& pos,
134 int directionToCheck
135 ) const;
136
137#ifdef LL_PLAT_C
138 MCAPI void setBaseShape(::Block const& block, ::AABB& shape, bool shrink) const;
139#endif
140
141 MCAPI bool setInnerPieceShape(
142 ::Block const& block,
143 ::IConstBlockSource const&,
144 ::BlockPos const&,
145 ::AABB& shape,
146 bool shrink
147 ) const;
148
149 MCAPI bool
150 setStepShape(::Block const& block, ::IConstBlockSource const&, ::BlockPos const&, ::AABB& shape, bool shrink) const;
151 // NOLINTEND
152
153public:
154 // static variables
155 // NOLINTBEGIN
156 MCAPI static ::std::add_lvalue_reference_t<int const[8][2]> DEAD_SPACES();
157 // NOLINTEND
158
159public:
160 // constructor thunks
161 // NOLINTBEGIN
162 MCAPI void* $ctor(
163 ::std::string const& nameId,
164 int id,
165 ::BlockType const& base,
166 bool leakyCornersFix,
167 bool stairConnectionsCauseNeighborUpdates
168 );
169 // NOLINTEND
170
171public:
172 // virtual function thunks
173 // NOLINTBEGIN
174 MCAPI ::HitResult $clip(
175 ::Block const& block,
176 ::BlockSource const& region,
177 ::BlockPos const& pos,
178 ::Vec3 const& A,
179 ::Vec3 const& B,
180 ::ShapeType shapeType,
182 ) const;
183
184 MCFOLD ::AABB const&
185 $getOutline(::Block const&, ::IConstBlockSource const&, ::BlockPos const& pos, ::AABB& bufferValue) const;
186
187 MCAPI void $addAABBs(
188 ::Block const& block,
189 ::IConstBlockSource const& region,
190 ::BlockPos const& blockPos,
191 ::AABB const* intersectTestBox,
192 ::std::vector<::AABB>& inoutBoxes
193 ) const;
194
195 MCFOLD bool $addCollisionShapes(
196 ::Block const& block,
197 ::IConstBlockSource const& region,
198 ::BlockPos const& pos,
199 ::AABB const* intersectTestBox,
200 ::std::vector<::AABB>& inoutBoxes,
202 ) const;
203
204 MCAPI bool
205 $getLiquidClipVolume(::Block const& block, ::BlockSource& region, ::BlockPos const& pos, ::AABB& includeBox) const;
206
207 MCAPI void $animateTickBedrockLegacy(::BlockAnimateTickData const& tickData) const;
208
209 MCAPI void $animateTick(::BlockAnimateTickData const& tickData) const;
210
211 MCAPI bool $attack(::Player* player, ::BlockPos const& pos) const;
212
213 MCAPI void
214 $destroy(::BlockSource& region, ::BlockPos const& pos, ::Block const& block, ::Actor* entitySource) const;
215
216 MCAPI bool $mayPick() const;
217
218 MCAPI bool $mayPick(::BlockSource const& region, ::Block const& block, bool liquid) const;
219
220 MCAPI bool $mayPlace(::BlockSource& region, ::BlockPos const& pos, uchar face) const;
221
222 MCAPI void $onRemove(::BlockSource& region, ::BlockPos const& pos) const;
223
224 MCAPI void $onStandOn(::EntityContext& entity, ::BlockPos const& pos) const;
225
226 MCAPI void $onExploded(::BlockSource& region, ::BlockPos const& pos, ::Actor* entitySource) const;
227
228 MCAPI ::Block const& $getPlacementBlock(
229 ::Actor const& by,
230 ::BlockPos const& pos,
231 uchar face,
232 ::Vec3 const& clickPos,
233 int itemValue
234 ) const;
235
236 MCFOLD int $getVariant(::Block const& block) const;
237
238 MCAPI bool $liquidCanFlowIntoFromDirection(
239 uchar flowIntoFacing,
240 ::std::function<::Block const&(::BlockPos const&)> const& getBlock,
241 ::BlockPos const& pos
242 ) const;
243
244 MCAPI bool $breaksFallingBlocks(::Block const& block, ::BaseGameVersion const version) const;
245
246 MCAPI void $_addHardCodedBlockComponents(::Experiments const&);
247
248
249 // NOLINTEND
250
251public:
252 // vftables
253 // NOLINTBEGIN
254 MCAPI static void** $vftable();
255 // NOLINTEND
256};
Definition AABB.h:18
Definition Actor.h:113
Definition BaseGameVersion.h:8
Definition BlockPos.h:17
Definition BlockSource.h:71
Definition Block.h:41
Definition EntityContext.h:15
Definition Experiments.h:14
Definition GetCollisionShapeInterface.h:13
Definition HitResult.h:18
Definition IConstBlockSource.h:25
Definition Player.h:129
Definition Vec3.h:10
Definition optional_ref.h:10
Definition BlockAnimateTickData.h:14