LeviLamina
Loading...
Searching...
No Matches
TheEndGenerator.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/world/level/DividedPos2d.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 BlockPos;
17class BlockSource;
18class BlockVolume;
20class BoundingBox;
21class ChunkPos;
22class ChunkViewSource;
23class Dimension;
25class LevelChunk;
26class PerlinNoise;
28class Random;
29class SimplexNoise;
30// clang-format on
31
33public:
34 // TheEndGenerator inner types declare
35 // clang-format off
36 struct ThreadData;
37 // clang-format on
38
39 // TheEndGenerator inner types define
41
43
44 struct ThreadData {
45 public:
46 // member variables
47 // NOLINTBEGIN
49 // NOLINTEND
50
51 public:
52 // prevent constructor by default
53 ThreadData& operator=(ThreadData const&);
54 ThreadData(ThreadData const&);
55 ThreadData();
56 };
57
58public:
59 // member variables
60 // NOLINTBEGIN
61 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::PerlinNoise>> mLPerlinNoise1;
62 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::PerlinNoise>> mLPerlinNoise2;
63 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::PerlinNoise>> mPerlinNoise1;
64 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::SimplexNoise>> mIslandNoise;
65 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::PerlinSimplexNoise>> mMaterialAdjNoise;
66 ::ll::TypedStorage<
67 8,
68 168,
69 ::Bedrock::Threading::
70 InstancedThreadLocal<::TheEndGenerator::ThreadData, ::std::allocator<::TheEndGenerator::ThreadData>>>
71 generatorHelpersPool;
72 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::FixedBiomeSource>> mBiomeSource;
73 // NOLINTEND
74
75public:
76 // prevent constructor by default
78
79public:
80 // virtual functions
81 // NOLINTBEGIN
82 // vIndex: 0
83 virtual ~TheEndGenerator() /*override*/;
84
85 // vIndex: 11
86 virtual void loadChunk(::LevelChunk& lc, bool forceImmediateReplacementDataLoad) /*override*/;
87
88 // vIndex: 9
89 virtual bool postProcess(::ChunkViewSource& neighborhood) /*override*/;
90
91 // vIndex: 13
92 virtual void
93 postProcessMobsAt(::BlockSource& region, int chunkWestBlock, int chunkNorthBlock, ::Random& random) /*override*/;
94
95 // vIndex: 38
96 virtual void
97 prepareHeights(::BlockVolume& box, ::ChunkPos const& chunkPos, bool factorInBeardsAndShavers) /*override*/;
98
99 // vIndex: 39
100 virtual void prepareAndComputeHeights(
101 ::BlockVolume& box,
102 ::ChunkPos const& chunkPos,
103 ::std::vector<short>& ZXheights,
104 bool factorInBeardsAndShavers,
105 int skipTopN
106 ) /*override*/;
107
108 // vIndex: 1
109 virtual ::std::optional<short> getPreliminarySurfaceLevel(::DividedPos2d<4> worldQuartPos) const /*override*/;
110
111 // vIndex: 40
112 virtual ::BiomeArea getBiomeArea(::BoundingBox const& area, uint scale) const /*override*/;
113
114 // vIndex: 41
115 virtual ::BiomeSource const& getBiomeSource() const /*override*/;
116
117 // vIndex: 43
118 virtual ::BlockPos findSpawnPosition() const /*override*/;
119
120 // vIndex: 42
121 virtual ::WorldGenerator::BlockVolumeDimensions getBlockVolumeDimensions() const /*override*/;
122
123 // vIndex: 46
124 virtual void decorateWorldGenLoadChunk(
125 ::Biome const& biome,
126 ::LevelChunk& lc,
127 ::BlockVolumeTarget& target,
128 ::Random& random,
129 ::ChunkPos const& pos
130 ) const /*override*/;
131
132 // vIndex: 47
133 virtual void
134 decorateWorldGenPostProcess(::Biome const& biome, ::LevelChunk& lc, ::BlockSource& source, ::Random& random) const
135 /*override*/;
136 // NOLINTEND
137
138public:
139 // member functions
140 // NOLINTBEGIN
141 MCAPI TheEndGenerator(::Dimension& dimension, uint seed, ::Biome const* overrideBiome);
142
143 MCAPI void _prepareHeights(
144 ::BlockVolume& box,
145 ::ChunkPos const& chunkPos,
146 bool factorInBeardsAndShavers,
147 ::std::vector<short>* ZXheights,
148 int skipTopN
149 );
150
151 MCAPI void buildSurfaces(::BlockVolume& box, ::ChunkPos const& chunkPos, ::LevelChunk& levelChunk);
152
153 MCAPI ::Util::MultidimensionalArray<float, 3, 3, 33> generateDensityCellsForChunk(::ChunkPos const& chunkPos) const;
154
155 MCAPI float getIslandHeightValue(int chunkX, int chunkZ, int cellOffsetX, int cellOffsetZ) const;
156 // NOLINTEND
157
158public:
159 // constructor thunks
160 // NOLINTBEGIN
161 MCAPI void* $ctor(::Dimension& dimension, uint seed, ::Biome const* overrideBiome);
162 // NOLINTEND
163
164public:
165 // destructor thunk
166 // NOLINTBEGIN
167 MCAPI void $dtor();
168 // NOLINTEND
169
170public:
171 // virtual function thunks
172 // NOLINTBEGIN
173 MCAPI void $loadChunk(::LevelChunk& lc, bool forceImmediateReplacementDataLoad);
174
175 MCAPI bool $postProcess(::ChunkViewSource& neighborhood);
176
177 MCAPI void $postProcessMobsAt(::BlockSource& region, int chunkWestBlock, int chunkNorthBlock, ::Random& random);
178
179 MCAPI void $prepareHeights(::BlockVolume& box, ::ChunkPos const& chunkPos, bool factorInBeardsAndShavers);
180
181 MCAPI void $prepareAndComputeHeights(
182 ::BlockVolume& box,
183 ::ChunkPos const& chunkPos,
184 ::std::vector<short>& ZXheights,
185 bool factorInBeardsAndShavers,
186 int skipTopN
187 );
188
189 MCAPI ::std::optional<short> $getPreliminarySurfaceLevel(::DividedPos2d<4> worldQuartPos) const;
190
191 MCAPI ::BiomeArea $getBiomeArea(::BoundingBox const& area, uint scale) const;
192
193 MCAPI ::BiomeSource const& $getBiomeSource() const;
194
195 MCFOLD ::BlockPos $findSpawnPosition() const;
196
197 MCFOLD ::WorldGenerator::BlockVolumeDimensions $getBlockVolumeDimensions() const;
198
199 MCFOLD void $decorateWorldGenLoadChunk(
200 ::Biome const& biome,
201 ::LevelChunk& lc,
202 ::BlockVolumeTarget& target,
203 ::Random& random,
204 ::ChunkPos const& pos
205 ) const;
206
207 MCFOLD void
208 $decorateWorldGenPostProcess(::Biome const& biome, ::LevelChunk& lc, ::BlockSource& source, ::Random& random) const;
209 // NOLINTEND
210
211public:
212 // vftables
213 // NOLINTBEGIN
214 MCNAPI static void** $vftableForChunkSource();
215
217 // NOLINTEND
218};
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 BoundingBox.h:13
Definition ChunkPos.h:11
Definition ChunkViewSource.h:22
Definition Dimension.h:83
Definition DividedPos2d.h:7
Definition FixedBiomeSource.h:20
Definition LevelChunk.h:74
Definition PerlinNoise.h:13
Definition PerlinSimplexNoise.h:13
Definition Random.h:11
Definition SimplexNoise.h:14
Definition TheEndGenerator.h:32
static MCAPI void ** $vftableForChunkSource()
static MCAPI void ** $vftableForIPreliminarySurfaceProvider()
Definition MultidimensionalArray.h:12
Definition WorldGenerator.h:30
STL namespace.
Definition TheEndGenerator.h:44
Definition WorldGenerator.h:38
Definition Alias.h:14