Files
CatServer/patches/net/minecraft/pathfinding/PathNavigateFlying.java.patch

90 lines
2.6 KiB
Diff

--- ../src-base/minecraft/net/minecraft/pathfinding/PathNavigateFlying.java
+++ ../src-work/minecraft/net/minecraft/pathfinding/PathNavigateFlying.java
@@ -73,83 +73,14 @@
protected boolean isDirectPathBetweenPoints(Vec3d posVec31, Vec3d posVec32, int sizeX, int sizeY, int sizeZ)
{
- int i = MathHelper.floor(posVec31.x);
- int j = MathHelper.floor(posVec31.y);
- int k = MathHelper.floor(posVec31.z);
+ // CatServer start - remove useless calculation code
double d0 = posVec32.x - posVec31.x;
double d1 = posVec32.y - posVec31.y;
double d2 = posVec32.z - posVec31.z;
double d3 = d0 * d0 + d1 * d1 + d2 * d2;
- if (d3 < 1.0E-8D)
- {
- return false;
- }
- else
- {
- double d4 = 1.0D / Math.sqrt(d3);
- d0 = d0 * d4;
- d1 = d1 * d4;
- d2 = d2 * d4;
- double d5 = 1.0D / Math.abs(d0);
- double d6 = 1.0D / Math.abs(d1);
- double d7 = 1.0D / Math.abs(d2);
- double d8 = (double)i - posVec31.x;
- double d9 = (double)j - posVec31.y;
- double d10 = (double)k - posVec31.z;
-
- if (d0 >= 0.0D)
- {
- ++d8;
- }
-
- if (d1 >= 0.0D)
- {
- ++d9;
- }
-
- if (d2 >= 0.0D)
- {
- ++d10;
- }
-
- d8 = d8 / d0;
- d9 = d9 / d1;
- d10 = d10 / d2;
- int l = d0 < 0.0D ? -1 : 1;
- int i1 = d1 < 0.0D ? -1 : 1;
- int j1 = d2 < 0.0D ? -1 : 1;
- int k1 = MathHelper.floor(posVec32.x);
- int l1 = MathHelper.floor(posVec32.y);
- int i2 = MathHelper.floor(posVec32.z);
- int j2 = k1 - i;
- int k2 = l1 - j;
- int l2 = i2 - k;
-
- while (j2 * l > 0 || k2 * i1 > 0 || l2 * j1 > 0)
- {
- if (d8 < d10 && d8 <= d9)
- {
- d8 += d5;
- i += l;
- j2 = k1 - i;
- }
- else if (d9 < d8 && d9 <= d10)
- {
- d9 += d6;
- j += i1;
- k2 = l1 - j;
- }
- else
- {
- d10 += d7;
- k += j1;
- l2 = i2 - k;
- }
- }
-
- return true;
- }
+ return !(d3 < 1.0E-8D);
+ // CatServer end
}
public void setCanOpenDoors(boolean p_192879_1_)