mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-23 15:47:44 +01:00
2449df7cdf
Shift the sample points so they are centered on the entity, eliminating the directional bias of the explosion force
35 lines
1.7 KiB
Diff
35 lines
1.7 KiB
Diff
From 5aa603e9bc6cc1079676e6954ec220f9485755f5 Mon Sep 17 00:00:00 2001
|
|
From: Jedediah Smith <jedediah@silencegreys.com>
|
|
Date: Wed, 6 Aug 2014 18:17:41 -0400
|
|
Subject: [PATCH] Fix directional TNT bias
|
|
|
|
More information at https://bugs.mojang.com/browse/MC-65697
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
|
index a204966..10ce450 100644
|
|
--- a/src/main/java/net/minecraft/server/World.java
|
|
+++ b/src/main/java/net/minecraft/server/World.java
|
|
@@ -1893,6 +1893,12 @@ public abstract class World implements IBlockAccess {
|
|
double d1 = 1.0D / ((axisalignedbb.e - axisalignedbb.b) * 2.0D + 1.0D);
|
|
double d2 = 1.0D / ((axisalignedbb.f - axisalignedbb.c) * 2.0D + 1.0D);
|
|
|
|
+ // PaperSpigot start - Fix TNT directional bias
|
|
+ // Shift the sample points so they are centered on the BB, to avoid directional bias
|
|
+ double xOffset = (1.0 - Math.floor(1.0 / d0) * d0) / 2.0;
|
|
+ double zOffset = (1.0 - Math.floor(1.0 / d2) * d2) / 2.0;
|
|
+ // PaperSpigot end
|
|
+
|
|
if (d0 >= 0.0D && d1 >= 0.0D && d2 >= 0.0D) {
|
|
int i = 0;
|
|
int j = 0;
|
|
@@ -1905,7 +1911,7 @@ public abstract class World implements IBlockAccess {
|
|
double d4 = axisalignedbb.b + (axisalignedbb.e - axisalignedbb.b) * (double) f1;
|
|
double d5 = axisalignedbb.c + (axisalignedbb.f - axisalignedbb.c) * (double) f2;
|
|
|
|
- if (this.a(vec3d2.b(d3, d4, d5), vec3d) == null) { // CraftBukkit
|
|
+ if (this.a(vec3d2.b(xOffset + d3, d4, zOffset + d5), vec3d) == null) { // CraftBukkit // PaperSpigot
|
|
++i;
|
|
}
|
|
|
|
--
|
|
1.9.1
|