public boolean hitEntity(ItemStack itemstack, EntityLiving mob, EntityLiving entityliving1) { World world = entityliving1.worldObj; if (type1 == type2) { attacks(itemstack, world, entityliving1, mob, type1); } else { if (random.nextInt(100) + 1 <= 80) { attacks(itemstack, world, entityliving1, mob, type1); } if (random.nextInt(100) + 1 <= 20) { attacks(itemstack, world, entityliving1, mob, type2); } } int i = itemstack.getItemDamage(); if (i >= dur) { itemstack.stackSize = 0; } if (type1 == 3 || type2 == 3 || type1 == 4 || type2 == 4 || type1 == 8 || type2 == 8) { if (random.nextInt(100) + 1 <= 90) { itemstack.damageItem(1, entityliving1); } } else { itemstack.damageItem(1, entityliving1); } return true; }
/** * called when the player releases the use item button. Args: itemstack, world, entityplayer, * itemInUseCount */ public void onPlayerStoppedUsing( ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer, int par4) { boolean var5 = par3EntityPlayer.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, par1ItemStack) > 0; if (var5 || par3EntityPlayer.inventory.hasItem(Item.arrow.shiftedIndex)) { int var6 = this.getMaxItemUseDuration(par1ItemStack) - par4; float var7 = (float) var6 / 20.0F; var7 = (var7 * var7 + var7 * 2.0F) / 3.0F; if ((double) var7 < 0.1D) { return; } if (var7 > 1.0F) { var7 = 1.0F; } EntityArrow var8 = new EntityArrow(par2World, par3EntityPlayer, var7 * 2.0F); if (var7 == 1.0F) { var8.setIsCritical(true); } int var9 = EnchantmentHelper.getEnchantmentLevel(Enchantment.power.effectId, par1ItemStack); if (var9 > 0) { var8.setDamage(var8.getDamage() + (double) var9 * 0.5D + 0.5D); } int var10 = EnchantmentHelper.getEnchantmentLevel(Enchantment.punch.effectId, par1ItemStack); if (var10 > 0) { var8.setKnockbackStrength(var10); } if (EnchantmentHelper.getEnchantmentLevel(Enchantment.flame.effectId, par1ItemStack) > 0) { var8.setFire(100); } par1ItemStack.damageItem(1, par3EntityPlayer); par2World.playSoundAtEntity( par3EntityPlayer, "random.bow", 1.0F, 1.0F / (itemRand.nextFloat() * 0.4F + 1.2F) + var7 * 0.5F); if (var5) { var8.canBePickedUp = 2; } else { par3EntityPlayer.inventory.consumeInventoryItem(Item.arrow.shiftedIndex); } if (!par2World.isRemote) { par2World.spawnEntityInWorld(var8); } } }
/** * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a * pig. */ public boolean interact(EntityPlayer par1EntityPlayer) { ItemStack var2 = par1EntityPlayer.inventory.getCurrentItem(); if (var2 != null && var2.itemID == Item.shears.itemID && !this.getSheared() && !this.isChild()) { if (!this.worldObj.isRemote) { this.setSheared(true); int var3 = 1 + this.rand.nextInt(3); for (int var4 = 0; var4 < var3; ++var4) { EntityItem var5 = this.entityDropItem( new ItemStack(Block.cloth.blockID, 1, this.getFleeceColor()), 1.0F); var5.motionY += (double) (this.rand.nextFloat() * 0.05F); var5.motionX += (double) ((this.rand.nextFloat() - this.rand.nextFloat()) * 0.1F); var5.motionZ += (double) ((this.rand.nextFloat() - this.rand.nextFloat()) * 0.1F); } } var2.damageItem(1, par1EntityPlayer); this.playSound("mob.sheep.shear", 1.0F, 1.0F); } return super.interact(par1EntityPlayer); }
/** * called when the player releases the use item button. Args: itemstack, world, entityplayer, * itemInUseCount */ public void onPlayerStoppedUsing( ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer, int par4) { boolean flag = par3EntityPlayer.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, par1ItemStack) > 0; if (flag || par3EntityPlayer.inventory.hasItem(Item.arrow.shiftedIndex)) { int i = getMaxItemUseDuration(par1ItemStack) - par4; float f = (float) i / 20F; f = (f * f + f * 2.0F) / 3F; if ((double) f < 0.10000000000000001D) { return; } if (f > 1.0F) { f = 1.0F; } EntityArrow entityarrow = new EntityArrow(par2World, par3EntityPlayer, f * 2.0F); if (f == 1.0F) { entityarrow.func_56125_a(true); } int j = EnchantmentHelper.getEnchantmentLevel(Enchantment.power.effectId, par1ItemStack); if (j > 0) { entityarrow.setDamage(entityarrow.getDamage() + (double) j * 0.5D + 0.5D); } int k = EnchantmentHelper.getEnchantmentLevel(Enchantment.punch.effectId, par1ItemStack); if (k > 0) { entityarrow.func_46007_b(k); } if (EnchantmentHelper.getEnchantmentLevel(Enchantment.flame.effectId, par1ItemStack) > 0) { entityarrow.setFire(100); } par1ItemStack.damageItem(1, par3EntityPlayer); par2World.playSoundAtEntity( par3EntityPlayer, "random.bow", 1.0F, 1.0F / (itemRand.nextFloat() * 0.4F + 1.2F) + f * 0.5F); if (flag) { entityarrow.field_58012_a = 2; } else { par3EntityPlayer.inventory.consumeInventoryItem(Item.arrow.shiftedIndex); } if (!par2World.isRemote) { par2World.spawnEntityInWorld(entityarrow); } } }
public boolean onBlockDestroyed( ItemStack itemstack, int i, int j, int k, int l, EntityLiving entityliving) { int i1 = itemstack.getItemDamage(); if (i1 >= dur) { itemstack.stackSize = 0; } itemstack.damageItem(2, entityliving); return true; }
public boolean onBlockDestroyed( ItemStack par1ItemStack, int par2, int par3, int par4, int par5, EntityLiving par6EntityLiving) { par1ItemStack.damageItem(2, par6EntityLiving); return true; }
public boolean onBlockDestroyed( ItemStack itemstack, int bID, int x, int y, int z, EntityLiving player) { int unbreaking = headUnbreaking; if (handleUnbreaking > unbreaking) unbreaking = handleUnbreaking; if (random.nextInt(100) + 1 <= 100 - (unbreaking * 10)) { if (itemstack.getItemDamage() + 1 >= itemstack.getMaxDamage()) ((EntityPlayer) player).destroyCurrentEquippedItem(); else itemstack.damageItem(1, player); } return true; }
public boolean func_77660_a( ItemStack par1ItemStack, World par2World, int par3, int par4, int par5, int par6, EntityLiving par7EntityLiving) { if ((double) Block.blocksList[par3].func_71934_m(par2World, par4, par5, par6) != 0.0D) { par1ItemStack.damageItem(1, par7EntityLiving); } return true; }
/** * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, * world, entityPlayer */ public ItemStack onItemRightClick( ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) { if (par3EntityPlayer.isRiding() && par3EntityPlayer.ridingEntity instanceof EntityPig) { EntityPig var4 = (EntityPig) par3EntityPlayer.ridingEntity; if (var4.getAIControlledByPlayer().isControlledByPlayer() && par1ItemStack.getMaxDamage() - par1ItemStack.getItemDamage() >= 7) { var4.getAIControlledByPlayer().boostSpeed(); par1ItemStack.damageItem(7, par3EntityPlayer); if (par1ItemStack.stackSize == 0) { return new ItemStack(Item.fishingRod); } } } return par1ItemStack; }
public boolean interact(EntityPlayer entityplayer) { ItemStack itemstack = entityplayer.inventory.getCurrentItem(); if (itemstack != null && itemstack.itemID == Item.shears.shiftedIndex && !getSheared()) { if (!worldObj.multiplayerWorld) { if (getPuffed()) { setPuffed(false); int i = 2 + rand.nextInt(3); for (int l = 0; l < i; l++) { EntityItem entityitem = entityDropItem(new ItemStack(Block.cloth.blockID, 1, getFleeceColor()), 1.0F); entityitem.motionY += rand.nextFloat() * 0.05F; entityitem.motionX += (rand.nextFloat() - rand.nextFloat()) * 0.1F; entityitem.motionZ += (rand.nextFloat() - rand.nextFloat()) * 0.1F; } } else { setSheared(true); int j = 2 + rand.nextInt(3); for (int i1 = 0; i1 < j; i1++) { EntityItem entityitem1 = entityDropItem(new ItemStack(Block.cloth.blockID, 1, getFleeceColor()), 1.0F); entityitem1.motionY += rand.nextFloat() * 0.05F; entityitem1.motionX += (rand.nextFloat() - rand.nextFloat()) * 0.1F; entityitem1.motionZ += (rand.nextFloat() - rand.nextFloat()) * 0.1F; } } } itemstack.damageItem(1, entityplayer); } if (itemstack != null && itemstack.itemID == Item.dyePowder.shiftedIndex && !getSheared()) { int k = BlockCloth.func_21034_c(itemstack.getItemDamage()); if (getFleeceColor() != k) { if (getPuffed() && itemstack.stackSize >= 2) { setFleeceColor(k); itemstack.stackSize -= 2; } else if (!getPuffed()) { setFleeceColor(k); itemstack.stackSize--; } } } return false; }
/** * Callback for item usage. If the item does something special on right clicking, he will have one * of those. Return True if something happen and false if it don't. This is for ITEMS, not BLOCKS */ public boolean onItemUse( ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) { if (!par2EntityPlayer.canPlayerEdit(par4, par5, par6, par7, par1ItemStack)) { return false; } else { int var11 = par3World.getBlockId(par4, par5, par6); int var12 = par3World.getBlockId(par4, par5 + 1, par6); if ((par7 == 0 || var12 != 0 || var11 != Block.grass.blockID) && var11 != Block.dirt.blockID) { return false; } else { Block var13 = Block.tilledField; par3World.playSoundEffect( (double) ((float) par4 + 0.5F), (double) ((float) par5 + 0.5F), (double) ((float) par6 + 0.5F), var13.stepSound.getStepSound(), (var13.stepSound.getVolume() + 1.0F) / 2.0F, var13.stepSound.getPitch() * 0.8F); if (par3World.isRemote) { return true; } else { par3World.setBlockWithNotify(par4, par5, par6, var13.blockID); par1ItemStack.damageItem(1, par2EntityPlayer); return true; } } } }
public boolean hitEntity(ItemStack itemstack, EntityLiving mob, EntityLiving player) { World world = player.worldObj; if (headType == handleType) { attacks(itemstack, world, player, mob, headType); } else { if (random.nextInt(100) + 1 <= 80) { attacks(itemstack, world, player, mob, headType); } if (random.nextInt(100) + 1 <= 20) { attacks(itemstack, world, player, mob, handleType); } } int unbreaking = headUnbreaking; if (handleUnbreaking > unbreaking) unbreaking = handleUnbreaking; if (random.nextInt(100) + 1 <= 100 - (unbreaking * 10)) { if (itemstack.getItemDamage() + 2 >= itemstack.getMaxDamage()) ((EntityPlayer) player).destroyCurrentEquippedItem(); else itemstack.damageItem(2, mob); } return true; }
/** * Current implementations of this method in child classes do not use the entry argument beside * ev. They just raise the damage on the stack. */ public boolean hitEntity( ItemStack par1ItemStack, EntityLiving par2EntityLiving, EntityLiving par3EntityLiving) { par1ItemStack.damageItem(2, par3EntityLiving); return true; }
public void onUpdate(ItemStack itemstack, World world, Entity entity, int i, boolean flag) { if (itemstack.getItemDamage() > 0) { itemstack.damageItem(-1, (EntityLiving) entity); } }
/** Updates the task */ public void updateTask() { EntityPlayer var1 = (EntityPlayer) this.thisEntity.riddenByEntity; EntityCreature var2 = (EntityCreature) this.thisEntity; float var3 = MathHelper.wrapAngleTo180_float(var1.rotationYaw - this.thisEntity.rotationYaw) * 0.5F; if (var3 > 5.0F) { var3 = 5.0F; } if (var3 < -5.0F) { var3 = -5.0F; } this.thisEntity.rotationYaw = MathHelper.wrapAngleTo180_float(this.thisEntity.rotationYaw + var3); if (this.currentSpeed < this.maxSpeed) { this.currentSpeed += (this.maxSpeed - this.currentSpeed) * 0.01F; } if (this.currentSpeed > this.maxSpeed) { this.currentSpeed = this.maxSpeed; } int var4 = MathHelper.floor_double(this.thisEntity.posX); int var5 = MathHelper.floor_double(this.thisEntity.posY); int var6 = MathHelper.floor_double(this.thisEntity.posZ); float var7 = this.currentSpeed; if (this.speedBoosted) { if (this.speedBoostTime++ > this.maxSpeedBoostTime) { this.speedBoosted = false; } var7 += var7 * 1.15F * MathHelper.sin( (float) this.speedBoostTime / (float) this.maxSpeedBoostTime * (float) Math.PI); } float var8 = 0.91F; if (this.thisEntity.onGround) { var8 = 0.54600006F; int var9 = this.thisEntity.worldObj.getBlockId( MathHelper.floor_float((float) var4), MathHelper.floor_float((float) var5) - 1, MathHelper.floor_float((float) var6)); if (var9 > 0) { var8 = Block.blocksList[var9].slipperiness * 0.91F; } } float var23 = 0.16277136F / (var8 * var8 * var8); float var10 = MathHelper.sin(var2.rotationYaw * (float) Math.PI / 180.0F); float var11 = MathHelper.cos(var2.rotationYaw * (float) Math.PI / 180.0F); float var12 = var2.getAIMoveSpeed() * var23; float var13 = Math.max(var7, 1.0F); var13 = var12 / var13; float var14 = var7 * var13; float var15 = -(var14 * var10); float var16 = var14 * var11; if (MathHelper.abs(var15) > MathHelper.abs(var16)) { if (var15 < 0.0F) { var15 -= this.thisEntity.width / 2.0F; } if (var15 > 0.0F) { var15 += this.thisEntity.width / 2.0F; } var16 = 0.0F; } else { var15 = 0.0F; if (var16 < 0.0F) { var16 -= this.thisEntity.width / 2.0F; } if (var16 > 0.0F) { var16 += this.thisEntity.width / 2.0F; } } int var17 = MathHelper.floor_double(this.thisEntity.posX + (double) var15); int var18 = MathHelper.floor_double(this.thisEntity.posZ + (double) var16); PathPoint var19 = new PathPoint( MathHelper.floor_float(this.thisEntity.width + 1.0F), MathHelper.floor_float(this.thisEntity.height + var1.height + 1.0F), MathHelper.floor_float(this.thisEntity.width + 1.0F)); if (var4 != var17 || var6 != var18) { int var20 = this.thisEntity.worldObj.getBlockId(var4, var5, var6); int var21 = this.thisEntity.worldObj.getBlockId(var4, var5 - 1, var6); boolean var22 = this.func_98216_b(var20) || Block.blocksList[var20] == null && this.func_98216_b(var21); if (!var22 && PathFinder.func_82565_a(this.thisEntity, var17, var5, var18, var19, false, false, true) == 0 && PathFinder.func_82565_a( this.thisEntity, var4, var5 + 1, var6, var19, false, false, true) == 1 && PathFinder.func_82565_a( this.thisEntity, var17, var5 + 1, var18, var19, false, false, true) == 1) { var2.getJumpHelper().setJumping(); } } if (!var1.capabilities.isCreativeMode && this.currentSpeed >= this.maxSpeed * 0.5F && this.thisEntity.getRNG().nextFloat() < 0.006F && !this.speedBoosted) { ItemStack var24 = var1.getHeldItem(); if (var24 != null && var24.itemID == Item.carrotOnAStick.itemID) { var24.damageItem(1, var1); if (var24.stackSize == 0) { ItemStack var25 = new ItemStack(Item.fishingRod); var25.setTagCompound(var24.stackTagCompound); var1.inventory.mainInventory[var1.inventory.currentItem] = var25; } } } this.thisEntity.moveEntityWithHeading(0.0F, var7); }
public boolean onBlockDestroyed( ItemStack itemstack, int i, int j, int k, int l, EntityLiving entityliving) { itemstack.damageItem(1, entityliving); return true; }
public boolean hitEntity( ItemStack itemstack, EntityLiving entityliving, EntityLiving entityliving1) { itemstack.damageItem(2, entityliving1); return true; }