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 // static functions
83 // NOLINTBEGIN
84 MCAPI static ::OverworldGeneratorMultinoise::Noises
85 make(::XoroshiroPositionalRandomFactory const& randomFactory);
86 // NOLINTEND
87 };
88
89public:
90 // member variables
91 // NOLINTBEGIN
92 ::ll::TypedStorage<8, 2760, ::std::optional<::OverworldGeneratorMultinoise::Noises>> mNoises;
93 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::BiomeSource>> mBiomeSource;
94 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Cavifier>> mCavifier;
95 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::PerlinSimplexNoise>> mMaterialAdjNoise;
96 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ChunkBlender>> mFixedChunkBlender;
97 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ChunkBlenderFactory>> mChunkBlenderFactory;
98 // NOLINTEND
99
100public:
101 // prevent constructor by default
102 OverworldGeneratorMultinoise();
103
104public:
105 // virtual functions
106 // NOLINTBEGIN
107 virtual ~OverworldGeneratorMultinoise() /*override*/ = default;
108
109 virtual ::BiomeSource const& getBiomeSource() const /*override*/;
110
111 virtual ::BlockPos findSpawnPosition() const /*override*/;
112
113 virtual ::std::optional<short> getPreliminarySurfaceLevel(::DividedPos2d<4> worldQuartPos) const /*override*/;
114
115 virtual int getLevelGenHeight() const /*override*/;
116
117 virtual ::Util::MultidimensionalArray<float, 5, 5, 41>
118 generateDensityCellsForChunk(::ChunkPos const& chunkPos) const /*override*/;
119
120 virtual void propagateCombinedChunkSource(::ChunkSource* chunkSource) /*override*/;
121
122 virtual bool chunkPosNeedsBlending(::ChunkPos const& cp) /*override*/;
123
124 virtual ::ChunkLocalNoiseCache createNoiseCache(::ChunkPos chunkPos) const /*override*/;
125
126 virtual ::PerlinSimplexNoise const& getSurfaceNoise() /*override*/;
127
128 virtual ::std::unique_ptr<::PerlinSimplexNoise> const& getMaterialAdjNoise() const /*override*/;
129
130 virtual void
131 decorateWorldGenPostProcess(::Biome const&, ::LevelChunk& lc, ::BlockSource& source, ::Random& random) const
132 /*override*/;
133
134 virtual void _prepareHeights(
135 ::BlockVolume& box,
136 ::ChunkPos const& chunkPos,
137 ::ChunkLocalNoiseCache const& chunkLocalNoiseCache,
138 ::Aquifer* aquiferPtr,
139 ::std::function<void(::BlockPos const&, ::Block const&, int)>&& tickUpdateFn,
140 bool factorInBeardsAndShavers,
141 ::std::vector<short>* ZXheights
142 ) /*override*/;
143
144 virtual ::std::unique_ptr<::Aquifer> tryMakeAquifer(
145 ::ChunkPos const& chunkPos,
146 ::SurfaceLevelCache const& surfaceLevelCache,
147 short minHeight,
148 short levelGenHeight,
149 short seaLevel
150 ) const /*override*/;
151
152 virtual ::std::optional<::XoroshiroPositionalRandomFactory> getXoroshiroPositionalRandomFactory() const
153 /*override*/;
154
155 virtual void _clearBlendingCache() /*override*/;
156 // NOLINTEND
157
158public:
159 // member functions
160 // NOLINTBEGIN
161 MCAPI OverworldGeneratorMultinoise(::Dimension& dimension, ::LevelSeed64 seed, ::Biome const* biomeOverride);
162
163 MCAPI ::Util::MultidimensionalArray<float, 5, 5, 41> _generateDensityCellsForChunk(
164 ::ChunkPos const& chunkPos,
165 ::ChunkLocalNoiseCache const& chunkLocalNoiseCache,
166 ::NoodleCavifier* noodleCavifier,
167 ::OreVeinifier* oreVeinifier
168 ) const;
169 // NOLINTEND
170
171public:
172 // static functions
173 // NOLINTBEGIN
174 MCAPI static ::TerrainInfo _attenuateOffsetAndFactor(
175 ::DividedPos2d<4> worldQuartPos,
176 ::TerrainInfo defaultTerrainInfo,
177 ::ChunkBlender const* testFixedChunkBlender,
178 ::ChunkBlenderFactory& chunkBlenderFactory
179 );
180
181 MCAPI static ::ChunkLocalNoiseCache createNoiseCache(
182 ::ChunkPos chunkPos,
183 ::OverworldNoises3d const& overworldNoises3d,
184 ::ChunkBlender const* testFixedChunkBlender,
185 ::ChunkBlenderFactory& chunkBlenderFactory
186 );
187
188 MCAPI static ::std::unique_ptr<::BiomeSource> makeBiomeSource(
189 ::XoroshiroPositionalRandomFactory const& random,
190 ::BiomeRegistry const& biomeRegistry,
191 ::Biome const* overrideBiome,
192 ::BaseGameVersion const& baseGameVersion,
193 ::Experiments const& experiments,
194 ::OverworldNoises3d const& overworldNoises,
195 ::ChunkBlenderFactory& chunkBlenderFactory,
196 ::DimensionHeightRange const& heightRange
197 );
198 // NOLINTEND
199
200public:
201 // constructor thunks
202 // NOLINTBEGIN
203 MCAPI void* $ctor(::Dimension& dimension, ::LevelSeed64 seed, ::Biome const* biomeOverride);
204 // NOLINTEND
205
206public:
207 // virtual function thunks
208 // NOLINTBEGIN
209 MCAPI ::BiomeSource const& $getBiomeSource() const;
210
211 MCAPI ::BlockPos $findSpawnPosition() const;
212
213 MCAPI ::std::optional<short> $getPreliminarySurfaceLevel(::DividedPos2d<4> worldQuartPos) const;
214
215 MCFOLD int $getLevelGenHeight() const;
216
217 MCAPI ::Util::MultidimensionalArray<float, 5, 5, 41>
218 $generateDensityCellsForChunk(::ChunkPos const& chunkPos) const;
219
220 MCAPI void $propagateCombinedChunkSource(::ChunkSource* chunkSource);
221
222 MCAPI bool $chunkPosNeedsBlending(::ChunkPos const& cp);
223
224 MCAPI ::ChunkLocalNoiseCache $createNoiseCache(::ChunkPos chunkPos) const;
225
226 MCAPI ::PerlinSimplexNoise const& $getSurfaceNoise();
227
228 MCAPI ::std::unique_ptr<::PerlinSimplexNoise> const& $getMaterialAdjNoise() const;
229
230 MCAPI void
231 $decorateWorldGenPostProcess(::Biome const&, ::LevelChunk& lc, ::BlockSource& source, ::Random& random) const;
232
233 MCAPI void $_prepareHeights(
234 ::BlockVolume& box,
235 ::ChunkPos const& chunkPos,
236 ::ChunkLocalNoiseCache const& chunkLocalNoiseCache,
237 ::Aquifer* aquiferPtr,
238 ::std::function<void(::BlockPos const&, ::Block const&, int)>&& tickUpdateFn,
239 bool factorInBeardsAndShavers,
240 ::std::vector<short>* ZXheights
241 );
242
243 MCAPI ::std::unique_ptr<::Aquifer> $tryMakeAquifer(
244 ::ChunkPos const& chunkPos,
245 ::SurfaceLevelCache const& surfaceLevelCache,
246 short minHeight,
247 short levelGenHeight,
248 short seaLevel
249 ) const;
250
251 MCAPI ::std::optional<::XoroshiroPositionalRandomFactory> $getXoroshiroPositionalRandomFactory() const;
252
253 MCAPI void $_clearBlendingCache();
254
255
256 // NOLINTEND
257};
Definition Aquifer.h:17
Definition BaseGameVersion.h:8
Definition BiomeRegistry.h:37
Definition BiomeSource.h:23
Definition Biome.h:23
Definition BlockPos.h:17
Definition BlockSource.h:71
Definition BlockVolume.h:14
Definition Block.h:41
Definition Cavifier.h:11
Definition ChunkBlenderFactory.h:16
Definition ChunkBlender.h:19
Definition ChunkLocalNoiseCache.h:8
Definition ChunkPos.h:13
Definition ChunkSource.h:36
Definition DimensionHeightRange.h:5
Definition Dimension.h:86
Definition DividedPos2d.h:7
Definition Experiments.h:14
Definition LevelChunk.h:77
Definition LevelSeed64.h:5
Definition NoodleCavifier.h:14
Definition OreVeinifier.h:15
Definition OverworldGenerator.h:33
Definition PerlinSimplexNoise.h:11
Definition Random.h:10
Definition SurfaceLevelCache.h:9
Definition XoroshiroPositionalRandomFactory.h:15
STL namespace.
Definition OverworldGeneratorMultinoise.h:57
Definition OverworldGeneratorMultinoise.h:66
Definition OverworldNoises3d.h:20
Definition TerrainInfo.h:5