@@ -94,7 +94,7 @@ public async Task GenerateChunk(ChunkColumnStorage chunk, int x, int z, Generato
9494 await GenerateBasicTerrain ( chunk , x , z , settings ) ;
9595
9696 // Todo add biomes blocks
97- ReplaceBiomeBlocks ( settings , x , z , chunk , _biomesForGeneration ) ;
97+ await ReplaceBiomeBlocks ( settings , x , z , chunk , _biomesForGeneration ) ;
9898
9999 // Todo genrate structure
100100 await GenerateSkylightMap ( chunk ) ;
@@ -254,7 +254,7 @@ private Task GenerateDensityMap(float[,,] densityMap, int xOffset, int yOffset,
254254 groundYOffset = ( groundYOffset * 4.0F - 1.0F ) / 8.0F ;
255255
256256 // 取一个-0.36~0.125的随机数,这个随机数决定了起伏的地表
257- float random = ( _depthMap [ x1 , 0 , z1 ] - 0.5F ) * 128 / 8000.0F ;
257+ float random = ( _depthMap [ x1 , 0 , z1 ] - 0.5F ) * 160000 / 8000.0F ;
258258 if ( random < 0.0F )
259259 {
260260 random = - random * 0.3F ;
@@ -306,9 +306,9 @@ private Task GenerateDensityMap(float[,,] densityMap, int xOffset, int yOffset,
306306 }
307307
308308 // 并不保证lowerLimit < upperLimit,不过没有影响
309- float lowerLimit = ( _minLimitMap [ x1 , y , z1 ] - 0.5F ) * 128 / settings . LowerLimitScale ; // lowerLimitScale=512
310- float upperLimit = ( _maxLimitMap [ x1 , y , z1 ] - 0.5F ) * 128 / settings . UpperLimitScale ; // upperLimitScale=512
311- float t = ( ( _mainNoiseMap [ x1 , y , z1 ] - 0.5F ) * 128 / 10.0F + 1.0F ) / 2.0F ;
309+ float lowerLimit = ( _minLimitMap [ x1 , y , z1 ] - 0.5F ) * 160000 / settings . LowerLimitScale ; // lowerLimitScale=512
310+ float upperLimit = ( _maxLimitMap [ x1 , y , z1 ] - 0.5F ) * 160000 / settings . UpperLimitScale ; // upperLimitScale=512
311+ float t = ( ( _mainNoiseMap [ x1 , y , z1 ] - 0.5F ) * 160000 / 10.0F + 1.0F ) / 2.0F ;
312312
313313 // 这个函数t < 0则取lowerLimit,t > 1则取upperLimit,否则以t为参数在上下限间线性插值
314314 float result = MathHelper . DenormalizeClamp ( lowerLimit , upperLimit , t ) - offset ;
@@ -330,7 +330,7 @@ private Task GenerateDensityMap(float[,,] densityMap, int xOffset, int yOffset,
330330 return Task . CompletedTask ;
331331 }
332332
333- public void ReplaceBiomeBlocks ( GeneratorSettings settings , int x , int z , ChunkColumnStorage chunk , Biome [ , ] biomesIn )
333+ private Task ReplaceBiomeBlocks ( GeneratorSettings settings , int x , int z , ChunkColumnStorage chunk , Biome [ , ] biomesIn )
334334 {
335335 _surfaceNoise . Noise (
336336 _surfaceMap ,
@@ -342,9 +342,11 @@ public void ReplaceBiomeBlocks(GeneratorSettings settings, int x, int z, ChunkCo
342342 for ( int z1 = 0 ; z1 < 16 ; ++ z1 )
343343 {
344344 Biome biome = biomesIn [ x1 , z1 ] ;
345- biome . GenerateBiomeTerrain ( settings . SeaLevel , _random , chunk , x * 16 + x1 , z * 16 + z1 , _surfaceMap [ x1 , 0 , z1 ] ) ;
345+ biome . GenerateBiomeTerrain ( settings . SeaLevel , _random , chunk , x , z , x1 , z1 , _surfaceMap [ x1 , 0 , z1 ] ) ;
346346 }
347347 }
348+
349+ return Task . CompletedTask ;
348350 }
349351
350352 private Task GenerateSkylightMap ( ChunkColumnStorage chunk )
0 commit comments