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