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
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<8, 8, ::Biome const*> mBiome;
42 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::FixedBiomeSource>> mBiomeSource;
43 // NOLINTEND
44
45public:
46 // prevent constructor by default
48
49public:
50 // virtual functions
51 // NOLINTBEGIN
52 // vIndex: 11
53 virtual void loadChunk(::LevelChunk& lc, bool forceImmediateReplacementDataLoad) /*override*/;
54
55 // vIndex: 9
56 virtual bool postProcess(::ChunkViewSource& neighborhood) /*override*/;
57
58 // vIndex: 34
59 virtual ::HashedString findStructureFeatureTypeAt(::BlockPos const& pos) /*override*/;
60
61 // vIndex: 35
62 virtual bool isStructureFeatureTypeAt(::BlockPos const& pos, ::HashedString type) const /*override*/;
63
64 // vIndex: 36
65 virtual bool findNearestStructureFeature(
66 ::HashedString feature,
67 ::BlockPos const& origin,
68 ::BlockPos& pos,
69 bool mustBeInNewChunks,
70 ::std::optional<::HashedString> biomeTag
71 ) /*override*/;
72
73 // vIndex: 38
74 virtual void prepareHeights(::BlockVolume&, ::ChunkPos const&, bool) /*override*/;
75
76 // vIndex: 39
77 virtual void
78 prepareAndComputeHeights(::BlockVolume&, ::ChunkPos const&, ::std::vector<short>&, bool, int) /*override*/;
79
80 // vIndex: 37
81 virtual void garbageCollectBlueprints(::buffer_span<::ChunkPos> activeChunks) /*override*/;
82
83 // vIndex: 40
84 virtual ::BiomeArea getBiomeArea(::BoundingBox const& area, uint scale) const /*override*/;
85
86 // vIndex: 43
87 virtual ::BlockPos findSpawnPosition() const /*override*/;
88
89 // vIndex: 41
90 virtual ::BiomeSource const& getBiomeSource() const /*override*/;
91
92 // vIndex: 42
93 virtual ::WorldGenerator::BlockVolumeDimensions getBlockVolumeDimensions() const /*override*/;
94
95 // vIndex: 46
96 virtual void
97 decorateWorldGenLoadChunk(::Biome const&, ::LevelChunk&, ::BlockVolumeTarget&, ::Random&, ::ChunkPos const&) const
98 /*override*/;
99
100 // vIndex: 47
101 virtual void decorateWorldGenPostProcess(::Biome const&, ::LevelChunk&, ::BlockSource&, ::Random&) const
102 /*override*/;
103
104 // vIndex: 0
105 virtual ~FlatWorldGenerator() /*override*/ = default;
106 // NOLINTEND
107
108public:
109 // member functions
110 // NOLINTBEGIN
111 MCAPI FlatWorldGenerator(::Dimension& dimension, uint, ::Json::Value const& generationOptionsJSON);
112
113 MCAPI void _generatePrototypeBlockValues(::FlatWorldOptions const& layersDesc, short);
114 // NOLINTEND
115
116public:
117 // constructor thunks
118 // NOLINTBEGIN
119 MCAPI void* $ctor(::Dimension& dimension, uint, ::Json::Value const& generationOptionsJSON);
120 // NOLINTEND
121
122public:
123 // virtual function thunks
124 // NOLINTBEGIN
125 MCAPI void $loadChunk(::LevelChunk& lc, bool forceImmediateReplacementDataLoad);
126
127 MCAPI bool $postProcess(::ChunkViewSource& neighborhood);
128
129 MCFOLD ::HashedString $findStructureFeatureTypeAt(::BlockPos const& pos);
130
131 MCAPI bool $isStructureFeatureTypeAt(::BlockPos const& pos, ::HashedString type) const;
132
133 MCAPI bool $findNearestStructureFeature(
134 ::HashedString feature,
135 ::BlockPos const& origin,
136 ::BlockPos& pos,
137 bool mustBeInNewChunks,
138 ::std::optional<::HashedString> biomeTag
139 );
140
141 MCFOLD void $prepareHeights(::BlockVolume&, ::ChunkPos const&, bool);
142
143 MCFOLD void $prepareAndComputeHeights(::BlockVolume&, ::ChunkPos const&, ::std::vector<short>&, bool, int);
144
145 MCFOLD void $garbageCollectBlueprints(::buffer_span<::ChunkPos> activeChunks);
146
147 MCAPI ::BiomeArea $getBiomeArea(::BoundingBox const& area, uint scale) const;
148
149 MCAPI ::BlockPos $findSpawnPosition() const;
150
151 MCFOLD ::BiomeSource const& $getBiomeSource() const;
152
153 MCAPI ::WorldGenerator::BlockVolumeDimensions $getBlockVolumeDimensions() const;
154
155 MCFOLD void
156 $decorateWorldGenLoadChunk(::Biome const&, ::LevelChunk&, ::BlockVolumeTarget&, ::Random&, ::ChunkPos const&) const;
157
158 MCFOLD void $decorateWorldGenPostProcess(::Biome const&, ::LevelChunk&, ::BlockSource&, ::Random&) const;
159 // NOLINTEND
160
161public:
162 // vftables
163 // NOLINTBEGIN
165
166 MCNAPI static void** $vftableForChunkSource();
167 // NOLINTEND
168};
Definition BiomeArea.h:11
Definition BiomeSource.h:19
Definition Biome.h:26
Definition BlockPos.h:18
Definition BlockSource.h:67
Definition BlockVolumeTarget.h:24
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 FixedBiomeSource.h:20
Definition FlatWorldGenerator.h:31
static MCAPI void ** $vftableForChunkSource()
static MCAPI void ** $vftableForIPreliminarySurfaceProvider()
Definition FlatWorldOptions.h:11
Definition HashedString.h:5
Definition Value.h:16
Definition LevelChunk.h:74
Definition Random.h:11
Definition WorldGenerator.h:30
Definition buffer_span.h:6