LeviLamina
Loading...
Searching...
No Matches
PointedDripstoneBlock.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/comprehensive/ParticleType.h"
7#include "mc/world/level/block/DripstoneThickness.h"
8#include "mc/world/level/block/FallingBlock.h"
9#include "mc/world/level/material/MaterialType.h"
10
11// auto generated forward declare list
12// clang-format off
13class AABB;
14class Actor;
15class Block;
16class BlockLegacy;
17class BlockPos;
18class BlockSource;
19class Experiments;
20class Vec3;
22namespace BlockEvents { class BlockEntityFallOnEvent; }
23namespace BlockEvents { class BlockQueuedTickEvent; }
24namespace BlockEvents { class BlockRandomTickEvent; }
25namespace mce { class Color; }
26// clang-format on
27
29public:
30 // virtual functions
31 // NOLINTBEGIN
32 // vIndex: 130
33 virtual void _addHardCodedBlockComponents(::Experiments const&) /*override*/;
34
35 // vIndex: 124
36 virtual ::BlockLegacy& init() /*override*/;
37
38 // vIndex: 117
39 virtual int getVariant(::Block const& block) const /*override*/;
40
41 // vIndex: 138
42 virtual bool canSurvive(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
43
44 // vIndex: 78
45 virtual bool mayPlace(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
46
47 // vIndex: 122
48 virtual void animateTickBedrockLegacy(::BlockAnimateTickData const& tickData) const /*override*/;
49
50 // vIndex: 86
51 virtual void neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const
52 /*override*/;
53
54 // vIndex: 91
55 virtual ::Block const&
56 getPlacementBlock(::Actor const& by, ::BlockPos const& pos, uchar face, ::Vec3 const& clickPos, int itemValue) const
57 /*override*/;
58
59 // vIndex: 16
60 virtual void onProjectileHit(::BlockSource& region, ::BlockPos const& pos, ::Actor const& projectile) const
61 /*override*/;
62
63 // vIndex: 149
64 virtual bool falling() const /*override*/;
65
66 // vIndex: 150
67 virtual void onLand(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
68
69 // vIndex: 147
70 virtual ::mce::Color getDustColor(::Block const&) const /*override*/;
71
72 // vIndex: 148
73 virtual ::std::string getDustParticleName(::Block const&) const /*override*/;
74
75 // vIndex: 11
76 virtual ::AABB const& getVisualShape(::Block const& block, ::AABB& bufferAABB) const /*override*/;
77
78 // vIndex: 152
79 virtual void
80 startFalling(::BlockSource& region, ::BlockPos const& pos, ::Block const& oldBlock, bool creative) const
81 /*override*/;
82
83 // vIndex: 0
84 virtual ~PointedDripstoneBlock() /*override*/ = default;
85 // NOLINTEND
86
87public:
88 // member functions
89 // NOLINTBEGIN
90 MCAPI void _queueColumnForFall(::BlockSource& region, ::BlockPos const& pos) const;
91
92 MCAPI void _updateBlockThickness(::BlockSource& region, ::BlockPos const& pos) const;
93
94 MCAPI void onFallOn(::BlockEvents::BlockEntityFallOnEvent& eventData) const;
95
96 MCAPI void randomTick(::BlockEvents::BlockRandomTickEvent& eventData) const;
97
98 MCAPI void tick(::BlockEvents::BlockQueuedTickEvent& eventData) const;
99 // NOLINTEND
100
101public:
102 // static functions
103 // NOLINTBEGIN
104 MCAPI static ::DripstoneThickness _calculateDripstoneThickness(
105 ::BlockSource& region,
106 ::BlockPos const& pos,
107 uchar tipDirection,
108 bool mergeOpposingTips
109 );
110
111 MCAPI static bool _canDrip(::BlockSource& region, ::BlockPos const& pos);
112
113 MCAPI static bool _canTipGrow(::BlockSource& region, ::BlockPos const& tipPos);
114
115 MCAPI static void _createMergedTips(::BlockSource& region, ::Block const& tipBlock, ::BlockPos const& tipPos);
116
117 MCAPI static ::std::optional<::BlockPos> _findBlockVertically(
118 ::BlockSource& region,
119 ::BlockPos const& pos,
120 uchar searchDirection,
121 ::std::function<bool(::BlockSource&, ::BlockPos const&)> pathPredicate,
122 ::std::function<bool(::BlockSource&, ::BlockPos const&)> targetPredicate,
123 int maxSearchLength
124 );
125
126 MCAPI static ::std::optional<::BlockPos>
127 _findRootBlock(::BlockSource& region, ::BlockPos const& pos, int maxSearchLength);
128
129 MCAPI static ::std::optional<::BlockPos> _getBlockAboveStalactiteRoot(::BlockSource& region, ::BlockPos const& pos);
130
131 MCAPI static void _grow(::BlockSource& region, ::BlockPos const& growFromPos, uchar growToDirection);
132
133 MCAPI static void _growStalagmiteBelow(::BlockSource& region, ::BlockPos const& growIntoPos);
134
135 MCAPI static bool _isStalactiteBase(::BlockSource& region, ::BlockPos const& pos);
136
137 MCAPI static bool _isValidPointedDripstonePlacement(::BlockSource& region, ::BlockPos const& pos, bool isHanging);
138
139 MCAPI static bool _mayPlaceHanging(::BlockSource& region, ::BlockPos const& pos);
140
141 MCAPI static bool _mayPlaceStanding(::BlockSource& region, ::BlockPos const& pos);
142
143 MCAPI static void addDripParticle(::BlockSource& region, ::BlockPos const& pos, ::ParticleType particleType);
144
145 MCAPI static bool canGrow(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& stalactiteTipPos);
146
147 MCAPI static void fillCauldron(::BlockSource& region, ::BlockPos const& pos);
148
149 MCAPI static ::std::optional<::MaterialType>
150 getCauldronFillLiquidType(::BlockSource& region, ::BlockPos const& pos);
151
152 MCAPI static void growStalactite(::BlockSource& region, ::BlockPos const& pos);
153
154 MCAPI static void growStalagmite(::BlockSource& region, ::BlockPos const& pos);
155
156 MCAPI static ::std::optional<::ParticleType>
157 shouldDrip(::BlockSource& region, ::BlockPos const& pos, float randomValue);
158 // NOLINTEND
159
160public:
161 // static variables
162 // NOLINTBEGIN
163 MCAPI static float const& MAX_HORIZONTAL_OFFSET();
164 // NOLINTEND
165
166public:
167 // virtual function thunks
168 // NOLINTBEGIN
169 MCAPI void $_addHardCodedBlockComponents(::Experiments const&);
170
171 MCFOLD ::BlockLegacy& $init();
172
173 MCAPI int $getVariant(::Block const& block) const;
174
175 MCAPI bool $canSurvive(::BlockSource& region, ::BlockPos const& pos) const;
176
177 MCAPI bool $mayPlace(::BlockSource& region, ::BlockPos const& pos) const;
178
179 MCAPI void $animateTickBedrockLegacy(::BlockAnimateTickData const& tickData) const;
180
181 MCAPI void $neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const;
182
183 MCAPI ::Block const& $getPlacementBlock(
184 ::Actor const& by,
185 ::BlockPos const& pos,
186 uchar face,
187 ::Vec3 const& clickPos,
188 int itemValue
189 ) const;
190
191 MCAPI void $onProjectileHit(::BlockSource& region, ::BlockPos const& pos, ::Actor const& projectile) const;
192
193 MCFOLD bool $falling() const;
194
195 MCAPI void $onLand(::BlockSource& region, ::BlockPos const& pos) const;
196
197 MCFOLD ::mce::Color $getDustColor(::Block const&) const;
198
199 MCFOLD ::std::string $getDustParticleName(::Block const&) const;
200
201 MCAPI ::AABB const& $getVisualShape(::Block const& block, ::AABB& bufferAABB) const;
202
203 MCAPI void
204 $startFalling(::BlockSource& region, ::BlockPos const& pos, ::Block const& oldBlock, bool creative) const;
205 // NOLINTEND
206
207public:
208 // vftables
209 // NOLINTBEGIN
210 MCNAPI static void** $vftable();
211 // NOLINTEND
212};
Definition AABB.h:18
Definition Actor.h:103
Definition BlockEntityFallOnEvent.h:16
Definition BlockQueuedTickEvent.h:16
Definition BlockRandomTickEvent.h:16
Definition BlockLegacy.h:88
Definition BlockPos.h:18
Definition BlockSource.h:67
Definition Block.h:38
Definition Experiments.h:14
Definition FallingBlock.h:20
Definition PointedDripstoneBlock.h:28
static MCAPI void ** $vftable()
Definition Vec3.h:10
Definition BlockAnimateTickData.h:5
Definition BlockRandomTickEvent.h:13