LeviLamina
Loading...
Searching...
No Matches
WoodlandMansionPieces.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/Mirror.h"
8#include "mc/util/Rotation.h"
9#include "mc/world/level/BlockPos.h"
10#include "mc/world/level/levelgen/structure/StructurePieceType.h"
11#include "mc/world/level/levelgen/structure/TemplateStructurePiece.h"
12
13// auto generated forward declare list
14// clang-format off
15class BlockSource;
16class BoundingBox;
17class Random;
19class StructurePiece;
20// clang-format on
21
23public:
24 // WoodlandMansionPieces inner types declare
25 // clang-format off
28 class MansionGrid;
30 struct PlacementData;
32 class SimpleGrid;
35 // clang-format on
36
37 // WoodlandMansionPieces inner types define
39 public:
40 // member variables
41 // NOLINTBEGIN
42 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::StructureManager>> mStructureManager;
43 ::ll::TypedStorage<8, 32, ::std::string> mTemplateName;
44 ::ll::TypedStorage<1, 1, ::Rotation> mRotation;
45 ::ll::TypedStorage<1, 1, ::Mirror> mMirror;
46 ::ll::TypedStorage<4, 12, ::BlockPos> mPosition;
47 ::ll::TypedStorage<8, 24, ::std::vector<::BlockPos>> mVindicatorPositions;
48 ::ll::TypedStorage<8, 24, ::std::vector<::BlockPos>> mEvokerPositions;
49 ::ll::TypedStorage<8, 24, ::std::vector<::BlockPos>> mAllayGroupPositions;
50 // NOLINTEND
51
52 public:
53 // prevent constructor by default
55
56 public:
57 // virtual functions
58 // NOLINTBEGIN
59 // vIndex: 2
60 virtual ::StructurePieceType getType() const /*override*/;
61
62 // vIndex: 5
63 virtual void
64 postProcessMobsAt(::BlockSource& region, ::Random& random, ::BoundingBox const& chunkBB) /*override*/;
65
66 // vIndex: 13
67 virtual void _handleDataMarker(
68 ::std::string const& markerId,
69 ::BlockPos const& position,
70 ::BlockSource& region,
71 ::Random& random,
72 ::BoundingBox const& chunkBB
73 ) /*override*/;
74
75 // vIndex: 0
76 virtual ~WoodlandMansionPiece() /*override*/;
77 // NOLINTEND
78
79 public:
80 // member functions
81 // NOLINTBEGIN
83 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
84 ::std::string const& templateName,
85 ::BlockPos const& origin,
86 ::Rotation rotation
87 );
88
90 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
91 ::std::string const& templateName,
92 ::BlockPos const& origin,
93 ::Rotation rotation,
94 ::Mirror mirror
95 );
96
97 MCAPI void _addChest(
98 ::std::string const& markerId,
99 ::BlockPos const& position,
100 ::BlockSource& region,
101 ::Random& random,
102 ::BoundingBox const& chunkBB
103 );
104
105 MCAPI void _loadTemplate();
106 // NOLINTEND
107
108 public:
109 // constructor thunks
110 // NOLINTBEGIN
111 MCAPI void* $ctor(
112 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
113 ::std::string const& templateName,
114 ::BlockPos const& origin,
115 ::Rotation rotation
116 );
117
118 MCAPI void* $ctor(
119 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
120 ::std::string const& templateName,
121 ::BlockPos const& origin,
122 ::Rotation rotation,
123 ::Mirror mirror
124 );
125 // NOLINTEND
126
127 public:
128 // destructor thunk
129 // NOLINTBEGIN
130 MCAPI void $dtor();
131 // NOLINTEND
132
133 public:
134 // virtual function thunks
135 // NOLINTBEGIN
136 MCAPI ::StructurePieceType $getType() const;
137
138 MCAPI void $postProcessMobsAt(::BlockSource& region, ::Random& random, ::BoundingBox const& chunkBB);
139
140 MCAPI void $_handleDataMarker(
141 ::std::string const& markerId,
142 ::BlockPos const& position,
143 ::BlockSource& region,
144 ::Random& random,
145 ::BoundingBox const& chunkBB
146 );
147 // NOLINTEND
148
149 public:
150 // vftables
151 // NOLINTBEGIN
152 MCNAPI static void** $vftable();
153 // NOLINTEND
154 };
155
157 public:
158 // member variables
159 // NOLINTBEGIN
160 ::ll::TypedStorage<1, 1, ::Rotation> mRotation;
161 ::ll::TypedStorage<4, 12, ::BlockPos> mPosition;
162 ::ll::TypedStorage<8, 32, ::std::string> mWallType;
163 // NOLINTEND
164
165 public:
166 // member functions
167 // NOLINTBEGIN
168 MCAPI ~PlacementData();
169 // NOLINTEND
170
171 public:
172 // destructor thunk
173 // NOLINTBEGIN
174 MCFOLD void $dtor();
175 // NOLINTEND
176 };
177
179 public:
180 // member variables
181 // NOLINTBEGIN
182 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::WoodlandMansionPieces::SimpleGrid>> mBaseGrid;
183 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::WoodlandMansionPieces::SimpleGrid>> mThirdFloorGrid;
184 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::WoodlandMansionPieces::SimpleGrid>>> mFloorRooms;
185 ::ll::TypedStorage<4, 4, int> mEntranceX;
186 ::ll::TypedStorage<4, 4, int> mEntranceY;
187 ::ll::TypedStorage<8, 8, ::Random&> mRandom;
188 // NOLINTEND
189
190 public:
191 // prevent constructor by default
192 MansionGrid& operator=(MansionGrid const&);
193 MansionGrid(MansionGrid const&);
194 MansionGrid();
195
196 public:
197 // member functions
198 // NOLINTBEGIN
199 MCAPI explicit MansionGrid(::Random& random);
200
201 MCAPI bool _cleanEdges(::WoodlandMansionPieces::SimpleGrid& grid);
202
203 MCAPI void
205
206 MCAPI void
207 _recursiveCorridor(::WoodlandMansionPieces::SimpleGrid& grid, int x, int y, uchar heading, int depth);
208
209 MCAPI void _setupThirdFloor();
210
211 MCAPI uchar get1x2RoomDirection(
213 int x,
214 int y,
215 int floorNum,
216 int roomId
217 ) const;
218 // NOLINTEND
219
220 public:
221 // constructor thunks
222 // NOLINTBEGIN
223 MCAPI void* $ctor(::Random& random);
224 // NOLINTEND
225 };
226
228 public:
229 // member variables
230 // NOLINTBEGIN
231 ::ll::TypedStorage<8, 24, ::std::vector<::std::vector<int>>> mGrid;
232 ::ll::TypedStorage<4, 4, int> mWidth;
233 ::ll::TypedStorage<4, 4, int> mHeight;
234 ::ll::TypedStorage<4, 4, int> mValueIfOutside;
235 // NOLINTEND
236
237 public:
238 // member functions
239 // NOLINTBEGIN
240 MCAPI void set(int x0, int y0, int x1, int y1, int value);
241 // NOLINTEND
242 };
243
245 public:
246 // virtual functions
247 // NOLINTBEGIN
248 // vIndex: 0
249 virtual ~FloorRoomCollection() = default;
250
251 // vIndex: 1
252 virtual ::std::string get1x1(::Random&) = 0;
253
254 // vIndex: 2
255 virtual ::std::string get1x1Secret(::Random&) = 0;
256
257 // vIndex: 3
258 virtual ::std::string get1x2SideEntrance(::Random&, bool) = 0;
259
260 // vIndex: 4
261 virtual ::std::string get1x2FrontEntrance(::Random&, bool) = 0;
262
263 // vIndex: 5
264 virtual ::std::string get1x2Secret(::Random&) = 0;
265
266 // vIndex: 6
267 virtual ::std::string get2x2(::Random&) = 0;
268
269 // vIndex: 7
270 virtual ::std::string get2x2Secret(::Random&) = 0;
271 // NOLINTEND
272
273 public:
274 // virtual function thunks
275 // NOLINTBEGIN
276
277 // NOLINTEND
278
279 public:
280 // vftables
281 // NOLINTBEGIN
282 MCNAPI static void** $vftable();
283 // NOLINTEND
284 };
285
287 public:
288 // member variables
289 // NOLINTBEGIN
290 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::StructureManager>> mStructureManager;
291 ::ll::TypedStorage<8, 8, ::Random&> mRandom;
292 ::ll::TypedStorage<4, 4, int> mStartX;
293 ::ll::TypedStorage<4, 4, int> mStartY;
294 // NOLINTEND
295
296 public:
297 // prevent constructor by default
298 MansionPiecePlacer& operator=(MansionPiecePlacer const&);
301
302 public:
303 // member functions
304 // NOLINTBEGIN
305 MCAPI void _addRoom1x1(
306 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
307 ::BlockPos const& roomPos,
308 ::Rotation rotation,
309 uchar doorDir,
311 );
312
313 MCAPI void _addRoom1x2(
314 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
315 ::BlockPos const& roomPos,
316 ::Rotation rotation,
317 uchar roomDir,
318 uchar doorDir,
320 bool isStairsRoom
321 );
322
323 MCAPI void _addRoom2x2(
324 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
325 ::BlockPos const& roomPos,
326 ::Rotation rotation,
327 uchar roomDir,
328 uchar doorDir,
330 );
331
332 MCAPI void _addRoom2x2Secret(
333 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
334 ::BlockPos const& roomPos,
335 ::Rotation rotation,
337 );
338
339 MCAPI void _createRoof(
340 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
341 ::BlockPos const& roofOrigin,
342 ::Rotation rotation,
345 );
346
347 MCAPI void _entrance(
348 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
350 );
351
352 MCAPI void _traverseInnerTurn(
353 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
355 );
356
357 MCAPI void _traverseOuterWalls(
358 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
361 uchar gridDirection,
362 int startX,
363 int startY,
364 int endX,
365 int endY
366 );
367
368 MCAPI void _traverseTurn(
369 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
371 );
372
373 MCAPI void _traverseWallPiece(
374 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
376 );
377
378 MCAPI void createMansion(
379 ::BlockPos const& origin,
380 ::Rotation rotation,
381 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
383 );
384 // NOLINTEND
385 };
386
388 public:
389 // virtual functions
390 // NOLINTBEGIN
391 // vIndex: 0
392 virtual ~FirstFloorRoomCollection() /*override*/ = default;
393
394 // vIndex: 1
395 virtual ::std::string get1x1(::Random& random) /*override*/;
396
397 // vIndex: 2
398 virtual ::std::string get1x1Secret(::Random& random) /*override*/;
399
400 // vIndex: 3
401 virtual ::std::string get1x2SideEntrance(::Random& random, bool isStairsRoom) /*override*/;
402
403 // vIndex: 4
404 virtual ::std::string get1x2FrontEntrance(::Random& random, bool isStairsRoom) /*override*/;
405
406 // vIndex: 5
407 virtual ::std::string get1x2Secret(::Random& random) /*override*/;
408
409 // vIndex: 6
410 virtual ::std::string get2x2(::Random& random) /*override*/;
411
412 // vIndex: 7
413 virtual ::std::string get2x2Secret(::Random& random) /*override*/;
414 // NOLINTEND
415
416 public:
417 // virtual function thunks
418 // NOLINTBEGIN
419 MCAPI ::std::string $get1x1(::Random& random);
420
421 MCFOLD ::std::string $get1x1Secret(::Random& random);
422
423 MCAPI ::std::string $get1x2SideEntrance(::Random& random, bool isStairsRoom);
424
425 MCAPI ::std::string $get1x2FrontEntrance(::Random& random, bool isStairsRoom);
426
427 MCAPI ::std::string $get1x2Secret(::Random& random);
428
429 MCAPI ::std::string $get2x2(::Random& random);
430
431 MCFOLD ::std::string $get2x2Secret(::Random& random);
432 // NOLINTEND
433
434 public:
435 // vftables
436 // NOLINTBEGIN
437 MCNAPI static void** $vftable();
438 // NOLINTEND
439 };
440
442 public:
443 // virtual functions
444 // NOLINTBEGIN
445 // vIndex: 0
446 virtual ~SecondFloorRoomCollection() /*override*/ = default;
447
448 // vIndex: 1
449 virtual ::std::string get1x1(::Random& random) /*override*/;
450
451 // vIndex: 2
452 virtual ::std::string get1x1Secret(::Random& random) /*override*/;
453
454 // vIndex: 3
455 virtual ::std::string get1x2SideEntrance(::Random& random, bool isStairsRoom) /*override*/;
456
457 // vIndex: 4
458 virtual ::std::string get1x2FrontEntrance(::Random& random, bool isStairsRoom) /*override*/;
459
460 // vIndex: 5
461 virtual ::std::string get1x2Secret(::Random& random) /*override*/;
462
463 // vIndex: 6
464 virtual ::std::string get2x2(::Random& random) /*override*/;
465
466 // vIndex: 7
467 virtual ::std::string get2x2Secret(::Random& random) /*override*/;
468 // NOLINTEND
469
470 public:
471 // virtual function thunks
472 // NOLINTBEGIN
473 MCAPI ::std::string $get1x1(::Random& random);
474
475 MCFOLD ::std::string $get1x1Secret(::Random& random);
476
477 MCAPI ::std::string $get1x2SideEntrance(::Random& random, bool isStairsRoom);
478
479 MCAPI ::std::string $get1x2FrontEntrance(::Random& random, bool isStairsRoom);
480
481 MCAPI ::std::string $get1x2Secret(::Random& random);
482
483 MCAPI ::std::string $get2x2(::Random& random);
484
485 MCFOLD ::std::string $get2x2Secret(::Random& random);
486 // NOLINTEND
487
488 public:
489 // vftables
490 // NOLINTBEGIN
491 MCNAPI static void** $vftable();
492 // NOLINTEND
493 };
494
496 public:
497 // virtual functions
498 // NOLINTBEGIN
499 // vIndex: 0
500 virtual ~ThirdFloorRoomCollection() /*override*/ = default;
501 // NOLINTEND
502
503 public:
504 // vftables
505 // NOLINTBEGIN
506 MCNAPI static void** $vftable();
507 // NOLINTEND
508 };
509
510public:
511 // static functions
512 // NOLINTBEGIN
513 MCAPI static void generateMansion(
514 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
515 ::BlockPos const& origin,
516 ::Rotation rotation,
517 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
518 ::Random& random
519 );
520 // NOLINTEND
521};
Definition BlockPos.h:17
Definition BlockSource.h:66
Definition BoundingBox.h:13
Definition Random.h:10
Definition StructureManager.h:43
Definition StructurePiece.h:18
Definition TemplateStructurePiece.h:18
Definition WoodlandMansionPieces.h:387
Definition WoodlandMansionPieces.h:244
Definition WoodlandMansionPieces.h:178
Definition WoodlandMansionPieces.h:286
Definition WoodlandMansionPieces.h:441
Definition WoodlandMansionPieces.h:227
Definition WoodlandMansionPieces.h:495
Definition WoodlandMansionPieces.h:38
Definition WoodlandMansionPieces.h:22
Definition WoodlandMansionPieces.h:156