43 ::ll::TypedStorage<4, 4, uint> mWidth;
44 ::ll::TypedStorage<4, 4, uint> mDepth;
45 ::ll::TypedStorage<4, 4, uint> mHeight;
52 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::StructureFeatureRegistry>> mStructureFeatureRegistry;
53 ::ll::TypedStorage<8, 80, ::Bedrock::Threading::Mutex> mCreateStructuresAndVisitedPositionsMutex;
54 ::ll::TypedStorage<8, 72, ::std::condition_variable> mStructureInstanceWaitVar;
55 ::ll::TypedStorage<4, 4, ::std::atomic<int>> mActiveStructureInstanceCreateCount;
56 ::ll::TypedStorage<8, 64, ::std::unordered_set<::ChunkPos>> mVisitedPositions;
66 virtual ~WorldGenerator() ;
68 virtual ::HashedString findStructureFeatureTypeAt(
::BlockPos const& pos);
72 virtual bool findNearestStructureFeature(
76 bool mustBeInNewChunks,
77 ::std::optional<::HashedString> biomeTag
80 virtual ::StructureFeature* getStructureFeatureOfType(
::HashedString type)
const;
84 virtual void prepareHeights(
87 ::std::vector<short>* ZXheights,
88 bool factorInBeardsAndShavers
91 virtual ::BiomeArea getBiomeArea(
::BoundingBox const& area, uint scale)
const = 0;
93 virtual ::BiomeSource
const& getBiomeSource()
const = 0;
95 virtual ::WorldGenerator::BlockVolumeDimensions getBlockVolumeDimensions()
const = 0;
97 virtual ::BlockPos findSpawnPosition()
const = 0;
100 postProcessMobsAt(
::BlockSource& region,
int chunkWestBlock,
int chunkNorthBlock,
::Random& random) ;
104 virtual ::std::optional<short> getPreliminarySurfaceLevel(
::DividedPos2d<4> worldQuartPos)
const ;
106 virtual void debugRender();
108 virtual void propagateCombinedChunkSource(::ChunkSource* chunkSource);
110 virtual void decorateWorldGenLoadChunk(
118 virtual void decorateWorldGenPostProcess(
129 MCAPI
explicit WorldGenerator(
::Dimension& dimension);
132 WorldGenerator(
::Dimension& dimension, ::std::unique_ptr<::StructureFeatureRegistry> structureFeatureRegistry);
136 MCAPI ::std::vector<short> computeChunkHeightMap(
::ChunkPos const& pos);
138 MCFOLD ::StructureFeatureRegistry& getStructureFeatureRegistry()
const;
140 MCAPI
void postProcessStructureFeatures(
::BlockSource& region,
::Random& random,
int chunkX,
int chunkZ);
146 MCAPI
void prepareStructureFeatureBlueprints(
155 MCAPI
void waitForStructures();
161 MCAPI
static uint64
const& TICKING_QUEUE_PASS_LIMIT();
169 MCAPI
void* $ctor(
::Dimension& dimension, ::std::unique_ptr<::StructureFeatureRegistry> structureFeatureRegistry);
181 MCAPI ::HashedString $findStructureFeatureTypeAt(
::BlockPos const& pos);
185 MCAPI
bool $findNearestStructureFeature(
189 bool mustBeInNewChunks,
190 ::std::optional<::HashedString> biomeTag
193 MCAPI ::StructureFeature* $getStructureFeatureOfType(
::HashedString type)
const;
197 MCAPI
void $postProcessMobsAt(
::BlockSource& region,
int chunkWestBlock,
int chunkNorthBlock,
::Random& random);
201 MCAPI ::std::optional<short> $getPreliminarySurfaceLevel(
::DividedPos2d<4> worldQuartPos)
const;
203 MCFOLD
void $debugRender();
205 MCFOLD
void $propagateCombinedChunkSource(::ChunkSource* chunkSource);