LeviLamina
Loading...
Searching...
No Matches
NetherGenerator.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/threading/InstancedThreadLocal.h"
7#include "mc/util/MultidimensionalArray.h"
8#include "mc/util/Random.h"
9#include "mc/world/level/levelgen/WorldGenerator.h"
10
11// auto generated forward declare list
12// clang-format off
13class Biome;
14class BiomeArea;
15class BiomeSource;
16class Block;
17class BlockPos;
18class BlockSource;
19class BlockVolume;
21class BoundingBox;
22class ChunkPos;
23class ChunkViewSource;
24class Dimension;
25class LevelChunk;
26class PerlinNoise;
28// clang-format on
29
31public:
32 // NetherGenerator inner types declare
33 // clang-format off
34 struct ThreadData;
35 // clang-format on
36
37 // NetherGenerator inner types define
39
40 struct ThreadData {
41 public:
42 // member variables
43 // NOLINTBEGIN
44 ::ll::TypedStorage<8, 2568, ::Random> random;
45 ::ll::TypedStorage<8, 262144, ::std::array<::Block const*, 32768>> blockBuffer;
46 // NOLINTEND
47 };
48
49public:
50 // member variables
51 // NOLINTBEGIN
52 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::PerlinNoise>> lperlinNoise1;
53 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::PerlinNoise>> lperlinNoise2;
54 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::PerlinNoise>> perlinNoise1;
55 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::PerlinNoise>> perlinNoise2;
56 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::PerlinNoise>> scaleNoise;
57 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::PerlinNoise>> depthNoise;
58 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::PerlinSimplexNoise>> surfaceNoise;
59 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::PerlinSimplexNoise>> mMaterialAdjNoise;
60 ::ll::TypedStorage<
61 8,
62 168,
63 ::Bedrock::Threading::
64 InstancedThreadLocal<::NetherGenerator::ThreadData, ::std::allocator<::NetherGenerator::ThreadData>>>
65 generatorHelpersPool;
66 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::BiomeSource>> mBiomeSource;
67 // NOLINTEND
68
69public:
70 // prevent constructor by default
72
73public:
74 // virtual functions
75 // NOLINTBEGIN
76 // vIndex: 0
77 virtual ~NetherGenerator() /*override*/;
78
79 // vIndex: 11
80 virtual void loadChunk(::LevelChunk& lc, bool forceImmediateReplacementDataLoad) /*override*/;
81
82 // vIndex: 9
83 virtual bool postProcess(::ChunkViewSource& neighborhood) /*override*/;
84
85 // vIndex: 38
86 virtual void
87 prepareHeights(::BlockVolume& box, ::ChunkPos const& chunkPos, bool factorInBeardsAndShavers) /*override*/;
88
89 // vIndex: 39
90 virtual void prepareAndComputeHeights(
91 ::BlockVolume& box,
92 ::ChunkPos const& chunkPos,
93 ::std::vector<short>& ZXheights,
94 bool factorInBeardsAndShavers,
95 int skipTopN
96 ) /*override*/;
97
98 // vIndex: 40
99 virtual ::BiomeArea getBiomeArea(::BoundingBox const& area, uint scale) const /*override*/;
100
101 // vIndex: 41
102 virtual ::BiomeSource const& getBiomeSource() const /*override*/;
103
104 // vIndex: 42
105 virtual ::WorldGenerator::BlockVolumeDimensions getBlockVolumeDimensions() const /*override*/;
106
107 // vIndex: 43
108 virtual ::BlockPos findSpawnPosition() const /*override*/;
109
110 // vIndex: 46
111 virtual void decorateWorldGenLoadChunk(
112 ::Biome const& biome,
113 ::LevelChunk& lc,
114 ::BlockVolumeTarget& target,
115 ::Random& random,
116 ::ChunkPos const& pos
117 ) const /*override*/;
118
119 // vIndex: 47
120 virtual void
121 decorateWorldGenPostProcess(::Biome const& biome, ::LevelChunk& lc, ::BlockSource& source, ::Random& random) const
122 /*override*/;
123 // NOLINTEND
124
125public:
126 // member functions
127 // NOLINTBEGIN
128 MCAPI NetherGenerator(::Dimension& dimension, uint seed, ::Biome const* biomeOverride);
129
130 MCAPI void _prepareHeights(
131 ::BlockVolume& box,
132 ::ChunkPos const& chunkPos,
133 bool factorInBeardsAndShavers,
134 ::std::vector<short>* ZXheights,
135 int skipTopN
136 );
137
138 MCAPI void buildSurfaces(::BlockVolume& blocks, ::LevelChunk& levelChunk, ::ChunkPos const& chunkPos);
139
140 MCAPI ::Util::MultidimensionalArray<float, 5, 5, 17> generateDensityCellsForChunk(::ChunkPos const& chunkPos) const;
141 // NOLINTEND
142
143public:
144 // constructor thunks
145 // NOLINTBEGIN
146 MCAPI void* $ctor(::Dimension& dimension, uint seed, ::Biome const* biomeOverride);
147 // NOLINTEND
148
149public:
150 // destructor thunk
151 // NOLINTBEGIN
152 MCAPI void $dtor();
153 // NOLINTEND
154
155public:
156 // virtual function thunks
157 // NOLINTBEGIN
158 MCAPI void $loadChunk(::LevelChunk& lc, bool forceImmediateReplacementDataLoad);
159
160 MCAPI bool $postProcess(::ChunkViewSource& neighborhood);
161
162 MCAPI void $prepareHeights(::BlockVolume& box, ::ChunkPos const& chunkPos, bool factorInBeardsAndShavers);
163
164 MCAPI void $prepareAndComputeHeights(
165 ::BlockVolume& box,
166 ::ChunkPos const& chunkPos,
167 ::std::vector<short>& ZXheights,
168 bool factorInBeardsAndShavers,
169 int skipTopN
170 );
171
172 MCAPI ::BiomeArea $getBiomeArea(::BoundingBox const& area, uint scale) const;
173
174 MCAPI ::BiomeSource const& $getBiomeSource() const;
175
176 MCFOLD ::WorldGenerator::BlockVolumeDimensions $getBlockVolumeDimensions() const;
177
178 MCAPI ::BlockPos $findSpawnPosition() const;
179
180 MCFOLD void $decorateWorldGenLoadChunk(
181 ::Biome const& biome,
182 ::LevelChunk& lc,
183 ::BlockVolumeTarget& target,
184 ::Random& random,
185 ::ChunkPos const& pos
186 ) const;
187
188 MCFOLD void
189 $decorateWorldGenPostProcess(::Biome const& biome, ::LevelChunk& lc, ::BlockSource& source, ::Random& random) const;
190 // NOLINTEND
191
192public:
193 // vftables
194 // NOLINTBEGIN
196
197 MCNAPI static void** $vftableForChunkSource();
198 // NOLINTEND
199};
Definition BiomeArea.h:11
Definition BiomeSource.h:19
Definition Biome.h:26
Definition BlockPos.h:18
Definition BlockSource.h:67
Definition BlockVolumeTarget.h:24
Definition BlockVolume.h:13
Definition Block.h:38
Definition BoundingBox.h:13
Definition ChunkPos.h:11
Definition ChunkViewSource.h:22
Definition Dimension.h:83
Definition LevelChunk.h:74
Definition NetherGenerator.h:30
static MCAPI void ** $vftableForIPreliminarySurfaceProvider()
static MCAPI void ** $vftableForChunkSource()
Definition PerlinNoise.h:13
Definition PerlinSimplexNoise.h:13
Definition Random.h:11
Definition MultidimensionalArray.h:12
Definition WorldGenerator.h:30
STL namespace.
Definition NetherGenerator.h:40
Definition WorldGenerator.h:38