package net.tropicraft.world.worldgen; import java.util.Random; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.tropicraft.registry.TCBlockRegistry; public class WorldGenEIH extends TCGenBase { private static final int CHUNK_SIZE_Y = 256; private static final Block EIH_BLOCK = TCBlockRegistry.chunkOHead; public WorldGenEIH(World worldObj, Random rand) { super(worldObj, rand); } @Override /** * Generate the EIH statue with cool eyes and lava inside! * @param i x coordinate * @param j y coordinate * @param k z coordinate */ public boolean generate(int i, int j, int k) { byte height = 5; if(j < 1 || j + height + 1 > CHUNK_SIZE_Y) { return false; } if((worldObj.getBlock(i, j - 1, k) == Blocks.dirt || worldObj.getBlock(i, j - 1, k) == Blocks.grass) && worldObj.getBlock(i, j, k) == Blocks.air) { j++; worldObj.setBlock(i + 0, j + 0, k + 2, EIH_BLOCK); worldObj.setBlock(i + 0, j + 0, k + 3, EIH_BLOCK); worldObj.setBlock(i + 0, j + 0, k + 4, EIH_BLOCK); worldObj.setBlock(i + -1, j + 0, k + 4, EIH_BLOCK); worldObj.setBlock(i + -1, j + 0, k + 1, EIH_BLOCK); worldObj.setBlock(i + -1, j + 0, k + 3, EIH_BLOCK); worldObj.setBlock(i + -1, j + 1, k + 4, EIH_BLOCK); worldObj.setBlock(i + 0, j + 1, k + 4, EIH_BLOCK); worldObj.setBlock(i + -1, j + 1, k + 3, EIH_BLOCK); worldObj.setBlock(i + 0, j + 1, k + 3, EIH_BLOCK); worldObj.setBlock(i + 0, j + 1, k + 2, EIH_BLOCK); worldObj.setBlock(i + -1, j + 1, k + 1, EIH_BLOCK); worldObj.setBlock(i + -1, j + 1, k + 0, EIH_BLOCK); worldObj.setBlock(i + 0, j + 2, k + 3, EIH_BLOCK); worldObj.setBlock(i + -1, j + 2, k + 3, EIH_BLOCK); worldObj.setBlock(i + 0, j + 2, k + 2, EIH_BLOCK); worldObj.setBlock(i + -1, j + 2, k + 0, EIH_BLOCK); worldObj.setBlock(i + -1, j + 3, k + 3, EIH_BLOCK); worldObj.setBlock(i + 0, j + 3, k + 2, EIH_BLOCK); worldObj.setBlock(i + 0, j + 3, k + 1, EIH_BLOCK); worldObj.setBlock(i + 0, j + 3, k + 0, EIH_BLOCK); worldObj.setBlock(i + 0, j + 4, k + 2, EIH_BLOCK); worldObj.setBlock(i + -1, j + 3, k + -1, EIH_BLOCK); worldObj.setBlock(i + 0, j + 3, k + -1, EIH_BLOCK); worldObj.setBlock(i + -1, j + 2, k + -1, EIH_BLOCK); worldObj.setBlock(i + 0, j + 4, k + -1, EIH_BLOCK); worldObj.setBlock(i + -1, j + 4, k + 2, EIH_BLOCK); worldObj.setBlock(i + -1, j + 4, k + -1, EIH_BLOCK); worldObj.setBlock(i + -1, j + 5, k + -1, EIH_BLOCK); worldObj.setBlock(i + 0, j + 5, k + -1, EIH_BLOCK); worldObj.setBlock(i + -1, j + 5, k + 1, EIH_BLOCK); worldObj.setBlock(i + -1, j + 5, k + 2, EIH_BLOCK); worldObj.setBlock(i + -1, j + 3, k + 4, EIH_BLOCK); worldObj.setBlock(i + -1, j + 4, k + 3, EIH_BLOCK); worldObj.setBlock(i + 0, j + 6, k + -1, EIH_BLOCK); worldObj.setBlock(i + 0, j + 6, k + 0, EIH_BLOCK); worldObj.setBlock(i + -1, j + 6, k + -1, EIH_BLOCK); worldObj.setBlock(i + -1, j + 6, k + 0, EIH_BLOCK); worldObj.setBlock(i + -1, j + 6, k + 1, EIH_BLOCK); worldObj.setBlock(i + 1, j + 5, k + 0, EIH_BLOCK); worldObj.setBlock(i + 1, j + 5, k + 1, EIH_BLOCK); worldObj.setBlock(i + 1, j + 4, k + 1, EIH_BLOCK); worldObj.setBlock(i + 1, j + 4, k + 0, EIH_BLOCK); worldObj.setBlock(i + 0, j + 2, k + 1, EIH_BLOCK); worldObj.setBlock(i + 0, j + 2, k + 0, EIH_BLOCK); worldObj.setBlock(i + 0, j + 1, k + 0, EIH_BLOCK); worldObj.setBlock(i + 0, j + 0, k + 0, EIH_BLOCK); worldObj.setBlock(i + -1, j + 0, k + 0, EIH_BLOCK); worldObj.setBlock(i + 0, j + 6, k + 1, EIH_BLOCK); worldObj.setBlock(i + 0, j + 5, k + 0, Blocks.lava); worldObj.setBlock(i + -1, j + 4, k + 0, Blocks.lava); worldObj.setBlock(i + -1, j + 5, k + 0, Blocks.lava); worldObj.setBlock(i + -1, j + 3, k + 0, Blocks.lava); worldObj.setBlock(i + -1, j + 4, k + 1, Blocks.lava); worldObj.setBlock(i + -1, j + 3, k + 1, Blocks.lava); worldObj.setBlock(i + -1, j + 2, k + 1, Blocks.lava); worldObj.setBlock(i + -1, j + 3, k + 2, Blocks.lava); worldObj.setBlock(i + -1, j + 2, k + 2, Blocks.lava); worldObj.setBlock(i + -1, j + 1, k + 2, Blocks.lava); worldObj.setBlock(i + -2, j + 3, k + 4, EIH_BLOCK); worldObj.setBlock(i + -2, j + 3, k + 3, EIH_BLOCK); worldObj.setBlock(i + -2, j + 2, k + 3, EIH_BLOCK); worldObj.setBlock(i + -2, j + 1, k + 3, EIH_BLOCK); worldObj.setBlock(i + -2, j + 1, k + 4, EIH_BLOCK); worldObj.setBlock(i + -2, j + 0, k + 4, EIH_BLOCK); worldObj.setBlock(i + -2, j + 0, k + 3, EIH_BLOCK); worldObj.setBlock(i + -2, j + 0, k + 1, EIH_BLOCK); worldObj.setBlock(i + -2, j + 0, k + 0, EIH_BLOCK); worldObj.setBlock(i + -2, j + 1, k + 1, EIH_BLOCK); worldObj.setBlock(i + -2, j + 1, k + 0, EIH_BLOCK); worldObj.setBlock(i + -2, j + 2, k + 0, EIH_BLOCK); worldObj.setBlock(i + -2, j + 2, k + -1, EIH_BLOCK); worldObj.setBlock(i + -2, j + 3, k + -1, EIH_BLOCK); worldObj.setBlock(i + -2, j + 4, k + -1, EIH_BLOCK); worldObj.setBlock(i + -2, j + 5, k + -1, EIH_BLOCK); worldObj.setBlock(i + -2, j + 6, k + -1, EIH_BLOCK); worldObj.setBlock(i + -2, j + 6, k + 1, EIH_BLOCK); worldObj.setBlock(i + -2, j + 6, k + 0, EIH_BLOCK); worldObj.setBlock(i + -2, j + 5, k + 2, EIH_BLOCK); worldObj.setBlock(i + -2, j + 5, k + 1, EIH_BLOCK); worldObj.setBlock(i + -2, j + 4, k + 2, EIH_BLOCK); worldObj.setBlock(i + -2, j + 4, k + 3, EIH_BLOCK); worldObj.setBlock(i + -2, j + 5, k + 0, Blocks.lava); worldObj.setBlock(i + -2, j + 4, k + 0, Blocks.lava); worldObj.setBlock(i + -2, j + 3, k + 0, Blocks.lava); worldObj.setBlock(i + -2, j + 4, k + 1, Blocks.lava); worldObj.setBlock(i + -2, j + 3, k + 1, Blocks.lava); worldObj.setBlock(i + -2, j + 2, k + 1, Blocks.lava); worldObj.setBlock(i + -2, j + 3, k + 2, Blocks.lava); worldObj.setBlock(i + -2, j + 2, k + 2, Blocks.lava); worldObj.setBlock(i + -2, j + 1, k + 2, Blocks.lava); worldObj.setBlock(i + -3, j + 0, k + 0, EIH_BLOCK); worldObj.setBlock(i + -3, j + 0, k + 2, EIH_BLOCK); worldObj.setBlock(i + -3, j + 0, k + 3, EIH_BLOCK); worldObj.setBlock(i + -3, j + 0, k + 4, EIH_BLOCK); worldObj.setBlock(i + -3, j + 1, k + 4, EIH_BLOCK); worldObj.setBlock(i + -3, j + 1, k + 3, EIH_BLOCK); worldObj.setBlock(i + -3, j + 2, k + 3, EIH_BLOCK); worldObj.setBlock(i + -3, j + 1, k + 0, EIH_BLOCK); worldObj.setBlock(i + -3, j + 1, k + 2, EIH_BLOCK); worldObj.setBlock(i + -3, j + 2, k + 2, EIH_BLOCK); worldObj.setBlock(i + -3, j + 2, k + 1, EIH_BLOCK); worldObj.setBlock(i + -3, j + 2, k + 0, EIH_BLOCK); worldObj.setBlock(i + -3, j + 3, k + 2, EIH_BLOCK); worldObj.setBlock(i + -3, j + 4, k + 2, EIH_BLOCK); worldObj.setBlock(i + -3, j + 3, k + 1, EIH_BLOCK); worldObj.setBlock(i + -3, j + 3, k + 0, EIH_BLOCK); worldObj.setBlock(i + -3, j + 3, k + -1, EIH_BLOCK); worldObj.setBlock(i + -3, j + 4, k + -1, EIH_BLOCK); worldObj.setBlock(i + -3, j + 5, k + -1, EIH_BLOCK); worldObj.setBlock(i + -3, j + 6, k + -1, EIH_BLOCK); worldObj.setBlock(i + -3, j + 6, k + 0, EIH_BLOCK); worldObj.setBlock(i + -3, j + 6, k + 1, EIH_BLOCK); worldObj.setBlock(i + -4, j + 5, k + 0, EIH_BLOCK); worldObj.setBlock(i + -4, j + 4, k + 0, EIH_BLOCK); worldObj.setBlock(i + -4, j + 4, k + 1, EIH_BLOCK); worldObj.setBlock(i + 0, j + 4, k + 0, Blocks.lava); worldObj.setBlock(i + 0, j + 4, k + 1, Blocks.lava); worldObj.setBlock(i + -3, j + 4, k + 0, Blocks.lava); worldObj.setBlock(i + -3, j + 4, k + 1, Blocks.lava); worldObj.setBlock(i + -3, j + 5, k + 0, Blocks.lava); worldObj.setBlock(i + -4, j + 5, k + 1, EIH_BLOCK); worldObj.setBlock(i + -2, j + 1, k + -1, EIH_BLOCK); worldObj.setBlock(i + -1, j + 1, k + -1, EIH_BLOCK); worldObj.setBlock(i + -2, j + 0, k + -1, EIH_BLOCK); worldObj.setBlock(i + -1, j + 0, k + -1, EIH_BLOCK); worldObj.setBlock(i + -3, j + -1, k + 0, EIH_BLOCK); worldObj.setBlock(i + -2, j + -1, k + 0, EIH_BLOCK); worldObj.setBlock(i + -1, j + -1, k + 0, EIH_BLOCK); worldObj.setBlock(i + 0, j + -1, k + 0, EIH_BLOCK); worldObj.setBlock(i + -2, j + -1, k + 1, EIH_BLOCK); worldObj.setBlock(i + -1, j + -1, k + 1, EIH_BLOCK); worldObj.setBlock(i + -3, j + -1, k + 2, EIH_BLOCK); worldObj.setBlock(i + 0, j + -1, k + 2, EIH_BLOCK); worldObj.setBlock(i + -2, j + -1, k + 3, EIH_BLOCK); worldObj.setBlock(i + -1, j + -1, k + 3, EIH_BLOCK); worldObj.setBlock(i + -3, j + -2, k + 2, EIH_BLOCK); worldObj.setBlock(i + -2, j + -2, k + 3, EIH_BLOCK); worldObj.setBlock(i + -1, j + -2, k + 3, EIH_BLOCK); worldObj.setBlock(i + 0, j + -2, k + 2, EIH_BLOCK); worldObj.setBlock(i + -1, j + -2, k + 1, EIH_BLOCK); worldObj.setBlock(i + -2, j + -2, k + 1, EIH_BLOCK); worldObj.setBlock(i + -3, j + -2, k + 0, EIH_BLOCK); worldObj.setBlock(i + -2, j + -2, k + 0, EIH_BLOCK); worldObj.setBlock(i + -1, j + -2, k + 0, EIH_BLOCK); worldObj.setBlock(i + 0, j + -2, k + 0, EIH_BLOCK); worldObj.setBlock(i + 0, j + -3, k + 2, EIH_BLOCK); worldObj.setBlock(i + -1, j + -3, k + 3, EIH_BLOCK); worldObj.setBlock(i + -1, j + 0, k + 2, Blocks.lava); worldObj.setBlock(i + -2, j + 0, k + 2, Blocks.lava); worldObj.setBlock(i + -1, j + -1, k + 2, Blocks.lava); worldObj.setBlock(i + -2, j + -1, k + 2, Blocks.lava); worldObj.setBlock(i + -2, j + -2, k + 2, Blocks.lava); worldObj.setBlock(i + -1, j + -2, k + 2, Blocks.lava); worldObj.setBlock(i + -2, j + -3, k + 3, EIH_BLOCK); worldObj.setBlock(i + -1, j + -3, k + 2, EIH_BLOCK); worldObj.setBlock(i + -2, j + -3, k + 2, EIH_BLOCK); worldObj.setBlock(i + -3, j + -3, k + 2, EIH_BLOCK); worldObj.setBlock(i + -2, j + -3, k + 1, EIH_BLOCK); worldObj.setBlock(i + -1, j + -3, k + 1, EIH_BLOCK); worldObj.setBlock(i + -3, j + -3, k + 0, EIH_BLOCK); worldObj.setBlock(i + -2, j + -3, k + 0, EIH_BLOCK); worldObj.setBlock(i + -1, j + -3, k + 0, EIH_BLOCK); worldObj.setBlock(i + 0, j + -3, k + 0, EIH_BLOCK); int k1 = rand.nextInt(7); // Coords of the first eye int eyeOneX = i; int eyeOneY = j + 5; int eyeOneZ = k + 1; // Coords of the second eye int eyeTwoX = i - 3; int eyeTwoY = j + 5; int eyeTwoZ = k + 1; // Place eyes placeEye(worldObj, eyeOneX, eyeOneY, eyeOneZ, k1, rand); placeEye(worldObj, eyeTwoX, eyeTwoY, eyeTwoZ, k1, rand); } return true; } /** * Place an eye on the head * @param worldObj World instance * @param x xCoord * @param y yCoord * @param z zCoord * @param eye_rand Randomized int value that determines which block the eye will be * @param rand Random object */ private void placeEye(World worldObj, int x, int y, int z, int eye_rand, Random rand) { Block block; int meta = 0; switch (eye_rand) { case 0: case 5: block = Blocks.glowstone; break; case 1: block = Blocks.obsidian; break; case 2: block = Blocks.diamond_block; break; case 3: block = Blocks.iron_block; break; case 4: block = Blocks.gold_block; break; case 6: block = TCBlockRegistry.oreBlocks; meta = rand.nextInt(3); break; default: // Should never get called, if so, redstone in tropics :o block = Blocks.redstone_block; break; } worldObj.setBlock(x, y, z, block, meta, blockGenNotifyFlag); } }