47 ::ll::TypedStorage<4, 4, uint> mWidth;
48 ::ll::TypedStorage<4, 4, uint> mDepth;
49 ::ll::TypedStorage<4, 4, uint> mHeight;
56 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::StructureFeatureRegistry>> mStructureFeatureRegistry;
57 ::ll::TypedStorage<8, 80, ::std::mutex> mCreateStructuresAndVisitedPositionsMutex;
58 ::ll::TypedStorage<8, 72, ::std::condition_variable> mStructureInstanceWaitVar;
59 ::ll::TypedStorage<4, 4, ::std::atomic<int>> mActiveStructureInstanceCreateCount;
60 ::ll::TypedStorage<8, 64, ::std::unordered_set<::ChunkPos>> mVisitedPositions;
61 ::ll::TypedStorage<4, 4, ::Bedrock::Threading::InstancedThreadLocalValue<::br::worldgen::ChunkAccessor*>>
62 mThreadLocalHeightmapProvider;
72 virtual ~WorldGenerator() ;
74 virtual ::HashedString findStructureFeatureTypeAt(
::BlockPos const& pos);
78 virtual bool findNearestStructureFeature(
82 bool mustBeInNewChunks,
83 ::std::optional<::HashedString> biomeTag,
87 virtual ::StructureFeature* getStructureFeatureOfType(
::HashedString type)
const;
91 virtual void prepareHeights(
94 ::std::vector<short>* ZXheights,
95 bool factorInBeardsAndShavers
98 virtual ::BiomeArea getBiomeArea(
::BoundingBox const& area, uint scale)
const = 0;
100 virtual ::BiomeSource
const& getBiomeSource()
const = 0;
102 virtual ::WorldGenerator::BlockVolumeDimensions getBlockVolumeDimensions()
const = 0;
104 virtual ::BlockPos findSpawnPosition()
const = 0;
107 postProcessMobsAt(
::BlockSource& region,
int chunkWestBlock,
int chunkNorthBlock,
::Random& random) ;
111 virtual ::std::optional<short> getPreliminarySurfaceLevel(
::DividedPos2d<4> worldQuartPos)
const ;
113 virtual void debugRender();
115 virtual void propagateCombinedChunkSource(::ChunkSource* chunkSource);
117 virtual void decorateWorldGenLoadChunk(
125 virtual void decorateWorldGenPostProcess(
132 virtual ::std::shared_ptr<::br::worldgen::StructureInstance>
152 MCAPI ::std::vector<short> computeChunkHeightMap(
::ChunkPos const& pos);
176 MCNAPI
void*
$ctor(
::Dimension& dimension, ::std::unique_ptr<::StructureFeatureRegistry> structureFeatureRegistry);
188 MCAPI ::HashedString $findStructureFeatureTypeAt(
::BlockPos const& pos);
192 MCAPI
bool $findNearestStructureFeature(
196 bool mustBeInNewChunks,
197 ::std::optional<::HashedString> biomeTag,
198 int searchRadiusCells
201 MCAPI ::StructureFeature* $getStructureFeatureOfType(
::HashedString type)
const;
205 MCAPI
void $postProcessMobsAt(
::BlockSource& region,
int chunkWestBlock,
int chunkNorthBlock,
::Random& random);
209 MCFOLD ::std::optional<short> $getPreliminarySurfaceLevel(
::DividedPos2d<4> worldQuartPos)
const;
211 MCFOLD
void $debugRender();
213 MCFOLD
void $propagateCombinedChunkSource(::ChunkSource* chunkSource);
215 MCAPI ::std::shared_ptr<::br::worldgen::StructureInstance>