Compare commits

..

2 Commits

Author SHA1 Message Date
25844dad61 Add hover functionality 2021-10-28 09:33:53 +02:00
aaee43be4c Add hover functions 2021-10-28 09:33:35 +02:00
4 changed files with 72 additions and 1 deletions

View File

@ -2,11 +2,15 @@ package io.reisub.dreambot.csmelter.tasks;
import io.reisub.dreambot.csmelter.CSmelter; import io.reisub.dreambot.csmelter.CSmelter;
import io.reisub.dreambot.csmelter.Ingredient; import io.reisub.dreambot.csmelter.Ingredient;
import io.reisub.dreambot.util.Util;
import org.dreambot.api.methods.Calculations; import org.dreambot.api.methods.Calculations;
import org.dreambot.api.methods.MethodProvider; import org.dreambot.api.methods.MethodProvider;
import org.dreambot.api.methods.container.impl.Inventory; import org.dreambot.api.methods.container.impl.Inventory;
import org.dreambot.api.methods.container.impl.bank.Bank; import org.dreambot.api.methods.container.impl.bank.Bank;
import org.dreambot.api.methods.widget.Widgets;
import org.dreambot.api.script.TaskNode; import org.dreambot.api.script.TaskNode;
import org.dreambot.api.wrappers.items.Item;
import org.dreambot.api.wrappers.widgets.WidgetChild;
public class DoBank extends TaskNode { public class DoBank extends TaskNode {
@Override @Override
@ -17,6 +21,18 @@ public class DoBank extends TaskNode {
@Override @Override
public int execute() { public int execute() {
if (Inventory.contains(CSmelter.smeltingOption.getEndProduct())) { if (Inventory.contains(CSmelter.smeltingOption.getEndProduct())) {
if (Util.getHoverEntry("deposit") == null) {
if (Inventory.contains(item -> item.getName().endsWith("mould"))) {
Item item = Inventory.get(CSmelter.smeltingOption.getEndProduct());
Util.addHoverEntry("deposit", item.getDestination().getBoundingBox());
} else {
WidgetChild depositAll = Widgets.getChildWidget(12, 42);
if (depositAll != null && depositAll.isVisible()) {
Util.addHoverEntry("deposit", depositAll.getRectangle());
}
}
}
Bank.depositAllExcept(item -> item.getName().endsWith("mould")); Bank.depositAllExcept(item -> item.getName().endsWith("mould"));
if (!MethodProvider.sleepUntil(() -> Inventory.isEmpty() || Inventory.onlyContains(item -> item.getName().endsWith("mould")), Calculations.random(2000, 2500))) return Calculations.random(250, 400); if (!MethodProvider.sleepUntil(() -> Inventory.isEmpty() || Inventory.onlyContains(item -> item.getName().endsWith("mould")), Calculations.random(2000, 2500))) return Calculations.random(250, 400);
} }
@ -46,6 +62,8 @@ public class DoBank extends TaskNode {
} }
} }
Util.hover("minimapToFurnace");
MethodProvider.sleepUntil(() -> Inventory.containsAll(names), Calculations.random(2000, 2500)); MethodProvider.sleepUntil(() -> Inventory.containsAll(names), Calculations.random(2000, 2500));
return Calculations.random(250, 400); return Calculations.random(250, 400);

View File

@ -32,9 +32,12 @@ public class OpenBank extends TaskNode {
} }
} }
Util.addHoverEntry("bank", bank);
bank.interactForceLeft("Bank"); bank.interactForceLeft("Bank");
if (!Util.sleepUntilMoving()) return Calculations.random(250, 400); if (!Util.sleepUntilMoving()) return Calculations.random(250, 400);
Util.hover("deposit");
MethodProvider.sleepUntil(Bank::isOpen, Calculations.random(10000, 11000)); MethodProvider.sleepUntil(Bank::isOpen, Calculations.random(10000, 11000));
return Calculations.random(250, 400); return Calculations.random(250, 400);

View File

