From ef1ed4e11f231e6a74873aea3dd8d5fba1b089cc Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 30 Apr 2017 16:45:16 -0400 Subject: [PATCH] Add WidgetInfo enum and use instead of WidgetID --- .../main/java/net/runelite/api/Client.java | 11 +++- .../net/runelite/api/widgets/WidgetID.java | 25 +++++++- .../net/runelite/api/widgets/WidgetInfo.java | 63 +++++++++++++++++++ .../plugins/devtools/DevToolsOverlay.java | 4 +- .../plugins/runecraft/RunecraftOverlay.java | 4 +- 5 files changed, 99 insertions(+), 8 deletions(-) create mode 100644 runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java diff --git a/runelite-api/src/main/java/net/runelite/api/Client.java b/runelite-api/src/main/java/net/runelite/api/Client.java index 943f94934f..67de0346b1 100644 --- a/runelite-api/src/main/java/net/runelite/api/Client.java +++ b/runelite-api/src/main/java/net/runelite/api/Client.java @@ -27,6 +27,7 @@ package net.runelite.api; import java.awt.Canvas; import java.util.Arrays; import net.runelite.api.widgets.Widget; +import net.runelite.api.widgets.WidgetInfo; public class Client { @@ -190,6 +191,14 @@ public class Client ).toArray(Widget[][]::new); } + public Widget getWidget(WidgetInfo widget) + { + int groupId = widget.getGroupId(); + int childId = widget.getChildId(); + + return getWidget(groupId, childId); + } + public Widget getWidget(int groupId, int childId) { net.runelite.rs.api.Widget[][] widgets = client.getWidgets(); @@ -292,7 +301,7 @@ public class Client { return client.getXteaKeys(); } - + public int getSetting(Varbits varbit) { int[] settings = client.getSettings(); 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 f40d76a9f7..8d239d1038 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 @@ -24,8 +24,27 @@ */ package net.runelite.api.widgets; -public class WidgetID +class WidgetID { - public static final int INVENTORY_GROUP_ID = 149; - public static final int INVENTORY_CHILD_ID = 0; + static final int INVENTORY_GROUP_ID = 149; + + static final int PESTRCONTROL_GROUP_ID = 408; + + static class PestControl + { + static final int PURPLE_SHIELD = 18; + static final int BLUE_SHIELD = 20; + static final int YELLOW_SHIELD = 22; + static final int RED_SHIELD = 24; + + static final int PURPLE_HEALTH = 14; + static final int BLUE_HEALTH = 15; + static final int YELLOW_HEALTH = 16; + static final int RED_HEALTH = 17; + + static final int PURPLE_ICON = 10; + static final int BLUE_ICON = 11; + static final int YELLOW_ICON = 12; + static final int RED_ICON = 13; + } } 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 new file mode 100644 index 0000000000..5b7d538f2c --- /dev/null +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2017, Adam + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.api.widgets; + +public enum WidgetInfo +{ + INVENTORY(WidgetID.INVENTORY_GROUP_ID, 0), + + PESTCONTROL_PURPLE_SHIELD(WidgetID.PESTRCONTROL_GROUP_ID, WidgetID.PestControl.PURPLE_SHIELD), + PESTCONTROL_BLUE_SHIELD(WidgetID.PESTRCONTROL_GROUP_ID, WidgetID.PestControl.BLUE_SHIELD), + PESTCONTROL_YELLOW_SHIELD(WidgetID.PESTRCONTROL_GROUP_ID, WidgetID.PestControl.YELLOW_SHIELD), + PESTCONTROL_RED_SHIELD(WidgetID.PESTRCONTROL_GROUP_ID, WidgetID.PestControl.RED_SHIELD), + PESTCONTROL_PURPLE_HEALTH(WidgetID.PESTRCONTROL_GROUP_ID, WidgetID.PestControl.PURPLE_HEALTH), + PESTCONTROL_BLUE_HEALTH(WidgetID.PESTRCONTROL_GROUP_ID, WidgetID.PestControl.BLUE_HEALTH), + PESTCONTROL_YELLOW_HEALTH(WidgetID.PESTRCONTROL_GROUP_ID, WidgetID.PestControl.YELLOW_HEALTH), + PESTCONTROL_RED_HEALTH(WidgetID.PESTRCONTROL_GROUP_ID, WidgetID.PestControl.RED_HEALTH), + PESTCONTROL_PURPLE_ICON(WidgetID.PESTRCONTROL_GROUP_ID, WidgetID.PestControl.PURPLE_ICON), + PESTCONTROL_BLUE_ICON(WidgetID.PESTRCONTROL_GROUP_ID, WidgetID.PestControl.BLUE_ICON), + PESTCONTROL_YELLOW_ICON(WidgetID.PESTRCONTROL_GROUP_ID, WidgetID.PestControl.YELLOW_ICON), + PESTCONTROL_RED_ICON(WidgetID.PESTRCONTROL_GROUP_ID, WidgetID.PestControl.RED_ICON); + + private final int groupId; + private final int childId; + + private WidgetInfo(int groupId, int childId) + { + this.groupId = groupId; + this.childId = childId; + } + + public int getGroupId() + { + return groupId; + } + + public int getChildId() + { + return childId; + } + +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsOverlay.java index bb1f184244..cea1d35af7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsOverlay.java @@ -49,7 +49,7 @@ import net.runelite.api.Tile; import net.runelite.api.TileObject; import net.runelite.api.WallObject; import net.runelite.api.widgets.Widget; -import net.runelite.api.widgets.WidgetID; +import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetItem; import net.runelite.client.RuneLite; import net.runelite.client.ui.overlay.Overlay; @@ -369,7 +369,7 @@ public class DevToolsOverlay extends Overlay private void renderInventory(Graphics2D graphics) { - Widget inventoryWidget = client.getWidget(WidgetID.INVENTORY_GROUP_ID, WidgetID.INVENTORY_CHILD_ID); + Widget inventoryWidget = client.getWidget(WidgetInfo.INVENTORY); if (inventoryWidget == null) { return; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftOverlay.java index c8373dbd5b..e5c6dd5ab5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftOverlay.java @@ -31,7 +31,7 @@ import net.runelite.api.ItemID; import net.runelite.api.Point; import net.runelite.api.Varbits; import net.runelite.api.widgets.Widget; -import net.runelite.api.widgets.WidgetID; +import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetItem; import net.runelite.client.RuneLite; import net.runelite.client.ui.overlay.Overlay; @@ -49,7 +49,7 @@ public class RunecraftOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - Widget inventoryWidget = client.getWidget(WidgetID.INVENTORY_GROUP_ID, WidgetID.INVENTORY_CHILD_ID); + Widget inventoryWidget = client.getWidget(WidgetInfo.INVENTORY); if (inventoryWidget == null) { return null;