package net.geforcemods.securitycraft.blocks.mines; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.geforcemods.securitycraft.api.IExplosive; import net.geforcemods.securitycraft.blocks.BlockOwnable; import net.geforcemods.securitycraft.imc.waila.ICustomWailaDisplay; import net.geforcemods.securitycraft.main.mod_SecurityCraft; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.world.Explosion; import net.minecraft.world.World; public class BlockFurnaceMine extends BlockOwnable implements IExplosive, ICustomWailaDisplay { @SideOnly(Side.CLIENT) private IIcon field_149935_N; @SideOnly(Side.CLIENT) private IIcon field_149936_O; public BlockFurnaceMine(Material par2Material) { super(par2Material); } /** * Called upon the block being destroyed by an explosion */ public void onBlockDestroyedByExplosion(World par1World, int par2, int par3, int par4, Explosion par5Explosion) { if (!par1World.isRemote) { this.explode(par1World, par2, par3, par4); } } public void onBlockDestroyedByPlayer(World par1World, int par2, int par3, int par4, int par5){ if (!par1World.isRemote) { this.explode(par1World, par2, par3, par4); } } public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9){ if(par1World.isRemote){ return true; }else{ if(par5EntityPlayer.getCurrentEquippedItem() == null || par5EntityPlayer.getCurrentEquippedItem().getItem() != mod_SecurityCraft.remoteAccessMine){ this.explode(par1World, par2, par3, par4); return true; }else{ return false; } } } public void activateMine(World world, int par2, int par3, int par4) {} public void defuseMine(World world, int par2, int par3, int par4) {} public void explode(World par1World, int par2, int par3, int par4) { par1World.func_147480_a(par2, par3, par4, false); if(mod_SecurityCraft.configHandler.smallerMineExplosion){ par1World.createExplosion((Entity)null, par2, par3, par4, 2.5F, true); }else{ par1World.createExplosion((Entity)null, par2, par3, par4, 5.0F, true); } } /** * Return whether this block can drop from an explosion. */ public boolean canDropFromExplosion(Explosion par1Explosion) { return false; } @SideOnly(Side.CLIENT) public IIcon getIcon(int par1, int par2){ if(par1 == 3 && par2 == 0){ return this.field_149936_O; } return par1 == 1 ? this.field_149935_N : (par1 == 0 ? this.field_149935_N : (par1 != par2 ? this.blockIcon : this.field_149936_O)); } @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister p_149651_1_){ this.blockIcon = p_149651_1_.registerIcon("furnace_side"); this.field_149936_O = p_149651_1_.registerIcon("furnace_front_off"); this.field_149935_N = p_149651_1_.registerIcon("furnace_top"); } public boolean isActive(World world, int par2, int par3, int par4) { return true; } public boolean isDefusable() { return false; } public ItemStack getDisplayStack(World world, int x, int y, int z) { return new ItemStack(Blocks.furnace); } public boolean shouldShowSCInfo(World world, int x, int y, int z) { return false; } }