LeviLamina
Loading...
Searching...
No Matches
EndCityPieces.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/NonOwnerPointer.h"
7#include "mc/util/Rotation.h"
8#include "mc/world/level/BlockPos.h"
9#include "mc/world/level/levelgen/structure/StructurePieceType.h"
10#include "mc/world/level/levelgen/structure/TemplateStructurePiece.h"
11
12// auto generated forward declare list
13// clang-format off
14class BlockSource;
15class BoundingBox;
16class Random;
18class StructurePiece;
19// clang-format on
20
22public:
23 // EndCityPieces inner types declare
24 // clang-format off
25 class EndCityPiece;
26 class SectionGenerator;
30 class TowerGenerator;
31 // clang-format on
32
33 // EndCityPieces inner types define
34 enum class SectionType : ushort {
35 SectionTower = 0,
36 SectionFatTower = 1,
37 SectionBridge = 2,
38 SectionHouse = 3,
39 };
40
41 class EndCityPiece : public ::TemplateStructurePiece {
42 public:
43 // member variables
44 // NOLINTBEGIN
45 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::StructureManager>> mStructureManager;
46 ::ll::TypedStorage<8, 32, ::std::string> mTemplateName;
47 ::ll::TypedStorage<1, 1, ::Rotation> mRotation;
48 ::ll::TypedStorage<1, 1, bool> mOverwrite;
49 ::ll::TypedStorage<8, 24, ::std::vector<::BlockPos>> mMobPositions;
50 // NOLINTEND
51
52 public:
53 // prevent constructor by default
54 EndCityPiece();
55
56 public:
57 // virtual functions
58 // NOLINTBEGIN
59 virtual ::StructurePieceType getType() const /*override*/;
60
61 virtual void
62 postProcessMobsAt(::BlockSource& region, ::Random& random, ::BoundingBox const& chunkBB) /*override*/;
63
64 virtual void _handleDataMarker(
65 ::std::string const& markerId,
66 ::BlockPos const& position,
67 ::BlockSource& region,
68 ::Random& random,
69 ::BoundingBox const& chunkBB
70 ) /*override*/;
71
72 virtual ~EndCityPiece() /*override*/;
73 // NOLINTEND
74
75 public:
76 // member functions
77 // NOLINTBEGIN
78 MCAPI EndCityPiece(
79 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
80 ::std::string templateName,
81 ::BlockPos const& origin,
82 ::Rotation rotation,
83 bool overwrite
84 );
85
86 MCAPI void _loadAndSetup(::BlockPos const& position);
87 // NOLINTEND
88
89 public:
90 // constructor thunks
91 // NOLINTBEGIN
92 MCAPI void* $ctor(
93 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
94 ::std::string templateName,
95 ::BlockPos const& origin,
96 ::Rotation rotation,
97 bool overwrite
98 );
99 // NOLINTEND
100
101 public:
102 // destructor thunk
103 // NOLINTBEGIN
104 MCAPI void $dtor();
105 // NOLINTEND
106
107 public:
108 // virtual function thunks
109 // NOLINTBEGIN
110 MCAPI ::StructurePieceType $getType() const;
111
112 MCAPI void $postProcessMobsAt(::BlockSource& region, ::Random& random, ::BoundingBox const& chunkBB);
113
114 MCAPI void $_handleDataMarker(
115 ::std::string const& markerId,
116 ::BlockPos const& position,
117 ::BlockSource& region,
118 ::Random& random,
119 ::BoundingBox const& chunkBB
120 );
121
122
123 // NOLINTEND
124
125 public:
126 // vftables
127 // NOLINTBEGIN
128 MCNAPI static void** $vftable();
129 // NOLINTEND
130 };
131
133 public:
134 // virtual functions
135 // NOLINTBEGIN
136 virtual bool generate(
137 ::Bedrock::NotNullNonOwnerPtr<::StructureManager>,
138 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>> const&,
139 int,
141 ::BlockPos const&,
142 ::std::vector<::std::unique_ptr<::StructurePiece>>&,
143 ::Random&
144 ) = 0;
145
146 virtual ~SectionGenerator() = default;
147 // NOLINTEND
148
149 public:
150 // virtual function thunks
151 // NOLINTBEGIN
152
153 // NOLINTEND
154
155 public:
156 // vftables
157 // NOLINTBEGIN
158 MCNAPI static void** $vftable();
159 // NOLINTEND
160 };
161
163 public:
164 // virtual functions
165 // NOLINTBEGIN
166 virtual bool generate(
167 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
168 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>> const& generators,
169 int genDepth,
171 ::BlockPos const& offset,
172 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
173 ::Random& random
174 ) /*override*/;
175
176 virtual ~FatTowerGenerator() /*override*/ = default;
177 // NOLINTEND
178
179 public:
180 // virtual function thunks
181 // NOLINTBEGIN
182 MCAPI bool $generate(
183 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
184 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>> const& generators,
185 int genDepth,
187 ::BlockPos const& offset,
188 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
189 ::Random& random
190 );
191
192
193 // NOLINTEND
194
195 public:
196 // vftables
197 // NOLINTBEGIN
198 MCNAPI static void** $vftable();
199 // NOLINTEND
200 };
201
203 public:
204 // virtual functions
205 // NOLINTBEGIN
206 virtual bool generate(
207 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
208 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>> const& generators,
209 int genDepth,
211 ::BlockPos const& offset,
212 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
213 ::Random& random
214 ) /*override*/;
215
216 virtual ~HouseTowerGenerator() /*override*/ = default;
217 // NOLINTEND
218
219 public:
220 // virtual function thunks
221 // NOLINTBEGIN
222 MCAPI bool $generate(
223 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
224 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>> const& generators,
225 int genDepth,
227 ::BlockPos const& offset,
228 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
229 ::Random& random
230 );
231
232
233 // NOLINTEND
234
235 public:
236 // vftables
237 // NOLINTBEGIN
238 MCNAPI static void** $vftable();
239 // NOLINTEND
240 };
241
243 public:
244 // member variables
245 // NOLINTBEGIN
246 ::ll::TypedStorage<1, 1, bool> mShipCreated;
247 // NOLINTEND
248
249 public:
250 // virtual functions
251 // NOLINTBEGIN
252 virtual bool generate(
253 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
254 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>> const& generators,
255 int genDepth,
257 ::BlockPos const& offset,
258 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
259 ::Random& random
260 ) /*override*/;
261
262 virtual ~TowerBridgeGenerator() /*override*/ = default;
263 // NOLINTEND
264
265 public:
266 // virtual function thunks
267 // NOLINTBEGIN
268 MCAPI bool $generate(
269 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
270 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>> const& generators,
271 int genDepth,
273 ::BlockPos const& offset,
274 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
275 ::Random& random
276 );
277
278
279 // NOLINTEND
280
281 public:
282 // vftables
283 // NOLINTBEGIN
284 MCNAPI static void** $vftable();
285 // NOLINTEND
286 };
287
289 public:
290 // virtual functions
291 // NOLINTBEGIN
292 virtual bool generate(
293 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
294 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>> const& generators,
295 int genDepth,
297 ::BlockPos const& offset,
298 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
299 ::Random& random
300 ) /*override*/;
301
302 virtual ~TowerGenerator() /*override*/ = default;
303 // NOLINTEND
304
305 public:
306 // virtual function thunks
307 // NOLINTBEGIN
308 MCAPI bool $generate(
309 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
310 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>> const& generators,
311 int genDepth,
313 ::BlockPos const& offset,
314 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
315 ::Random& random
316 );
317
318
319 // NOLINTEND
320
321 public:
322 // vftables
323 // NOLINTBEGIN
324 MCNAPI static void** $vftable();
325 // NOLINTEND
326 };
327
328 using Generators = ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>>;
329
330public:
331 // static functions
332 // NOLINTBEGIN
333 MCAPI static ::EndCityPieces::EndCityPiece* _addHelper(
334 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
335 ::std::unique_ptr<::EndCityPieces::EndCityPiece> piece
336 );
337
338 MCAPI static ::std::unique_ptr<::EndCityPieces::EndCityPiece> _createPiece(
339 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
341 ::BlockPos const& offset,
342 ::std::string const& templateName,
343 ::Rotation rotation,
344 bool overwrite
345 );
346
347 MCAPI static bool _recursiveChildren(
348 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
349 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>> const& generators,
350 ::EndCityPieces::SectionType type,
351 int newGenDepth,
353 ::BlockPos const& offset,
354 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
355 ::Random& random
356 );
357
358 MCAPI static void startHouseTower(
359 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
360 ::BlockPos const& origin,
361 ::Rotation rotation,
362 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
363 ::Random& random
364 );
365 // NOLINTEND
366};
Definition BlockPos.h:19
Definition BlockSource.h:68
Definition BoundingBox.h:13
Definition EndCityPieces.h:41
static MCAPI void ** $vftable()
Definition EndCityPieces.h:162
static MCAPI void ** $vftable()
Definition EndCityPieces.h:202
static MCAPI void ** $vftable()
Definition EndCityPieces.h:132
static MCAPI void ** $vftable()
Definition EndCityPieces.h:242
static MCAPI void ** $vftable()
Definition EndCityPieces.h:288
static MCAPI void ** $vftable()
Definition EndCityPieces.h:21
Definition Random.h:10
Definition StructureManager.h:45
Definition StructurePiece.h:18
Definition TemplateStructurePiece.h:18