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 postProcessMobsAt(::BlockSource& region, ::Random& chunkBB, ::BoundingBox const&) /*override*/;
62
63 virtual void _handleDataMarker(
64 ::std::string const& markerId,
65 ::BlockPos const& position,
66 ::BlockSource& region,
67 ::Random& random,
68 ::BoundingBox const& chunkBB
69 ) /*override*/;
70 // NOLINTEND
71
72 public:
73 // member functions
74 // NOLINTBEGIN
75 MCAPI EndCityPiece(
76 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
77 ::std::string templateName,
78 ::BlockPos const& origin,
79 ::Rotation rotation,
80 bool overwrite
81 );
82
83 MCAPI void _loadAndSetup(::BlockPos const& position);
84 // NOLINTEND
85
86 public:
87 // constructor thunks
88 // NOLINTBEGIN
89 MCAPI void* $ctor(
90 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
91 ::std::string templateName,
92 ::BlockPos const& origin,
93 ::Rotation rotation,
94 bool overwrite
95 );
96 // NOLINTEND
97
98 public:
99 // virtual function thunks
100 // NOLINTBEGIN
101 MCAPI ::StructurePieceType $getType() const;
102
103 MCAPI void $postProcessMobsAt(::BlockSource& region, ::Random& chunkBB, ::BoundingBox const&);
104
105 MCAPI void $_handleDataMarker(
106 ::std::string const& markerId,
107 ::BlockPos const& position,
108 ::BlockSource& region,
109 ::Random& random,
110 ::BoundingBox const& chunkBB
111 );
112
113
114 // NOLINTEND
115
116 public:
117 // vftables
118 // NOLINTBEGIN
119 MCNAPI static void** $vftable();
120 // NOLINTEND
121 };
122
124 public:
125 // virtual functions
126 // NOLINTBEGIN
127 virtual bool generate(
128 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
129 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>> const& generators,
130 int genDepth,
132 ::BlockPos const& offset,
133 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
134 ::Random& random
135 ) = 0;
136
137 virtual ~SectionGenerator() = default;
138 // NOLINTEND
139
140 public:
141 // virtual function thunks
142 // NOLINTBEGIN
143
144 // NOLINTEND
145 };
146
148 public:
149 // virtual functions
150 // NOLINTBEGIN
151 virtual bool generate(
152 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
153 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>> const& generators,
154 int genDepth,
156 ::BlockPos const& pieces,
157 ::std::vector<::std::unique_ptr<::StructurePiece>>& random,
158 ::Random&
159 ) /*override*/;
160 // NOLINTEND
161
162 public:
163 // virtual function thunks
164 // NOLINTBEGIN
165 MCAPI bool $generate(
166 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
167 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>> const& generators,
168 int genDepth,
170 ::BlockPos const& pieces,
171 ::std::vector<::std::unique_ptr<::StructurePiece>>& random,
172 ::Random&
173 );
174
175
176 // NOLINTEND
177
178 public:
179 // vftables
180 // NOLINTBEGIN
181 MCNAPI static void** $vftable();
182 // NOLINTEND
183 };
184
186 public:
187 // virtual functions
188 // NOLINTBEGIN
189 virtual bool generate(
190 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
191 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>> const& generators,
192 int genDepth,
194 ::BlockPos const& offset,
195 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
196 ::Random& random
197 ) /*override*/;
198 // NOLINTEND
199
200 public:
201 // virtual function thunks
202 // NOLINTBEGIN
203 MCAPI bool $generate(
204 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
205 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>> const& generators,
206 int genDepth,
208 ::BlockPos const& offset,
209 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
210 ::Random& random
211 );
212
213
214 // NOLINTEND
215
216 public:
217 // vftables
218 // NOLINTBEGIN
219 MCNAPI static void** $vftable();
220 // NOLINTEND
221 };
222
224 public:
225 // member variables
226 // NOLINTBEGIN
227 ::ll::TypedStorage<1, 1, bool> mShipCreated;
228 // NOLINTEND
229
230 public:
231 // virtual functions
232 // NOLINTBEGIN
233 virtual bool generate(
234 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
235 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>> const& generators,
236 int genDepth,
238 ::BlockPos const& pieces,
239 ::std::vector<::std::unique_ptr<::StructurePiece>>& random,
240 ::Random&
241 ) /*override*/;
242 // NOLINTEND
243
244 public:
245 // virtual function thunks
246 // NOLINTBEGIN
247 MCAPI bool $generate(
248 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
249 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>> const& generators,
250 int genDepth,
252 ::BlockPos const& pieces,
253 ::std::vector<::std::unique_ptr<::StructurePiece>>& random,
254 ::Random&
255 );
256
257
258 // NOLINTEND
259
260 public:
261 // vftables
262 // NOLINTBEGIN
263 MCNAPI static void** $vftable();
264 // NOLINTEND
265 };
266
268 public:
269 // virtual functions
270 // NOLINTBEGIN
271 virtual bool generate(
272 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
273 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>> const& generators,
274 int genDepth,
276 ::BlockPos const& pieces,
277 ::std::vector<::std::unique_ptr<::StructurePiece>>& random,
278 ::Random&
279 ) /*override*/;
280 // NOLINTEND
281
282 public:
283 // virtual function thunks
284 // NOLINTBEGIN
285 MCAPI bool $generate(
286 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
287 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>> const& generators,
288 int genDepth,
290 ::BlockPos const& pieces,
291 ::std::vector<::std::unique_ptr<::StructurePiece>>& random,
292 ::Random&
293 );
294
295
296 // NOLINTEND
297
298 public:
299 // vftables
300 // NOLINTBEGIN
301 MCNAPI static void** $vftable();
302 // NOLINTEND
303 };
304
305 using Generators = ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>>;
306
308
309public:
310 // static functions
311 // NOLINTBEGIN
312 MCAPI static ::std::unique_ptr<::EndCityPieces::EndCityPiece> _createPiece(
313 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
315 ::BlockPos const& offset,
316 ::std::string const& templateName,
317 ::Rotation rotation,
318 bool overwrite
319 );
320
321 MCAPI static bool _recursiveChildren(
322 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
323 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>> const& generators,
324 ::EndCityPieces::SectionType type,
325 int newGenDepth,
327 ::BlockPos const& offset,
328 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
329 ::Random& random
330 );
331
332 MCAPI static void startHouseTower(
333 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
334 ::BlockPos const& origin,
335 ::Rotation rotation,
336 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
337 ::Random& random
338 );
339 // NOLINTEND
340};
Definition BlockPos.h:21
Definition BlockSource.h:73
Definition BoundingBox.h:13
Definition EndCityPieces.h:41
static MCAPI void ** $vftable()
Definition EndCityPieces.h:147
static MCAPI void ** $vftable()
Definition EndCityPieces.h:185
static MCAPI void ** $vftable()
Definition EndCityPieces.h:123
Definition EndCityPieces.h:223
static MCAPI void ** $vftable()
Definition EndCityPieces.h:267
static MCAPI void ** $vftable()
Definition EndCityPieces.h:21
Definition Random.h:10
Definition StructureManager.h:46
Definition StructurePiece.h:21