package fox.spiteful.forbidden.items.tools; import fox.spiteful.forbidden.Forbidden; import fox.spiteful.forbidden.blocks.ForbiddenBlocks; import net.minecraft.block.Block; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemSpade; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.world.World; import net.minecraftforge.common.ForgeHooks; import thaumcraft.api.IRepairable; import fox.spiteful.forbidden.Config; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import thaumcraft.common.Thaumcraft; import thaumcraft.common.config.ConfigBlocks; public class ItemTaintShovel extends ItemSpade implements IRepairable { public IIcon icon; public ItemTaintShovel(ToolMaterial enumtoolmaterial) { super(enumtoolmaterial); this.setCreativeTab(Forbidden.tab); this.setHarvestLevel("shovel", 3); } @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister ir) { this.icon = ir.registerIcon("forbidden:taintshovel"); } @SideOnly(Side.CLIENT) public IIcon getIconFromDamage(int par1) { return this.icon; } public EnumRarity getRarity(ItemStack itemstack) { return EnumRarity.rare; } public boolean getIsRepairable(ItemStack stack, ItemStack stack2) { return stack2.isItemEqual(new ItemStack(Config.thaumcraftResource.getItem(), 1, 2)) ? true : super.getIsRepairable(stack, stack2); } @Override public float getDigSpeed(ItemStack stack, Block block, int meta) { if (ForgeHooks.isToolEffective(stack, block, meta) || (block.getMaterial() == Config.taintMaterial && block != ForbiddenBlocks.taintLog && block != ForbiddenBlocks.taintPlanks && block != ForbiddenBlocks.taintStone)) { return efficiencyOnProperMaterial; } return func_150893_a(stack, block); } @Override public boolean onItemUse(ItemStack itemstack, EntityPlayer player, World world, int x, int y, int z, int side, float par8, float par9, float par10) { int purified = 0; for(int ex = x - 5;ex < x + 6;ex++){ for(int wy = y - 4;wy < y + 5;wy++){ for(int zee = z - 5;zee < z + 6;zee++){ Block target = world.getBlock(ex, wy, zee); if(target != null && (target == ConfigBlocks.blockFluxGoo || target == ConfigBlocks.blockFluxGas)){ purified++; world.setBlockToAir(ex, wy, zee); float d1 = ((float) ex + world.rand.nextFloat()); float d2 = ((float) wy + world.rand.nextFloat()); float d0 = ((float) zee + world.rand.nextFloat()); Thaumcraft.proxy.nodeBolt(world, (float)player.posX, (float)player.posY, (float)player.posZ, d1, d2, d0); } } } } if(purified > 0){ itemstack.damageItem(Math.min(purified, 15), player); player.swingItem(); world.playSoundEffect((double)x + 0.5D, (double)y + 0.5D, (double)z + 0.5D, "thaumcraft:wandfail", 0.2F, 0.2F + world.rand.nextFloat() * 0.2F); return true; } else return super.onItemUse(itemstack, player, world, x, y, z, side, par8, par9, par10); } }