package com.hbm.blocks.generic; import java.util.Random; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.world.World; public class BlockLithium extends BlockBeaconable { public BlockLithium(Material material) { super(material); } private boolean touchesWater(World world, int x, int y, int z) { if (world.isRemote) return false; return world.getBlock(x + 1, y, z).getMaterial() == Material.water || world.getBlock(x - 1, y, z).getMaterial() == Material.water || world.getBlock(x, y + 1, z).getMaterial() == Material.water || world.getBlock(x, y - 1, z).getMaterial() == Material.water || world.getBlock(x, y, z + 1).getMaterial() == Material.water || world.getBlock(x, y, z - 1).getMaterial() == Material.water; } public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { if (touchesWater(world, x, y, z)) { world.func_147480_a(x, y, z, false); world.newExplosion(null, x + 0.5, y + 0.5, z + 0.5, 15, false, true); } } public int onBlockPlaced(World world, int x, int y, int z, int side, float fx, float fy, float fz, int meta) { if (touchesWater(world, x, y, z)) { world.func_147480_a(x, y, z, false); world.newExplosion(null, x + 0.5, y + 0.5, z + 0.5, 15, false, true); } return meta; } @SideOnly(Side.CLIENT) public void randomDisplayTick(World world, int x, int y, int z, Random rand) { if (world.canLightningStrikeAt(x, y + 1, z)) { float ox = rand.nextFloat(); float oz = rand.nextFloat(); world.spawnParticle("largesmoke", x + ox, y + 1, z + oz, 0.0D, 0.0D, 0.0D); } } }