Skip to content
LeviMC
English
AutoLightDark
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 MCNAPI void generateBox(
80 ::BlockSource& region,
81 ::BoundingBox const& chunkBB,
82 int x0,
83 int y0,
84 int z0,
85 int x1,
86 int y1,
87 int z1,
88 bool skipAir,
89 ::Random& random,
90 ::BlockSelector const& selector
91 );
92
93 MCNAPI void generateMaybeBox(
94 ::BlockSource& region,
95 ::BoundingBox const& chunkBB,
96 ::Random& random,
97 float probability,
98 int x0,
99 int y0,
100 int z0,
101 int x1,
102 int y1,
103 int z1,
104 ::Block const& edgeBlock,
105 ::Block const& fillBlock,
106 bool skipAir,
107 bool excludeSky
108 );
109
111 ::BlockSource& region,
112 ::BoundingBox const& chunkBB,
113 int x0,
114 int y0,
115 int z0,
116 int x1,
117 int y1,
118 int z1,
119 ::Block const& fillBlock,
120 bool skipAir
121 );
122
123 MCNAPI ::Block const& getBlock(::BlockSource& region, int x, int y, int z, ::BoundingBox const& chunkBB);
124
125 MCNAPI ushort getOrientationData(::Block const* block, ushort data);
126
127 MCNAPI bool isReplaceableBlock(::Block const& block);
128
130 ::BlockSource& region,
131 ::BoundingBox const& chunkBB,
132 ::Random& random,
133 float probability,
134 int x,
135 int y,
136 int z,
137 ::Block const& block
138 );
139 // NOLINTEND
140
141public:
142 // destructor thunk
143 // NOLINTBEGIN
144 MCAPI void $dtor();
145 // NOLINTEND
146
147public:
148 // virtual function thunks
149 // NOLINTBEGIN
150 MCNAPI void $moveBoundingBox(int dx, int dy, int dz);
151
152 MCFOLD ::StructurePieceType $getType() const;
153
154 MCFOLD void $addChildren(
155 ::StructurePiece& startPiece,
156 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
157 ::Random& random
158 );
159
160 MCFOLD void $postProcessMobsAt(::BlockSource& region, ::Random& random, ::BoundingBox const& chunkBB);
161
162 MCAPI bool $isInInvalidLocation(::BlockSource& region, ::BoundingBox const& chunkBB);
163
164 MCAPI int $getWorldX(int x, int z);
165
166 MCAPI int $getWorldZ(int x, int z);
167
168 MCAPI void
169 $placeBlock(::BlockSource& region, ::Block const& block, int x, int y, int z, ::BoundingBox const& chunkBB);
170
171 MCFOLD bool
172 $canBeReplaced(::BlockSource& region, int const x, int const y, int const z, ::BoundingBox const& chunkBB);
173
174 MCAPI void $generateBox(
175 ::BlockSource& region,
176 ::BoundingBox const& chunkBB,
177 int x0,
178 int y0,
179 int z0,
180 int x1,
181 int y1,
182 int z1,
183 ::Block const& edgeBlock,
184 ::Block const& fillBlock,
185 bool skipAir
186 );
187
188 MCFOLD void $addHardcodedSpawnAreas(::LevelChunk& chunk) const;
189
190
191 // NOLINTEND
192
193public:
194 // vftables
195 // NOLINTBEGIN
196 MCNAPI static void** $vftable();
197 // NOLINTEND
198};
Definition BlockSelector.h:11
Definition BlockSource.h:72
Definition Block.h:42
Definition BoundingBox.h:13
Definition LevelChunk.h:76
Definition Random.h:10
Definition StructurePiece.h:18
MCAPI void maybeGenerateBlockIfNotFloating(::BlockSource &region, ::BoundingBox const &chunkBB, ::Random &random, float probability, int x, int y, int z, ::Block const &block)
MCAPI void generateUpperHalfSphere(::BlockSource &region, ::BoundingBox const &chunkBB, int x0, int y0, int z0, int x1, int y1, int z1, ::Block const &fillBlock, bool skipAir)
MCAPI void generateBox(::BlockSource &region, ::BoundingBox const &chunkBB, int x0, int y0, int z0, int x1, int y1, int z1, bool skipAir, ::Random &random, ::BlockSelector const &selector)
MCAPI bool isReplaceableBlock(::Block const &block)
MCAPI ushort getOrientationData(::Block const *block, ushort data)
MCAPI void $moveBoundingBox(int dx, int dy, int dz)
MCAPI void generateMaybeBox(::BlockSource &region, ::BoundingBox const &chunkBB, ::Random &random, float probability, int x0, int y0, int z0, int x1, int y1, int z1, ::Block const &edgeBlock, ::Block const &fillBlock, bool skipAir, bool excludeSky)
static MCAPI void ** $vftable()
MCAPI::Block const & getBlock(::BlockSource &region, int x, int y, int z, ::BoundingBox const &chunkBB)