From 355ea71065d4c15147d0b9757b7f22b012137702 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Mon, 14 Oct 2019 14:54:32 +1300 Subject: [PATCH] Add ores and mine --- src/ParaScript/data/variables/Ores.java | 37 ++++++++++++++++++++++ src/ParaScript/strategies/Mine.java | 42 ++++++++++++++++++------- 2 files changed, 68 insertions(+), 11 deletions(-) create mode 100644 src/ParaScript/data/variables/Ores.java diff --git a/src/ParaScript/data/variables/Ores.java b/src/ParaScript/data/variables/Ores.java new file mode 100644 index 0000000..c4ab7d9 --- /dev/null +++ b/src/ParaScript/data/variables/Ores.java @@ -0,0 +1,37 @@ +package ParaScript.data.variables; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public enum Ores { + COPPER("Copper", new int[]{2090}), + TIN("Tin", new int[]{2094}), + COPPER_TIN("Copper & Tin", new int[]{2090, 2094}), + IRON ("Iron", new int[]{2092}), + COAL("Coal", new int[]{}); + + private String name; + private int[] ids; + + Ores(String name, int[] ids) { + this.name = name; + this.ids = ids; + } + + public static String[] toStringArray() { + List enumList = Arrays.asList(Ores.values()); + List locationsArray = new ArrayList<>(); + for (Ores obj : enumList) { + locationsArray.add(obj.name); + } + + String[] simpleArray = new String[ locationsArray.size() ]; + locationsArray.toArray( simpleArray ); + return(simpleArray); + } + + public int[] getIDs() { + return this.ids; + } +} diff --git a/src/ParaScript/strategies/Mine.java b/src/ParaScript/strategies/Mine.java index 595e839..12e9d70 100644 --- a/src/ParaScript/strategies/Mine.java +++ b/src/ParaScript/strategies/Mine.java @@ -1,6 +1,10 @@ package ParaScript.strategies; import ParaScript.data.Variables; +import ParaScript.data.variables.Ores; +import ParaScript.data.variables.Trees; +import com.sun.deploy.util.ArrayUtil; +import org.parabot.environment.api.utils.Time; import org.parabot.environment.scripts.framework.Strategy; import org.rev317.min.api.methods.Inventory; import org.rev317.min.api.methods.Players; @@ -8,25 +12,41 @@ import org.rev317.min.api.methods.SceneObjects; import org.rev317.min.api.wrappers.SceneObject; public class Mine implements Strategy { + private SceneObject ore; + @Override public boolean activate() { - for (SceneObject i : SceneObjects.getNearest(100)) { - if (Variables.running - && i !=null - && i.distanceTo() <= 10 - && !Players.getMyPlayer().isInCombat() - && Players.getMyPlayer().getAnimation() == -1 - && !Inventory.isFull()) { - return true; - } + ore = ore(); // set the local Variable + if (Variables.running + && ore != null + && (Variables.getStatus() == "none" || Variables.getStatus() == "mining") + && !Players.getMyPlayer().isInCombat() + && Players.getMyPlayer().getAnimation() == -1 + && !Inventory.isFull()) { + Variables.setStatus("mining"); + return true; } + Variables.setStatus("none"); return false; } @Override public void execute() { - for (SceneObject i : SceneObjects.getNearest(100)) { - i.interact(SceneObjects.Option.MINE); + try { + ore.interact(SceneObjects.Option.MINE); + Time.sleep(1000); + Time.sleep(() -> Players.getMyPlayer().getAnimation() == -1, 3000); + } catch (Exception err){ + System.out.println("Mining error: ¯\\_(ツ)_/¯"); } } + + private SceneObject ore(){ + for(SceneObject tree : SceneObjects.getNearest(Ores.COPPER_TIN.getIDs())){ + if(tree != null){ + return ore; + } + } + return null; + } } \ No newline at end of file