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 MCFOLD
void _clearStructureData();
121 MCAPI
void _fillBlockInfo(
130 MCAPI
int _getOrCreateIndex(
132 ::std::map<::Block const*, int>& indexMap,
136 MCAPI
int _getOrCreateIndex(
139 ::std::map<::Block const*, int>& indexMap,
143 MCAPI
void _placeEntitiesInWorld(
146 bool shouldReloadActorEquipment,
147 ::std::optional<::BoundingBox> overlapBB
150 MCAPI
void _placeNextBlockSegmentInWorld(
152 uint64 startPlacement,
163 float integrityValue,
166 bool ignoreJigsawBlocks,
170 MCFOLD ::IStructureTemplate
const& asStructureTemplate()
const;
172 MCAPI
void fillFromWorld(
178 MCAPI ::std::vector<::JigsawStructureBlockInfo> getJigsawMarkers()
const;
180 MCFOLD ::std::string
const& getName()
const;
182 MCFOLD
bool getRemovable()
const;
184 MCFOLD ::BlockPos
const& getSize()
const;
186 MCAPI
bool isLoaded()
const;
188 MCAPI
bool const isWaterlogged(
::BlockPos const& pos)
const;
190 MCAPI ::StructureTemplate& operator=(::StructureTemplate&& other);
192 MCAPI
bool operator==(::StructureTemplate
const& other)
const;
194 MCAPI
void optimizePalette(::std::string
const& paletteName);
196 MCAPI
void placeEntitiesInWorld(
203 MCAPI
void placeInWorld(
212 MCAPI
void placeNextSegmentInWorld(
217 MCAPI
bool setBlock(
::BlockPos const& pos,
::Block const* block,
bool waterlogged);
219 MCAPI
void setName(::std::string
const& name);
223 MCAPI
bool structureTemplateDataIsValid(
225 ::std::string
const& structureName,
230 MCAPI ::Block
const* tryGetBlockAtPos(
::BlockPos const& pos)
const;
236 MCAPI static ::Block
const& _mapToRotation(
::Block const& curr, ::Rotation rotation);
239 MCAPI static ::std::vector<::std::unique_ptr<::LevelChunk>> constructTransformedLevelChunks(
247 MCAPI static ::Block
const* tryGetBlockAtPos(
257 MCAPI
static int const& NO_BLOCK_INDEX_VALUE();
263 MCAPI
void* $ctor(::StructureTemplate&& other);
271 ::StructureTemplate
const& temp,
287 MCAPI ::std::unique_ptr<::CompoundTag> $save()
const;
289 MCFOLD
void $clear();
294 MCAPI
void $fillEmpty(
::BlockPos const& size);
296 MCAPI ::NeighborAwareBlockUpdateType $shouldHandleUpgradeForBlock(
::Block const& block)
const;
298 MCAPI
bool $_allowReadBlock(
::BlockPos const& position,
::Block const& block)
const;
300 MCAPI
bool $_allowReadActor(
::Actor const& actor)
const;
302 MCAPI ::BlockPos $rawSize()
const;
304 MCAPI ::br::worldgen::StructureTemplateBlockPalette $randomPalette(
::BlockPos randomPosSeed)
const;