3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/core/utility/NonOwnerPointer.h"
7#include "mc/util/Mirror.h"
8#include "mc/util/Rotation.h"
9#include "mc/world/level/block/Block.h"
10#include "mc/world/level/chunk/NeighborAwareBlockUpdateType.h"
11#include "mc/world/level/levelgen/structure/IStructureTemplate.h"
12#include "mc/world/level/levelgen/structure/StructureTemplateData.h"
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, 184, ::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
109 MCAPI StructureTemplate(
110 ::std::string_view name,
115 ::StructureTemplate
const& temp,
130 ::std::map<::Block const*, int>& indexMap,
137 bool shouldReloadActorEquipment,
138 ::std::optional<::BoundingBox> overlapBB
143 uint64 startPlacement,
154 float integrityValue,
158 bool ignoreJigsawBlocks
161 MCAPI
void fillFromWorld(
169 MCAPI
bool const isWaterlogged(
::BlockPos const& pos)
const;
171 MCAPI ::StructureTemplate& operator=(::StructureTemplate&& other);
173 MCNAPI
bool operator==(::StructureTemplate
const& other)
const;
184 MCAPI
void placeInWorld(
194 MCNAPI
void placeNextSegmentInWorld(
204 ::std::string
const& structureName,
216 MCNAPI static ::std::vector<::std::unique_ptr<::LevelChunk>> constructTransformedLevelChunks(
224 MCAPI static ::Block
const* tryGetBlockAtPos(
234 MCNAPI
void*
$ctor(::StructureTemplate&& other);
242 ::StructureTemplate
const& temp,
258 MCNAPI ::std::unique_ptr<::CompoundTag>
$save()
const;
Definition NonOwnerPointer.h:9
Definition BlockPalette.h:18
Definition BlockSource.h:72
Definition BoundingBox.h:13
Definition CompoundTag.h:18
Definition DataLoadHelper.h:20
Definition Dimension.h:86
Definition IStructureTemplate.h:15
Definition IUnknownBlockTypeRegistry.h:14
Definition JigsawStructureBlockInfo.h:14
Definition LevelChunk.h:76
Definition StructureAnimationData.h:16
Definition StructureBlockPalette.h:17
Definition StructureSettings.h:18
Definition StructureTelemetryServerData.h:8
Definition StructureTemplateData.h:18
MCAPI void optimizePalette(::std::string const &paletteName)
static MCAPI void ** $vftable()
MCAPI ::std::vector<::JigsawStructureBlockInfo > getJigsawMarkers() const
MCAPI void _placeNextBlockSegmentInWorld(::BlockSource ®ion, uint64 startPlacement, uint64 endPlacement, ::StructureSettings const &structureSettings, ::DataLoadHelper &dataLoadHelper, ::StructureBlockPalette const &structureBlockPalette, ::BlockPalette const &globalBlockPalette, ::BlockPos position, ::BlockPos const &offset, ::Vec3 const &pivot, ::Rotation rotation, ::Mirror mirror, float integrityValue, uint integritySeed, ::StructureTelemetryServerData *, bool updateItemData, bool ignoreJigsawBlocks) const
MCAPI void _fillBlockInfo(::BlockSource ®ion, ::BlockPos const &minCorner, ::BlockPos const &maxCorner, ::BlockPos const &size)
MCAPI::BoundingBox $getTransformedBounds(::BlockPos loadPosition, ::StructureSettings const &structureSettings) const
MCAPI StructureTemplate(::Bedrock::NonOwnerPointer<::IUnknownBlockTypeRegistry > unknownBlockRegistry)
MCAPI void placeEntitiesInWorld(::BlockSource ®ion, ::BlockPos const &position, ::StructureSettings const &structureSettings, ::BoundingBox overlapBB) const
MCAPI void * $ctor(::StructureTemplate const &temp, ::Bedrock::NonOwnerPointer<::IUnknownBlockTypeRegistry > unknownBlockRegistry)
MCAPI bool setBlock(::BlockPos const &pos, ::Block const *block, bool waterlogged)
MCAPI::NeighborAwareBlockUpdateType $shouldHandleUpgradeForBlock(::Block const &block) const
MCAPI ::std::unique_ptr<::CompoundTag > $save() const
MCAPI void _placeEntitiesInWorld(::BlockSource ®ion, ::DataLoadHelper &dataLoadHelper, bool shouldReloadActorEquipment, ::std::optional<::BoundingBox > overlapBB) const
MCAPI int _getOrCreateIndex(::Block const &block, ::std::map<::Block const *, int > &indexMap, ::StructureBlockPalette &palette)
MCAPI bool structureTemplateDataIsValid(::BlockSource const ®ion, ::std::string const &structureName, ::BlockPos const &capturePosition, ::StructureSettings const &structureSettings) const
MCAPI bool $_allowReadActor(::Actor const &actor) const
MCAPI void * $ctor(::StructureTemplate &&other)
MCAPI void $fillEmpty(::BlockPos const &size)
MCAPI StructureTemplate(::StructureTemplate &&other)
MCAPI bool operator==(::StructureTemplate const &other) const
MCAPI::br::worldgen::StructureTemplateBlockPalette $randomPalette(::BlockPos randomPosSeed) const
MCAPI void * $ctor(::Bedrock::NonOwnerPointer<::IUnknownBlockTypeRegistry > unknownBlockRegistry)
static MCAPI ::Block const & _mapToRotation(::Block const &curr, ::Rotation rotation)
MCAPI StructureTemplate(::StructureTemplate const &temp, ::Bedrock::NonOwnerPointer<::IUnknownBlockTypeRegistry > unknownBlockRegistry)
MCAPI void _fillEntityList(::BlockSource ®ion, ::BlockPos const &minCorner, ::BlockPos const &maxCorner)
MCAPI::BlockPos $rawSize() const
MCAPI bool $_allowReadBlock(::BlockPos const &position, ::Block const &block) const
Definition StructureTemplateBlockPalette.h:11