DistortedHeightmap: Deserts are now covered with sand and mushroom islands with mycelium (patch contributed by STR_Warrior)

git-svn-id: http://mc-server.googlecode.com/svn/trunk@1476 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
madmaxoft@gmail.com 2013-05-12 20:04:07 +00:00
parent 1927095d25
commit b1bd1001f7

View File

@ -270,18 +270,54 @@ void cDistortedHeightmap::ComposeTerrain(cChunkDesc & a_ChunkDesc)
continue; continue;
} }
// "ground" part: // "ground" part:
if (LastAir - y > 4) if (y < LastAir - 4)
{ {
a_ChunkDesc.SetBlockType(x, y, z, E_BLOCK_STONE); a_ChunkDesc.SetBlockType(x, y, z, E_BLOCK_STONE);
continue; continue;
} }
if (HasHadWater) if (HasHadWater)
{ {
a_ChunkDesc.SetBlockType(x, y, z, E_BLOCK_SAND); // TODO: Decide between sand and dirt
a_ChunkDesc.SetBlockType(x, y, z, (y < LastAir - 3) ? E_BLOCK_SANDSTONE : E_BLOCK_SAND);
} }
else else
{ {
a_ChunkDesc.SetBlockType(x, y, z, (LastAir == y + 1) ? E_BLOCK_GRASS : E_BLOCK_DIRT); switch (a_ChunkDesc.GetBiome(x, z))
{
case biOcean:
case biPlains:
case biExtremeHills:
case biForest:
case biTaiga:
case biSwampland:
case biRiver:
case biFrozenOcean:
case biFrozenRiver:
case biIcePlains:
case biIceMountains:
case biForestHills:
case biTaigaHills:
case biExtremeHillsEdge:
case biJungle:
case biJungleHills:
{
a_ChunkDesc.SetBlockType(x, y, z, (y == LastAir - 1) ? E_BLOCK_GRASS : E_BLOCK_DIRT);
break;
}
case biDesertHills:
case biDesert:
case biBeach:
{
a_ChunkDesc.SetBlockType(x, y, z, (y < LastAir - 3) ? E_BLOCK_SANDSTONE : E_BLOCK_SAND);
break;
}
case biMushroomIsland:
case biMushroomShore:
{
a_ChunkDesc.SetBlockType(x, y, z, (y == LastAir - 1) ? E_BLOCK_MYCELIUM : E_BLOCK_DIRT);
break;
}
}
} }
} // for y } // for y
a_ChunkDesc.SetBlockType(x, 0, z, E_BLOCK_BEDROCK); a_ChunkDesc.SetBlockType(x, 0, z, E_BLOCK_BEDROCK);