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