Add UI support
This commit is contained in:
parent
8752f0f121
commit
9609f2ba3e
@ -3,6 +3,7 @@
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/resources" type="java-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
|
60
Util/src/io/reisub/dreambot/util/CAbstractScript.java
Normal file
60
Util/src/io/reisub/dreambot/util/CAbstractScript.java
Normal file
@ -0,0 +1,60 @@
|
||||
package io.reisub.dreambot.util;
|
||||
|
||||
import io.reisub.dreambot.util.ui.UI;
|
||||
import org.dreambot.api.script.AbstractScript;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.event.MouseListener;
|
||||
|
||||
public abstract class CAbstractScript extends AbstractScript implements MouseListener {
|
||||
private final UI ui;
|
||||
|
||||
public CAbstractScript() {
|
||||
ui = UI.getInstance(getSDNName());
|
||||
}
|
||||
|
||||
public UI getUI() {
|
||||
return ui;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPaint(Graphics g){
|
||||
ui.draw(g);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
ui.pause();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
ui.resume();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent mouseEvent) {
|
||||
ui.mouseClicked(mouseEvent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mousePressed(MouseEvent mouseEvent) {
|
||||
ui.mousePressed(mouseEvent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseReleased(MouseEvent mouseEvent) {
|
||||
ui.mouseReleased(mouseEvent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseEntered(MouseEvent mouseEvent) {
|
||||
ui.mouseEntered(mouseEvent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseExited(MouseEvent mouseEvent) {
|
||||
ui.mouseExited(mouseEvent);
|
||||
}
|
||||
}
|
60
Util/src/io/reisub/dreambot/util/CTaskScript.java
Normal file
60
Util/src/io/reisub/dreambot/util/CTaskScript.java
Normal file
@ -0,0 +1,60 @@
|
||||
package io.reisub.dreambot.util;
|
||||
|
||||
import io.reisub.dreambot.util.ui.UI;
|
||||
import org.dreambot.api.script.impl.TaskScript;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.event.MouseListener;
|
||||
|
||||
public abstract class CTaskScript extends TaskScript implements MouseListener {
|
||||
private final UI ui;
|
||||
|
||||
public CTaskScript() {
|
||||
ui = UI.getInstance(getSDNName());
|
||||
}
|
||||
|
||||
public UI getUI() {
|
||||
return ui;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPaint(Graphics g){
|
||||
ui.draw(g);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
ui.pause();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
ui.resume();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent mouseEvent) {
|
||||
ui.mouseClicked(mouseEvent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mousePressed(MouseEvent mouseEvent) {
|
||||
ui.mousePressed(mouseEvent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseReleased(MouseEvent mouseEvent) {
|
||||
ui.mouseReleased(mouseEvent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseEntered(MouseEvent mouseEvent) {
|
||||
ui.mouseEntered(mouseEvent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseExited(MouseEvent mouseEvent) {
|
||||
ui.mouseExited(mouseEvent);
|
||||
}
|
||||
}
|
189
Util/src/io/reisub/dreambot/util/ui/UI.java
Normal file
189
Util/src/io/reisub/dreambot/util/ui/UI.java
Normal file
@ -0,0 +1,189 @@
|
||||
package io.reisub.dreambot.util.ui;
|
||||
|
||||
import org.dreambot.api.methods.skills.Skill;
|
||||
import org.dreambot.api.methods.skills.SkillTracker;
|
||||
import org.dreambot.api.methods.skills.Skills;
|
||||
import org.dreambot.api.script.ScriptManager;
|
||||
import org.dreambot.api.utilities.Timer;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.event.MouseListener;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
||||
public class UI implements MouseListener {
|
||||
private final Color blue = new Color(23, 147, 209);
|
||||
private final Color gray = new Color(51, 51, 51);
|
||||
private final Color grayTransparent = new Color(51, 51, 51, 245);
|
||||
private final String scriptName;
|
||||
private static UI ui;
|
||||
private Graphics g;
|
||||
private int X = 0;
|
||||
private int Y = 0;
|
||||
private final int X_PADDING = 5;
|
||||
private final int Y_PADDING = 35;
|
||||
private final int LINE_SPACING = 20;
|
||||
private int lines = 0;
|
||||
private boolean hide;
|
||||
private boolean drawTime = true;
|
||||
private boolean drawExperience = true;
|
||||
private final java.util.List<Skill> skillsToTrack;
|
||||
private int customLines = 0;
|
||||
private final Timer timer;
|
||||
|
||||
public static UI getInstance(String scriptName) {
|
||||
if (ui == null) {
|
||||
ui = new UI(scriptName);
|
||||
}
|
||||
|
||||
return ui;
|
||||
}
|
||||
|
||||
private UI(String scriptName) {
|
||||
this.scriptName = scriptName;
|
||||
hide = false;
|
||||
timer = new Timer();
|
||||
skillsToTrack = new ArrayList<>();
|
||||
}
|
||||
|
||||
public void pause() {
|
||||
timer.pause();
|
||||
}
|
||||
|
||||
public void resume() {
|
||||
timer.resume();
|
||||
}
|
||||
|
||||
public void addSkills(Skill... skills) {
|
||||
SkillTracker.start(skills);
|
||||
skillsToTrack.addAll(Arrays.asList(skills));
|
||||
}
|
||||
|
||||
public void setTime(boolean b) {
|
||||
this.drawTime = b;
|
||||
}
|
||||
|
||||
public void setCustomLines(int customLines) {
|
||||
this.customLines = customLines;
|
||||
}
|
||||
|
||||
public int getHourlyRate(int current) {
|
||||
return timer.getHourlyRate(current);
|
||||
}
|
||||
|
||||
public void draw(Graphics g) {
|
||||
this.g = g;
|
||||
this.lines = 0;
|
||||
|
||||
drawUIToggle();
|
||||
if (hide) return;
|
||||
|
||||
drawInfoBox();
|
||||
|
||||
if (ScriptManager.getScriptManager().isPaused()) {
|
||||
drawString(scriptName + " [PAUSED]", Color.red);
|
||||
} else {
|
||||
drawString(scriptName, blue);
|
||||
}
|
||||
|
||||
if (drawTime) drawString("Time running: " + timer.formatTime());
|
||||
if (drawExperience) drawExperience();
|
||||
}
|
||||
|
||||
private void drawUIToggle() {
|
||||
int w = 40;
|
||||
int h = 15;
|
||||
|
||||
g.setColor(blue);
|
||||
g.drawRect(X, Y, w, h);
|
||||
|
||||
g.setColor(gray);
|
||||
g.fillRect(X+1, Y+1, w-1, h-1);
|
||||
|
||||
g.setColor(Color.white);
|
||||
if (hide) {
|
||||
g.drawString("show", X+5, Y+12);
|
||||
} else {
|
||||
g.drawString("hide", X+5, Y+12);
|
||||
}
|
||||
}
|
||||
|
||||
private void drawInfoBox() {
|
||||
int x = 0;
|
||||
int y = 20;
|
||||
int w = 250;
|
||||
|
||||
int expectedLines = 1;
|
||||
expectedLines = drawTime ? expectedLines + 1 : expectedLines;
|
||||
if (drawExperience) {
|
||||
expectedLines += skillsToTrack.size() * 3;
|
||||
}
|
||||
expectedLines += customLines;
|
||||
|
||||
int h = expectedLines * 20;
|
||||
|
||||
g.setColor(blue);
|
||||
g.drawRect(x,y, w, h);
|
||||
|
||||
g.setColor(grayTransparent);
|
||||
g.fillRect(x+1, y+1, w-1, h-1);
|
||||
}
|
||||
|
||||
private void drawExperience() {
|
||||
for (Skill s : skillsToTrack) {
|
||||
drawString(s.getName() + ": " + Skills.getRealLevel(s) + " (" + SkillTracker.getGainedLevels(s) + ")");
|
||||
drawString(SkillTracker.getGainedExperiencePerHour(s) + " xp/h (" + SkillTracker.getGainedLevels(s) + ")", 10);
|
||||
drawString("TTL: " + Timer.formatTime(SkillTracker.getTimeToLevel(s)), 10);
|
||||
}
|
||||
}
|
||||
|
||||
public void drawString(String s) {
|
||||
drawString(s, Color.white);
|
||||
}
|
||||
|
||||
public void drawString(String s, Color color) {
|
||||
drawString(s, color, 0);
|
||||
}
|
||||
|
||||
public void drawString(String s, int xPadding) {
|
||||
drawString(s, Color.white, xPadding);
|
||||
}
|
||||
|
||||
public void drawString(String s, Color color, int xPadding) {
|
||||
g.setColor(color);
|
||||
g.drawString(s, X_PADDING + xPadding, Y_PADDING + (LINE_SPACING * lines));
|
||||
lines++;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent mouseEvent) {
|
||||
if (mouseEvent.getButton() == 1) {
|
||||
Rectangle r = new Rectangle(0, 0, 40, 15);
|
||||
if (r.contains(mouseEvent.getPoint())) {
|
||||
hide = !hide;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mousePressed(MouseEvent mouseEvent) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseReleased(MouseEvent mouseEvent) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseEntered(MouseEvent mouseEvent) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseExited(MouseEvent mouseEvent) {
|
||||
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user