From 044502da78e750c65490853e9fcbc584fcb2cbfd Mon Sep 17 00:00:00 2001 From: UniquePassive Date: Sun, 17 Dec 2017 02:25:36 +0100 Subject: [PATCH] Make special attack orb look a little nicer --- .../java/net/runelite/api/widgets/Widget.java | 4 ++ .../net/runelite/api/widgets/WidgetID.java | 4 +- .../net/runelite/api/widgets/WidgetInfo.java | 2 + .../plugins/specorb/SpecOrbOverlay.java | 55 +++++++++++++++--- .../client/ui/overlay/OverlayUtil.java | 4 +- .../specorb/minimap_orb_background.png | Bin 2385 -> 16755 bytes .../java/net/runelite/rs/api/RSWidget.java | 8 +++ 7 files changed, 67 insertions(+), 10 deletions(-) diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/Widget.java b/runelite-api/src/main/java/net/runelite/api/widgets/Widget.java index 3256a9c405..46dce32017 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/Widget.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/Widget.java @@ -50,8 +50,12 @@ public interface Widget int getRelativeX(); + void setRelativeX(int x); + int getRelativeY(); + void setRelativeY(int y); + String getText(); void setText(String text); diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java index d5ef8d902c..d6f0718f4c 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java @@ -136,7 +136,9 @@ class WidgetID static class Minimap { static final int XP_ORB = 1; - static final int QUICK_PRAYER_ORB = 14; + static final int PRAYER_ORB = 12; + static final int QUICK_PRAYER_ORB = 14; // Has the "Quick-prayers" name + static final int RUN_ORB = 20; } static class Viewport diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java index 3f1e7cbd60..cfe0665fc6 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java @@ -88,6 +88,8 @@ public enum WidgetInfo SHOP_INVENTORY_ITEMS_CONTAINER(WidgetID.SHOP_INVENTORY_GROUP_ID, WidgetID.Shop.INVENTORY_ITEM_CONTAINER), MINIMAP_XP_ORB(WidgetID.MINIMAP_GROUP_ID, WidgetID.Minimap.XP_ORB), + MINIMAP_PRAYER_ORB(WidgetID.MINIMAP_GROUP_ID, WidgetID.Minimap.PRAYER_ORB), + MINIMAP_RUN_ORB(WidgetID.MINIMAP_GROUP_ID, WidgetID.Minimap.RUN_ORB), LOGIN_CLICK_TO_PLAY_SCREEN(WidgetID.LOGIN_CLICK_TO_PLAY_GROUP_ID, 0), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/specorb/SpecOrbOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/specorb/SpecOrbOverlay.java index 6c5c107f8f..3355c2a3db 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/specorb/SpecOrbOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/specorb/SpecOrbOverlay.java @@ -44,8 +44,8 @@ public class SpecOrbOverlay extends Overlay { private static final int RECHARGE_TIME_TICKS = 51; - private static final int ORB_X_OFFSET = 60; - private static final int ORB_Y_OFFSET = 123; + private static final int ORB_X_OFFSET = 33; + private static final int ORB_Y_OFFSET = 25; private static final Color SPECIAL_ORB_BACKGROUND_COLOR = new Color(51, 102, 255); private static final Color SPECIAL_ORB_RECHARGE_COLOR = new Color(153, 204, 255, 50); @@ -72,19 +72,60 @@ public class SpecOrbOverlay extends Overlay return null; } - Widget xpOrb = client.getWidget(WidgetInfo.MINIMAP_XP_ORB); - if (xpOrb == null) + Widget prayerOrb = client.getWidget(WidgetInfo.MINIMAP_PRAYER_ORB); + if (prayerOrb == null) { return null; } + Widget runOrb = client.getWidget(WidgetInfo.MINIMAP_RUN_ORB); + if (runOrb == null) + { + return null; + } + + if (client.isResized()) + { + if (prayerOrb.getRelativeY() != 73) + { + prayerOrb.setRelativeY(73); + } + + if (runOrb.getRelativeX() != 12) + { + runOrb.setRelativeX(12); + } + + if (runOrb.getRelativeY() != 108) + { + runOrb.setRelativeY(108); + } + } + else + { + if (prayerOrb.getRelativeY() != 71) + { + prayerOrb.setRelativeY(71); + } + + if (runOrb.getRelativeX() != 12) + { + runOrb.setRelativeX(12); + } + + if (runOrb.getRelativeY() != 103) + { + runOrb.setRelativeY(103); + } + } + graphics.setColor(SPECIAL_ORB_BACKGROUND_COLOR); boolean specialAttackEnabled = client.getSetting(Varbits.SPECIAL_ATTACK_ENABLED) == 1; - // draw relative to the xp orb - Point xpOrbPoint = xpOrb.getCanvasLocation(); - Point specOrbPoint = new Point(xpOrbPoint.getX() + ORB_X_OFFSET, xpOrbPoint.getY() + ORB_Y_OFFSET); + // draw relative to run orb + Point runOrbPoint = runOrb.getCanvasLocation(); + Point specOrbPoint = new Point(runOrbPoint.getX() + ORB_X_OFFSET, runOrbPoint.getY() + ORB_Y_OFFSET); double specialPercent = client.getSetting(Varbits.SPECIAL_ATTACK_PERCENT) / 1000.0; double specialRechargePercent = tickCounter / (double) RECHARGE_TIME_TICKS; diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayUtil.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayUtil.java index 739779a0ff..ef806ae40b 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayUtil.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayUtil.java @@ -94,7 +94,7 @@ public class OverlayUtil // draw background graphics.drawImage(minimapOrbBackground, pos.getX(), pos.getY(), null); // draw overlay - graphics.drawImage(overlayImage, pos.getX() + 32, pos.getY() + 9, null); + graphics.drawImage(overlayImage, pos.getX() + 33, pos.getY() + 10, null); drawOrbAmount(graphics, pos, amount);//draw number on orb @@ -117,7 +117,7 @@ public class OverlayUtil FontMetrics fm = graphics.getFontMetrics(); String numberString = Integer.toString(amount); - Point numberPos = new Point(pos.getX() + 22 - fm.stringWidth(numberString), pos.getY() + 26); + Point numberPos = new Point(pos.getX() + 24 - fm.stringWidth(numberString), pos.getY() + 27); graphics.setColor(Color.black); graphics.drawString(numberString, numberPos.getX() + 1, numberPos.getY() + 1);//black shadow on text graphics.setColor(Color.green); diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/specorb/minimap_orb_background.png b/runelite-client/src/main/resources/net/runelite/client/plugins/specorb/minimap_orb_background.png index 8c94c4b09f7580dab698ff08ec0280a42e9e3212..50b4192c19afe3f019a06a1f0ce37d9fdb5fb02a 100644 GIT binary patch literal 16755 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 N002ovPDHLkV1lfETxkFR diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSWidget.java b/runescape-api/src/main/java/net/runelite/rs/api/RSWidget.java index fafa22496d..456bea52ca 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSWidget.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSWidget.java @@ -82,10 +82,18 @@ public interface RSWidget extends Widget @Override int getRelativeX(); + @Import("relativeX") + @Override + void setRelativeX(int x); + @Import("relativeY") @Override int getRelativeY(); + @Import("relativeY") + @Override + void setRelativeY(int y); + @Import("width") @Override int getWidth();