@ -21,7 +21,7 @@ public class Smelt extends TaskNode {
@Override @Override
public boolean accept() { public boolean accept() {
return Inventory.containsAll(CSmelter.smeltingOption.getIngredientsNames()) return Inventory.containsAll(CSmelter.smeltingOption.getIngredientsNames())
&& Util.playerIsIdle(1000); && Util.playerIsIdle(1400);
} }
@Override @Override
@ -30,6 +30,7 @@ public class Smelt extends TaskNode {
if (furnace == null) return Calculations.random(250, 400); if (furnace == null) return Calculations.random(250, 400);
if (Bank.isOpen()) { if (Bank.isOpen()) {
Util.addHoverEntry("minimapToFurnace", furnace.getTile(), true);
Walking.walk(furnace); Walking.walk(furnace);
MethodProvider.sleep(300, 600); MethodProvider.sleep(300, 600);
} }
@ -39,6 +40,7 @@ public class Smelt extends TaskNode {
if (!Util.sleepUntilMoving()) return Calculations.random(250, 400); if (!Util.sleepUntilMoving()) return Calculations.random(250, 400);
} }
Util.hover("smeltWidget");
MethodProvider.sleepWhile(() -> furnace.distance() > Calculations.random(2, 4), Calculations.random(10000, 11000)); MethodProvider.sleepWhile(() -> furnace.distance() > Calculations.random(2, 4), Calculations.random(10000, 11000));
if (CSmelter.smeltingOption.getMould().equals("")) { if (CSmelter.smeltingOption.getMould().equals("")) {
@ -61,11 +63,14 @@ public class Smelt extends TaskNode {
}, Calculations.random(3000, 3500))) return Calculations.random(250, 400); }, Calculations.random(3000, 3500))) return Calculations.random(250, 400);
WidgetChild w = Widgets.getChildWidget(446, CSmelter.smeltingOption.getHotkey()); WidgetChild w = Widgets.getChildWidget(446, CSmelter.smeltingOption.getHotkey());
Util.addHoverEntry("smeltWidget", w.getRectangle());
w.interact(); w.interact();
Util.sleepUntilAnimating(); Util.sleepUntilAnimating();
} }
Util.hover("bank");
return Calculations.random(250, 400); return Calculations.random(250, 400);
} }
} }

View File

@ -1,17 +1,26 @@
package io.reisub.dreambot.util; package io.reisub.dreambot.util;
import org.dreambot.api.input.Mouse;
import org.dreambot.api.input.mouse.destination.impl.MiniMapTileDestination;
import org.dreambot.api.methods.Calculations; import org.dreambot.api.methods.Calculations;
import org.dreambot.api.methods.MethodContext; import org.dreambot.api.methods.MethodContext;
import org.dreambot.api.methods.interactive.Players; import org.dreambot.api.methods.interactive.Players;
import org.dreambot.api.methods.map.Tile; import org.dreambot.api.methods.map.Tile;
import org.dreambot.api.methods.skills.Skill; import org.dreambot.api.methods.skills.Skill;
import org.dreambot.api.methods.skills.Skills; import org.dreambot.api.methods.skills.Skills;
import org.dreambot.api.wrappers.interactive.Entity;
import org.dreambot.api.wrappers.interactive.GameObject; import org.dreambot.api.wrappers.interactive.GameObject;
import org.dreambot.api.wrappers.interactive.Player; import org.dreambot.api.wrappers.interactive.Player;
import org.w3c.dom.css.Rect;
import java.awt.*;
import java.util.HashMap;
import java.util.Map;
@SuppressWarnings("unused") @SuppressWarnings("unused")
public class Util { public class Util {
private static final String VERSION = "1.0.0"; private static final String VERSION = "1.0.0";
private static final Map<String, Rectangle> hoverMap = new HashMap<>();
public static String getVersion() { public static String getVersion() {
return VERSION; return VERSION;
@ -114,4 +123,40 @@ public class Util {
return false; return false;
} }
public static Rectangle getHoverEntry(String name) {
return hoverMap.get(name);
}
public static void addHoverEntry(String name, Rectangle dest) {
hoverMap.putIfAbsent(name, dest);
}
public static void addHoverEntry(String name, Tile dest, boolean minimap) {
Rectangle rect;
if (minimap) {
MiniMapTileDestination td = new MiniMapTileDestination(dest);
rect = td.getBoundingBox();
} else {
rect = dest.getTileReference().getBoundaryObject().getBoundingBox();
}
addHoverEntry(name, rect);
}
public static void addHoverEntry(String name, Tile dest) {
addHoverEntry(name, dest, false);
}
public static void addHoverEntry(String name, Entity dest) {
addHoverEntry(name, dest.getBoundingBox());
}
public static void hover(String name) {
Rectangle dest = getHoverEntry(name);
if (dest != null) {
Mouse.move(dest);
}
}
} }