1
0

Added cFinishGenNetherSprinkleFoliage.

This commit is contained in:
STRWarrior
2014-01-10 16:31:45 +01:00
parent 36c100a53e
commit 82a06725bd
3 changed files with 73 additions and 2 deletions

View File

@@ -39,6 +39,51 @@ static inline bool IsWater(BLOCKTYPE a_BlockType)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// cFinishGenNetherSprinkleFoliage:
void cFinishGenNetherSprinkleFoliage::GenFinish(cChunkDesc & a_ChunkDesc)
{
double ChunkX = a_ChunkDesc.GetChunkX() + 0.5; // We can't devide through 0 so lets add 0.5 to all the chunk coordinates.
double ChunkZ = a_ChunkDesc.GetChunkZ() + 0.5;
for (int z = 0; z < cChunkDef::Width; z++)
{
for (int x = 0; x < cChunkDef::Width; x++)
{
for (int y = 1; y < cChunkDef::Height; y++)
{
if (!g_BlockIsSolid[a_ChunkDesc.GetBlockType(x, y - 1, z)]) // Only place on solid blocks
{
continue;
}
if (a_ChunkDesc.GetBlockType(x, y, z) != E_BLOCK_AIR)
{
continue;
}
NOISE_DATATYPE Val = m_Noise.CubicNoise1D((float) ((ChunkX * x) * (ChunkZ * z) * y));
if (Val < -0.98)
{
a_ChunkDesc.SetBlockType(x, y, z, E_BLOCK_BROWN_MUSHROOM);
}
else if (Val < -0.96)
{
a_ChunkDesc.SetBlockType(x, y, z, E_BLOCK_RED_MUSHROOM);
}
else if (Val < -0.94)
{
a_ChunkDesc.SetBlockType(x, y, z, E_BLOCK_FIRE);
}
}
}
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// cFinishGenSprinkleFoliage: