LeviLamina
Loading...
Searching...
No Matches
LevelChunkBiomes.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/container/small_vector_base.h"
7#include "mc/platform/threading/UniqueLock.h"
8#include "mc/world/level/biome/BiomeIdType.h"
9#include "mc/world/level/block/chunk_volume/VolumeOf.h"
10#include "mc/world/level/chunk/SubChunkStorage.h"
11#include "mc/world/level/chunk/sub_chunk_storage_unit/PruneType.h"
12
13// auto generated forward declare list
14// clang-format off
15class Biome;
16class BiomeRegistry;
17class ChunkBlockPos;
18// clang-format on
19
20class LevelChunkBiomes {
21public:
22 // LevelChunkBiomes inner types declare
23 // clang-format off
24 struct MemoryEstimateData;
25 // clang-format on
26
27 // LevelChunkBiomes inner types define
29 public:
30 // member variables
31 // NOLINTBEGIN
32 ::ll::TypedStorage<8, 8, uint64> mBiomeData3DSize;
33 ::ll::TypedStorage<8, 8, uint64> mMinBiomePaletteSize;
34 ::ll::TypedStorage<8, 8, double> mAverageBiomePaletteSize;
35 ::ll::TypedStorage<8, 8, uint64> mMaxBiomePaletteSize;
36 // NOLINTEND
37 };
38
39public:
40 // member variables
41 // NOLINTBEGIN
42 ::ll::TypedStorage<2, 512, ::std::array<::BiomeIdType, 256>> m2DBiomes;
43 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::SubChunkStorage<::Biome>>>> mBiomeSubchunks;
44 ::ll::TypedStorage<8, 8, ::std::shared_mutex> mBiomesMutex;
45 ::ll::TypedStorage<2, 2, ushort> m3dBiomeStackSize;
46 // NOLINTEND
47
48public:
49 // prevent constructor by default
50 LevelChunkBiomes& operator=(LevelChunkBiomes const&);
51 LevelChunkBiomes(LevelChunkBiomes const&);
52 LevelChunkBiomes();
53
54public:
55 // member functions
56 // NOLINTBEGIN
57 MCAPI void fetchBiomes(::Bedrock::small_vector_base<::gsl::not_null<::Biome const*>>& output) const;
58
59 MCAPI void makeUniformBiomes(::Biome const& biome);
60
61 MCAPI ::LevelChunkBiomes& operator=(::LevelChunkBiomes&& otherChunkBiomes);
62
63 MCAPI void pruneBiomesSubChunk3D(ushort subChunkIndex, ::SubChunkStorageUnit::PruneType pruneType);
64
65 MCAPI void rebuildMissingBiomeSubChunks(
66 ushort numSubChunksToCreate,
67 ushort dimensionSubchunkHeight,
69 );
70
71 MCAPI void set2DBiomesFrom3D(
72 ::Biome const& defaultBiome,
73 ::std::vector<::std::unique_ptr<::SubChunkStorage<::Biome>>> const& biomeSubChunks
74 );
75
76 MCAPI void setAllBiomesFrom2D(
77 ::std::array<::BiomeIdType, 256>& legacyBiomes,
78 ::Biome const& defaultBiome,
79 ::BiomeRegistry const& biomeRegistry,
80 ushort dimensionNumSubChunks
81 );
82
83 MCAPI void
84 setBiome(::Biome const& biome, ::ChunkBlockPos const& pos, bool fillYDimension, ushort dimensionSubchunkHeight);
85
86 MCAPI void setBiomeFromVolume(::ChunkVolume::VolumeOf<::Biome> const& volume, ushort dimensionNumSubChunks);
87
88 MCAPI void setBiomeInSubChunk3D(
89 ::Biome const& biome,
90 ushort subChunkIndex,
91 ushort storageIndex,
92 ushort dimensionSubchunkHeight,
94 bool allowRebuildingAdditionalSubChunk
95 );
96
97 MCAPI void setBiomeSubChunk3D(
98 ::Biome const& biome,
99 ushort subChunkIndex,
100 ushort dimensionSubchunkHeight,
101 bool allowRebuildingAdditionalSubChunk
102 );
103
104 MCAPI void setBiomes(::std::vector<::std::unique_ptr<::SubChunkStorage<::Biome>>> biomes, ushort biomeStackSize);
105
106 MCAPI ~LevelChunkBiomes();
107 // NOLINTEND
108
109public:
110 // destructor thunk
111 // NOLINTBEGIN
112 MCAPI void $dtor();
113 // NOLINTEND
114};
Definition UniqueLock.h:8
Definition small_vector_base.h:8
Definition BiomeRegistry.h:37
Definition Biome.h:24
Definition ChunkBlockPos.h:10
Definition VolumeOf.h:10
Definition SubChunkStorage.h:30
Definition LevelChunkBiomes.h:28