package fox.spiteful.forbidden.items.tools; import fox.spiteful.forbidden.Forbidden; import fox.spiteful.forbidden.items.ForbiddenItems; import net.minecraft.block.Block; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.monster.EntityGolem; import net.minecraft.entity.passive.EntityHorse; import net.minecraft.entity.passive.EntityPig; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.item.EnumAction; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.util.DamageSource; import net.minecraft.util.IIcon; import net.minecraft.world.World; import fox.spiteful.forbidden.Config; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; public class ItemRidingCrop extends ItemSword { public IIcon icon; public ItemRidingCrop(ToolMaterial mat) { super(mat); this.setCreativeTab(Forbidden.tab); } @Override @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister ir) { this.icon = ir.registerIcon("forbidden:crop"); } @Override public boolean hitEntity(ItemStack stack, EntityLivingBase victim, EntityLivingBase player) { stack.damageItem(1, player); if (victim instanceof EntityHorse || victim instanceof EntityPig) victim.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 200, 5)); else if (victim instanceof EntityPlayer || victim instanceof EntityGolem) { victim.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 200, 1)); victim.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 200, 1)); victim.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 200, 1)); } if (!player.worldObj.isRemote && !Config.noLust && player.worldObj.provider.dimensionId == -1 && player.worldObj.rand.nextInt(15) == 1) { EntityItem ent = victim.entityDropItem(new ItemStack(ForbiddenItems.deadlyShards, 1, 4), 1.0F); ent.motionY += player.worldObj.rand.nextFloat() * 0.05F; ent.motionX += (player.worldObj.rand.nextFloat() - player.worldObj.rand.nextFloat()) * 0.1F; ent.motionZ += (player.worldObj.rand.nextFloat() - player.worldObj.rand.nextFloat()) * 0.1F; } return true; } @Override @SideOnly(Side.CLIENT) public IIcon getIconFromDamage(int par1) { return this.icon; } @Override public float getDigSpeed(ItemStack stack, Block block, int meta) { return 1.0F; } @Override public EnumAction getItemUseAction(ItemStack stack) { return EnumAction.none; } @Override public int getMaxItemUseDuration(ItemStack stack) { return 0; } @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { if (player.ridingEntity != null && player.ridingEntity instanceof EntityLivingBase) { EntityLivingBase mount = (EntityLivingBase) player.ridingEntity; stack.damageItem(1, player); player.swingItem(); // mount.attackEntityFrom(DamageSource.causePlayerDamage(player), // 4.0F); mount.attackEntityFrom(DamageSource.generic, 1.0F); mount.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 200, 5)); } return stack; } @Override public boolean getIsRepairable(ItemStack stack, ItemStack stack2) { return stack2.getItem() == Items.leather || super.getIsRepairable(stack, stack2); } @Override public boolean canHarvestBlock(Block block, ItemStack itemStack) { return false; } }