LeviLamina
Loading...
Searching...
No Matches
LegacyJigsawPlacement.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/util/Rotation.h"
7
8// auto generated forward declare list
9// clang-format off
10class BlockPos;
11class BlockVolume;
12class BoundingBox;
13class ChunkPos;
14class Dimension;
15class JigsawBlockInfo;
18class Random;
19class StructurePiece;
22struct JigsawJunction;
23// clang-format on
24
26public:
27 // LegacyJigsawPlacement inner types define
28 using PieceFactory = ::std::function<::std::unique_ptr<::PoolElementStructurePiece>(
30 ::BlockPos const&,
31 ::Rotation const&,
32 int,
34 ::BoundingBox const&,
35 ::BlockPos const&
36 )>;
37
38public:
39 // member variables
40 // NOLINTBEGIN
41 ::ll::TypedStorage<4, 4, int const> mMaxDepth;
42 ::ll::TypedStorage<
43 8,
44 64,
45 ::std::function<::std::unique_ptr<::PoolElementStructurePiece>(
47 ::BlockPos const&,
48 ::Rotation const&,
49 int,
51 ::BoundingBox const&,
52 ::BlockPos const&
53 )>>
54 mFactory;
55 ::ll::TypedStorage<8, 64, ::std::unordered_map<::ChunkPos, ::std::unique_ptr<::std::vector<short>>>>
56 mChunkHeightCache;
57 // NOLINTEND
58
59public:
60 // member functions
61 // NOLINTBEGIN
62 MCAPI void _addPiece(
63 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
64 ::PoolElementStructurePiece const& sourcePiece,
65 ::Random& random,
66 ::BlockPos const& position,
67 ::Rotation const& rotation,
68 ::JigsawStructureRegistry const& pools,
69 ::Dimension& dimension,
70 ::BlockVolume& box,
71 ::BlockPos const& refPos
72 );
73
74 MCAPI bool _tryPlacingPiece(
75 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
76 ::PoolElementStructurePiece const& sourcePiece,
77 ::Random& random,
78 ::JigsawBlockInfo const& sourceJigsaw,
79 ::BoundingBox const& sourceBB,
80 ::std::vector<::BoundingBox>& sourceInternalBBs,
81 ::BlockPos const& attachPos,
82 ::StructureTemplatePool const* targetPool,
83 ::JigsawStructureRegistry const& pools,
84 ::Dimension& dimension,
85 ::BlockVolume& box,
86 ::BlockPos const& refPos
87 );
88
89 MCAPI void addPieces(
90 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
91 ::StructurePoolElement const& initialElement,
92 ::Random& random,
93 ::BlockPos const& position,
94 ::Rotation const& rotation,
95 ::JigsawStructureRegistry const& pools,
96 ::Dimension& dimension
97 );
98
100 // NOLINTEND
101
102public:
103 // destructor thunk
104 // NOLINTBEGIN
105 MCAPI void $dtor();
106 // NOLINTEND
107};
Definition BlockPos.h:17
Definition BlockVolume.h:13
Definition BoundingBox.h:13
Definition ChunkPos.h:11
Definition Dimension.h:83
Definition JigsawBlockInfo.h:14
Definition JigsawStructureRegistry.h:23
Definition LegacyJigsawPlacement.h:25
Definition PoolElementStructurePiece.h:25
Definition Random.h:10
Definition StructurePiece.h:18
Definition StructurePoolElement.h:39
Definition StructureTemplatePool.h:16
Definition JigsawJunction.h:9