3#include "mc/_HeaderOutputPredefine.h"
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"
34 enum class SectionType : ushort {
41 class EndCityPiece :
public ::TemplateStructurePiece {
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;
59 virtual ::StructurePieceType getType()
const ;
64 virtual void _handleDataMarker(
65 ::std::string
const& markerId,
77 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
78 ::std::string templateName,
89 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
90 ::std::string templateName,
105 ::std::string
const& markerId,
120 virtual bool generate(
121 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
122 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>>
const& generators,
126 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
138 virtual bool generate(
139 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
140 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>>
const& generators,
144 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
153 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
154 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>>
const& generators,
158 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
170 virtual bool generate(
171 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
172 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>>
const& generators,
176 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
185 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
186 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>>
const& generators,
190 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
202 ::ll::TypedStorage<1, 1, bool> mShipCreated;
208 virtual bool generate(
209 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
210 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>>
const& generators,
214 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
223 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
224 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>>
const& generators,
228 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
240 virtual bool generate(
241 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
242 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>>
const& generators,
246 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
255 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
256 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>>
const& generators,
260 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
268 using Generators = ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>>;
275 MCNAPI static ::std::unique_ptr<::EndCityPieces::EndCityPiece>
_createPiece(
276 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
279 ::std::string
const& templateName,
285 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
286 ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator>>
const& generators,
287 ::EndCityPieces::SectionType type,
291 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
Definition BlockSource.h:72
Definition BoundingBox.h:13
Definition EndCityPieces.h:41
MCAPI EndCityPiece(::Bedrock::NotNullNonOwnerPtr<::StructureManager > structureManager, ::std::string templateName, ::BlockPos const &origin, ::Rotation rotation, bool overwrite)
MCAPI::StructurePieceType $getType() const
MCAPI void $_handleDataMarker(::std::string const &markerId, ::BlockPos const &position, ::BlockSource ®ion, ::Random &random, ::BoundingBox const &chunkBB)
MCAPI void * $ctor(::Bedrock::NotNullNonOwnerPtr<::StructureManager > structureManager, ::std::string templateName, ::BlockPos const &origin, ::Rotation rotation, bool overwrite)
MCAPI void $postProcessMobsAt(::BlockSource ®ion, ::Random &random, ::BoundingBox const &chunkBB)
Definition EndCityPieces.h:134
MCAPI bool $generate(::Bedrock::NotNullNonOwnerPtr<::StructureManager > structureManager, ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator > > const &generators, int genDepth, ::EndCityPieces::EndCityPiece *parent, ::BlockPos const &offset, ::std::vector<::std::unique_ptr<::StructurePiece > > &pieces, ::Random &random)
Definition EndCityPieces.h:166
MCAPI bool $generate(::Bedrock::NotNullNonOwnerPtr<::StructureManager > structureManager, ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator > > const &generators, int genDepth, ::EndCityPieces::EndCityPiece *parent, ::BlockPos const &offset, ::std::vector<::std::unique_ptr<::StructurePiece > > &pieces, ::Random &random)
Definition EndCityPieces.h:116
Definition EndCityPieces.h:198
MCAPI bool $generate(::Bedrock::NotNullNonOwnerPtr<::StructureManager > structureManager, ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator > > const &generators, int genDepth, ::EndCityPieces::EndCityPiece *parent, ::BlockPos const &offset, ::std::vector<::std::unique_ptr<::StructurePiece > > &pieces, ::Random &random)
Definition EndCityPieces.h:236
MCAPI bool $generate(::Bedrock::NotNullNonOwnerPtr<::StructureManager > structureManager, ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator > > const &generators, int genDepth, ::EndCityPieces::EndCityPiece *parent, ::BlockPos const &offset, ::std::vector<::std::unique_ptr<::StructurePiece > > &pieces, ::Random &random)
Definition EndCityPieces.h:21
static MCAPI ::std::unique_ptr<::EndCityPieces::EndCityPiece > _createPiece(::Bedrock::NotNullNonOwnerPtr<::StructureManager > structureManager, ::EndCityPieces::EndCityPiece *parent, ::BlockPos const &offset, ::std::string const &templateName, ::Rotation rotation, bool overwrite)
static MCAPI bool _recursiveChildren(::Bedrock::NotNullNonOwnerPtr<::StructureManager > structureManager, ::std::vector<::std::unique_ptr<::EndCityPieces::SectionGenerator > > const &generators, ::EndCityPieces::SectionType type, int newGenDepth, ::EndCityPieces::EndCityPiece *parent, ::BlockPos const &offset, ::std::vector<::std::unique_ptr<::StructurePiece > > &pieces, ::Random &random)
Definition StructureManager.h:35
Definition StructurePiece.h:18