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 // virtual functions
77 // NOLINTBEGIN
78 // vIndex: 0
79 virtual ~TheEndGenerator() /*override*/;
80
81 // vIndex: 11
82 virtual void loadChunk(::LevelChunk& lc, bool forceImmediateReplacementDataLoad) /*override*/;
83
84 // vIndex: 9
85 virtual bool postProcess(::ChunkViewSource& neighborhood) /*override*/;
86
87 // vIndex: 13
88 virtual void
89 postProcessMobsAt(::BlockSource& region, int chunkWestBlock, int chunkNorthBlock, ::Random& random) /*override*/;
90
91 // vIndex: 38
92 virtual void
93 prepareHeights(::BlockVolume& box, ::ChunkPos const& chunkPos, bool factorInBeardsAndShavers) /*override*/;
94
95 // vIndex: 39
96 virtual void prepareAndComputeHeights(
97 ::BlockVolume& box,
98 ::ChunkPos const& chunkPos,
99 ::std::vector<short>& ZXheights,
100 bool factorInBeardsAndShavers,
101 int skipTopN
102 ) /*override*/;
103
104 // vIndex: 1
105 virtual ::std::optional<short> getPreliminarySurfaceLevel(::DividedPos2d<4> worldQuartPos) const /*override*/;
106
107 // vIndex: 40
108 virtual ::BiomeArea getBiomeArea(::BoundingBox const& area, uint scale) const /*override*/;
109
110 // vIndex: 41
111 virtual ::BiomeSource const& getBiomeSource() const /*override*/;
112
113 // vIndex: 43
114 virtual ::BlockPos findSpawnPosition() const /*override*/;
115
116 // vIndex: 42
117 virtual ::WorldGenerator::BlockVolumeDimensions getBlockVolumeDimensions() const /*override*/;
118
119 // vIndex: 46
120 virtual void decorateWorldGenLoadChunk(
121 ::Biome const& biome,
122 ::LevelChunk& lc,
123 ::BlockVolumeTarget& target,
124 ::Random& random,
125 ::ChunkPos const& pos
126 ) const /*override*/;
127
128 // vIndex: 47
129 virtual void
130 decorateWorldGenPostProcess(::Biome const& biome, ::LevelChunk& lc, ::BlockSource& source, ::Random& random) const
131 /*override*/;
132 // NOLINTEND
133
134public:
135 // member functions
136 // NOLINTBEGIN
137 MCAPI TheEndGenerator(::Dimension& dimension, uint seed, ::Biome const* overrideBiome);
138
139 MCAPI void _prepareHeights(
140 ::BlockVolume& box,
141 ::ChunkPos const& chunkPos,
142 bool ZXheights,
143 ::std::vector<short>* factorInBeardsAndShavers,
144 int skipTopN
145 );
146
147 MCAPI void buildSurfaces(::BlockVolume& box, ::ChunkPos const& levelChunk, ::LevelChunk& chunkPos);
148
149 MCAPI ::Util::MultidimensionalArray<float, 3, 3, 33> generateDensityCellsForChunk(::ChunkPos const& chunkPos) const;
150
151 MCAPI float getIslandHeightValue(int chunkX, int chunkZ, int cellOffsetX, int cellOffsetZ) const;
152 // NOLINTEND
153
154public:
155 // constructor thunks
156 // NOLINTBEGIN
157 MCAPI void* $ctor(::Dimension& dimension, uint seed, ::Biome const* overrideBiome);
158 // NOLINTEND
159
160public:
161 // destructor thunk
162 // NOLINTBEGIN
163 MCAPI void $dtor();
164 // NOLINTEND
165
166public:
167 // virtual function thunks
168 // NOLINTBEGIN
169 MCAPI void $loadChunk(::LevelChunk& lc, bool forceImmediateReplacementDataLoad);
170
171 MCAPI bool $postProcess(::ChunkViewSource& neighborhood);
172
173 MCAPI void $postProcessMobsAt(::BlockSource& region, int chunkWestBlock, int chunkNorthBlock, ::Random& random);
174
175 MCAPI void $prepareHeights(::BlockVolume& box, ::ChunkPos const& chunkPos, bool factorInBeardsAndShavers);
176
177 MCAPI void $prepareAndComputeHeights(
178 ::BlockVolume& box,
179 ::ChunkPos const& chunkPos,
180 ::std::vector<short>& ZXheights,
181 bool factorInBeardsAndShavers,
182 int skipTopN
183 );
184
185 MCAPI ::std::optional<short> $getPreliminarySurfaceLevel(::DividedPos2d<4> worldQuartPos) const;
186
187 MCAPI ::BiomeArea $getBiomeArea(::BoundingBox const& area, uint scale) const;
188
189 MCAPI ::BiomeSource const& $getBiomeSource() const;
190
191 MCFOLD ::BlockPos $findSpawnPosition() const;
192
193 MCFOLD ::WorldGenerator::BlockVolumeDimensions $getBlockVolumeDimensions() const;
194
195 MCFOLD void $decorateWorldGenLoadChunk(
196 ::Biome const& biome,
197 ::LevelChunk& lc,
198 ::BlockVolumeTarget& target,
199 ::Random& random,
200 ::ChunkPos const& pos
201 ) const;
202
203 MCFOLD void
204 $decorateWorldGenPostProcess(::Biome const& biome, ::LevelChunk& lc, ::BlockSource& source, ::Random& random) const;
205 // NOLINTEND
206
207public:
208 // vftables
209 // NOLINTBEGIN
210 MCAPI static void** $vftableForChunkSource();
211
212 MCAPI static void** $vftableForIPreliminarySurfaceProvider();
213 // NOLINTEND
214};
Definition BiomeArea.h:11
Definition BiomeSource.h:16
Definition Biome.h:27
Definition BlockPos.h:18
Definition BlockSource.h:67
Definition BlockVolumeTarget.h:24
Definition BlockVolume.h:11
Definition BoundingBox.h:18
Definition ChunkPos.h:11
Definition ChunkViewSource.h:22
Definition Dimension.h:83
Definition DividedPos2d.h:7
Definition FixedBiomeSource.h:19
Definition LevelChunk.h:73
Definition PerlinNoise.h:13
Definition PerlinSimplexNoise.h:13
Definition Random.h:16
Definition SimplexNoise.h:12
Definition TheEndGenerator.h:32
Definition MultidimensionalArray.h:12
Definition WorldGenerator.h:30
STL namespace.
Definition TheEndGenerator.h:44
Definition WorldGenerator.h:38
Definition Alias.h:14