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 // vIndex: 0
32 virtual ~StructurePiece();
33
34 // vIndex: 1
35 virtual void moveBoundingBox(int dx, int dy, int dz);
36
37 // vIndex: 2
38 virtual ::StructurePieceType getType() const;
39
40 // vIndex: 3
41 virtual void addChildren(
42 ::StructurePiece& startPiece,
43 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
44 ::Random& random
45 );
46
47 // vIndex: 4
48 virtual bool postProcess(::BlockSource&, ::Random&, ::BoundingBox const&) = 0;
49
50 // vIndex: 5
51 virtual void postProcessMobsAt(::BlockSource& region, ::Random& random, ::BoundingBox const& chunkBB);
52
53 // vIndex: 6
54 virtual bool isInInvalidLocation(::BlockSource& region, ::BoundingBox const& chunkBB);
55
56 // vIndex: 7
57 virtual int getWorldX(int x, int z);
58
59 // vIndex: 8
60 virtual int getWorldZ(int x, int z);
61
62 // vIndex: 9
63 virtual void
64 placeBlock(::BlockSource& region, ::Block const& block, int x, int y, int z, ::BoundingBox const& chunkBB);
65
66 // vIndex: 10
67 virtual bool canBeReplaced(::BlockSource&, int const, int const, int const, ::BoundingBox const&);
68
69 // vIndex: 11
70 virtual void generateBox(
71 ::BlockSource& region,
72 ::BoundingBox const& chunkBB,
73 int x0,
74 int y0,
75 int z0,
76 int x1,
77 int y1,
78 int z1,
79 ::Block const& edgeBlock,
80 ::Block const& fillBlock,
81 bool skipAir
82 );
83
84 // vIndex: 12
85 virtual void addHardcodedSpawnAreas(::LevelChunk& chunk) const;
86 // NOLINTEND
87
88public:
89 // member functions
90 // NOLINTBEGIN
91 MCAPI void addTerrainAdjustmentToken(::std::shared_ptr<bool> token);
92
93 MCAPI void generateBox(
94 ::BlockSource& region,
95 ::BoundingBox const& chunkBB,
96 int x0,
97 int y0,
98 int z0,
99 int x1,
100 int y1,
101 int z1,
102 bool skipAir,
103 ::Random& random,
104 ::BlockSelector const& selector
105 );
106
107 MCAPI void generateMaybeBox(
108 ::BlockSource& region,
109 ::BoundingBox const& chunkBB,
110 ::Random& random,
111 float probability,
112 int x0,
113 int y0,
114 int z0,
115 int x1,
116 int y1,
117 int z1,
118 ::Block const& edgeBlock,
119 ::Block const& fillBlock,
120 bool skipAir,
121 bool excludeSky
122 );
123
124 MCAPI ::Block const& getBlock(::BlockSource& region, int x, int y, int z, ::BoundingBox const& chunkBB);
125
126 MCAPI ushort getOrientationData(::Block const* block, ushort data);
127
128 MCAPI bool isAboveGround(int x0, int y1, int z, ::BlockSource& region);
129 // NOLINTEND
130
131public:
132 // destructor thunk
133 // NOLINTBEGIN
134 MCFOLD void $dtor();
135 // NOLINTEND
136
137public:
138 // virtual function thunks
139 // NOLINTBEGIN
140 MCAPI void $moveBoundingBox(int dx, int dy, int dz);
141
142 MCFOLD ::StructurePieceType $getType() const;
143
144 MCFOLD void $addChildren(
145 ::StructurePiece& startPiece,
146 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
147 ::Random& random
148 );
149
150 MCFOLD void $postProcessMobsAt(::BlockSource& region, ::Random& random, ::BoundingBox const& chunkBB);
151
152 MCAPI bool $isInInvalidLocation(::BlockSource& region, ::BoundingBox const& chunkBB);
153
154 MCAPI int $getWorldX(int x, int z);
155
156 MCAPI int $getWorldZ(int x, int z);
157
158 MCAPI void
159 $placeBlock(::BlockSource& region, ::Block const& block, int x, int y, int z, ::BoundingBox const& chunkBB);
160
161 MCFOLD bool $canBeReplaced(::BlockSource&, int const, int const, int const, ::BoundingBox const&);
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 // NOLINTEND
179
180public:
181 // vftables
182 // NOLINTBEGIN
183 MCNAPI static void** $vftable();
184 // NOLINTEND
185};
Definition BlockSelector.h:11
Definition BlockSource.h:66
Definition Block.h:37
Definition BoundingBox.h:13
Definition LevelChunk.h:77
Definition Random.h:10
Definition StructurePiece.h:18
static MCAPI void ** $vftable()