LeviLamina
Loading...
Searching...
No Matches
StructurePiece.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/level/levelgen/structure/BoundingBox.h"
7#include "mc/world/level/levelgen/structure/StructurePieceType.h"
8
9// auto generated forward declare list
10// clang-format off
11class Block;
12class BlockSelector;
13class BlockSource;
14class LevelChunk;
15class Random;
16// clang-format on
17
19public:
20 // member variables
21 // NOLINTBEGIN
22 ::ll::TypedStorage<4, 24, ::BoundingBox> mBoundingBox;
23 ::ll::TypedStorage<4, 4, int> mOrientation;
24 ::ll::TypedStorage<4, 4, int> mGenDepth;
25 ::ll::TypedStorage<8, 16, ::std::shared_ptr<bool>> mTerrainAdjustmentToken;
26 // NOLINTEND
27
28public:
29 // virtual functions
30 // NOLINTBEGIN
31 virtual ~StructurePiece();
32
33 virtual void moveBoundingBox(int dx, int dy, int dz);
34
35 virtual ::StructurePieceType getType() const;
36
37 virtual void addChildren(
38 ::StructurePiece& startPiece,
39 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
40 ::Random& random
41 );
42
43 virtual bool postProcess(::BlockSource& region, ::Random& random, ::BoundingBox const& chunkBB) = 0;
44
45 virtual void postProcessMobsAt(::BlockSource& region, ::Random& random, ::BoundingBox const& chunkBB);
46
47 virtual bool isInInvalidLocation(::BlockSource& region, ::BoundingBox const& chunkBB);
48
49 virtual int getWorldX(int x, int z);
50
51 virtual int getWorldZ(int x, int z);
52
53 virtual void
54 placeBlock(::BlockSource& region, ::Block const& block, int x, int y, int z, ::BoundingBox const& chunkBB);
55
56 virtual bool
57 canBeReplaced(::BlockSource& region, int const x, int const y, int const z, ::BoundingBox const& chunkBB);
58
59 virtual void generateBox(
60 ::BlockSource& region,
61 ::BoundingBox const& chunkBB,
62 int x0,
63 int y0,
64 int z0,
65 int x1,
66 int y1,
67 int z1,
68 ::Block const& edgeBlock,
69 ::Block const& fillBlock,
70 bool skipAir
71 );
72
73 virtual void addHardcodedSpawnAreas(::LevelChunk& chunk) const;
74 // NOLINTEND
75
76public:
77 // member functions
78 // NOLINTBEGIN
79 MCAPI void generateBox(
80 ::BlockSource& region,
81 ::BoundingBox const& chunkBB,
82 int x0,
83 int y0,
84 int z0,
85 int x1,
86 int y1,
87 int z1,
88 bool skipAir,
89 ::Random& random,
90 ::BlockSelector const& selector
91 );
92
93 MCAPI void generateMaybeBox(
94 ::BlockSource& region,
95 ::BoundingBox const& chunkBB,
96 ::Random& random,
97 float probability,
98 int x0,
99 int y0,
100 int z0,
101 int x1,
102 int y1,
103 int z1,
104 ::Block const& edgeBlock,
105 ::Block const& fillBlock,
106 bool skipAir,
107 bool excludeSky
108 );
109
110 MCAPI void generateUpperHalfSphere(
111 ::BlockSource& region,
112 ::BoundingBox const& chunkBB,
113 int x0,
114 int y0,
115 int z0,
116 int x1,
117 int y1,
118 int z1,
119 ::Block const& fillBlock,
120 bool skipAir
121 );
122
123 MCAPI ushort getOrientationData(::Block const* block, ushort data);
124
125 MCAPI bool isReplaceableBlock(::Block const& block);
126
127 MCAPI void maybeGenerateBlockIfNotFloating(
128 ::BlockSource& region,
129 ::BoundingBox const& chunkBB,
130 ::Random& random,
131 float probability,
132 int x,
133 int y,
134 int z,
135 ::Block const& block
136 );
137 // NOLINTEND
138
139public:
140 // destructor thunk
141 // NOLINTBEGIN
142 MCAPI void $dtor();
143 // NOLINTEND
144
145public:
146 // virtual function thunks
147 // NOLINTBEGIN
148 MCAPI void $moveBoundingBox(int dx, int dy, int dz);
149
150 MCFOLD ::StructurePieceType $getType() const;
151
152 MCFOLD void $addChildren(
153 ::StructurePiece& startPiece,
154 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
155 ::Random& random
156 );
157
158 MCFOLD void $postProcessMobsAt(::BlockSource& region, ::Random& random, ::BoundingBox const& chunkBB);
159
160 MCAPI bool $isInInvalidLocation(::BlockSource& region, ::BoundingBox const& chunkBB);
161
162 MCAPI int $getWorldX(int x, int z);
163
164 MCAPI int $getWorldZ(int x, int z);
165
166 MCAPI void
167 $placeBlock(::BlockSource& region, ::Block const& block, int x, int y, int z, ::BoundingBox const& chunkBB);
168
169 MCFOLD bool
170 $canBeReplaced(::BlockSource& region, int const x, int const y, int const z, ::BoundingBox const& chunkBB);
171
172 MCAPI void $generateBox(
173 ::BlockSource& region,
174 ::BoundingBox const& chunkBB,
175 int x0,
176 int y0,
177 int z0,
178 int x1,
179 int y1,
180 int z1,
181 ::Block const& edgeBlock,
182 ::Block const& fillBlock,
183 bool skipAir
184 );
185
186 MCFOLD void $addHardcodedSpawnAreas(::LevelChunk& chunk) const;
187
188
189 // NOLINTEND
190
191public:
192 // vftables
193 // NOLINTBEGIN
194 MCNAPI static void** $vftable();
195 // NOLINTEND
196};
Definition BlockSelector.h:11
Definition BlockSource.h:71
Definition Block.h:42
Definition BoundingBox.h:13
Definition LevelChunk.h:75
Definition Random.h:10
Definition StructurePiece.h:18
static MCAPI void ** $vftable()