diff options
Diffstat (limited to 'nms-patches/PathfinderNormal.patch')
-rw-r--r-- | nms-patches/PathfinderNormal.patch | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/nms-patches/PathfinderNormal.patch b/nms-patches/PathfinderNormal.patch deleted file mode 100644 index 1beacfe2..00000000 --- a/nms-patches/PathfinderNormal.patch +++ /dev/null @@ -1,126 +0,0 @@ ---- a/net/minecraft/server/PathfinderNormal.java -+++ b/net/minecraft/server/PathfinderNormal.java -@@ -3,6 +3,7 @@ - import java.util.EnumSet; - import java.util.HashSet; - import java.util.Iterator; -+import javax.annotation.Nullable; - - public class PathfinderNormal extends PathfinderAbstract { - -@@ -16,8 +17,8 @@ - } - - public void a() { -- super.a(); - this.b.a(PathType.WATER, this.j); -+ super.a(); - } - - public PathPoint b() { -@@ -140,6 +141,7 @@ - return i; - } - -+ @Nullable - private PathPoint a(int i, int j, int k, int l, double d0, EnumDirection enumdirection) { - PathPoint pathpoint = null; - BlockPosition blockposition = new BlockPosition(i, j, k); -@@ -287,70 +289,42 @@ - } - - public static PathType a(IBlockAccess iblockaccess, int i, int j, int k) { -- BlockPosition blockposition = new BlockPosition(i, j, k); -- IBlockData iblockdata = iblockaccess.getType(blockposition); -- Block block = iblockdata.getBlock(); -- Material material = iblockdata.getMaterial(); -- PathType pathtype = PathType.BLOCKED; -+ PathType pathtype = b(iblockaccess, i, j, k); - -- if (block != Blocks.TRAPDOOR && block != Blocks.IRON_TRAPDOOR && block != Blocks.WATERLILY) { -- if (block == Blocks.FIRE) { -- return PathType.DAMAGE_FIRE; -- } else if (block == Blocks.CACTUS) { -- return PathType.DAMAGE_CACTUS; -- } else if (block instanceof BlockDoor && material == Material.WOOD && !((Boolean) iblockdata.get(BlockDoor.OPEN)).booleanValue()) { -- return PathType.DOOR_WOOD_CLOSED; -- } else if (block instanceof BlockDoor && material == Material.ORE && !((Boolean) iblockdata.get(BlockDoor.OPEN)).booleanValue()) { -- return PathType.DOOR_IRON_CLOSED; -- } else if (block instanceof BlockDoor && ((Boolean) iblockdata.get(BlockDoor.OPEN)).booleanValue()) { -- return PathType.DOOR_OPEN; -- } else if (block instanceof BlockMinecartTrackAbstract) { -- return PathType.RAIL; -- } else if (!(block instanceof BlockFence) && !(block instanceof BlockCobbleWall) && (!(block instanceof BlockFenceGate) || ((Boolean) iblockdata.get(BlockFenceGate.OPEN)).booleanValue())) { -- if (material == Material.AIR) { -- pathtype = PathType.OPEN; -- } else { -- if (material == Material.WATER) { -- return PathType.WATER; -- } -+ if (pathtype == PathType.OPEN && j >= 1) { -+ PathType pathtype1 = b(iblockaccess, i, j - 1, k); - -- if (material == Material.LAVA) { -- return PathType.LAVA; -- } -- } -+ pathtype = pathtype1 != PathType.WALKABLE && pathtype1 != PathType.OPEN && pathtype1 != PathType.WATER && pathtype1 != PathType.LAVA ? PathType.WALKABLE : PathType.OPEN; -+ } - -- if (block.b(iblockaccess, blockposition) && pathtype == PathType.BLOCKED) { -- pathtype = PathType.OPEN; -- } -+ BlockPosition.PooledBlockPosition blockposition_pooledblockposition = BlockPosition.PooledBlockPosition.s(); - -- if (pathtype == PathType.OPEN && j >= 1) { -- PathType pathtype1 = a(iblockaccess, i, j - 1, k); -+ if (pathtype == PathType.WALKABLE) { -+ for (int l = -1; l <= 1; ++l) { -+ for (int i1 = -1; i1 <= 1; ++i1) { -+ if (l != 0 || i1 != 0) { -+ Block block = iblockaccess.getType(blockposition_pooledblockposition.d(l + i, j, i1 + k)).getBlock(); - -- pathtype = pathtype1 != PathType.WALKABLE && pathtype1 != PathType.OPEN && pathtype1 != PathType.WATER && pathtype1 != PathType.LAVA ? PathType.WALKABLE : PathType.OPEN; -- } -- -- if (pathtype == PathType.WALKABLE) { -- for (int l = i - 1; l <= i + 1; ++l) { -- for (int i1 = k - 1; i1 <= k + 1; ++i1) { -- if (l != i || i1 != k) { -- Block block1 = iblockaccess.getType(new BlockPosition(l, j, i1)).getBlock(); -- -- if (block1 == Blocks.CACTUS) { -- pathtype = PathType.DANGER_CACTUS; -- } else if (block1 == Blocks.FIRE) { -- pathtype = PathType.DANGER_FIRE; -- } -- } -+ if (block == Blocks.CACTUS) { -+ pathtype = PathType.DANGER_CACTUS; -+ } else if (block == Blocks.FIRE) { -+ pathtype = PathType.DANGER_FIRE; - } - } - } -- -- return pathtype; -- } else { -- return PathType.FENCE; - } -- } else { -- return PathType.TRAPDOOR; - } -+ -+ blockposition_pooledblockposition.t(); -+ return pathtype; -+ } -+ -+ private static PathType b(IBlockAccess iblockaccess, int i, int j, int k) { -+ BlockPosition blockposition = new BlockPosition(i, j, k); -+ IBlockData iblockdata = iblockaccess.getType(blockposition); -+ Block block = iblockdata.getBlock(); -+ Material material = iblockdata.getMaterial(); -+ -+ return material == Material.AIR ? PathType.OPEN : (block != Blocks.TRAPDOOR && block != Blocks.IRON_TRAPDOOR && block != Blocks.WATERLILY ? (block == Blocks.FIRE ? PathType.DAMAGE_FIRE : (block == Blocks.CACTUS ? PathType.DAMAGE_CACTUS : (block instanceof BlockDoor && material == Material.WOOD && !((Boolean) iblockdata.get(BlockDoor.OPEN)).booleanValue() ? PathType.DOOR_WOOD_CLOSED : (block instanceof BlockDoor && material == Material.ORE && !((Boolean) iblockdata.get(BlockDoor.OPEN)).booleanValue() ? PathType.DOOR_IRON_CLOSED : (block instanceof BlockDoor && ((Boolean) iblockdata.get(BlockDoor.OPEN)).booleanValue() ? PathType.DOOR_OPEN : (block instanceof BlockMinecartTrackAbstract ? PathType.RAIL : (!(block instanceof BlockFence) && !(block instanceof BlockCobbleWall) && (!(block instanceof BlockFenceGate) || ((Boolean) iblockdata.get(BlockFenceGate.OPEN)).booleanValue()) ? (material == Material.WATER ? PathType.WATER : (material == Material.LAVA ? PathType.LAVA : (block.b(iblockaccess, blockposition) ? PathType.OPEN : PathType.BLOCKED))) : PathType.FENCE))))))) : PathType.TRAPDOOR); - } - } |