public void func_77278_a() { float f = field_77280_f; HashSet hashset = new HashSet(); for (int i = 0; i < field_77289_h; i++) { for (int k = 0; k < field_77289_h; k++) { label0: for (int i1 = 0; i1 < field_77289_h; i1++) { if (i != 0 && i != field_77289_h - 1 && k != 0 && k != field_77289_h - 1 && i1 != 0 && i1 != field_77289_h - 1) { continue; } double d = ((float) i / ((float) field_77289_h - 1.0F)) * 2.0F - 1.0F; double d1 = ((float) k / ((float) field_77289_h - 1.0F)) * 2.0F - 1.0F; double d2 = ((float) i1 / ((float) field_77289_h - 1.0F)) * 2.0F - 1.0F; double d3 = Math.sqrt(d * d + d1 * d1 + d2 * d2); d /= d3; d1 /= d3; d2 /= d3; float f1 = field_77280_f * (0.7F + field_77287_j.field_73012_v.nextFloat() * 0.6F); double d5 = field_77284_b; double d7 = field_77285_c; double d9 = field_77282_d; float f2 = 0.3F; do { if (f1 <= 0.0F) { continue label0; } int k2 = MathHelper.func_76128_c(d5); int l2 = MathHelper.func_76128_c(d7); int i3 = MathHelper.func_76128_c(d9); int j3 = field_77287_j.func_72798_a(k2, l2, i3); if (j3 > 0) { f1 -= (Block.field_71973_m[j3].func_71904_a(field_77283_e) + 0.3F) * f2; } if (f1 > 0.0F) { hashset.add(new ChunkPosition(k2, l2, i3)); } d5 += d * (double) f2; d7 += d1 * (double) f2; d9 += d2 * (double) f2; f1 -= f2 * 0.75F; } while (true); } } } field_77281_g.addAll(hashset); field_77280_f *= 2.0F; int j = MathHelper.func_76128_c(field_77284_b - (double) field_77280_f - 1.0D); int l = MathHelper.func_76128_c(field_77284_b + (double) field_77280_f + 1.0D); int j1 = MathHelper.func_76128_c(field_77285_c - (double) field_77280_f - 1.0D); int k1 = MathHelper.func_76128_c(field_77285_c + (double) field_77280_f + 1.0D); int l1 = MathHelper.func_76128_c(field_77282_d - (double) field_77280_f - 1.0D); int i2 = MathHelper.func_76128_c(field_77282_d + (double) field_77280_f + 1.0D); List list = field_77287_j.func_72839_b( field_77283_e, AxisAlignedBB.func_72332_a().func_72299_a(j, j1, l1, l, k1, i2)); Vec3 vec3 = Vec3.func_72437_a().func_72345_a(field_77284_b, field_77285_c, field_77282_d); for (int j2 = 0; j2 < list.size(); j2++) { Entity entity = (Entity) list.get(j2); double d4 = entity.func_70011_f(field_77284_b, field_77285_c, field_77282_d) / (double) field_77280_f; if (d4 > 1.0D) { continue; } double d6 = entity.field_70165_t - field_77284_b; double d8 = (entity.field_70163_u + (double) entity.func_70047_e()) - field_77285_c; double d10 = entity.field_70161_v - field_77282_d; double d11 = MathHelper.func_76133_a(d6 * d6 + d8 * d8 + d10 * d10); if (d11 == 0.0D) { continue; } d6 /= d11; d8 /= d11; d10 /= d11; double d12 = field_77287_j.func_72842_a(vec3, entity.field_70121_D); double d13 = (1.0D - d4) * d12; entity.func_70097_a( DamageSource.field_76378_k, (int) (((d13 * d13 + d13) / 2D) * 8D * (double) field_77280_f + 1.0D)); entity.field_70159_w += d6 * d13; entity.field_70181_x += d8 * d13; entity.field_70179_y += d10 * d13; if (entity instanceof EntityPlayer) { field_77288_k.put( (EntityPlayer) entity, Vec3.func_72437_a().func_72345_a(d6 * d13, d8 * d13, d10 * d13)); } } field_77280_f = f; }
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); } } } } }