36 LLAPI
void placeInWorld(
39 Mirror mirror = Mirror::None,
40 Rotation rotation = Rotation::None,
41 bool ignoreBlocks =
false,
42 bool ignoreEntities =
false
45 LLNDAPI
static std::unique_ptr<StructureTemplate> create(std::string_view name,
CompoundTag const& tag);
47 LLNDAPI
static std::unique_ptr<StructureTemplate> create(
48 std::string_view name,
51 bool ignoreBlocks =
false,
52 bool ignoreEntities =
false
58 ::ll::TypedStorage<8, 32, ::std::string> mName;
59 ::ll::TypedStorage<8, 184, ::StructureTemplateData> mStructureTemplateData;
60 ::ll::TypedStorage<1, 1, uchar> mStructureVersion;
61 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::IUnknownBlockTypeRegistry>> mUnknownBlockRegistry;
62 ::ll::TypedStorage<1, 1, bool> mIsRemovable;
63 ::ll::TypedStorage<8, 16, ::std::map<::Block const*, int>> mBlockToIndex;
64 ::ll::TypedStorage<1, 1, bool> mNeedsOptimize;
69 StructureTemplate& operator=(StructureTemplate
const&);
70 StructureTemplate(StructureTemplate
const&);
76 virtual ~StructureTemplate() ;
80 virtual ::std::unique_ptr<::CompoundTag> save()
const;
87 virtual void fillEmpty(
::BlockPos const& size);
89 virtual ::NeighborAwareBlockUpdateType shouldHandleUpgradeForBlock(
::Block const& block)
const ;
91 virtual bool _allowReadBlock(
::BlockPos const& position,
::Block const& block)
const;
93 virtual bool _allowReadActor(
::Actor const& actor)
const;
95 virtual ::BlockPos rawSize()
const ;
97 virtual ::br::worldgen::StructureTemplateBlockPalette randomPalette(
::BlockPos randomPosSeed)
const
104 MCAPI StructureTemplate(::StructureTemplate&& other);
108 MCAPI StructureTemplate(
109 ::std::string_view name,
113 MCAPI StructureTemplate(
114 ::StructureTemplate
const& temp,
118 MCAPI
void _fillBlockInfo(
127 MCAPI
int _getOrCreateIndex(
129 ::std::map<::Block const*, int>& indexMap,
133 MCAPI
void _placeEntitiesInWorld(
136 bool shouldReloadActorEquipment,
137 ::std::optional<::BoundingBox> overlapBB
140 MCAPI
void _placeNextBlockSegmentInWorld(
142 uint64 startPlacement,
153 float integrityValue,
157 bool ignoreJigsawBlocks
160 MCAPI
void fillFromWorld(
166 MCAPI ::std::vector<::JigsawStructureBlockInfo> getJigsawMarkers()
const;
168 MCAPI
bool const isWaterlogged(
::BlockPos const& pos)
const;
170 MCAPI ::StructureTemplate& operator=(::StructureTemplate&& other);
172 MCAPI
bool operator==(::StructureTemplate
const& other)
const;
174 MCAPI
void optimizePalette(::std::string
const& paletteName);
176 MCAPI
void placeEntitiesInWorld(
183 MCAPI
void placeInWorld(
192 MCAPI
bool setBlock(
::BlockPos const& pos,
::Block const* block,
bool waterlogged);
194 MCAPI
bool structureTemplateDataIsValid(
196 ::std::string
const& structureName,
205 MCAPI static ::Block
const& _mapToRotation(
::Block const& curr, ::Rotation rotation);
208 MCAPI static ::std::vector<::std::unique_ptr<::LevelChunk>> constructTransformedLevelChunks(
216 MCAPI static ::Block
const* tryGetBlockAtPos(
226 MCAPI
void* $ctor(::StructureTemplate&& other);
234 ::StructureTemplate
const& temp,
250 MCAPI ::std::unique_ptr<::CompoundTag> $save()
const;
257 MCAPI
void $fillEmpty(
::BlockPos const& size);
259 MCAPI ::NeighborAwareBlockUpdateType $shouldHandleUpgradeForBlock(
::Block const& block)
const;
261 MCAPI
bool $_allowReadBlock(
::BlockPos const& position,
::Block const& block)
const;
263 MCAPI
bool $_allowReadActor(
::Actor const& actor)
const;
265 MCAPI ::BlockPos $rawSize()
const;
267 MCAPI ::br::worldgen::StructureTemplateBlockPalette $randomPalette(
::BlockPos randomPosSeed)
const;