From 119b1b3aca3909f16c7c758f99ab08ee2af70e9d Mon Sep 17 00:00:00 2001 From: Howard Stark Date: Wed, 1 Aug 2018 14:05:35 -0400 Subject: [PATCH] Switch to latest mappings --- src/main/java/baritone/util/ToolSet.java | 45 +++++++++--------------- 1 file changed, 16 insertions(+), 29 deletions(-) diff --git a/src/main/java/baritone/util/ToolSet.java b/src/main/java/baritone/util/ToolSet.java index 0d18eae0..d09be078 100644 --- a/src/main/java/baritone/util/ToolSet.java +++ b/src/main/java/baritone/util/ToolSet.java @@ -13,6 +13,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.entity.EntityPlayerSP; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemTool; import net.minecraft.util.NonNullList; import net.minecraft.util.math.BlockPos; @@ -22,11 +23,11 @@ import net.minecraft.util.math.BlockPos; */ public class ToolSet { - public ArrayList tools; + public ArrayList tools; public ArrayList slots; public HashMap cache = new HashMap(); - public ToolSet(ArrayList tools, ArrayList slots) { + public ToolSet(ArrayList tools, ArrayList slots) { this.tools = tools; this.slots = slots; } @@ -34,13 +35,13 @@ public class ToolSet { public ToolSet() { EntityPlayerSP p = Minecraft.getMinecraft().player; NonNullList inv = p.inventory.mainInventory; - tools = new ArrayList(); + tools = new ArrayList(); slots = new ArrayList(); //Out.log("inv: " + Arrays.toString(inv)); boolean fnull = false; for (byte i = 0; i < 9; i++) { - if (!fnull || (inv.get(i) != null && inv.get(i).getItem().isItemTool(null))) { - tools.add(inv.get(i) != null ? inv.get(i).getItem() : null); + if (!fnull || (inv.get(i) != null && inv.get(i).getItem() instanceof ItemTool)) { + tools.add(inv.get(i) != null ? (ItemTool) inv.get(i).getItem() : null); slots.add(i); fnull |= inv.get(i) == null || (!inv.get(i).getItem().isDamageable()); } @@ -51,9 +52,13 @@ public class ToolSet { if (cache.get(b.getBlock()) != null) { return tools.get(cache.get(b.getBlock())); } + return tools.get(getBestToolIndex(b)); + } + + private byte getBestToolIndex(IBlockState b) { byte best = 0; //Out.log("best: " + best); - float value = 0; + float value = -1; for (byte i = 0; i < tools.size(); i++) { Item item = tools.get(i); if (item == null) { @@ -61,41 +66,23 @@ public class ToolSet { } //Out.log(inv[i]); - float v = item.getStrVsBlock(new ItemStack(item), b); + float v = item.getDestroySpeed(new ItemStack(item), b); //Out.log("v: " + v); - if (v > value) { + if (v < value || value == -1) { value = v; best = i; } } //Out.log("best: " + best); cache.put(b.getBlock(), best); - return tools.get(best); + return best; } public byte getBestSlot(IBlockState b) { if (cache.get(b.getBlock()) != null) { return slots.get(cache.get(b.getBlock())); } - byte best = 0; - //Out.log("best: " + best); - float value = 0; - for (byte i = 0; i < tools.size(); i++) { - Item item = tools.get(i); - if (item == null) { - item = Item.getByNameOrId("minecraft:apple"); - } - //Out.log(inv[i]); - float v = item.getStrVsBlock(new ItemStack(item), b); - //Out.log("v: " + v); - if (v > value) { - value = v; - best = i; - } - } - //Out.log("best: " + best); - cache.put(b.getBlock(), best); - return slots.get(best); + return slots.get(getBestToolIndex(b)); } public double getStrVsBlock(IBlockState b, BlockPos pos) { @@ -104,7 +91,7 @@ public class ToolSet { item = Item.getByNameOrId("minecraft:apple"); } float f = b.getBlockHardness(Minecraft.getMinecraft().world, pos); - return f < 0.0F ? 0.0F : (!canHarvest(b, item) ? item.getStrVsBlock(new ItemStack(item), b) / f / 100.0F : item.getStrVsBlock(new ItemStack(item), b) / f / 30.0F); + return f < 0.0F ? 0.0F : (!canHarvest(b, item) ? item.getDestroySpeed(new ItemStack(item), b) / f / 100.0F : item.getDestroySpeed(new ItemStack(item), b) / f / 30.0F); } public boolean canHarvest(IBlockState blockIn, Item item) {