diff --git a/src/main/java/baritone/chunk/CachedRegion.java b/src/main/java/baritone/chunk/CachedRegion.java index 66204d5aa..3df6d68a1 100644 --- a/src/main/java/baritone/chunk/CachedRegion.java +++ b/src/main/java/baritone/chunk/CachedRegion.java @@ -77,6 +77,10 @@ public final class CachedRegion implements IBlockTypeAccess { return null; } + public final boolean isCached(int x, int z) { + return chunks[x >> 4][z >> 4] != null; + } + public final LinkedList getLocationsOf(String block) { LinkedList res = new LinkedList<>(); for (int chunkX = 0; chunkX < 32; chunkX++) { diff --git a/src/main/java/baritone/chunk/CachedWorld.java b/src/main/java/baritone/chunk/CachedWorld.java index 42b4c13d0..703eab0d6 100644 --- a/src/main/java/baritone/chunk/CachedWorld.java +++ b/src/main/java/baritone/chunk/CachedWorld.java @@ -59,7 +59,8 @@ public final class CachedWorld implements IBlockTypeAccess { if (!Files.exists(directory)) { try { Files.createDirectories(directory); - } catch (IOException ignored) {} + } catch (IOException ignored) { + } } this.directory = directory.toString(); System.out.println("Cached world directory: " + directory); @@ -102,6 +103,17 @@ public final class CachedWorld implements IBlockTypeAccess { return region.getBlock(x & 511, y, z & 511); } + public final boolean isCached(BlockPos pos) { + int x = pos.getX(); + int z = pos.getZ(); + CachedRegion region = getRegion(x >> 9, z >> 9); + if (region == null) { + return false; + } + return region.isCached(x & 511, z & 511); + } + + public final LinkedList getLocationsOf(String block, int minimum, int maxRegionDistanceSq) { LinkedList res = new LinkedList<>(); int playerRegionX = playerFeet().getX() >> 9; diff --git a/src/main/java/baritone/pathing/calc/AStarPathFinder.java b/src/main/java/baritone/pathing/calc/AStarPathFinder.java index 8a66fd1c9..7338a6176 100644 --- a/src/main/java/baritone/pathing/calc/AStarPathFinder.java +++ b/src/main/java/baritone/pathing/calc/AStarPathFinder.java @@ -135,7 +135,7 @@ public class AStarPathFinder extends AbstractNodeCostSearch implements Helper { long s=System.nanoTime(); boolean isPositionCached = false; if (world != null) { - if (world.getBlock(dest) != null) { + if (world.isCached(dest)){ isPositionCached = true; } }