Ice finisher uses GetSnowStartHeight instead of specific biomes
This commit is contained in:
parent
ba3eaf9223
commit
ac2c88b451
@ -503,34 +503,27 @@ void cFinishGenIce::GenFinish(cChunkDesc & a_ChunkDesc)
|
|||||||
{
|
{
|
||||||
for (int x = 0; x < cChunkDef::Width; x++)
|
for (int x = 0; x < cChunkDef::Width; x++)
|
||||||
{
|
{
|
||||||
switch (a_ChunkDesc.GetBiome(x, z))
|
int Height = a_ChunkDesc.GetHeight(x, z);
|
||||||
|
if (GetSnowStartHeight(a_ChunkDesc.GetBiome(x, z)) > Height)
|
||||||
{
|
{
|
||||||
case biIcePlains:
|
// Height isn't high enough for snow to start forming.
|
||||||
case biIceMountains:
|
continue;
|
||||||
case biTaiga:
|
|
||||||
case biTaigaHills:
|
|
||||||
case biFrozenRiver:
|
|
||||||
case biFrozenOcean:
|
|
||||||
{
|
|
||||||
int Height = a_ChunkDesc.GetHeight(x, z);
|
|
||||||
switch (a_ChunkDesc.GetBlockType(x, Height, z))
|
|
||||||
{
|
|
||||||
case E_BLOCK_WATER:
|
|
||||||
case E_BLOCK_STATIONARY_WATER:
|
|
||||||
{
|
|
||||||
a_ChunkDesc.SetBlockType(x, Height, z, E_BLOCK_ICE);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
// No icy water in other biomes.
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
if (!IsBlockWater(a_ChunkDesc.GetBlockType(x, Height, z)))
|
||||||
|
{
|
||||||
|
// The block isn't a water block.
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (a_ChunkDesc.GetBlockMeta(x, Height, z) != 0)
|
||||||
|
{
|
||||||
|
// The water block isn't a source block.
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
a_ChunkDesc.SetBlockType(x, Height, z, E_BLOCK_ICE);
|
||||||
|
} // for x
|
||||||
} // for z
|
} // for z
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user