public EntityItem dropItem(ItemStack droppedItem, boolean dropAround, boolean traceItem) { if (droppedItem == null) { return null; } else if (droppedItem.stackSize == 0) { return null; } else { double d0 = this.posY - 0.30000001192092896D + (double)this.getEyeHeight(); EntityItem entityitem = new EntityItem(this.worldObj, this.posX, d0, this.posZ, droppedItem); entityitem.setPickupDelay(40); if (traceItem) { entityitem.setThrower(this.getCommandSenderName()); } if (dropAround) { float f = this.rand.nextFloat() * 0.5F; float f1 = this.rand.nextFloat() * (float)Math.PI * 2.0F; entityitem.motionX = (double)(-MathHelper.sin(f1) * f); entityitem.motionZ = (double)(MathHelper.cos(f1) * f); entityitem.motionY = 0.20000000298023224D; } else { float f2 = 0.3F; float yaw = this.rotationYaw; float pitch = this.rotationYaw; if(this == Minecraft.getMinecraft().thePlayer) { yaw = PlayerHandler.yaw; pitch = PlayerHandler.pitch; } entityitem.motionX = (double) (-MathHelper.sin(yaw / 180.0F * (float) Math.PI) * MathHelper.cos(pitch / 180.0F * (float) Math.PI) * f2); entityitem.motionZ = (double) (MathHelper.cos(yaw / 180.0F * (float) Math.PI) * MathHelper.cos(pitch / 180.0F * (float) Math.PI) * f2); entityitem.motionY = (double) (-MathHelper.sin(pitch / 180.0F * (float) Math.PI) * f2 + 0.1F); float f3 = this.rand.nextFloat() * (float) Math.PI * 2.0F; f2 = 0.02F * this.rand.nextFloat(); entityitem.motionX += Math.cos((double) f3) * (double) f2; entityitem.motionY += (double) ((this.rand.nextFloat() - this.rand.nextFloat()) * 0.1F); entityitem.motionZ += Math.sin((double) f3) * (double) f2; } this.joinEntityItemWithWorld(entityitem); if (traceItem) { this.triggerAchievement(StatList.dropStat); } return entityitem; } }