item stats: fix tooltip not appearing when hovering over item
Fixes #1505
This commit is contained in:
@@ -27,10 +27,9 @@ package net.runelite.client.plugins.itemstats;
|
|||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import java.awt.Point;
|
|
||||||
import net.runelite.api.Client;
|
import net.runelite.api.Client;
|
||||||
import net.runelite.api.queries.InventoryWidgetItemQuery;
|
import net.runelite.api.MenuEntry;
|
||||||
import net.runelite.api.widgets.WidgetItem;
|
import net.runelite.api.widgets.WidgetInfo;
|
||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
import net.runelite.client.ui.overlay.tooltip.Tooltip;
|
import net.runelite.client.ui.overlay.tooltip.Tooltip;
|
||||||
import net.runelite.client.ui.overlay.tooltip.TooltipManager;
|
import net.runelite.client.ui.overlay.tooltip.TooltipManager;
|
||||||
@@ -62,25 +61,35 @@ public class ItemStatOverlay extends Overlay
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
WidgetItem[] inventory = queryRunner.runQuery(new InventoryWidgetItemQuery());
|
final MenuEntry[] menu = client.getMenuEntries();
|
||||||
Point mousePos = new Point(client.getMouseCanvasPosition().getX(), client.getMouseCanvasPosition().getY());
|
final int menuSize = menu.length;
|
||||||
for (WidgetItem item : inventory)
|
|
||||||
|
if (menuSize <= 0)
|
||||||
{
|
{
|
||||||
if (item.getCanvasBounds().contains(mousePos))
|
return null;
|
||||||
{
|
|
||||||
Effect change = statChanges.get(item.getId());
|
|
||||||
if (change != null)
|
|
||||||
{
|
|
||||||
StringBuilder b = new StringBuilder();
|
|
||||||
StatsChanges statsChanges = change.calculate(client);
|
|
||||||
for (StatChange c : statsChanges.getStatChanges())
|
|
||||||
{
|
|
||||||
b.append(buildStatChangeString(c));
|
|
||||||
}
|
|
||||||
tooltipManager.add(new Tooltip(b.toString()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final MenuEntry entry = menu[menuSize - 1];
|
||||||
|
|
||||||
|
if (entry.getParam1() != WidgetInfo.INVENTORY.getId())
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
final Effect change = statChanges.get(entry.getIdentifier());
|
||||||
|
if (change != null)
|
||||||
|
{
|
||||||
|
final StringBuilder b = new StringBuilder();
|
||||||
|
final StatsChanges statsChanges = change.calculate(client);
|
||||||
|
|
||||||
|
for (final StatChange c : statsChanges.getStatChanges())
|
||||||
|
{
|
||||||
|
b.append(buildStatChangeString(c));
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltipManager.add(new Tooltip(b.toString()));
|
||||||
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user