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