LeviLamina
Loading...
Searching...
No Matches
OverworldGeneratorMultinoise.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/util/MultidimensionalArray.h"
7#include "mc/world/level/DividedPos2d.h"
8#include "mc/world/level/levelgen/synth/AquiferNoises.h"
9#include "mc/world/level/levelgen/synth/CavifierNoises.h"
10#include "mc/world/level/levelgen/synth/LegacyBlendedNoise.h"
11#include "mc/world/level/levelgen/synth/OverworldNoises3d.h"
12#include "mc/world/level/levelgen/synth/PerlinSimplexNoise.h"
13#include "mc/world/level/levelgen/v1/DepthBasedBlockSupplier.h"
14#include "mc/world/level/levelgen/v1/NoodleCavifierNoises.h"
15#include "mc/world/level/levelgen/v1/OreVeinifierNoises.h"
16#include "mc/world/level/levelgen/v1/OverworldGenerator.h"
17
18// auto generated forward declare list
19// clang-format off
20class Aquifer;
21class Biome;
22class BiomeRegistry;
23class BiomeSource;
24class Block;
25class BlockPos;
26class BlockSource;
27class BlockVolume;
28class Cavifier;
29class ChunkBlender;
32class ChunkPos;
33class Dimension;
34class LevelChunk;
35class LevelSeed64;
36class NoodleCavifier;
37class OreVeinifier;
38class Random;
40class WorldGenCache;
42struct TerrainInfo;
43// clang-format on
44
46public:
47 // OverworldGeneratorMultinoise inner types declare
48 // clang-format off
50 struct Noises;
51 // clang-format on
52
53 // OverworldGeneratorMultinoise inner types define
55 public:
56 // member variables
57 // NOLINTBEGIN
58 ::ll::TypedStorage<8, 8, ::Block const*> block;
59 ::ll::TypedStorage<1, 1, bool const> shouldTickUpdate;
60 // NOLINTEND
61 };
62
63 struct Noises {
64 public:
65 // member variables
66 // NOLINTBEGIN
67 ::ll::TypedStorage<8, 120, ::LegacyBlendedNoise const> mTerrainNoise;
68 ::ll::TypedStorage<8, 896, ::CavifierNoises const> mCavifierNoises;
69 ::ll::TypedStorage<8, 248, ::AquiferNoises const> mAquiferNoises;
70 ::ll::TypedStorage<8, 224, ::NoodleCavifierNoises const> mNoodleCavifierNoises;
71 ::ll::TypedStorage<8, 248, ::OreVeinifierNoises const> mOreVeinifierNoises;
72 ::ll::TypedStorage<8, 40, ::PerlinSimplexNoise const> mBlendNoise;
73 ::ll::TypedStorage<8, 40, ::PerlinSimplexNoise const> mSurfaceNoise;
74 ::ll::TypedStorage<8, 904, ::OverworldNoises3d const> mCommonNoise;
75 ::ll::TypedStorage<8, 32, ::DepthBasedBlockSupplier const> mDeepslateSupplier;
76 // NOLINTEND
77
78 public:
79 // prevent constructor by default
80 Noises& operator=(Noises const&);
81 Noises(Noises const&);
82 Noises();
83
84 public:
85 // member functions
86 // NOLINTBEGIN
88
89 MCNAPI ~Noises();
90 // NOLINTEND
91
92 public:
93 // static functions
94 // NOLINTBEGIN
95 MCNAPI static ::OverworldGeneratorMultinoise::Noises
97 // NOLINTEND
98
99 public:
100 // constructor thunks
101 // NOLINTBEGIN
103 // NOLINTEND
104
105 public:
106 // destructor thunk
107 // NOLINTBEGIN
108 MCNAPI void $dtor();
109 // NOLINTEND
110 };
111
112public:
113 // member variables
114 // NOLINTBEGIN
115 ::ll::TypedStorage<8, 2760, ::std::optional<::OverworldGeneratorMultinoise::Noises>> mNoises;
116 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::BiomeSource>> mBiomeSource;
117 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Cavifier>> mCavifier;
118 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::PerlinSimplexNoise>> mMaterialAdjNoise;
119 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ChunkBlender>> mFixedChunkBlender;
120 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ChunkBlenderFactory>> mChunkBlenderFactory;
121 // NOLINTEND
122
123public:
124 // prevent constructor by default
126
127public:
128 // virtual functions
129 // NOLINTBEGIN
130 // vIndex: 0
131 virtual ~OverworldGeneratorMultinoise() /*override*/;
132
133 // vIndex: 41
134 virtual ::BiomeSource const& getBiomeSource() const /*override*/;
135
136 // vIndex: 43
137 virtual ::BlockPos findSpawnPosition() const /*override*/;
138
139 // vIndex: 1
140 virtual ::std::optional<short> getPreliminarySurfaceLevel(::DividedPos2d<4> worldQuartPos) const /*override*/;
141
142 // vIndex: 49
143 virtual int getLevelGenHeight() const /*override*/;
144
145 // vIndex: 48
146 virtual ::Util::MultidimensionalArray<float, 5, 5, 41>
147 generateDensityCellsForChunk(::ChunkPos const& chunkPos) const /*override*/;
148
149 // vIndex: 33
150 virtual bool chunkPosNeedsBlending(::ChunkPos const& cp) /*override*/;
151
152 // vIndex: 54
153 virtual ::PerlinSimplexNoise const& getSurfaceNoise() /*override*/;
154
155 // vIndex: 55
156 virtual ::std::unique_ptr<::PerlinSimplexNoise> const& getMaterialAdjNoise() const /*override*/;
157
158 // vIndex: 47
159 virtual void
160 decorateWorldGenPostProcess(::Biome const&, ::LevelChunk& lc, ::BlockSource& source, ::Random& random) const
161 /*override*/;
162
163 // vIndex: 56
164 virtual void _prepareHeights(
165 ::BlockVolume& box,
166 ::ChunkPos const& chunkPos,
167 ::WorldGenCache const& worldGenCache,
168 ::Aquifer* aquiferPtr,
169 ::std::function<void(::BlockPos const&, ::Block const&, int)>&& tickUpdateFn,
170 bool factorInBeardsAndShavers,
171 ::std::vector<short>* ZXheights,
172 int skipTopN
173 ) /*override*/;
174
175 // vIndex: 51
176 virtual ::std::unique_ptr<::Aquifer> tryMakeAquifer(
177 ::ChunkPos const& chunkPos,
178 ::SurfaceLevelCache const& surfaceLevelCache,
179 short minHeight,
180 short levelGenHeight,
181 short seaLevel
182 ) const /*override*/;
183
184 // vIndex: 50
185 virtual ::std::optional<::XoroshiroPositionalRandomFactory> getXoroshiroPositionalRandomFactory() const
186 /*override*/;
187
188 // vIndex: 52
189 virtual ::ChunkLocalNoiseCache createNoiseCache(::ChunkPos chunkPos) const /*override*/;
190 // NOLINTEND
191
192public:
193 // member functions
194 // NOLINTBEGIN
195 MCAPI OverworldGeneratorMultinoise(::Dimension& dimension, ::LevelSeed64 seed, ::Biome const* biomeOverride);
196
197 MCAPI ::TerrainInfo
198 _attenuateOffsetAndFactor(::DividedPos2d<4> worldQuartPos, ::TerrainInfo defaultTerrainInfo) const;
199
200 MCAPI ::Util::MultidimensionalArray<float, 5, 5, 41> _generateDensityCellsForChunk(
201 ::ChunkPos const& chunkPos,
202 ::WorldGenCache const& worldGenCache,
203 ::NoodleCavifier* noodleCavifier,
204 ::OreVeinifier* oreVeinifier
205 ) const;
206
207 MCAPI ::OverworldGeneratorMultinoise::BlockGenerationResult const _updateNoiseAndGenerateBaseBlock(
208 float noiseValue,
209 ::BlockPos const& worldPosition,
210 short,
211 ::Aquifer* aquiferPtr,
212 bool shouldTickUpdate,
213 ::ChunkBlender const* chunkBlender,
214 ::Block const& stone,
215 ::OreVeinifier* oreVeinifier
216 ) const;
217
218 MCAPI ::std::unique_ptr<::BiomeSource> makeBiomeSource(
219 ::XoroshiroPositionalRandomFactory const& random,
220 ::BiomeRegistry const& biomeRegistry,
221 ::Biome const* overrideBiome
222 );
223 // NOLINTEND
224
225public:
226 // static functions
227 // NOLINTBEGIN
228 MCAPI static ::std::unique_ptr<::PerlinSimplexNoise> createMaterialAdjNoise(uint seed);
229 // NOLINTEND
230
231public:
232 // constructor thunks
233 // NOLINTBEGIN
234 MCAPI void* $ctor(::Dimension& dimension, ::LevelSeed64 seed, ::Biome const* biomeOverride);
235 // NOLINTEND
236
237public:
238 // destructor thunk
239 // NOLINTBEGIN
240 MCAPI void $dtor();
241 // NOLINTEND
242
243public:
244 // virtual function thunks
245 // NOLINTBEGIN
246 MCAPI ::BiomeSource const& $getBiomeSource() const;
247
248 MCAPI ::BlockPos $findSpawnPosition() const;
249
250 MCAPI ::std::optional<short> $getPreliminarySurfaceLevel(::DividedPos2d<4> worldQuartPos) const;
251
252 MCFOLD int $getLevelGenHeight() const;
253
254 MCAPI ::Util::MultidimensionalArray<float, 5, 5, 41>
255 $generateDensityCellsForChunk(::ChunkPos const& chunkPos) const;
256
257 MCAPI bool $chunkPosNeedsBlending(::ChunkPos const& cp);
258
259 MCAPI ::PerlinSimplexNoise const& $getSurfaceNoise();
260
261 MCAPI ::std::unique_ptr<::PerlinSimplexNoise> const& $getMaterialAdjNoise() const;
262
263 MCAPI void
264 $decorateWorldGenPostProcess(::Biome const&, ::LevelChunk& lc, ::BlockSource& source, ::Random& random) const;
265
266 MCAPI void $_prepareHeights(
267 ::BlockVolume& box,
268 ::ChunkPos const& chunkPos,
269 ::WorldGenCache const& worldGenCache,
270 ::Aquifer* aquiferPtr,
271 ::std::function<void(::BlockPos const&, ::Block const&, int)>&& tickUpdateFn,
272 bool factorInBeardsAndShavers,
273 ::std::vector<short>* ZXheights,
274 int skipTopN
275 );
276
277 MCAPI ::std::unique_ptr<::Aquifer> $tryMakeAquifer(
278 ::ChunkPos const& chunkPos,
279 ::SurfaceLevelCache const& surfaceLevelCache,
280 short minHeight,
281 short levelGenHeight,
282 short seaLevel
283 ) const;
284
285 MCAPI ::std::optional<::XoroshiroPositionalRandomFactory> $getXoroshiroPositionalRandomFactory() const;
286
287 MCAPI ::ChunkLocalNoiseCache $createNoiseCache(::ChunkPos chunkPos) const;
288 // NOLINTEND
289
290public:
291 // vftables
292 // NOLINTBEGIN
294
295 MCNAPI static void** $vftableForChunkSource();
296 // NOLINTEND
297};
Definition Aquifer.h:16
Definition BiomeRegistry.h:31
Definition BiomeSource.h:19
Definition Biome.h:26
Definition BlockPos.h:18
Definition BlockSource.h:67
Definition BlockVolume.h:13
Definition Block.h:38
Definition Cavifier.h:10
Definition ChunkBlenderFactory.h:14
Definition ChunkBlender.h:19
Definition ChunkLocalNoiseCache.h:8
Definition ChunkPos.h:11
Definition Dimension.h:83
Definition DividedPos2d.h:7
Definition LevelChunk.h:74
Definition LevelSeed64.h:5
Definition NoodleCavifier.h:12
Definition OreVeinifier.h:13
Definition OverworldGeneratorMultinoise.h:45
static MCAPI void ** $vftableForChunkSource()
static MCAPI void ** $vftableForIPreliminarySurfaceProvider()
Definition OverworldGenerator.h:37
Definition PerlinSimplexNoise.h:13
Definition Random.h:11
Definition SurfaceLevelCache.h:9
Definition WorldGenCache.h:11
Definition XoroshiroPositionalRandomFactory.h:16
STL namespace.
Definition OverworldGeneratorMultinoise.h:54
Definition OverworldGeneratorMultinoise.h:63
MCAPI Noises(::OverworldGeneratorMultinoise::Noises &&)
MCAPI void * $ctor(::OverworldGeneratorMultinoise::Noises &&)
static MCAPI ::OverworldGeneratorMultinoise::Noises make(::XoroshiroPositionalRandomFactory const &randomFactory)
Definition TerrainInfo.h:5