Get bot tool automatically
This commit is contained in:
@@ -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<Material> 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);
|
||||
|
||||
@@ -54,46 +54,6 @@ public class LegacyMats {
|
||||
Material.SOUL_FIRE
|
||||
));
|
||||
|
||||
public static final Set<Material> 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<Material> 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<Material> 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
|
||||
));
|
||||
|
||||
Reference in New Issue
Block a user