geforkt von Mirrors/Paper
2449df7cdf
Shift the sample points so they are centered on the entity, eliminating the directional bias of the explosion force
36 Zeilen
1.7 KiB
Diff
36 Zeilen
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
|