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
30class NetherGenerator : public ::WorldGenerator {
31public:
32 // NetherGenerator inner types declare
33 // clang-format off
34 struct ThreadData;
35 // clang-format on
36
37 // NetherGenerator inner types define
38 struct ThreadData {
39 public:
40 // member variables
41 // NOLINTBEGIN
42 ::ll::TypedStorage<8, 2560, ::Random> random;
43 ::ll::TypedStorage<8, 262144, ::std::array<::Block const*, 32768>> blockBuffer;
44 // NOLINTEND
45 };
46
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
71 NetherGenerator();
72
73public:
74 // virtual functions
75 // NOLINTBEGIN
76 virtual ~NetherGenerator() /*override*/ = default;
77
78 virtual void loadChunk(::LevelChunk& levelChunk, bool forceImmediateReplacementDataLoad) /*override*/;
79
80 virtual bool structurePostProcessChunk(::ChunkViewSource& neighborhoodIn) /*override*/;
81
82 virtual bool decorationPostProcessChunk(::ChunkViewSource& neighborhood) /*override*/;
83
84 virtual void prepareHeights(
85 ::BlockVolume& box,
86 ::ChunkPos const& chunkPos,
87 ::std::vector<short>* ZXheights,
88 bool factorInBeardsAndShavers
89 ) /*override*/;
90
91 virtual ::BiomeArea getBiomeArea(::BoundingBox const& area, uint scale) const /*override*/;
92
93 virtual ::BiomeSource const& getBiomeSource() const /*override*/;
94
95 virtual ::WorldGenerator::BlockVolumeDimensions getBlockVolumeDimensions() const /*override*/;
96
97 virtual ::BlockPos findSpawnPosition() const /*override*/;
98
99 virtual void decorateWorldGenLoadChunk(
100 ::Biome const& biome,
101 ::LevelChunk& lc,
102 ::BlockVolumeTarget& target,
103 ::Random& random,
104 ::ChunkPos const& pos
105 ) const /*override*/;
106
107 virtual void
108 decorateWorldGenPostProcess(::Biome const& biome, ::LevelChunk& lc, ::BlockSource& source, ::Random& random) const
109 /*override*/;
110 // NOLINTEND
111
112public:
113 // member functions
114 // NOLINTBEGIN
115 MCAPI NetherGenerator(::Dimension& dimension, uint seed, ::Biome const* biomeOverride);
116 // NOLINTEND
117
118public:
119 // constructor thunks
120 // NOLINTBEGIN
121 MCAPI void* $ctor(::Dimension& dimension, uint seed, ::Biome const* biomeOverride);
122 // NOLINTEND
123
124public:
125 // virtual function thunks
126 // NOLINTBEGIN
127 MCAPI void $loadChunk(::LevelChunk& levelChunk, bool forceImmediateReplacementDataLoad);
128
129 MCAPI bool $structurePostProcessChunk(::ChunkViewSource& neighborhoodIn);
130
131 MCAPI bool $decorationPostProcessChunk(::ChunkViewSource& neighborhood);
132
133 MCAPI void $prepareHeights(
134 ::BlockVolume& box,
135 ::ChunkPos const& chunkPos,
136 ::std::vector<short>* ZXheights,
137 bool factorInBeardsAndShavers
138 );
139
140 MCAPI ::BiomeArea $getBiomeArea(::BoundingBox const& area, uint scale) const;
141
142 MCAPI ::BiomeSource const& $getBiomeSource() const;
143
144 MCAPI ::WorldGenerator::BlockVolumeDimensions $getBlockVolumeDimensions() const;
145
146 MCAPI ::BlockPos $findSpawnPosition() const;
147
148 MCAPI void $decorateWorldGenLoadChunk(
149 ::Biome const& biome,
150 ::LevelChunk& lc,
151 ::BlockVolumeTarget& target,
152 ::Random& random,
153 ::ChunkPos const& pos
154 ) const;
155
156 MCAPI void
157 $decorateWorldGenPostProcess(::Biome const& biome, ::LevelChunk& lc, ::BlockSource& source, ::Random& random) const;
158
159
160 // NOLINTEND
161};
Definition BiomeArea.h:10
Definition BiomeSource.h:23
Definition Biome.h:23
Definition BlockPos.h:17
Definition BlockSource.h:71
Definition BlockVolumeTarget.h:28
Definition BlockVolume.h:14
Definition Block.h:41
Definition BoundingBox.h:13
Definition ChunkPos.h:13
Definition ChunkViewSource.h:22
Definition Dimension.h:86
Definition LevelChunk.h:77
Definition PerlinNoise.h:12
Definition PerlinSimplexNoise.h:11
Definition Random.h:10
Definition MultidimensionalArray.h:12
STL namespace.
Definition NetherGenerator.h:38
Definition WorldGenerator.h:43