widgetitem overlay: allow configuring which interfaces to overlay
Update overlays to behave consistent with how they behaved before removal of query api, with the exception of adding the rune pouch overlay to the bank.
This commit is contained in:
@@ -43,6 +43,8 @@ public class InventoryTagsOverlay extends WidgetItemOverlay
|
|||||||
{
|
{
|
||||||
this.itemManager = itemManager;
|
this.itemManager = itemManager;
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
|
showOnEquipment();
|
||||||
|
showOnInventory();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -51,6 +51,8 @@ class ItemChargeOverlay extends WidgetItemOverlay
|
|||||||
{
|
{
|
||||||
this.itemChargePlugin = itemChargePlugin;
|
this.itemChargePlugin = itemChargePlugin;
|
||||||
this.config = config;
|
this.config = config;
|
||||||
|
showOnInventory();
|
||||||
|
showOnEquipment();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -69,6 +69,8 @@ public class RunepouchOverlay extends WidgetItemOverlay
|
|||||||
this.tooltipManager = tooltipManager;
|
this.tooltipManager = tooltipManager;
|
||||||
this.client = client;
|
this.client = client;
|
||||||
this.config = config;
|
this.config = config;
|
||||||
|
showOnInventory();
|
||||||
|
showOnBank();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -87,6 +87,8 @@ class SlayerOverlay extends WidgetItemOverlay
|
|||||||
{
|
{
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
this.config = config;
|
this.config = config;
|
||||||
|
showOnInventory();
|
||||||
|
showOnEquipment();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -26,15 +26,33 @@ package net.runelite.client.ui.overlay;
|
|||||||
|
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import net.runelite.api.widgets.Widget;
|
||||||
|
import static net.runelite.api.widgets.WidgetID.BANK_GROUP_ID;
|
||||||
|
import static net.runelite.api.widgets.WidgetID.BANK_INVENTORY_GROUP_ID;
|
||||||
|
import static net.runelite.api.widgets.WidgetID.DEPOSIT_BOX_GROUP_ID;
|
||||||
|
import static net.runelite.api.widgets.WidgetID.EQUIPMENT_GROUP_ID;
|
||||||
|
import static net.runelite.api.widgets.WidgetID.EQUIPMENT_INVENTORY_GROUP_ID;
|
||||||
|
import static net.runelite.api.widgets.WidgetID.GRAND_EXCHANGE_INVENTORY_GROUP_ID;
|
||||||
|
import static net.runelite.api.widgets.WidgetID.GUIDE_PRICES_INVENTORY_GROUP_ID;
|
||||||
|
import static net.runelite.api.widgets.WidgetID.INVENTORY_GROUP_ID;
|
||||||
|
import static net.runelite.api.widgets.WidgetID.SHOP_INVENTORY_GROUP_ID;
|
||||||
|
import static net.runelite.api.widgets.WidgetInfo.TO_GROUP;
|
||||||
import net.runelite.api.widgets.WidgetItem;
|
import net.runelite.api.widgets.WidgetItem;
|
||||||
|
|
||||||
public abstract class WidgetItemOverlay extends Overlay
|
public abstract class WidgetItemOverlay extends Overlay
|
||||||
{
|
{
|
||||||
@Setter(AccessLevel.PACKAGE)
|
@Setter(AccessLevel.PACKAGE)
|
||||||
private OverlayManager overlayManager;
|
private OverlayManager overlayManager;
|
||||||
|
/**
|
||||||
|
* Interfaces to draw overlay over.
|
||||||
|
*/
|
||||||
|
private final Set<Integer> interfaceGroups = new HashSet<>();
|
||||||
|
|
||||||
protected WidgetItemOverlay()
|
protected WidgetItemOverlay()
|
||||||
{
|
{
|
||||||
@@ -49,13 +67,49 @@ public abstract class WidgetItemOverlay extends Overlay
|
|||||||
public Dimension render(Graphics2D graphics)
|
public Dimension render(Graphics2D graphics)
|
||||||
{
|
{
|
||||||
final List<WidgetItem> itemWidgets = overlayManager.getItemWidgets();
|
final List<WidgetItem> itemWidgets = overlayManager.getItemWidgets();
|
||||||
for (WidgetItem widget : itemWidgets)
|
for (WidgetItem widgetItem : itemWidgets)
|
||||||
{
|
{
|
||||||
renderItemOverlay(graphics, widget.getId(), widget);
|
Widget widget = widgetItem.getWidget();
|
||||||
|
int interfaceGroup = TO_GROUP(widget.getId());
|
||||||
|
|
||||||
|
// Don't draw if this widget isn't one of the allowed
|
||||||
|
if (!interfaceGroups.contains(interfaceGroup))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
renderItemOverlay(graphics, widgetItem.getId(), widgetItem);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void showOnInventory()
|
||||||
|
{
|
||||||
|
showOnInterfaces(
|
||||||
|
DEPOSIT_BOX_GROUP_ID,
|
||||||
|
BANK_INVENTORY_GROUP_ID,
|
||||||
|
SHOP_INVENTORY_GROUP_ID,
|
||||||
|
GRAND_EXCHANGE_INVENTORY_GROUP_ID,
|
||||||
|
GUIDE_PRICES_INVENTORY_GROUP_ID,
|
||||||
|
EQUIPMENT_INVENTORY_GROUP_ID,
|
||||||
|
INVENTORY_GROUP_ID);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void showOnBank()
|
||||||
|
{
|
||||||
|
showOnInterfaces(BANK_GROUP_ID);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void showOnEquipment()
|
||||||
|
{
|
||||||
|
showOnInterfaces(EQUIPMENT_GROUP_ID);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void showOnInterfaces(int... ids)
|
||||||
|
{
|
||||||
|
Arrays.stream(ids).forEach(interfaceGroups::add);
|
||||||
|
}
|
||||||
|
|
||||||
// Don't allow setting position, priority, or layer
|
// Don't allow setting position, priority, or layer
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user