Пример #1
0
 protected MovingObjectPosition getMovingObjectPositionFromPlayer(
     World par1World, EntityPlayer par2EntityPlayer, boolean par3) {
   float var4 = 1.0F;
   float var5 =
       par2EntityPlayer.prevRotationPitch
           + (par2EntityPlayer.rotationPitch - par2EntityPlayer.prevRotationPitch) * var4;
   float var6 =
       par2EntityPlayer.prevRotationYaw
           + (par2EntityPlayer.rotationYaw - par2EntityPlayer.prevRotationYaw) * var4;
   double var7 =
       par2EntityPlayer.prevPosX
           + (par2EntityPlayer.posX - par2EntityPlayer.prevPosX) * (double) var4;
   double var9 =
       par2EntityPlayer.prevPosY
           + (par2EntityPlayer.posY - par2EntityPlayer.prevPosY) * (double) var4
           + 1.62D
           - (double) par2EntityPlayer.yOffset;
   double var11 =
       par2EntityPlayer.prevPosZ
           + (par2EntityPlayer.posZ - par2EntityPlayer.prevPosZ) * (double) var4;
   Vec3 var13 = par1World.getWorldVec3Pool().getVecFromPool(var7, var9, var11);
   float var14 = MathHelper.cos(-var6 * 0.017453292F - (float) Math.PI);
   float var15 = MathHelper.sin(-var6 * 0.017453292F - (float) Math.PI);
   float var16 = -MathHelper.cos(-var5 * 0.017453292F);
   float var17 = MathHelper.sin(-var5 * 0.017453292F);
   float var18 = var15 * var16;
   float var20 = var14 * var16;
   double var21 = 5.0D;
   Vec3 var23 =
       var13.addVector((double) var18 * var21, (double) var17 * var21, (double) var20 * var21);
   return par1World.rayTraceBlocks_do_do(var13, var23, par3, !par3);
 }
Пример #2
0
  /** Returns a vector indicating the direction and intensity of fluid flow. */
  private Vec3 getFlowVector(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) {
    Vec3 var5 = Vec3.getVec3Pool().getVecFromPool(0.0D, 0.0D, 0.0D);
    int var6 = this.getEffectiveFlowDecay(par1IBlockAccess, par2, par3, par4);

    for (int var7 = 0; var7 < 4; ++var7) {
      int var8 = par2;
      int var10 = par4;

      if (var7 == 0) {
        var8 = par2 - 1;
      }

      if (var7 == 1) {
        var10 = par4 - 1;
      }

      if (var7 == 2) {
        ++var8;
      }

      if (var7 == 3) {
        ++var10;
      }

      int var11 = this.getEffectiveFlowDecay(par1IBlockAccess, var8, par3, var10);
      int var12;

      if (var11 < 0) {
        if (!par1IBlockAccess.getBlockMaterial(var8, par3, var10).blocksMovement()) {
          var11 = this.getEffectiveFlowDecay(par1IBlockAccess, var8, par3 - 1, var10);

          if (var11 >= 0) {
            var12 = var11 - (var6 - 8);
            var5 =
                var5.addVector(
                    (double) ((var8 - par2) * var12),
                    (double) ((par3 - par3) * var12),
                    (double) ((var10 - par4) * var12));
          }
        }
      } else if (var11 >= 0) {
        var12 = var11 - var6;
        var5 =
            var5.addVector(
                (double) ((var8 - par2) * var12),
                (double) ((par3 - par3) * var12),
                (double) ((var10 - par4) * var12));
      }
    }

    if (par1IBlockAccess.getBlockMetadata(par2, par3, par4) >= 8) {
      boolean var13 = false;

      if (var13 || this.isBlockSolid(par1IBlockAccess, par2, par3, par4 - 1, 2)) {
        var13 = true;
      }

      if (var13 || this.isBlockSolid(par1IBlockAccess, par2, par3, par4 + 1, 3)) {
        var13 = true;
      }

      if (var13 || this.isBlockSolid(par1IBlockAccess, par2 - 1, par3, par4, 4)) {
        var13 = true;
      }

      if (var13 || this.isBlockSolid(par1IBlockAccess, par2 + 1, par3, par4, 5)) {
        var13 = true;
      }

      if (var13 || this.isBlockSolid(par1IBlockAccess, par2, par3 + 1, par4 - 1, 2)) {
        var13 = true;
      }

      if (var13 || this.isBlockSolid(par1IBlockAccess, par2, par3 + 1, par4 + 1, 3)) {
        var13 = true;
      }

      if (var13 || this.isBlockSolid(par1IBlockAccess, par2 - 1, par3 + 1, par4, 4)) {
        var13 = true;
      }

      if (var13 || this.isBlockSolid(par1IBlockAccess, par2 + 1, par3 + 1, par4, 5)) {
        var13 = true;
      }

      if (var13) {
        var5 = var5.normalize().addVector(0.0D, -6.0D, 0.0D);
      }
    }

    var5 = var5.normalize();
    return var5;
  }