From 6fb4ed30362e5a0aa7a98abda31c75d163bd9bcd Mon Sep 17 00:00:00 2001 From: ThisTestUser Date: Sat, 21 Sep 2024 21:32:19 -0400 Subject: [PATCH] Get bot tool automatically --- .../api/agent/legacyagent/LegacyAgent.java | 21 ++++++---- .../api/agent/legacyagent/LegacyMats.java | 42 +------------------ 2 files changed, 14 insertions(+), 49 deletions(-) diff --git a/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/LegacyAgent.java b/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/LegacyAgent.java index b7c08fb..e9c657e 100644 --- a/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/LegacyAgent.java +++ b/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/LegacyAgent.java @@ -1020,18 +1020,21 @@ public class LegacyAgent extends Agent { } private void preBreak(Terminator bot, LivingEntity player, Block block, LegacyLevel level) { - Material item; - Material type = block.getType(); + List materials = List.of(LegacyItems.PICKAXE, LegacyItems.AXE, LegacyItems.SHOVEL); + ItemStack optimal = new ItemStack(Material.AIR); + float optimalSpeed = 1; - if (LegacyMats.SHOVEL.contains(type)) { - item = LegacyItems.SHOVEL; - } else if (LegacyMats.AXE.contains(type)) { - item = LegacyItems.AXE; - } else { - item = LegacyItems.PICKAXE; + for (Material mat : materials) { + ItemStack tool = new ItemStack(mat); + float destroySpeed = block.getDestroySpeed(tool); + + if (destroySpeed > optimalSpeed) { + optimal = tool; + optimalSpeed = destroySpeed; + } } - bot.setItem(new ItemStack(item)); + bot.setItem(optimal); if (level.isSideDown() || level.isSideDown2()) { bot.setBotPitch(69); diff --git a/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/LegacyMats.java b/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/LegacyMats.java index a6125b6..d6bd82e 100644 --- a/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/LegacyMats.java +++ b/TerminatorPlus-API/src/main/java/net/nuggetmc/tplus/api/agent/legacyagent/LegacyMats.java @@ -54,46 +54,6 @@ public class LegacyMats { Material.SOUL_FIRE )); - public static final Set SHOVEL = new HashSet<>(concatTypes(Lists.newArrayList( - Material.CLAY, - Material.DIRT, - Material.GRASS_BLOCK, - Material.COARSE_DIRT, - Material.PODZOL, - Material.MYCELIUM, - Material.GRAVEL, - Material.MUD, - Material.MUDDY_MANGROVE_ROOTS, - Material.SAND, - Material.RED_SAND, - Material.SOUL_SAND, - Material.SOUL_SOIL, - Material.SNOW, - Material.SNOW_BLOCK - ), Arrays.asList(), Arrays.asList(), m -> m.name().endsWith("_CONCRETE_POWDER"))); - - public static final Set AXE = new HashSet<>(Arrays.asList( - Material.OAK_PLANKS, Material.OAK_DOOR, Material.OAK_FENCE, Material.OAK_FENCE_GATE, Material.OAK_LOG, - Material.OAK_SIGN, Material.OAK_SLAB, Material.OAK_STAIRS, Material.OAK_TRAPDOOR, Material.OAK_WALL_SIGN, Material.OAK_WOOD, - Material.DARK_OAK_PLANKS, Material.DARK_OAK_DOOR, Material.DARK_OAK_FENCE, Material.DARK_OAK_FENCE_GATE, Material.DARK_OAK_LOG, - Material.DARK_OAK_SIGN, Material.DARK_OAK_SLAB, Material.DARK_OAK_STAIRS, Material.DARK_OAK_TRAPDOOR, Material.DARK_OAK_WALL_SIGN, Material.DARK_OAK_WOOD, - Material.ACACIA_PLANKS, Material.ACACIA_DOOR, Material.ACACIA_FENCE, Material.ACACIA_FENCE_GATE, Material.ACACIA_LOG, - Material.ACACIA_SIGN, Material.ACACIA_SLAB, Material.ACACIA_STAIRS, Material.ACACIA_TRAPDOOR, Material.ACACIA_WALL_SIGN, Material.ACACIA_WOOD, - Material.BIRCH_PLANKS, Material.BIRCH_DOOR, Material.BIRCH_FENCE, Material.BIRCH_FENCE_GATE, Material.BIRCH_LOG, - Material.BIRCH_SIGN, Material.BIRCH_SLAB, Material.BIRCH_STAIRS, Material.BIRCH_TRAPDOOR, Material.BIRCH_WALL_SIGN, Material.BIRCH_WOOD, - Material.JUNGLE_PLANKS, Material.JUNGLE_DOOR, Material.JUNGLE_FENCE, Material.JUNGLE_FENCE_GATE, Material.JUNGLE_LOG, - Material.JUNGLE_SIGN, Material.JUNGLE_SLAB, Material.JUNGLE_STAIRS, Material.JUNGLE_TRAPDOOR, Material.JUNGLE_WALL_SIGN, Material.JUNGLE_WOOD, - Material.SPRUCE_PLANKS, Material.SPRUCE_DOOR, Material.SPRUCE_FENCE, Material.SPRUCE_FENCE_GATE, Material.SPRUCE_LOG, - Material.SPRUCE_SIGN, Material.SPRUCE_SLAB, Material.SPRUCE_STAIRS, Material.SPRUCE_TRAPDOOR, Material.SPRUCE_WALL_SIGN, Material.SPRUCE_WOOD, - Material.MANGROVE_PLANKS, Material.MANGROVE_DOOR, Material.MANGROVE_FENCE, Material.MANGROVE_FENCE_GATE, Material.MANGROVE_LOG, - Material.MANGROVE_SIGN, Material.MANGROVE_SLAB, Material.MANGROVE_STAIRS, Material.MANGROVE_TRAPDOOR, Material.MANGROVE_WALL_SIGN, Material.MANGROVE_WOOD, - Material.CRIMSON_PLANKS, Material.CRIMSON_DOOR, Material.CRIMSON_FENCE, Material.CRIMSON_FENCE_GATE, Material.CRIMSON_STEM, - Material.CRIMSON_SIGN, Material.CRIMSON_SLAB, Material.CRIMSON_STAIRS, Material.CRIMSON_TRAPDOOR, Material.CRIMSON_WALL_SIGN, - Material.WARPED_PLANKS, Material.WARPED_DOOR, Material.WARPED_FENCE, Material.WARPED_FENCE_GATE, Material.WARPED_STEM, - Material.WARPED_SIGN, Material.WARPED_SLAB, Material.WARPED_STAIRS, Material.WARPED_TRAPDOOR, Material.WARPED_WALL_SIGN, - Material.CHEST, Material.TRAPPED_CHEST - )); - public static final Set BREAK = new HashSet<>(Arrays.asList( Material.AIR, Material.WATER, @@ -112,6 +72,8 @@ public class LegacyMats { Material.KELP, Material.KELP_PLANT, Material.SUNFLOWER, + Material.TORCHFLOWER, + Material.PITCHER_PLANT, Material.FIRE, Material.SOUL_FIRE ));