public EntityBolt(World world, EntityLiving entityliving, float f) { this(world); shooter = entityliving; shotByPlayer = entityliving instanceof EntityPlayer; this.setSize(0.5F, 0.5F); this.setLocationAndAngles( entityliving.posX, entityliving.posY + (double) entityliving.getEyeHeight(), entityliving.posZ, entityliving.rotationYaw, entityliving.rotationPitch); this.posX -= (double) (MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * 0.16F); this.posY -= 0.10000000149011612D; this.posZ -= (double) (MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * 0.16F); this.setPosition(this.posX, this.posY, this.posZ); this.yOffset = 0.0F; this.motionX = (double) (-MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI)); this.motionZ = (double) (MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI)); this.motionY = (double) (-MathHelper.sin(this.rotationPitch / 180.0F * (float) Math.PI)); this.setArrowHeading(this.motionX, this.motionY, this.motionZ, f * 1.5F); }
public EntityArrow( World par1World, EntityLiving par2EntityLiving, EntityLiving par3EntityLiving, float par4, float par5) { super(par1World); this.xTile = -1; this.yTile = -1; this.zTile = -1; this.inTile = 0; this.inData = 0; this.inGround = false; this.field_70251_a = 0; this.arrowShake = 0; this.ticksInAir = 0; this.damage = 2D; this.shootingEntity = par2EntityLiving; if (par2EntityLiving instanceof EntityPlayer) { this.field_70251_a = 1; } this.posY = (par2EntityLiving.posY + par2EntityLiving.getEyeHeight()) - 0.10000000149011612D; double d = par3EntityLiving.posX - par2EntityLiving.posX; double d1 = (par3EntityLiving.posY + par3EntityLiving.getEyeHeight()) - 0.69999998807907104D - this.posY; double d2 = par3EntityLiving.posZ - par2EntityLiving.posZ; double d3 = MathHelper.sqrt_double(d * d + d2 * d2); if (d3 < 9.9999999999999995E-008D) { return; } else { float f = (float) ((Math.atan2(d2, d) * 180D) / Math.PI) - 90F; float f1 = (float) (-((Math.atan2(d1, d3) * 180D) / Math.PI)); double d4 = d / d3; double d5 = d2 / d3; setLocationAndAngles( par2EntityLiving.posX + d4, this.posY, par2EntityLiving.posZ + d5, f, f1); this.yOffset = 0.0F; float f2 = (float) d3 * 0.2F; setArrowHeading(d, d1 + f2, d2, par4, par5); return; } }
public static Vec3D projectViewFromEntity(EntityLiving par0EntityLiving, double par1) { double var3 = par0EntityLiving.prevPosX + (par0EntityLiving.posX - par0EntityLiving.prevPosX) * par1; double var5 = par0EntityLiving.prevPosY + (par0EntityLiving.posY - par0EntityLiving.prevPosY) * par1 + (double) par0EntityLiving.getEyeHeight(); double var7 = par0EntityLiving.prevPosZ + (par0EntityLiving.posZ - par0EntityLiving.prevPosZ) * par1; double var9 = var3 + (double) (objectX * 1.0F); double var11 = var5 + (double) (objectY * 1.0F); double var13 = var7 + (double) (objectZ * 1.0F); return Vec3D.createVector(var9, var11, var13); }
public void faceEntity(Entity entity, float f) { double d = entity.posX - posX; double d2 = entity.posZ - posZ; double d1; if (entity instanceof EntityLiving) { EntityLiving entityliving = (EntityLiving) entity; d1 = (entityliving.posY + (double) entityliving.getEyeHeight()) - (posY + (double) getEyeHeight()); } else { d1 = (entity.boundingBox.minY + entity.boundingBox.maxY) / 2D - (posY + (double) getEyeHeight()); } double d3 = MathHelper.sqrt_double(d * d + d2 * d2); float f1 = (float) ((Math.atan2(d2, d) * 180D) / 3.1415927410125732D) - 90F; float f2 = (float) ((Math.atan2(d1, d3) * 180D) / 3.1415927410125732D); rotationPitch = -updateRotation(rotationPitch, f2, f); rotationYaw = updateRotation(rotationYaw, f1, f); }
public EntityArrow(World par1World, EntityLiving par2EntityLiving, float par3) { super(par1World); this.xTile = -1; this.yTile = -1; this.zTile = -1; this.inTile = 0; this.inData = 0; this.inGround = false; this.field_70251_a = 0; this.arrowShake = 0; this.ticksInAir = 0; this.damage = 2D; this.shootingEntity = par2EntityLiving; if (par2EntityLiving instanceof EntityPlayer) { this.field_70251_a = 1; } setSize(0.5F, 0.5F); setLocationAndAngles( par2EntityLiving.posX, par2EntityLiving.posY + par2EntityLiving.getEyeHeight(), par2EntityLiving.posZ, par2EntityLiving.rotationYaw, par2EntityLiving.rotationPitch); this.posX -= MathHelper.cos((this.rotationYaw / 180F) * (float) Math.PI) * 0.16F; this.posY -= 0.10000000149011612D; this.posZ -= MathHelper.sin((this.rotationYaw / 180F) * (float) Math.PI) * 0.16F; setPosition(this.posX, this.posY, this.posZ); this.yOffset = 0.0F; this.motionX = -MathHelper.sin((this.rotationYaw / 180F) * (float) Math.PI) * MathHelper.cos((this.rotationPitch / 180F) * (float) Math.PI); this.motionZ = MathHelper.cos((this.rotationYaw / 180F) * (float) Math.PI) * MathHelper.cos((this.rotationPitch / 180F) * (float) Math.PI); this.motionY = -MathHelper.sin((this.rotationPitch / 180F) * (float) Math.PI); setArrowHeading(this.motionX, this.motionY, this.motionZ, par3 * 1.5F, 1.0F); }