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&, ::Random&, ::BoundingBox const&) = 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 canBeReplaced(::BlockSource&, int const, int const, int const, ::BoundingBox const&);
57
58 virtual void generateBox(
59 ::BlockSource& region,
60 ::BoundingBox const& chunkBB,
61 int x0,
62 int y0,
63 int z0,
64 int x1,
65 int y1,
66 int z1,
67 ::Block const& edgeBlock,
68 ::Block const& fillBlock,
69 bool skipAir
70 );
71
72 virtual void addHardcodedSpawnAreas(::LevelChunk& chunk) const;
73 // NOLINTEND
74
75public:
76 // member functions
77 // NOLINTBEGIN
78 MCAPI void addTerrainAdjustmentToken(::std::shared_ptr<bool> token);
79
80 MCAPI void generateBox(
81 ::BlockSource& region,
82 ::BoundingBox const& chunkBB,
83 int x0,
84 int y0,
85 int z0,
86 int x1,
87 int y1,
88 int z1,
89 bool skipAir,
90 ::Random& random,
91 ::BlockSelector const& selector
92 );
93
94 MCAPI void generateMaybeBox(
95 ::BlockSource& region,
96 ::BoundingBox const& chunkBB,
97 ::Random& random,
98 float probability,
99 int x0,
100 int y0,
101 int z0,
102 int x1,
103 int y1,
104 int z1,
105 ::Block const& edgeBlock,
106 ::Block const& fillBlock,
107 bool skipAir,
108 bool excludeSky
109 );
110
111 MCAPI ::Block const& getBlock(::BlockSource& region, int x, int y, int z, ::BoundingBox const& chunkBB);
112
113 MCAPI ushort getOrientationData(::Block const* block, ushort data);
114
115 MCAPI bool isAboveGround(int x0, int y1, int z, ::BlockSource& region);
116
117 MCAPI void maybeGenerateBlockIfNotFloating(
118 ::BlockSource& region,
119 ::BoundingBox const& chunkBB,
120 ::Random& random,
121 float probability,
122 int x,
123 int y,
124 int z,
125 ::Block const& block
126 );
127 // NOLINTEND
128
129public:
130 // destructor thunk
131 // NOLINTBEGIN
132 MCFOLD void $dtor();
133 // NOLINTEND
134
135public:
136 // virtual function thunks
137 // NOLINTBEGIN
138 MCAPI void $moveBoundingBox(int dx, int dy, int dz);
139
140 MCFOLD ::StructurePieceType $getType() const;
141
142 MCFOLD void $addChildren(
143 ::StructurePiece& startPiece,
144 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
145 ::Random& random
146 );
147
148 MCFOLD void $postProcessMobsAt(::BlockSource& region, ::Random& random, ::BoundingBox const& chunkBB);
149
150 MCAPI bool $isInInvalidLocation(::BlockSource& region, ::BoundingBox const& chunkBB);
151
152 MCAPI int $getWorldX(int x, int z);
153
154 MCAPI int $getWorldZ(int x, int z);
155
156 MCAPI void
157 $placeBlock(::BlockSource& region, ::Block const& block, int x, int y, int z, ::BoundingBox const& chunkBB);
158
159 MCFOLD bool $canBeReplaced(::BlockSource&, int const, int const, int const, ::BoundingBox const&);
160
161 MCAPI void $generateBox(
162 ::BlockSource& region,
163 ::BoundingBox const& chunkBB,
164 int x0,
165 int y0,
166 int z0,
167 int x1,
168 int y1,
169 int z1,
170 ::Block const& edgeBlock,
171 ::Block const& fillBlock,
172 bool skipAir
173 );
174
175 MCFOLD void $addHardcodedSpawnAreas(::LevelChunk& chunk) const;
176
177
178 // NOLINTEND
179
180public:
181 // vftables
182 // NOLINTBEGIN
183 MCNAPI static void** $vftable();
184 // NOLINTEND
185};
Definition BlockSelector.h:11
Definition BlockSource.h:68
Definition Block.h:43
Definition BoundingBox.h:13
Definition LevelChunk.h:79
Definition Random.h:10
Definition StructurePiece.h:18
static MCAPI void ** $vftable()