private boolean func_70821_d(EntityPlayer p_70821_1_) {
   ItemStack var2 = p_70821_1_.field_71071_by.field_70460_b[3];
   if (var2 != null && var2.field_77993_c == Block.field_72061_ba.field_71990_ca) {
     return false;
   } else {
     Vec3 var3 = p_70821_1_.func_70676_i(1.0F).func_72432_b();
     Vec3 var4 =
         Vec3.func_72437_a()
             .func_72345_a(
                 this.field_70165_t - p_70821_1_.field_70165_t,
                 this.field_70121_D.field_72338_b
                     + (double) (this.field_70131_O / 2.0F)
                     - (p_70821_1_.field_70163_u + (double) p_70821_1_.func_70047_e()),
                 this.field_70161_v - p_70821_1_.field_70161_v);
     double var5 = var4.func_72433_c();
     var4 = var4.func_72432_b();
     double var7 = var3.func_72430_b(var4);
     return var7 > 1.0D - 0.025D / var5 ? p_70821_1_.func_70685_l(this) : false;
   }
 }
  public void func_70108_f(Entity p_70108_1_) {
    if (!this.field_70170_p.field_72995_K) {
      if (p_70108_1_ != this.field_70153_n) {
        if (p_70108_1_ instanceof EntityLiving
            && !(p_70108_1_ instanceof EntityPlayer)
            && !(p_70108_1_ instanceof EntityIronGolem)
            && this.func_94087_l() == 0
            && this.field_70159_w * this.field_70159_w + this.field_70179_y * this.field_70179_y
                > 0.01D
            && this.field_70153_n == null
            && p_70108_1_.field_70154_o == null) {
          p_70108_1_.func_70078_a(this);
        }

        double var2 = p_70108_1_.field_70165_t - this.field_70165_t;
        double var4 = p_70108_1_.field_70161_v - this.field_70161_v;
        double var6 = var2 * var2 + var4 * var4;
        if (var6 >= 9.999999747378752E-5D) {
          var6 = (double) MathHelper.func_76133_a(var6);
          var2 /= var6;
          var4 /= var6;
          double var8 = 1.0D / var6;
          if (var8 > 1.0D) {
            var8 = 1.0D;
          }

          var2 *= var8;
          var4 *= var8;
          var2 *= 0.10000000149011612D;
          var4 *= 0.10000000149011612D;
          var2 *= (double) (1.0F - this.field_70144_Y);
          var4 *= (double) (1.0F - this.field_70144_Y);
          var2 *= 0.5D;
          var4 *= 0.5D;
          if (p_70108_1_ instanceof EntityMinecart) {
            double var10 = p_70108_1_.field_70165_t - this.field_70165_t;
            double var12 = p_70108_1_.field_70161_v - this.field_70161_v;
            Vec3 var14 =
                this.field_70170_p.func_82732_R().func_72345_a(var10, 0.0D, var12).func_72432_b();
            Vec3 var15 =
                this.field_70170_p
                    .func_82732_R()
                    .func_72345_a(
                        (double) MathHelper.func_76134_b(this.field_70177_z * 3.1415927F / 180.0F),
                        0.0D,
                        (double) MathHelper.func_76126_a(this.field_70177_z * 3.1415927F / 180.0F))
                    .func_72432_b();
            double var16 = Math.abs(var14.func_72430_b(var15));
            if (var16 < 0.800000011920929D) {
              return;
            }

            double var18 = p_70108_1_.field_70159_w + this.field_70159_w;
            double var20 = p_70108_1_.field_70179_y + this.field_70179_y;
            if (((EntityMinecart) p_70108_1_).func_94087_l() == 2 && this.func_94087_l() != 2) {
              this.field_70159_w *= 0.20000000298023224D;
              this.field_70179_y *= 0.20000000298023224D;
              this.func_70024_g(
                  p_70108_1_.field_70159_w - var2, 0.0D, p_70108_1_.field_70179_y - var4);
              p_70108_1_.field_70159_w *= 0.949999988079071D;
              p_70108_1_.field_70179_y *= 0.949999988079071D;
            } else if (((EntityMinecart) p_70108_1_).func_94087_l() != 2
                && this.func_94087_l() == 2) {
              p_70108_1_.field_70159_w *= 0.20000000298023224D;
              p_70108_1_.field_70179_y *= 0.20000000298023224D;
              p_70108_1_.func_70024_g(this.field_70159_w + var2, 0.0D, this.field_70179_y + var4);
              this.field_70159_w *= 0.949999988079071D;
              this.field_70179_y *= 0.949999988079071D;
            } else {
              var18 /= 2.0D;
              var20 /= 2.0D;
              this.field_70159_w *= 0.20000000298023224D;
              this.field_70179_y *= 0.20000000298023224D;
              this.func_70024_g(var18 - var2, 0.0D, var20 - var4);
              p_70108_1_.field_70159_w *= 0.20000000298023224D;
              p_70108_1_.field_70179_y *= 0.20000000298023224D;
              p_70108_1_.func_70024_g(var18 + var2, 0.0D, var20 + var4);
            }
          } else {
            this.func_70024_g(-var2, 0.0D, -var4);
            p_70108_1_.func_70024_g(var2 / 4.0D, 0.0D, var4 / 4.0D);
          }
        }
      }
    }
  }