add equipment tab jewelry count

add equipment tab jewelry count

add equipment tab jewelry count

add equipment tab jewelry count

add equipment tab jewelry count
This commit is contained in:
sethtroll
2017-07-06 19:42:13 -05:00
parent 39f78eef99
commit 77ee3d8785
3 changed files with 82 additions and 14 deletions

View File

@@ -28,6 +28,7 @@ class WidgetID
{
static final int BANK_GROUP_ID = 12;
static final int INVENTORY_GROUP_ID = 149;
static final int EQUIPMENT_GROUP_ID = 387;
static final int PESTRCONTROL_GROUP_ID = 408;
static final int CLAN_CHAT_GROUP_ID = 7;
static final int MINIMAP_GROUP_ID = 160;
@@ -66,6 +67,21 @@ class WidgetID
static final int ITEM_CONTAINER = 12;
}
static class Equipment
{
static final int HELMET = 6;
static final int CAPE = 7;
static final int AMULET = 8;
static final int WEAPON = 9;
static final int BODY = 10;
static final int SHIELD = 11;
static final int LEGS = 12;
static final int GLOVES = 13;
static final int BOOTS = 14;
static final int RING = 15;
static final int AMMO = 16;
}
static class Minimap
{
static final int XP_ORB = 1;

View File

@@ -28,6 +28,18 @@ public enum WidgetInfo
{
INVENTORY(WidgetID.INVENTORY_GROUP_ID, 0),
EQUIPMENT_HELMET(WidgetID.EQUIPMENT_GROUP_ID, WidgetID.Equipment.HELMET),
EQUIPMENT_CAPE(WidgetID.EQUIPMENT_GROUP_ID, WidgetID.Equipment.CAPE),
EQUIPMENT_AMULET(WidgetID.EQUIPMENT_GROUP_ID, WidgetID.Equipment.AMULET),
EQUIPMENT_WEAPON(WidgetID.EQUIPMENT_GROUP_ID, WidgetID.Equipment.WEAPON),
EQUIPMENT_BODY(WidgetID.EQUIPMENT_GROUP_ID, WidgetID.Equipment.BODY),
EQUIPMENT_SHIELD(WidgetID.EQUIPMENT_GROUP_ID, WidgetID.Equipment.SHIELD),
EQUIPMENT_LEGS(WidgetID.EQUIPMENT_GROUP_ID, WidgetID.Equipment.LEGS),
EQUIPMENT_GLOVES(WidgetID.EQUIPMENT_GROUP_ID, WidgetID.Equipment.GLOVES),
EQUIPMENT_BOOTS(WidgetID.EQUIPMENT_GROUP_ID, WidgetID.Equipment.BOOTS),
EQUIPMENT_RING(WidgetID.EQUIPMENT_GROUP_ID, WidgetID.Equipment.RING),
EQUIPMENT_AMMO(WidgetID.EQUIPMENT_GROUP_ID, WidgetID.Equipment.AMMO),
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),

View File

@@ -25,6 +25,8 @@
package net.runelite.client.plugins.jewelrycount;
import java.awt.*;
import java.awt.geom.Rectangle2D;
import net.runelite.api.Client;
import net.runelite.api.GameState;
import net.runelite.api.widgets.Widget;
@@ -58,36 +60,74 @@ class JewelryCountOverlay extends Overlay
Widget inventory = client.getWidget(WidgetInfo.INVENTORY);
if (inventory == null || inventory.isHidden())
if (inventory == null)
{
return null;
}
for (WidgetItem item : inventory.getWidgetItems())
if (!inventory.isHidden())
{
JewelryCharges charges = JewelryCharges.getCharges(item.getId());
for (WidgetItem item : inventory.getWidgetItems())
{
JewelryCharges charges = JewelryCharges.getCharges(item.getId());
if (charges == null)
if (charges == null)
{
continue;
}
renderWidgetText(graphics, item.getCanvasBounds(), charges.getCharges(), Color.white);
}
}
Widget[] equipment =
{
client.getWidget(WidgetInfo.EQUIPMENT_AMULET).getChild(1), client.getWidget(WidgetInfo.EQUIPMENT_RING).getChild(1)
};
if (equipment == null)
{
return null;
}
for (Widget widget : equipment)
{
JewelryCharges charges = JewelryCharges.getCharges(widget.getItemId());
if (charges == null || widget.isHidden())
{
continue;
}
Rectangle slotBounds = item.getCanvasBounds();
FontMetrics fm = graphics.getFontMetrics();
String jewelryCharge = Integer.toString(charges.getCharges());
Rectangle widgetBounds = widget.getBounds();
int x = (int) (slotBounds.getX() + slotBounds.getWidth()) - fm.stringWidth(jewelryCharge);
int y = (int) (slotBounds.getY() + fm.getHeight());
//to match inventory text
widgetBounds.x -= -5;
widgetBounds.y -= -1;
//text shadow
graphics.setColor(Color.black);
graphics.drawString(jewelryCharge, x + 1, y + 1);
renderWidgetText(graphics, widgetBounds, charges.getCharges(), Color.white);
graphics.setColor(Color.white);
graphics.drawString(jewelryCharge, x, y);
}
return null;
}
private void renderWidgetText(Graphics2D graphics, Rectangle bounds, int charges, Color color)
{
String text = charges + "";
FontMetrics fm = graphics.getFontMetrics();
Rectangle2D textBounds = fm.getStringBounds(text, graphics);
int textX = (int) (bounds.getX() + bounds.getWidth() - textBounds.getWidth());
int textY = (int) (bounds.getY() + (textBounds.getHeight()));
//text shadow
graphics.setColor(Color.BLACK);
graphics.drawString(text, textX + 1, textY + 1);
graphics.setColor(color);
graphics.drawString(text, textX, textY);
}
}