LeviLamina
Loading...
Searching...
No Matches
OceanMonumentPiece.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/level/levelgen/structure/StructurePiece.h"
7
8// auto generated forward declare list
9// clang-format off
10class Block;
11class BlockSource;
12class BoundingBox;
13class LevelChunk;
14class Random;
15class RoomDefinition;
16// clang-format on
17
18class OceanMonumentPiece : public ::StructurePiece {
19public:
20 // member variables
21 // NOLINTBEGIN
22 ::ll::TypedStorage<1, 1, bool> mDoFill;
23 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::RoomDefinition>> mRoomDefinition;
24 // NOLINTEND
25
26public:
27 // prevent constructor by default
28 OceanMonumentPiece();
29
30public:
31 // virtual functions
32 // NOLINTBEGIN
33 virtual bool postProcess(::BlockSource&, ::Random&, ::BoundingBox const&) = 0;
34
35 virtual void postProcessMobsAt(::BlockSource& region, ::Random& random, ::BoundingBox const& chunkBB) /*override*/;
36
37 virtual int getWorldZ(int x, int z) /*override*/;
38
39 virtual int getWorldX(int x, int z) /*override*/;
40
41 virtual void addHardcodedSpawnAreas(::LevelChunk& chunk) const /*override*/;
42
43 virtual ~OceanMonumentPiece() /*override*/;
44 // NOLINTEND
45
46public:
47 // member functions
48 // NOLINTBEGIN
49 MCAPI OceanMonumentPiece(
50 int genDepth,
51 int& orientation,
52 ::std::shared_ptr<::RoomDefinition> roomDefinition,
53 int roomWidth,
54 int roomHeight,
55 int roomDepth
56 );
57
58 MCAPI bool chunkIntersects(::BoundingBox const& chunkBB, int x0, int z0, int x1, int z1);
59
60 MCAPI void generateBoxOnFillOnly(
61 ::BlockSource& region,
62 ::BoundingBox const& chunkBB,
63 int x0,
64 int y0,
65 int z0,
66 int x1,
67 int y1,
68 int z1,
69 ::Block const& targetBlock
70 );
71
72 MCAPI void
73 generateDefaultFloor(::BlockSource& region, ::BoundingBox const& chunkBB, int xOff, int zOff, bool downOpening);
74
75 MCAPI void spawnElder(::BlockSource& region, ::BoundingBox const& chunkBB, int x, int y, int z);
76 // NOLINTEND
77
78public:
79 // static variables
80 // NOLINTBEGIN
81 MCAPI static int& mGridroomLeftWingConnectIndex();
82
83 MCAPI static int& mGridroomRightWingConnectIndex();
84
85 MCAPI static int& mGridroomSourceIndex();
86
87 MCAPI static int& mGridroomTopConnectIndex();
88
89 MCAPI static int const& mLeftWingIndex();
90
91 MCAPI static int const& mPenthouseIndex();
92
93 MCAPI static int const& mRightWingIndex();
94 // NOLINTEND
95
96public:
97 // constructor thunks
98 // NOLINTBEGIN
99 MCAPI void* $ctor(
100 int genDepth,
101 int& orientation,
102 ::std::shared_ptr<::RoomDefinition> roomDefinition,
103 int roomWidth,
104 int roomHeight,
105 int roomDepth
106 );
107 // NOLINTEND
108
109public:
110 // destructor thunk
111 // NOLINTBEGIN
112 MCAPI void $dtor();
113 // NOLINTEND
114
115public:
116 // virtual function thunks
117 // NOLINTBEGIN
118 MCFOLD void $postProcessMobsAt(::BlockSource& region, ::Random& random, ::BoundingBox const& chunkBB);
119
120 MCAPI int $getWorldZ(int x, int z);
121
122 MCAPI int $getWorldX(int x, int z);
123
124 MCAPI void $addHardcodedSpawnAreas(::LevelChunk& chunk) const;
125
126
127 // NOLINTEND
128
129public:
130 // vftables
131 // NOLINTBEGIN
132 MCNAPI static void** $vftable();
133 // NOLINTEND
134};
Definition BlockSource.h:68
Definition Block.h:43
Definition BoundingBox.h:13
Definition LevelChunk.h:79
static MCAPI void ** $vftable()
Definition Random.h:10
Definition RoomDefinition.h:5
Definition StructurePiece.h:18