package biomesoplenty.items; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import biomesoplenty.BiomesOPlenty; import biomesoplenty.api.Items; import biomesoplenty.entities.projectiles.EntityDart; import biomesoplenty.entities.projectiles.EntityDart.DartType; public class ItemDartBlower extends Item { public ItemDartBlower(int par1) { super(par1); maxStackSize = 1; this.setMaxDamage(63); setCreativeTab(BiomesOPlenty.tabBiomesOPlenty); } @Override public void registerIcons(IconRegister iconRegister) { itemIcon = iconRegister.registerIcon("biomesoplenty:dartblower"); } /** * Returns True is the item is renderer in full 3D when hold. */ @Override public boolean isFull3D() { return true; } @Override public ItemStack onItemRightClick(ItemStack itemStack, World par2World, EntityPlayer par3EntityPlayer) { boolean flag = par3EntityPlayer.capabilities.isCreativeMode; if (flag || par3EntityPlayer.inventory.hasItem(Items.dart.get().itemID)) { EntityDart entityDart = new EntityDart(par2World, par3EntityPlayer, 1.0F); itemStack.damageItem(1, par3EntityPlayer); par2World.playSoundAtEntity(par3EntityPlayer, "random.bow", 1.0F, 2.0F / (1.0F * 0.4F + 1.2F) + 1.0F * 0.5F); int slot = -1; if (par3EntityPlayer.inventory.hasItemStack(new ItemStack(Items.dart.get().itemID, 1, 1))) { entityDart.setDartType(DartType.POISON); for (int k = 0; k < par3EntityPlayer.inventory.mainInventory.length; ++k) if (par3EntityPlayer.inventory.mainInventory[k] != null && par3EntityPlayer.inventory.mainInventory[k].itemID == Items.dart.get().itemID && par3EntityPlayer.inventory.mainInventory[k].getItemDamage() == 1) { slot = k; break; } } else if (par3EntityPlayer.inventory.hasItemStack(new ItemStack(Items.dart.get().itemID, 1, 0))) { entityDart.setDartType(DartType.NORMAL); for (int k = 0; k < par3EntityPlayer.inventory.mainInventory.length; ++k) if (par3EntityPlayer.inventory.mainInventory[k] != null && par3EntityPlayer.inventory.mainInventory[k].itemID == Items.dart.get().itemID && par3EntityPlayer.inventory.mainInventory[k].getItemDamage() == 0) { slot = k; break; } } if (!par2World.isRemote) { par2World.spawnEntityInWorld(entityDart); } if (!flag && slot >= 0) { par3EntityPlayer.inventory.decrStackSize(slot, 1); } } return itemStack; } }