37 LLAPI
void placeInWorld(
40 Mirror mirror = Mirror::None,
41 Rotation rotation = Rotation::None,
42 bool ignoreBlocks =
false,
43 bool ignoreEntities =
false
46 LLNDAPI
static std::unique_ptr<StructureTemplate> create(std::string_view name,
CompoundTag const& tag);
48 LLNDAPI
static std::unique_ptr<StructureTemplate> create(
49 std::string_view name,
52 bool ignoreBlocks =
false,
53 bool ignoreEntities =
false
59 ::ll::TypedStorage<8, 32, ::std::string> mName;
60 ::ll::TypedStorage<8, 176, ::StructureTemplateData> mStructureTemplateData;
61 ::ll::TypedStorage<1, 1, uchar> mStructureVersion;
62 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::IUnknownBlockTypeRegistry>> mUnknownBlockRegistry;
63 ::ll::TypedStorage<1, 1, bool> mIsRemovable;
64 ::ll::TypedStorage<8, 16, ::std::map<::Block const*, int>> mBlockToIndex;
65 ::ll::TypedStorage<1, 1, bool> mNeedsOptimize;
70 StructureTemplate& operator=(StructureTemplate
const&);
71 StructureTemplate(StructureTemplate
const&);
77 virtual ~StructureTemplate() ;
81 virtual ::std::unique_ptr<::CompoundTag> save()
const;
88 virtual void fillEmpty(
::BlockPos const& size);
90 virtual ::NeighborAwareBlockUpdateType shouldHandleUpgradeForBlock(
::Block const& block)
const ;
92 virtual bool _allowReadBlock(
::BlockPos const& position,
::Block const& block)
const;
94 virtual bool _allowReadActor(
::Actor const& actor)
const;
96 virtual ::BlockPos rawSize()
const ;
98 virtual ::br::worldgen::StructureTemplateBlockPalette randomPalette(
::BlockPos randomPosSeed)
const
105 MCAPI StructureTemplate(::StructureTemplate&& other);
109 MCAPI StructureTemplate(
110 ::std::string_view name,
114 MCAPI StructureTemplate(
115 ::StructureTemplate
const& temp,
119 MCAPI
void _fillBlockInfo(
128 MCAPI
int _getOrCreateIndex(
130 ::std::map<::Block const*, int>& indexMap,
134 MCAPI
void _placeEntitiesInWorld(
137 bool shouldReloadActorEquipment,
138 ::std::optional<::BoundingBox> overlapBB
141 MCAPI
void _placeNextBlockSegmentInWorld(
143 uint64 startPlacement,
154 float integrityValue,
158 bool ignoreJigsawBlocks
161 MCAPI
void fillFromWorld(
167 MCAPI ::std::vector<::JigsawStructureBlockInfo> getJigsawMarkers()
const;
169 MCAPI
bool const isWaterlogged(
::BlockPos const& pos)
const;
171 MCAPI ::StructureTemplate& operator=(::StructureTemplate&& other);
173 MCAPI
bool operator==(::StructureTemplate
const& other)
const;
175 MCAPI
void optimizePalette(::std::string
const& paletteName);
177 MCAPI
void placeEntitiesInWorld(
184 MCAPI
void placeInWorld(
194 MCAPI
void placeNextSegmentInWorld(
200 MCAPI
bool setBlock(
::BlockPos const& pos,
::Block const* block,
bool waterlogged);
202 MCAPI
bool structureTemplateDataIsValid(
204 ::std::string
const& structureName,
213 MCAPI static ::Block
const& _mapToRotation(
::Block const& curr, ::Rotation rotation);
216 MCAPI static ::std::vector<::std::unique_ptr<::LevelChunk>> constructTransformedLevelChunks(
224 MCAPI static ::Block
const* tryGetBlockAtPos(
234 MCAPI
static int const& NO_BLOCK_INDEX_VALUE();
240 MCAPI
void* $ctor(::StructureTemplate&& other);
248 ::StructureTemplate
const& temp,
264 MCAPI ::std::unique_ptr<::CompoundTag> $save()
const;
271 MCAPI
void $fillEmpty(
::BlockPos const& size);
273 MCAPI ::NeighborAwareBlockUpdateType $shouldHandleUpgradeForBlock(
::Block const& block)
const;
275 MCAPI
bool $_allowReadBlock(
::BlockPos const& position,
::Block const& block)
const;
277 MCAPI
bool $_allowReadActor(
::Actor const& actor)
const;
279 MCAPI ::BlockPos $rawSize()
const;
281 MCAPI ::br::worldgen::StructureTemplateBlockPalette $randomPalette(
::BlockPos randomPosSeed)
const;