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