Added honey generation to the hives (Using water for now)

This commit is contained in:
Matt Caughey 2013-10-27 22:26:50 -04:00
parent b67c290d11
commit 95c9ccefac
1 changed files with 29 additions and 6 deletions

View File

@ -41,11 +41,13 @@ public class WorldGenHive extends WorldGenerator
break;
}
int honeychance = rand.nextInt(2);
//Top
generateHiveCubeSmall(world, x, y + cubeno, z, (baseHeight - 8) + (cubeno * 2), (baseWidth - 1) + cubeno, cubeno, chance);
//Middle
generateHiveCube(world, x, (y - 2) + cubeno, z, baseHeight + (cubeno * 2), baseWidth + cubeno, cubeno, chance);
generateHiveCube(world, x, (y - 2) + cubeno, z, baseHeight + (cubeno * 2), baseWidth + cubeno, cubeno, chance, honeychance);
//Bottom
generateHiveCubeSmall(world, x, (y - (baseHeight + 4)) + cubeno, z, (baseHeight - 8) + (cubeno * 2), (baseWidth - 1) + cubeno, cubeno, chance);
@ -56,13 +58,20 @@ public class WorldGenHive extends WorldGenerator
//Bottom 3
generateHiveCubeSmall(world, x, (y - (baseHeight + 7)) + cubeno, z, (baseHeight - 7) + (cubeno * 2), (baseWidth - 4) + cubeno, cubeno, chance);
spawnWasps(world, rand, x, y, z);
if (honeychance != 0)
{
spawnWasps(world, rand, x, y, z, 15);
}
else
{
spawnWasps(world, rand, x, y, z, 7);
}
}
return true;
}
public void generateHiveCube(World world, int origx, int origy, int origz, int height, int width, int cubeno, float chance)
public void generateHiveCube(World world, int origx, int origy, int origz, int height, int width, int cubeno, float chance, int honeychance)
{
for (int hLayer = 0; hLayer < height; hLayer++)
{
@ -73,7 +82,21 @@ public class WorldGenHive extends WorldGenerator
if ((hLayer == 0 || hLayer == (height - 1)) && (world.rand.nextFloat() <= chance)) world.setBlock(origx + i, origy - hLayer, origz + j, Blocks.hive.get().blockID);
else if ((i == -width || i == (width - 1) || j == -width || j == (width - 1)) && (world.rand.nextFloat() <= chance)) world.setBlock(origx + i, origy - hLayer, origz + j, Blocks.hive.get().blockID);
if (cubeno < 2 && world.getBlockId(origx + i, origy - hLayer, origz + j) != Blocks.hive.get().blockID) world.setBlockToAir(origx + i, origy - hLayer, origz + j);
if (honeychance == 0)
{
if (hLayer > (height / 2))
{
if (cubeno < 2 && world.getBlockId(origx + i, origy - hLayer, origz + j) != Blocks.hive.get().blockID) world.setBlock(origx + i, origy - hLayer, origz + j, Block.waterMoving.blockID);
}
else
{
if (cubeno < 2 && world.getBlockId(origx + i, origy - hLayer, origz + j) != Blocks.hive.get().blockID) world.setBlockToAir(origx + i, origy - hLayer, origz + j);
}
}
else
{
if (cubeno < 2 && world.getBlockId(origx + i, origy - hLayer, origz + j) != Blocks.hive.get().blockID) world.setBlockToAir(origx + i, origy - hLayer, origz + j);
}
}
}
}
@ -94,9 +117,9 @@ public class WorldGenHive extends WorldGenerator
}
}
public void spawnWasps(World world, Random rand, int x, int y, int z)
public void spawnWasps(World world, Random rand, int x, int y, int z, int amount)
{
for (int spawn = 0; spawn < 15; spawn++)
for (int spawn = 0; spawn < amount; spawn++)
{
int spawnx = (x - 4) + rand.nextInt(8);
int spawny = (y - 6) - rand.nextInt(4);