don't scan empty
This commit is contained in:
parent
7cc23bc89b
commit
4f07d655d6
@ -70,6 +70,7 @@ public class MineBehavior extends Behavior {
|
|||||||
public static List<BlockPos> scanFor(List<String> mining, int max) {
|
public static List<BlockPos> scanFor(List<String> mining, int max) {
|
||||||
List<BlockPos> locs = new ArrayList<>();
|
List<BlockPos> locs = new ArrayList<>();
|
||||||
List<String> uninteresting = new ArrayList<>();
|
List<String> uninteresting = new ArrayList<>();
|
||||||
|
//long b = System.currentTimeMillis();
|
||||||
for (String m : mining) {
|
for (String m : mining) {
|
||||||
if (CachedChunk.BLOCKS_TO_KEEP_TRACK_OF.contains(ChunkPacker.stringToBlock(m))) {
|
if (CachedChunk.BLOCKS_TO_KEEP_TRACK_OF.contains(ChunkPacker.stringToBlock(m))) {
|
||||||
locs.addAll(WorldProvider.INSTANCE.getCurrentWorld().cache.getLocationsOf(m, 1, 1));
|
locs.addAll(WorldProvider.INSTANCE.getCurrentWorld().cache.getLocationsOf(m, 1, 1));
|
||||||
@ -77,7 +78,12 @@ public class MineBehavior extends Behavior {
|
|||||||
uninteresting.add(m);
|
uninteresting.add(m);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
locs.addAll(WorldScanner.INSTANCE.scanLoadedChunks(uninteresting, max));
|
//System.out.println("Scan of cached chunks took " + (System.currentTimeMillis() - b) + "ms");
|
||||||
|
if (!uninteresting.isEmpty()) {
|
||||||
|
//long before = System.currentTimeMillis();
|
||||||
|
locs.addAll(WorldScanner.INSTANCE.scanLoadedChunks(uninteresting, max));
|
||||||
|
//System.out.println("Scan of loaded chunks took " + (System.currentTimeMillis() - before) + "ms");
|
||||||
|
}
|
||||||
BlockPos playerFeet = MineBehavior.INSTANCE.playerFeet();
|
BlockPos playerFeet = MineBehavior.INSTANCE.playerFeet();
|
||||||
locs.sort(Comparator.comparingDouble(playerFeet::distanceSq));
|
locs.sort(Comparator.comparingDouble(playerFeet::distanceSq));
|
||||||
|
|
||||||
|
@ -39,6 +39,9 @@ public enum WorldScanner implements Helper {
|
|||||||
throw new IllegalStateException("Invalid block name should have been caught earlier: " + blockTypes.toString());
|
throw new IllegalStateException("Invalid block name should have been caught earlier: " + blockTypes.toString());
|
||||||
}
|
}
|
||||||
LinkedList<BlockPos> res = new LinkedList<>();
|
LinkedList<BlockPos> res = new LinkedList<>();
|
||||||
|
if (asBlocks.isEmpty()) {
|
||||||
|
return res;
|
||||||
|
}
|
||||||
ChunkProviderClient chunkProvider = world().getChunkProvider();
|
ChunkProviderClient chunkProvider = world().getChunkProvider();
|
||||||
|
|
||||||
int playerChunkX = playerFeet().getX() >> 4;
|
int playerChunkX = playerFeet().getX() >> 4;
|
||||||
|
Loading…
Reference in New Issue
Block a user