44 virtual ::std::string get1x1(
::Random& random) = 0;
46 virtual ::std::string get1x1Secret(
::Random& random) = 0;
48 virtual ::std::string get1x2SideEntrance(
::Random& random,
bool isStairsRoom) = 0;
50 virtual ::std::string get1x2FrontEntrance(
::Random& random,
bool isStairsRoom) = 0;
52 virtual ::std::string get1x2Secret(
::Random& random) = 0;
54 virtual ::std::string get2x2(
::Random& random) = 0;
56 virtual ::std::string get2x2Secret(
::Random&) = 0;
70 ::ll::TypedStorage<1, 1, ::Rotation> mRotation;
71 ::ll::TypedStorage<4, 12, ::BlockPos> mPosition;
72 ::ll::TypedStorage<8, 32, ::std::string> mWallType;
80 ::ll::TypedStorage<8, 24, ::std::vector<::std::vector<int>>> mGrid;
81 ::ll::TypedStorage<4, 4, int> mWidth;
82 ::ll::TypedStorage<4, 4, int> mHeight;
83 ::ll::TypedStorage<4, 4, int> mValueIfOutside;
89 MCAPI
bool edgesTo(
int x,
int y,
int ifValue);
93 class WoodlandMansionPiece :
public ::TemplateStructurePiece {
97 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::StructureManager>> mStructureManager;
98 ::ll::TypedStorage<8, 32, ::std::string> mTemplateName;
99 ::ll::TypedStorage<1, 1, ::Rotation> mRotation;
100 ::ll::TypedStorage<1, 1, ::Mirror> mMirror;
101 ::ll::TypedStorage<4, 12, ::BlockPos> mPosition;
102 ::ll::TypedStorage<8, 24, ::std::vector<::BlockPos>> mVindicatorPositions;
103 ::ll::TypedStorage<8, 24, ::std::vector<::BlockPos>> mEvokerPositions;
104 ::ll::TypedStorage<8, 24, ::std::vector<::BlockPos>> mAllayGroupPositions;
109 WoodlandMansionPiece();
114 virtual ::StructurePieceType getType()
const ;
118 virtual void _handleDataMarker(
119 ::std::string
const& markerId,
130 MCAPI WoodlandMansionPiece(
131 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
132 ::std::string
const& templateName,
137 MCAPI WoodlandMansionPiece(
138 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
139 ::std::string
const& templateName,
145 MCAPI
void _addChest(
146 ::std::string
const& markerId,
153 MCAPI
void _loadTemplate();
160 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
161 ::std::string
const& templateName,
167 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
168 ::std::string
const& templateName,
178 MCAPI ::StructurePieceType $getType()
const;
182 MCAPI
void $_handleDataMarker(
183 ::std::string
const& markerId,
206 virtual ::std::string get1x1(
::Random& random) ;
208 virtual ::std::string get1x1Secret(
::Random& random) ;
210 virtual ::std::string get1x2SideEntrance(
::Random& random,
bool) ;
212 virtual ::std::string get1x2FrontEntrance(
::Random& random,
bool) ;
214 virtual ::std::string get1x2Secret(
::Random& random) ;
216 virtual ::std::string get2x2(
::Random& random) ;
218 virtual ::std::string get2x2Secret(
::Random&) ;
224 MCAPI ::std::string $get1x1(
::Random& random);
226 MCFOLD ::std::string $get1x1Secret(
::Random& random);
228 MCAPI ::std::string $get1x2SideEntrance(
::Random& random,
bool);
230 MCAPI ::std::string $get1x2FrontEntrance(
::Random& random,
bool);
232 MCAPI ::std::string $get1x2Secret(
::Random& random);
234 MCAPI ::std::string $get2x2(
::Random& random);
236 MCFOLD ::std::string $get2x2Secret(
::Random&);
252 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::WoodlandMansionPieces::SimpleGrid>> mBaseGrid;
253 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::WoodlandMansionPieces::SimpleGrid>> mThirdFloorGrid;
254 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::WoodlandMansionPieces::SimpleGrid>>> mFloorRooms;
255 ::ll::TypedStorage<4, 4, int> mEntranceX;
256 ::ll::TypedStorage<4, 4, int> mEntranceY;
257 ::ll::TypedStorage<8, 8, ::Random&> mRandom;
262 MansionGrid& operator=(MansionGrid
const&);
263 MansionGrid(MansionGrid
const&);
269 MCAPI
explicit MansionGrid(
::Random& random);
279 MCAPI
void _setupThirdFloor();
288 MCAPI
void* $ctor(
::Random& random);
292 class MansionPiecePlacer {
296 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::StructureManager>> mStructureManager;
297 ::ll::TypedStorage<8, 8, ::Random&> mRandom;
298 ::ll::TypedStorage<4, 4, int> mStartX;
299 ::ll::TypedStorage<4, 4, int> mStartY;
304 MansionPiecePlacer& operator=(MansionPiecePlacer
const&);
305 MansionPiecePlacer(MansionPiecePlacer
const&);
306 MansionPiecePlacer();
311 MCAPI
void _addRoom1x1(
312 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
319 MCAPI
void _addRoom1x2(
320 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
329 MCAPI
void _addRoom2x2(
330 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
338 MCAPI
void _addRoom2x2Secret(
339 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
345 MCAPI
void _createRoof(
346 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
353 MCAPI
void _entrance(
354 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
358 MCAPI
void _traverseOuterWalls(
359 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
369 MCAPI
void _traverseTurn(
370 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
374 MCAPI
void _traverseWallPiece(
375 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
379 MCAPI
void createMansion(
382 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
394 virtual ::std::string get1x1(
::Random& random) ;
396 virtual ::std::string get1x1Secret(
::Random& random) ;
398 virtual ::std::string get1x2SideEntrance(
::Random& random,
bool isStairsRoom) ;
400 virtual ::std::string get1x2FrontEntrance(
::Random& random,
bool isStairsRoom) ;
402 virtual ::std::string get1x2Secret(
::Random& random) ;
404 virtual ::std::string get2x2(
::Random& random) ;
406 virtual ::std::string get2x2Secret(
::Random&) ;
412 MCAPI ::std::string $get1x1(
::Random& random);
414 MCFOLD ::std::string $get1x1Secret(
::Random& random);
416 MCAPI ::std::string $get1x2SideEntrance(
::Random& random,
bool isStairsRoom);
418 MCAPI ::std::string $get1x2FrontEntrance(
::Random& random,
bool isStairsRoom);
420 MCAPI ::std::string $get1x2Secret(
::Random& random);
422 MCAPI ::std::string $get2x2(
::Random& random);
424 MCFOLD ::std::string $get2x2Secret(
::Random&);