|
@@ -104,7 +104,7 @@ Chunk* DimensionGenerator::generateChunk( int seed, int centerX, int centerY )
|
|
|
BiomGenerator* biom = zBiomGenerator( seed + dimensionId, x + centerX, y + centerY );
|
|
|
// TODO: use Noise interpolator for height map between different bioms
|
|
|
int height = MIN_AIR_LEVEL + (int)(biom->zHeightMapNoise( seed + dimensionId )->getNoise( (double)(x + centerX), (double)(y + centerY), 0.0 ) * (MAX_AIR_LEVEL - MIN_AIR_LEVEL));
|
|
|
- int maxSurfaceHeight = (1 - (height - MIN_AIR_LEVEL) / (MAX_AIR_LEVEL - MIN_AIR_LEVEL));
|
|
|
+ int maxSurfaceHeight = (int)(MAX_SURFACE_HEIGHT * (1.f - (float)(height - MIN_AIR_LEVEL) / (float)(MAX_AIR_LEVEL - MIN_AIR_LEVEL)));
|
|
|
int actualSurfaceHeight = (int)((float)maxSurfaceHeight * (1.f - VARIABLE_SURFACE_PART) + ((float)maxSurfaceHeight * VARIABLE_SURFACE_PART * (float)biom->zHeightMapNoise( seed + dimensionId )->getNoise( (double)(x + centerX), (double)(y + centerY), 10.0 )));
|
|
|
for( int z = 0; z < WORLD_HEIGHT; z++ )
|
|
|
{
|
|
@@ -143,7 +143,7 @@ Framework::Either<Block*, int> DimensionGenerator::generateBlock( int seed, Fram
|
|
|
BiomGenerator* biom = zBiomGenerator( seed + dimensionId, location.x, location.y );
|
|
|
// TODO: use Noise interpolator for height map between different bioms
|
|
|
int height = MIN_AIR_LEVEL + (int)(biom->zHeightMapNoise( seed + dimensionId )->getNoise( (double)(location.x), (double)(location.y), 0.0 ) * (MAX_AIR_LEVEL - MIN_AIR_LEVEL));
|
|
|
- int maxSurfaceHeight = (1 - (height - MIN_AIR_LEVEL) / (MAX_AIR_LEVEL - MIN_AIR_LEVEL));
|
|
|
+ int maxSurfaceHeight = (int)(MAX_SURFACE_HEIGHT * (1.f - (float)(height - MIN_AIR_LEVEL) / (float)(MAX_AIR_LEVEL - MIN_AIR_LEVEL)));
|
|
|
int actualSurfaceHeight = (int)((float)maxSurfaceHeight * (1.f - VARIABLE_SURFACE_PART) + ((float)maxSurfaceHeight * VARIABLE_SURFACE_PART * (float)biom->zHeightMapNoise( seed + dimensionId )->getNoise( (double)(location.x), (double)(location.y), 10.0 )));
|
|
|
for( auto structure : *structures )
|
|
|
{
|