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