LeviLamina
Loading...
Searching...
No Matches
FlatWorldGenerator.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/buffer_span.h"
7#include "mc/world/level/block/BlockVolume.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;
19class BoundingBox;
20class ChunkPos;
21class ChunkViewSource;
22class Dimension;
25class HashedString;
26class LevelChunk;
27class Random;
28namespace Json { class Value; }
29// clang-format on
30
31class FlatWorldGenerator : public ::WorldGenerator {
32public:
33 // FlatWorldGenerator inner types define
34 using LayerList = ::std::vector<::Block const*>;
35
36public:
37 // member variables
38 // NOLINTBEGIN
39 ::ll::TypedStorage<8, 24, ::std::vector<::Block const*>> mPrototypeBlocks;
40 ::ll::TypedStorage<8, 40, ::BlockVolume> mPrototype;
41 ::ll::TypedStorage<1, 1, bool> mIsVoidWorld;
42 ::ll::TypedStorage<8, 8, ::Biome const*> mBiome;
43 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::FixedBiomeSource>> mBiomeSource;
44 ::ll::TypedStorage<2, 2, short> mMaxHeight;
45 // NOLINTEND
46
47public:
48 // prevent constructor by default
49 FlatWorldGenerator();
50
51public:
52 // virtual functions
53 // NOLINTBEGIN
54 virtual void loadChunk(::LevelChunk& lc, bool forceImmediateReplacementDataLoad) /*override*/;
55
56 virtual bool structurePostProcessChunk(::ChunkViewSource&) /*override*/;
57
58 virtual bool decorationPostProcessChunk(::ChunkViewSource& neighborhood) /*override*/;
59
60 virtual ::HashedString findStructureFeatureTypeAt(::BlockPos const& pos) /*override*/;
61
62 virtual bool isStructureFeatureTypeAt(::BlockPos const& pos, ::HashedString type) const /*override*/;
63
64 virtual bool findNearestStructureFeature(
65 ::HashedString feature,
66 ::BlockPos const& origin,
67 ::BlockPos& pos,
68 bool mustBeInNewChunks,
69 ::std::optional<::HashedString> biomeTag
70 ) /*override*/;
71
72 virtual void
73 prepareHeights(::BlockVolume& box, ::ChunkPos const&, ::std::vector<short>* zxHeights, bool) /*override*/;
74
75 virtual void garbageCollectBlueprints(::buffer_span<::ChunkPos> activeChunks) /*override*/;
76
77 virtual ::BiomeArea getBiomeArea(::BoundingBox const& area, uint scale) const /*override*/;
78
79 virtual ::BlockPos findSpawnPosition() const /*override*/;
80
81 virtual ::BiomeSource const& getBiomeSource() const /*override*/;
82
83 virtual ::WorldGenerator::BlockVolumeDimensions getBlockVolumeDimensions() const /*override*/;
84
85 virtual void
86 decorateWorldGenLoadChunk(::Biome const&, ::LevelChunk&, ::BlockVolumeTarget&, ::Random&, ::ChunkPos const&) const
87 /*override*/;
88
89 virtual void decorateWorldGenPostProcess(::Biome const&, ::LevelChunk&, ::BlockSource&, ::Random&) const
90 /*override*/;
91
92 virtual ~FlatWorldGenerator() /*override*/ = default;
93 // NOLINTEND
94
95public:
96 // member functions
97 // NOLINTBEGIN
98 MCAPI FlatWorldGenerator(::Dimension& dimension, uint, ::Json::Value const& generationOptionsJSON);
99
100 MCAPI void _generatePrototypeBlockValues(::FlatWorldOptions const& layersDesc, short minHeight);
101 // NOLINTEND
102
103public:
104 // constructor thunks
105 // NOLINTBEGIN
106 MCAPI void* $ctor(::Dimension& dimension, uint, ::Json::Value const& generationOptionsJSON);
107 // NOLINTEND
108
109public:
110 // virtual function thunks
111 // NOLINTBEGIN
112 MCAPI void $loadChunk(::LevelChunk& lc, bool forceImmediateReplacementDataLoad);
113
114 MCFOLD bool $structurePostProcessChunk(::ChunkViewSource&);
115
116 MCAPI bool $decorationPostProcessChunk(::ChunkViewSource& neighborhood);
117
118 MCFOLD ::HashedString $findStructureFeatureTypeAt(::BlockPos const& pos);
119
120 MCAPI bool $isStructureFeatureTypeAt(::BlockPos const& pos, ::HashedString type) const;
121
122 MCAPI bool $findNearestStructureFeature(
123 ::HashedString feature,
124 ::BlockPos const& origin,
125 ::BlockPos& pos,
126 bool mustBeInNewChunks,
127 ::std::optional<::HashedString> biomeTag
128 );
129
130 MCAPI void $prepareHeights(::BlockVolume& box, ::ChunkPos const&, ::std::vector<short>* zxHeights, bool);
131
132 MCFOLD void $garbageCollectBlueprints(::buffer_span<::ChunkPos> activeChunks);
133
134 MCAPI ::BiomeArea $getBiomeArea(::BoundingBox const& area, uint scale) const;
135
136 MCAPI ::BlockPos $findSpawnPosition() const;
137
138 MCAPI ::BiomeSource const& $getBiomeSource() const;
139
140 MCAPI ::WorldGenerator::BlockVolumeDimensions $getBlockVolumeDimensions() const;
141
142 MCFOLD void
143 $decorateWorldGenLoadChunk(::Biome const&, ::LevelChunk&, ::BlockVolumeTarget&, ::Random&, ::ChunkPos const&) const;
144
145 MCFOLD void $decorateWorldGenPostProcess(::Biome const&, ::LevelChunk&, ::BlockSource&, ::Random&) const;
146
147
148 // NOLINTEND
149
150public:
151 // vftables
152 // NOLINTBEGIN
154
155 MCNAPI static void** $vftableForChunkSource();
156 // NOLINTEND
157};
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 Dimension.h:85
Definition FixedBiomeSource.h:21
static MCAPI void ** $vftableForChunkSource()
static MCAPI void ** $vftableForIPreliminarySurfaceProvider()
Definition FlatWorldOptions.h:16
Definition HashedString.h:5
Definition Value.h:16
Definition LevelChunk.h:79
Definition Random.h:10
Definition buffer_span.h:6