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#include "mc/world/level/ChunkPos.h"
8
9// auto generated forward declare list
10// clang-format off
11class BlockPos;
12class BlockVolume;
13class BoundingBox;
14class Dimension;
15class JigsawBlockInfo;
18class Random;
19class StructurePiece;
22struct JigsawJunction;
23// clang-format on
24
25class LegacyJigsawPlacement {
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 // prevent constructor by default
61 LegacyJigsawPlacement();
62
63public:
64 // member functions
65 // NOLINTBEGIN
66 MCAPI LegacyJigsawPlacement(
67 int maxDepth,
68 ::std::function<::std::unique_ptr<::PoolElementStructurePiece>(
70 ::BlockPos const&,
71 ::Rotation const&,
72 int,
74 ::BoundingBox const&,
75 ::BlockPos const&
76 )> factory
77 );
78
79 MCAPI void _addPiece(
80 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
81 ::PoolElementStructurePiece const& sourcePiece,
82 ::Random& random,
83 ::BlockPos const& position,
84 ::Rotation const& rotation,
85 ::JigsawStructureRegistry const& pools,
86 ::Dimension& dimension,
87 ::BlockVolume& box,
88 ::BlockPos const& refPos
89 );
90
91 MCAPI bool _tryPlacingPiece(
92 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
93 ::PoolElementStructurePiece const& sourcePiece,
94 ::Random& random,
95 ::JigsawBlockInfo const& sourceJigsaw,
96 ::BoundingBox const& sourceBB,
97 ::std::vector<::BoundingBox>& sourceInternalBBs,
98 ::BlockPos const& attachPos,
99 ::StructureTemplatePool const* targetPool,
100 ::JigsawStructureRegistry const& pools,
101 ::Dimension& dimension,
102 ::BlockVolume& box,
103 ::BlockPos const& refPos
104 );
105
106 MCAPI void addPieces(
107 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
108 ::StructurePoolElement const& initialElement,
109 ::Random& random,
110 ::BlockPos const& position,
111 ::Rotation const& rotation,
112 ::JigsawStructureRegistry const& pools,
113 ::Dimension& dimension
114 );
115 // NOLINTEND
116
117public:
118 // constructor thunks
119 // NOLINTBEGIN
120 MCAPI void* $ctor(
121 int maxDepth,
122 ::std::function<::std::unique_ptr<::PoolElementStructurePiece>(
124 ::BlockPos const&,
125 ::Rotation const&,
126 int,
128 ::BoundingBox const&,
129 ::BlockPos const&
130 )> factory
131 );
132 // NOLINTEND
133};
Definition BlockPos.h:17
Definition BlockVolume.h:14
Definition BoundingBox.h:13
Definition Dimension.h:86
Definition JigsawBlockInfo.h:14
Definition JigsawStructureRegistry.h:22
Definition PoolElementStructurePiece.h:25
Definition Random.h:10
Definition StructurePiece.h:18
Definition StructurePoolElement.h:39
Definition StructureTemplatePool.h:16
Definition JigsawJunction.h:9