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/world/level/levelgen/WorldGenerator.h"
9
10// auto generated forward declare list
11// clang-format off
12class Biome;
13class BiomeArea;
14class BiomeSource;
15class Block;
16class BlockPos;
17class BlockSource;
18class BlockVolume;
20class BoundingBox;
21class ChunkPos;
22class ChunkViewSource;
23class Dimension;
24class LevelChunk;
25class PerlinNoise;
27class Random;
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 // virtual functions
71 // NOLINTBEGIN
72 // vIndex: 0
73 virtual ~NetherGenerator() /*override*/;
74
75 // vIndex: 11
76 virtual void loadChunk(::LevelChunk& levelChunk, bool forceImmediateReplacementDataLoad) /*override*/;
77
78 // vIndex: 9
79 virtual bool postProcess(::ChunkViewSource& neighborhood) /*override*/;
80
81 // vIndex: 38
82 virtual void
83 prepareHeights(::BlockVolume& box, ::ChunkPos const& chunkPos, bool factorInBeardsAndShavers) /*override*/;
84
85 // vIndex: 39
86 virtual void prepareAndComputeHeights(
87 ::BlockVolume& box,
88 ::ChunkPos const& chunkPos,
89 ::std::vector<short>& ZXheights,
90 bool factorInBeardsAndShavers,
91 int skipTopN
92 ) /*override*/;
93
94 // vIndex: 40
95 virtual ::BiomeArea getBiomeArea(::BoundingBox const& area, uint scale) const /*override*/;
96
97 // vIndex: 41
98 virtual ::BiomeSource const& getBiomeSource() const /*override*/;
99
100 // vIndex: 42
101 virtual ::WorldGenerator::BlockVolumeDimensions getBlockVolumeDimensions() const /*override*/;
102
103 // vIndex: 43
104 virtual ::BlockPos findSpawnPosition() const /*override*/;
105
106 // vIndex: 46
107 virtual void decorateWorldGenLoadChunk(
108 ::Biome const& biome,
109 ::LevelChunk& lc,
110 ::BlockVolumeTarget& target,
111 ::Random& random,
112 ::ChunkPos const& pos
113 ) const /*override*/;
114
115 // vIndex: 47
116 virtual void
117 decorateWorldGenPostProcess(::Biome const& biome, ::LevelChunk& lc, ::BlockSource& source, ::Random& random) const
118 /*override*/;
119 // NOLINTEND
120
121public:
122 // member functions
123 // NOLINTBEGIN
124 MCAPI NetherGenerator(::Dimension& dimension, uint seed, ::Biome const* biomeOverride);
125
126 MCAPI void _prepareHeights(
127 ::BlockVolume& box,
128 ::ChunkPos const& chunkPos,
129 bool ZXheights,
130 ::std::vector<short>* factorInBeardsAndShavers,
131 int skipTopN
132 );
133
134 MCAPI void buildSurfaces(::BlockVolume& blocks, ::LevelChunk& levelChunk, ::ChunkPos const& chunkPos);
135
136 MCAPI ::Util::MultidimensionalArray<float, 5, 5, 17> generateDensityCellsForChunk(::ChunkPos const& chunkPos) const;
137 // NOLINTEND
138
139public:
140 // constructor thunks
141 // NOLINTBEGIN
142 MCAPI void* $ctor(::Dimension& dimension, uint seed, ::Biome const* biomeOverride);
143 // NOLINTEND
144
145public:
146 // destructor thunk
147 // NOLINTBEGIN
148 MCAPI void $dtor();
149 // NOLINTEND
150
151public:
152 // virtual function thunks
153 // NOLINTBEGIN
154 MCAPI void $loadChunk(::LevelChunk& levelChunk, bool forceImmediateReplacementDataLoad);
155
156 MCAPI bool $postProcess(::ChunkViewSource& neighborhood);
157
158 MCAPI void $prepareHeights(::BlockVolume& box, ::ChunkPos const& chunkPos, bool factorInBeardsAndShavers);
159
160 MCAPI void $prepareAndComputeHeights(
161 ::BlockVolume& box,
162 ::ChunkPos const& chunkPos,
163 ::std::vector<short>& ZXheights,
164 bool factorInBeardsAndShavers,
165 int skipTopN
166 );
167
168 MCAPI ::BiomeArea $getBiomeArea(::BoundingBox const& area, uint scale) const;
169
170 MCAPI ::BiomeSource const& $getBiomeSource() const;
171
172 MCFOLD ::WorldGenerator::BlockVolumeDimensions $getBlockVolumeDimensions() const;
173
174 MCAPI ::BlockPos $findSpawnPosition() const;
175
176 MCFOLD void $decorateWorldGenLoadChunk(
177 ::Biome const& biome,
178 ::LevelChunk& lc,
179 ::BlockVolumeTarget& target,
180 ::Random& random,
181 ::ChunkPos const& pos
182 ) const;
183
184 MCFOLD void
185 $decorateWorldGenPostProcess(::Biome const& biome, ::LevelChunk& lc, ::BlockSource& source, ::Random& random) const;
186 // NOLINTEND
187
188public:
189 // vftables
190 // NOLINTBEGIN
191 MCAPI static void** $vftableForIPreliminarySurfaceProvider();
192
193 MCAPI static void** $vftableForChunkSource();
194 // NOLINTEND
195};
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 Block.h:36
Definition BoundingBox.h:18
Definition ChunkPos.h:11
Definition ChunkViewSource.h:22
Definition Dimension.h:83
Definition LevelChunk.h:73
Definition NetherGenerator.h:30
Definition PerlinNoise.h:13
Definition PerlinSimplexNoise.h:13
Definition Random.h:16
Definition MultidimensionalArray.h:12
Definition WorldGenerator.h:30
STL namespace.
Definition NetherGenerator.h:40
Definition WorldGenerator.h:38