mta: use widget item overlay
This commit is contained in:
@@ -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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user