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

View File

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

View File

@@ -28,6 +28,7 @@ import java.awt.Graphics2D;
import javax.inject.Inject; import javax.inject.Inject;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.Getter; import lombok.Getter;
import net.runelite.api.widgets.WidgetItem;
public abstract class MTARoom 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.events.GameTick;
import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetID; import net.runelite.api.widgets.WidgetID;
import net.runelite.api.widgets.WidgetInfo;
import net.runelite.api.widgets.WidgetItem; import net.runelite.api.widgets.WidgetItem;
import net.runelite.client.eventbus.Subscribe; import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.game.ItemManager; import net.runelite.client.game.ItemManager;
@@ -448,28 +447,15 @@ public class AlchemyRoom extends MTARoom
@Override @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; return;
} }
Widget inventory = client.getWidget(WidgetInfo.INVENTORY); drawItem(graphics, widgetItem, Color.GREEN);
if (inventory.isHidden())
{
return;
}
for (WidgetItem item : inventory.getWidgetItems())
{
if (item.getId() != best.getId())
{
continue;
}
drawItem(graphics, item, Color.GREEN);
}
} }
private void drawItem(Graphics2D graphics, WidgetItem item, Color border) private void drawItem(Graphics2D graphics, WidgetItem item, Color border)