3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/core/utility/StablePriorityQueue.h"
7#include "mc/util/Rotation.h"
8#include "mc/world/level/ChunkPos.h"
9#include "mc/world/level/block/BlockVolume.h"
10#include "mc/world/level/levelgen/structure/structurepools/alias/PoolAliasBinding.h"
28class JigsawPlacement {
31 using PieceFactory = ::std::function<::std::unique_ptr<::PoolElementStructurePiece>(
44 ::ll::TypedStorage<4, 4, int const> mMaxDepth;
45 ::ll::TypedStorage<4, 4, int const> mGlobalContextSize;
49 ::std::function<::std::unique_ptr<::PoolElementStructurePiece>(
59 ::ll::TypedStorage<8, 8, ::std::vector<::std::unique_ptr<::StructurePiece>>&> mPieceList;
60 ::ll::TypedStorage<8, 8, ::Random&> mRandom;
61 ::ll::TypedStorage<8, 8, ::JigsawStructureRegistry const&> mPools;
62 ::ll::TypedStorage<8, 8, ::Dimension&> mDimension;
63 ::ll::TypedStorage<8, 64, ::std::unordered_map<::ChunkPos, ::std::unique_ptr<::std::vector<short>>>>
66 ::ll::TypedStorage<8, 24, ::std::vector<::std::pair<::std::vector<::BoundingBox>, ::std::vector<::BoundingBox>>>>
68 ::ll::TypedStorage<8, 24, ::std::vector<::Block const*>> mBlockBuffer;
69 ::ll::TypedStorage<8, 40, ::BlockVolume> mBlockBufferBox;
74 JigsawPlacement& operator=(JigsawPlacement
const&);
75 JigsawPlacement(JigsawPlacement
const&);
83 uint64 globalContextSize,
84 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieceList,
85 ::std::function<::std::unique_ptr<::PoolElementStructurePiece>(
102 ::Rotation
const& rotation,
122 ::Rotation
const& rotation,
123 ::std::string_view startAnchorName,
133 uint64 globalContextSize,
134 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieceList,
135 ::std::function<::std::unique_ptr<::PoolElementStructurePiece>(
Definition BoundingBox.h:13
Definition Dimension.h:86
Definition JigsawBlockInfo.h:14
MCAPI JigsawPlacement(uint64 maxDepth, uint64 globalContextSize, ::std::vector<::std::unique_ptr<::StructurePiece > > &pieceList, ::std::function<::std::unique_ptr<::PoolElementStructurePiece >(::StructurePoolElement const &, ::BlockPos const &, ::Rotation const &, int, ::JigsawJunction &, ::BoundingBox const &, ::BlockPos const &)> factory, ::Random &random, ::JigsawStructureRegistry const &pools, ::Dimension &dimension)
MCAPI bool _tryPlacingPiece(::PoolElementStructurePiece const &sourcePiece, ::BoundingBox const &sourceBB, ::JigsawBlockInfo const &sourceJigsaw, ::BlockPos const &attachPos, ::StructureTemplatePool const *targetPool, ::BlockPos const &refPos, uint64 contextDepth, ::PoolAliasBinding::PoolAliasLookup const &poolAliasLookup)
MCAPI void addPieces(::StructurePoolElement const &initialElement, ::BlockPos const &startPosition, ::Rotation const &rotation, ::std::string_view startAnchorName, ::PoolAliasBinding::PoolAliasLookup const &poolAliasLookup)
MCAPI void _addPiece(::PoolElementStructurePiece const &sourcePiece, ::BlockPos const &position, ::Rotation const &rotation, ::BlockPos const &refPos, uint64 contextDepth, ::PoolAliasBinding::PoolAliasLookup const &poolAliasLookup)
MCAPI void * $ctor(uint64 maxDepth, uint64 globalContextSize, ::std::vector<::std::unique_ptr<::StructurePiece > > &pieceList, ::std::function<::std::unique_ptr<::PoolElementStructurePiece >(::StructurePoolElement const &, ::BlockPos const &, ::Rotation const &, int, ::JigsawJunction &, ::BoundingBox const &, ::BlockPos const &)> factory, ::Random &random, ::JigsawStructureRegistry const &pools, ::Dimension &dimension)
Definition JigsawStructureRegistry.h:22
Definition PoolAliasBinding.h:18
Definition PoolElementStructurePiece.h:25
Definition StablePriorityQueue.h:6
Definition StructurePiece.h:18
Definition StructurePoolElement.h:39
Definition StructureTemplatePool.h:16
Definition JigsawJunction.h:9