LeviLamina
Loading...
Searching...
No Matches
DensityFunctionWorldGenerator.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/Random.h"
8#include "mc/util/random/XoroshiroRandom.h"
9#include "mc/world/level/DividedPos2d.h"
10#include "mc/world/level/levelgen/WorldGenerator.h"
11#include "mc/world/level/levelgen/density/DensityCalculators.h"
12#include "mc/world/level/levelgen/synth/PerlinSimplexNoise.h"
13
14// auto generated forward declare list
15// clang-format off
16class Biome;
17class BiomeArea;
18class BiomeSource;
19class Block;
20class BlockPos;
21class BlockSource;
22class BlockVolume;
24class BoundingBox;
25class ChunkPos;
26class ChunkViewSource;
27class LevelChunk;
28// clang-format on
29
30class DensityFunctionWorldGenerator : public ::WorldGenerator {
31public:
32 // DensityFunctionWorldGenerator inner types declare
33 // clang-format off
34 struct ThreadData;
35 // clang-format on
36
37 // DensityFunctionWorldGenerator inner types define
38 struct ThreadData {
39 public:
40 // member variables
41 // NOLINTBEGIN
42 ::ll::TypedStorage<8, 2576, ::Random> random;
43 // NOLINTEND
44 };
45
46public:
47 // member variables
48 // NOLINTBEGIN
49 ::ll::TypedStorage<
50 8,
51 168,
54 ::std::allocator<::DensityFunctionWorldGenerator::ThreadData>>>
55 generatorHelpersPool;
56 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::BiomeSource>> mBiomeSource;
57 ::ll::TypedStorage<8, 32, ::DensityCalculators> mDensityCalculators;
58 ::ll::TypedStorage<8, 8, ::gsl::not_null<::Block const*>> mFillBlock;
59 ::ll::TypedStorage<8, 2576, ::Random> mMaterialAdjRandom;
60 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::PerlinSimplexNoise>> mMaterialAdjNoise;
61 ::ll::TypedStorage<8, 64, ::XoroshiroRandom> mSurfaceRandom;
62 ::ll::TypedStorage<8, 40, ::PerlinSimplexNoise> mSurfaceNoise;
63 // NOLINTEND
64
65public:
66 // virtual functions
67 // NOLINTBEGIN
68 virtual ~DensityFunctionWorldGenerator() /*override*/ = default;
69
70 virtual void loadChunk(::LevelChunk& lc, bool forceImmediateReplacementDataLoad) /*override*/;
71
72 virtual bool structurePostProcessChunk(::ChunkViewSource&) /*override*/;
73
74 virtual bool decorationPostProcessChunk(::ChunkViewSource&) /*override*/;
75
76 virtual void prepareHeights(::BlockVolume&, ::ChunkPos const&, ::std::vector<short>*, bool) /*override*/;
77
78 virtual ::BiomeArea getBiomeArea(::BoundingBox const&, uint) const /*override*/;
79
80 virtual ::BiomeSource const& getBiomeSource() const /*override*/;
81
82 virtual ::WorldGenerator::BlockVolumeDimensions getBlockVolumeDimensions() const /*override*/;
83
84 virtual ::BlockPos findSpawnPosition() const /*override*/;
85
86 virtual ::std::optional<short> getPreliminarySurfaceLevel(::DividedPos2d<4>) const /*override*/;
87
88 virtual void
89 decorateWorldGenLoadChunk(::Biome const&, ::LevelChunk&, ::BlockVolumeTarget&, ::Random&, ::ChunkPos const&) const
90 /*override*/;
91
92 virtual void decorateWorldGenPostProcess(::Biome const&, ::LevelChunk&, ::BlockSource&, ::Random&) const
93 /*override*/;
94 // NOLINTEND
95
96public:
97 // virtual function thunks
98 // NOLINTBEGIN
99
100 // NOLINTEND
101};
Definition InstancedThreadLocal.h:8
Definition BiomeArea.h:11
Definition BiomeSource.h:20
Definition Biome.h:23
Definition BlockPos.h:19
Definition BlockSource.h:68
Definition BlockVolumeTarget.h:29
Definition BlockVolume.h:13
Definition Block.h:43
Definition BoundingBox.h:13
Definition ChunkPos.h:11
Definition ChunkViewSource.h:22
Definition DensityFunctionWorldGenerator.h:30
Definition DividedPos2d.h:7
Definition LevelChunk.h:79
Definition Random.h:10
STL namespace.
Definition DensityFunctionWorldGenerator.h:38
Definition WorldGenerator.h:39