LeviLamina
Loading...
Searching...
No Matches
StructurePiece.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/level/levelgen/structure/BoundingBox.h"
7#include "mc/world/level/levelgen/structure/StructurePieceType.h"
8
9// auto generated forward declare list
10// clang-format off
11class Block;
12class BlockSelector;
13class BlockSource;
14class LevelChunk;
15class Random;
16// clang-format on
17
19public:
20 // member variables
21 // NOLINTBEGIN
22 ::ll::TypedStorage<4, 24, ::BoundingBox> mBoundingBox;
23 ::ll::TypedStorage<4, 4, int> mOrientation;
24 ::ll::TypedStorage<4, 4, int> mGenDepth;
25 ::ll::TypedStorage<8, 16, ::std::shared_ptr<bool>> mTerrainAdjustmentToken;
26 // NOLINTEND
27
28public:
29 // virtual functions
30 // NOLINTBEGIN
31 virtual ~StructurePiece();
32
33 virtual void moveBoundingBox(int dx, int dy, int dz);
34
35 virtual ::StructurePieceType getType() const;
36
37 virtual void addChildren(
38 ::StructurePiece& startPiece,
39 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
40 ::Random& random
41 );
42
43 virtual bool postProcess(::BlockSource& region, ::Random& random, ::BoundingBox const& chunkBB) = 0;
44
45 virtual void postProcessMobsAt(::BlockSource& region, ::Random& random, ::BoundingBox const& chunkBB);
46
47 virtual bool isInInvalidLocation(::BlockSource& region, ::BoundingBox const& chunkBB);
48
49 virtual int getWorldX(int x, int z);
50
51 virtual int getWorldZ(int x, int z);
52
53 virtual void
54 placeBlock(::BlockSource& region, ::Block const& block, int x, int y, int z, ::BoundingBox const& chunkBB);
55
56 virtual bool
57 canBeReplaced(::BlockSource& region, int const x, int const y, int const z, ::BoundingBox const& chunkBB);
58
59 virtual void generateBox(
60 ::BlockSource& region,
61 ::BoundingBox const& chunkBB,
62 int x0,
63 int y0,
64 int z0,
65 int x1,
66 int y1,
67 int z1,
68 ::Block const& edgeBlock,
69 ::Block const& fillBlock,
70 bool skipAir
71 );
72
73 virtual void addHardcodedSpawnAreas(::LevelChunk& chunk) const;
74 // NOLINTEND
75
76public:
77 // member functions
78 // NOLINTBEGIN
79 MCAPI void addTerrainAdjustmentToken(::std::shared_ptr<bool> token);
80
81 MCAPI void generateBox(
82 ::BlockSource& region,
83 ::BoundingBox const& chunkBB,
84 int x0,
85 int y0,
86 int z0,
87 int x1,
88 int y1,
89 int z1,
90 bool skipAir,
91 ::Random& random,
92 ::BlockSelector const& selector
93 );
94
95 MCAPI void generateMaybeBox(
96 ::BlockSource& region,
97 ::BoundingBox const& chunkBB,
98 ::Random& random,
99 float probability,
100 int x0,
101 int y0,
102 int z0,
103 int x1,
104 int y1,
105 int z1,
106 ::Block const& edgeBlock,
107 ::Block const& fillBlock,
108 bool skipAir,
109 bool excludeSky
110 );
111
112 MCAPI ::Block const& getBlock(::BlockSource& region, int x, int y, int z, ::BoundingBox const& chunkBB);
113
114 MCAPI ushort getOrientationData(::Block const* block, ushort data);
115
116 MCAPI bool isAboveGround(int x0, int y1, int z, ::BlockSource& region);
117
118 MCAPI void maybeGenerateBlockIfNotFloating(
119 ::BlockSource& region,
120 ::BoundingBox const& chunkBB,
121 ::Random& random,
122 float probability,
123 int x,
124 int y,
125 int z,
126 ::Block const& block
127 );
128 // NOLINTEND
129
130public:
131 // destructor thunk
132 // NOLINTBEGIN
133 MCFOLD void $dtor();
134 // NOLINTEND
135
136public:
137 // virtual function thunks
138 // NOLINTBEGIN
139 MCAPI void $moveBoundingBox(int dx, int dy, int dz);
140
141 MCFOLD ::StructurePieceType $getType() const;
142
143 MCFOLD void $addChildren(
144 ::StructurePiece& startPiece,
145 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
146 ::Random& random
147 );
148
149 MCFOLD void $postProcessMobsAt(::BlockSource& region, ::Random& random, ::BoundingBox const& chunkBB);
150
151 MCAPI bool $isInInvalidLocation(::BlockSource& region, ::BoundingBox const& chunkBB);
152
153 MCAPI int $getWorldX(int x, int z);
154
155 MCAPI int $getWorldZ(int x, int z);
156
157 MCAPI void
158 $placeBlock(::BlockSource& region, ::Block const& block, int x, int y, int z, ::BoundingBox const& chunkBB);
159
160 MCFOLD bool
161 $canBeReplaced(::BlockSource& region, int const x, int const y, int const z, ::BoundingBox const& chunkBB);
162
163 MCAPI void $generateBox(
164 ::BlockSource& region,
165 ::BoundingBox const& chunkBB,
166 int x0,
167 int y0,
168 int z0,
169 int x1,
170 int y1,
171 int z1,
172 ::Block const& edgeBlock,
173 ::Block const& fillBlock,
174 bool skipAir
175 );
176
177 MCFOLD void $addHardcodedSpawnAreas(::LevelChunk& chunk) const;
178
179
180 // NOLINTEND
181
182public:
183 // vftables
184 // NOLINTBEGIN
185 MCNAPI static void** $vftable();
186 // NOLINTEND
187};
Definition BlockSelector.h:11
Definition BlockSource.h:71
Definition Block.h:43
Definition BoundingBox.h:13
Definition LevelChunk.h:79
Definition Random.h:10
Definition StructurePiece.h:18
static MCAPI void ** $vftable()