mta: use widget item overlay

This commit is contained in:
Adam
2022-04-12 22:00:10 -04:00
parent da8d98bb56
commit db69f55b9c
4 changed files with 16 additions and 36 deletions

View File

@@ -24,38 +24,31 @@
*/
package net.runelite.client.plugins.mta;
import java.awt.Dimension;
import java.awt.Graphics2D;
import javax.inject.Inject;
import net.runelite.client.ui.FontManager;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayLayer;
import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.api.widgets.WidgetItem;
import net.runelite.client.ui.overlay.WidgetItemOverlay;
public class MTAInventoryOverlay extends Overlay
class MTAItemOverlay extends WidgetItemOverlay
{
private final MTAPlugin plugin;
@Inject
public MTAInventoryOverlay(MTAPlugin plugin)
public MTAItemOverlay(MTAPlugin plugin)
{
this.plugin = plugin;
setPosition(OverlayPosition.DYNAMIC);
setLayer(OverlayLayer.ABOVE_WIDGETS);
showOnInventory();
}
@Override
public Dimension render(Graphics2D graphics)
public void renderItemOverlay(Graphics2D graphics, int itemId, WidgetItem widgetItem)
{
for (MTARoom room : plugin.getRooms())
{
if (room.inside())
{
graphics.setFont(FontManager.getRunescapeBoldFont());
room.over(graphics);
room.renderItemOverlay(graphics, itemId, widgetItem);
}
}
return null;
}
}

View File

@@ -62,7 +62,7 @@ public class MTAPlugin extends Plugin
@Inject
private MTASceneOverlay sceneOverlay;
@Inject
private MTAInventoryOverlay inventoryOverlay;
private MTAItemOverlay itemOverlay;
@Getter(AccessLevel.PROTECTED)
private MTARoom[] rooms;
@@ -77,7 +77,7 @@ public class MTAPlugin extends Plugin
public void startUp()
{
overlayManager.add(sceneOverlay);
overlayManager.add(inventoryOverlay);
overlayManager.add(itemOverlay);
this.rooms = new MTARoom[]{alchemyRoom, graveyardRoom, telekineticRoom, enchantmentRoom};
@@ -91,7 +91,7 @@ public class MTAPlugin extends Plugin
public void shutDown()
{
overlayManager.remove(sceneOverlay);
overlayManager.remove(inventoryOverlay);
overlayManager.remove(itemOverlay);
for (MTARoom room : rooms)
{

View File

@@ -28,6 +28,7 @@ import java.awt.Graphics2D;
import javax.inject.Inject;
import lombok.AccessLevel;
import lombok.Getter;
import net.runelite.api.widgets.WidgetItem;
public abstract class MTARoom
{
@@ -46,7 +47,7 @@ public abstract class MTARoom
{
}
public void over(Graphics2D graphics2D)
public void renderItemOverlay(Graphics2D graphics, int itemId, WidgetItem widgetItem)
{
}
}

View File

@@ -63,7 +63,6 @@ import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.GameTick;
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.eventbus.Subscribe;
import net.runelite.client.game.ItemManager;
@@ -448,28 +447,15 @@ public class AlchemyRoom extends MTARoom
@Override
public void over(Graphics2D graphics)
public void renderItemOverlay(Graphics2D graphics, int itemId, WidgetItem widgetItem)
{
if (!inside() || !config.alchemy() || best == null)
assert inside();
if (best == null || best.getId() != itemId || !config.alchemy())
{
return;
}
Widget inventory = client.getWidget(WidgetInfo.INVENTORY);
if (inventory.isHidden())
{
return;
}
for (WidgetItem item : inventory.getWidgetItems())
{
if (item.getId() != best.getId())
{
continue;
}
drawItem(graphics, item, Color.GREEN);
}
drawItem(graphics, widgetItem, Color.GREEN);
}
private void drawItem(Graphics2D graphics, WidgetItem item, Color border)