public void AddCaves( Map map )
{
if ( args.AddCaves ) {
ReportProgress( 5, "Processing: Adding caves" );
for ( int i1 = 0; i1 < 36 * args.CaveDensity; i1++ )
AddSingleCave( rand, map, ( byte )bBedrock, ( byte )Block.Air, 30, 0.05 * args.CaveSize );
for ( int j1 = 0; j1 < 9 * args.CaveDensity; j1++ )
AddSingleVein( rand, map, ( byte )bBedrock, ( byte )Block.Air, 500, 0.015 * args.CaveSize, 1 );
for ( int k1 = 0; k1 < 30 * args.CaveDensity; k1++ )
AddSingleVein( rand, map, ( byte )bBedrock, ( byte )Block.Air, 300, 0.03 * args.CaveSize, 1, 20 );
if ( args.AddCaveLava ) {
for ( int i = 0; i < 8 * args.CaveDensity; i++ ) {
AddSingleCave( rand, map, ( byte )bBedrock, ( byte )Block.Lava, 30, 0.05 * args.CaveSize );
}
for ( int j = 0; j < 3 * args.CaveDensity; j++ ) {
AddSingleVein( rand, map, ( byte )bBedrock, ( byte )Block.Lava, 1000, 0.015 * args.CaveSize, 1 );
}
}
if ( args.AddCaveWater ) {
for ( int k = 0; k < 8 * args.CaveDensity; k++ ) {
AddSingleCave( rand, map, ( byte )bBedrock, ( byte )Block.Water, 30, 0.05 * args.CaveSize );
}
for ( int l = 0; l < 3 * args.CaveDensity; l++ ) {
AddSingleVein( rand, map, ( byte )bBedrock, ( byte )Block.Water, 1000, 0.015 * args.CaveSize, 1 );
}
}
SealLiquids( map, ( byte )bBedrock );
}
if ( args.AddOre ) {
ReportProgress( 3, "Processing: Adding ore" );
for ( int l1 = 0; l1 < 12 * args.CaveDensity; l1++ ) {
AddSingleCave( rand, map, ( byte )bBedrock, ( byte )Block.Coal, 500, 0.03 );
}
for ( int i2 = 0; i2 < 32 * args.CaveDensity; i2++ ) {
AddSingleVein( rand, map, ( byte )bBedrock, ( byte )Block.Coal, 200, 0.015, 1 );
AddSingleCave( rand, map, ( byte )bBedrock, ( byte )Block.IronOre, 500, 0.02 );
}
for ( int k2 = 0; k2 < 8 * args.CaveDensity; k2++ ) {
AddSingleVein( rand, map, ( byte )bBedrock, ( byte )Block.IronOre, 200, 0.015, 1 );
AddSingleVein( rand, map, ( byte )bBedrock, ( byte )Block.GoldOre, 200, 0.0145, 1 );
}
for ( int l2 = 0; l2 < 20 * args.CaveDensity; l2++ ) {
AddSingleCave( rand, map, ( byte )bBedrock, ( byte )Block.GoldOre, 400, 0.0175 );
}
}
}