Cleanup overlay logic after native-ui changes
- Remove unnecessary derivations of runescapeSmallFont - Render overlays in "safe" environment (restore original font and tranform after overlay rendering is done) - Use TextComponent at more places - Remove unnecessary setting of default font in VolcanicMineOverlay - Change RenderableEntity from abstract class to interface - Remove unused tooltip configuration from RuneliteConfig - Use viewportWidget instead of chatbox widget for positioning the overlay groups (thanks to Devin for tip) Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
This commit is contained in:
@@ -31,16 +31,6 @@ package net.runelite.client.config;
|
||||
)
|
||||
public interface RuneliteConfig extends Config
|
||||
{
|
||||
@ConfigItem(
|
||||
keyName = "tooltipLeft",
|
||||
name = "Tooltip left of mouse?",
|
||||
description = "Places the tooltip on the left side of the mouse"
|
||||
)
|
||||
default boolean tooltipLeft()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "chatCommandsRecolorEnabled",
|
||||
name = "Enable chat commands recolor",
|
||||
|
||||
@@ -48,6 +48,7 @@ import net.runelite.api.Region;
|
||||
import net.runelite.api.Tile;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.ui.FontManager;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||
import net.runelite.http.api.item.ItemPrice;
|
||||
@@ -140,6 +141,8 @@ public class GroundItemsOverlay extends Overlay
|
||||
return null;
|
||||
}
|
||||
|
||||
graphics.setFont(FontManager.getRunescapeSmallFont());
|
||||
|
||||
int z = client.getPlane();
|
||||
|
||||
for (int x = 0; x < REGION_SIZE; x++)
|
||||
|
||||
@@ -24,10 +24,7 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.jewellerycount;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Font;
|
||||
import java.awt.FontMetrics;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Point;
|
||||
import java.awt.Rectangle;
|
||||
@@ -35,7 +32,6 @@ import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.Query;
|
||||
import net.runelite.api.queries.EquipmentItemQuery;
|
||||
import net.runelite.api.queries.InventoryItemQuery;
|
||||
@@ -45,20 +41,18 @@ import net.runelite.client.RuneLite;
|
||||
import net.runelite.client.ui.FontManager;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||
import net.runelite.client.ui.overlay.components.TextComponent;
|
||||
|
||||
class JewelleryCountOverlay extends Overlay
|
||||
{
|
||||
private final RuneLite runelite;
|
||||
private final Client client;
|
||||
private final JewelleryCountConfig config;
|
||||
private final Font font = FontManager.getRunescapeSmallFont().deriveFont(Font.PLAIN, 16);
|
||||
|
||||
@Inject
|
||||
JewelleryCountOverlay(RuneLite runelite, JewelleryCountConfig config)
|
||||
{
|
||||
setPosition(OverlayPosition.DYNAMIC);
|
||||
this.runelite = runelite;
|
||||
this.client = runelite.getClient();
|
||||
this.config = config;
|
||||
this.setDrawOverBankScreen(true);
|
||||
}
|
||||
@@ -71,7 +65,7 @@ class JewelleryCountOverlay extends Overlay
|
||||
return null;
|
||||
}
|
||||
|
||||
graphics.setFont(font);
|
||||
graphics.setFont(FontManager.getRunescapeSmallFont());
|
||||
|
||||
for (WidgetItem item : getJewelleryWidgetItems())
|
||||
{
|
||||
@@ -82,8 +76,11 @@ class JewelleryCountOverlay extends Overlay
|
||||
continue;
|
||||
}
|
||||
|
||||
renderWidgetText(graphics, item.getCanvasBounds(), charges.getCharges(), Color.white);
|
||||
|
||||
final Rectangle bounds = item.getCanvasBounds();
|
||||
final TextComponent textComponent = new TextComponent();
|
||||
textComponent.setPosition(new Point(bounds.x, bounds.y + 16));
|
||||
textComponent.setText(String.valueOf(charges.getCharges()));
|
||||
textComponent.render(graphics, parent);
|
||||
}
|
||||
|
||||
return null;
|
||||
@@ -106,20 +103,4 @@ class JewelleryCountOverlay extends Overlay
|
||||
jewellery.addAll(Arrays.asList(equipmentWidgetItems));
|
||||
return jewellery;
|
||||
}
|
||||
|
||||
private void renderWidgetText(Graphics2D graphics, Rectangle bounds, int charges, Color color)
|
||||
{
|
||||
FontMetrics fm = graphics.getFontMetrics();
|
||||
|
||||
int textX = (int) bounds.getX();
|
||||
int textY = (int) bounds.getY() + fm.getHeight();
|
||||
|
||||
//text shadow
|
||||
graphics.setColor(Color.BLACK);
|
||||
graphics.drawString(String.valueOf(charges), textX + 1, textY + 1);
|
||||
|
||||
graphics.setColor(color);
|
||||
graphics.drawString(String.valueOf(charges), textX, textY);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -28,8 +28,6 @@ package net.runelite.client.plugins.runecraft;
|
||||
import static net.runelite.api.ItemID.BINDING_NECKLACE;
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Font;
|
||||
import java.awt.FontMetrics;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Point;
|
||||
import java.awt.Rectangle;
|
||||
@@ -37,7 +35,6 @@ import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.Query;
|
||||
import net.runelite.api.queries.EquipmentItemQuery;
|
||||
import net.runelite.api.queries.InventoryItemQuery;
|
||||
@@ -47,13 +44,12 @@ import net.runelite.client.RuneLite;
|
||||
import net.runelite.client.ui.FontManager;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||
import net.runelite.client.ui.overlay.components.TextComponent;
|
||||
|
||||
public class BindNeckOverlay extends Overlay
|
||||
{
|
||||
private final RuneLite runelite;
|
||||
private final Client client;
|
||||
private final RunecraftConfig config;
|
||||
private final Font font = FontManager.getRunescapeSmallFont().deriveFont(Font.PLAIN, 16);
|
||||
int bindingCharges;
|
||||
|
||||
@Inject
|
||||
@@ -61,7 +57,6 @@ public class BindNeckOverlay extends Overlay
|
||||
{
|
||||
setPosition(OverlayPosition.DYNAMIC);
|
||||
this.runelite = runelite;
|
||||
this.client = runelite.getClient();
|
||||
this.config = config;
|
||||
this.setDrawOverBankScreen(true);
|
||||
}
|
||||
@@ -74,12 +69,19 @@ public class BindNeckOverlay extends Overlay
|
||||
return null;
|
||||
}
|
||||
|
||||
graphics.setFont(font);
|
||||
graphics.setFont(FontManager.getRunescapeSmallFont());
|
||||
|
||||
for (WidgetItem necklace : getNecklaceWidgetItems())
|
||||
{
|
||||
Color color = bindingCharges == 1 ? Color.RED : Color.WHITE;
|
||||
renderBindNeck(graphics, necklace.getCanvasBounds(), bindingCharges, color);
|
||||
final Color color = bindingCharges == 1 ? Color.RED : Color.WHITE;
|
||||
final Rectangle bounds = necklace.getCanvasBounds();
|
||||
final String text = bindingCharges <= 0 ? "?" : bindingCharges + "";
|
||||
|
||||
final TextComponent textComponent = new TextComponent();
|
||||
textComponent.setPosition(new Point(bounds.x, bounds.y + 16));
|
||||
textComponent.setText(text);
|
||||
textComponent.setColor(color);
|
||||
textComponent.render(graphics, parent);
|
||||
}
|
||||
|
||||
return null;
|
||||
@@ -101,20 +103,4 @@ public class BindNeckOverlay extends Overlay
|
||||
necklaces.addAll(Arrays.asList(equipmentWidgetItems));
|
||||
return necklaces;
|
||||
}
|
||||
|
||||
private void renderBindNeck(Graphics2D graphics, Rectangle bounds, int charges, Color color)
|
||||
{
|
||||
String text = charges <= 0 ? "?" : charges + "";
|
||||
FontMetrics fm = graphics.getFontMetrics();
|
||||
|
||||
int textX = (int) bounds.getX();
|
||||
int textY = (int) bounds.getY() + fm.getHeight();
|
||||
|
||||
//text shadow
|
||||
graphics.setColor(Color.BLACK);
|
||||
graphics.drawString(text, textX + 1, textY + 1);
|
||||
|
||||
graphics.setColor(color);
|
||||
graphics.drawString(text, textX, textY);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,10 +24,7 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.runecraft;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Font;
|
||||
import java.awt.FontMetrics;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Point;
|
||||
import java.awt.Rectangle;
|
||||
@@ -42,6 +39,7 @@ import net.runelite.client.RuneLite;
|
||||
import net.runelite.client.ui.FontManager;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||
import net.runelite.client.ui.overlay.components.TextComponent;
|
||||
|
||||
public class RunecraftOverlay extends Overlay
|
||||
{
|
||||
@@ -51,7 +49,6 @@ public class RunecraftOverlay extends Overlay
|
||||
|
||||
private final RuneLite runelite;
|
||||
private final Client client;
|
||||
private final Font font = FontManager.getRunescapeSmallFont().deriveFont(Font.PLAIN, 16);
|
||||
|
||||
private final RunecraftConfig config;
|
||||
|
||||
@@ -73,10 +70,10 @@ public class RunecraftOverlay extends Overlay
|
||||
return null;
|
||||
}
|
||||
|
||||
graphics.setFont(font);
|
||||
|
||||
Query query = new InventoryItemQuery();
|
||||
WidgetItem[] widgetItems = runelite.runQuery(query);
|
||||
graphics.setFont(FontManager.getRunescapeSmallFont());
|
||||
|
||||
for (WidgetItem item : widgetItems)
|
||||
{
|
||||
Varbits varbits;
|
||||
@@ -102,25 +99,13 @@ public class RunecraftOverlay extends Overlay
|
||||
continue;
|
||||
}
|
||||
|
||||
renderPouch(graphics, item.getCanvasBounds(), varbits, Color.WHITE);
|
||||
final Rectangle bounds = item.getCanvasBounds();
|
||||
final TextComponent textComponent = new TextComponent();
|
||||
textComponent.setPosition(new Point(bounds.x, bounds.y + 16));
|
||||
textComponent.setText(String.valueOf(client.getSetting(varbits)));
|
||||
textComponent.render(graphics, parent);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private void renderPouch(Graphics2D graphics, Rectangle bounds, Varbits varbits, Color color)
|
||||
{
|
||||
FontMetrics fm = graphics.getFontMetrics();
|
||||
|
||||
int textX = (int) bounds.getX();
|
||||
int textY = (int) bounds.getY() + fm.getHeight();
|
||||
|
||||
int contents = client.getSetting(varbits);
|
||||
|
||||
//text shadow
|
||||
graphics.setColor(Color.BLACK);
|
||||
graphics.drawString(String.valueOf(contents), textX + 1, textY + 1);
|
||||
|
||||
graphics.setColor(color);
|
||||
graphics.drawString(String.valueOf(contents), textX, textY);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,17 +27,13 @@ package net.runelite.client.plugins.slayer;
|
||||
import static com.google.common.collect.ObjectArrays.concat;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.Sets;
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Font;
|
||||
import java.awt.FontMetrics;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Point;
|
||||
import java.awt.Rectangle;
|
||||
import java.util.Collection;
|
||||
import java.util.Set;
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.ItemID;
|
||||
import net.runelite.api.Query;
|
||||
import net.runelite.api.queries.EquipmentItemQuery;
|
||||
@@ -48,14 +44,13 @@ import net.runelite.client.RuneLite;
|
||||
import net.runelite.client.ui.FontManager;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||
import net.runelite.client.ui.overlay.components.TextComponent;
|
||||
|
||||
class SlayerOverlay extends Overlay
|
||||
{
|
||||
private final RuneLite runelite;
|
||||
private final Client client;
|
||||
private final SlayerConfig config;
|
||||
private final SlayerPlugin plugin;
|
||||
private final Font font = FontManager.getRunescapeSmallFont().deriveFont(Font.PLAIN, 16);
|
||||
|
||||
private final Set<Integer> slayerJewelry = Sets.newHashSet(
|
||||
ItemID.SLAYER_RING_1,
|
||||
@@ -89,7 +84,6 @@ class SlayerOverlay extends Overlay
|
||||
{
|
||||
setPosition(OverlayPosition.DYNAMIC);
|
||||
this.runelite = runelite;
|
||||
this.client = runelite.getClient();
|
||||
this.plugin = plugin;
|
||||
this.config = config;
|
||||
}
|
||||
@@ -113,7 +107,7 @@ class SlayerOverlay extends Overlay
|
||||
return null;
|
||||
}
|
||||
|
||||
graphics.setFont(font);
|
||||
graphics.setFont(FontManager.getRunescapeSmallFont());
|
||||
|
||||
for (WidgetItem item : getSlayerWidgetItems())
|
||||
{
|
||||
@@ -124,7 +118,12 @@ class SlayerOverlay extends Overlay
|
||||
continue;
|
||||
}
|
||||
|
||||
renderWidgetText(graphics, itemId, item.getCanvasBounds(), amount, Color.white);
|
||||
final Rectangle bounds = item.getCanvasBounds();
|
||||
final TextComponent textComponent = new TextComponent();
|
||||
textComponent.setText(String.valueOf(amount));
|
||||
textComponent.setPosition(new Point(bounds.x, (slayerJewelry.contains(itemId)
|
||||
? bounds.x
|
||||
: 16 )));
|
||||
}
|
||||
|
||||
return null;
|
||||
@@ -141,19 +140,4 @@ class SlayerOverlay extends Overlay
|
||||
WidgetItem[] items = concat(inventoryWidgetItems, equipmentWidgetItems, WidgetItem.class);
|
||||
return ImmutableList.copyOf(items);
|
||||
}
|
||||
|
||||
private void renderWidgetText(Graphics2D graphics, int itemId, Rectangle bounds, int amount, Color color)
|
||||
{
|
||||
FontMetrics fm = graphics.getFontMetrics();
|
||||
|
||||
int textX = (int) bounds.getX();
|
||||
int textY = (int) bounds.getY() + (slayerJewelry.contains(itemId) ? (int) bounds.getHeight() : fm.getHeight());
|
||||
|
||||
//text shadow
|
||||
graphics.setColor(Color.BLACK);
|
||||
graphics.drawString(String.valueOf(amount), textX + 1, textY + 1);
|
||||
|
||||
graphics.setColor(color);
|
||||
graphics.drawString(String.valueOf(amount), textX, textY);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,6 @@ package net.runelite.client.plugins.volcanicmine;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Font;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Image;
|
||||
import java.awt.Polygon;
|
||||
@@ -47,7 +46,6 @@ import net.runelite.api.Point;
|
||||
import net.runelite.api.Prayer;
|
||||
import net.runelite.api.Region;
|
||||
import net.runelite.api.Tile;
|
||||
import net.runelite.client.ui.FontManager;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||
import net.runelite.client.ui.overlay.OverlayUtil;
|
||||
@@ -86,11 +84,6 @@ public class VolcanicMineOverlay extends Overlay
|
||||
return null;
|
||||
}
|
||||
|
||||
Font font = FontManager.getRunescapeFont();
|
||||
if (font != null)
|
||||
{
|
||||
graphics.setFont(font);
|
||||
}
|
||||
renderTileObjects(graphics);
|
||||
renderRangePrayer(graphics);
|
||||
return null;
|
||||
|
||||
@@ -27,7 +27,7 @@ package net.runelite.client.ui.overlay;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public abstract class Overlay extends RenderableEntity
|
||||
public abstract class Overlay implements RenderableEntity
|
||||
{
|
||||
private OverlayPosition position = OverlayPosition.TOP_LEFT;
|
||||
private OverlayPriority priority = OverlayPriority.NONE;
|
||||
|
||||
@@ -28,9 +28,11 @@ import com.google.common.base.MoreObjects;
|
||||
import com.google.common.eventbus.Subscribe;
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Font;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Point;
|
||||
import java.awt.Rectangle;
|
||||
import java.awt.geom.AffineTransform;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -55,7 +57,7 @@ public class OverlayRenderer
|
||||
{
|
||||
private static final int BORDER_TOP = 25;
|
||||
private static final int BORDER_LEFT = 5;
|
||||
private static final int BORDER_RIGHT = 5;
|
||||
private static final int BORDER_RIGHT = 2;
|
||||
private static final int BORDER_BOTTOM = 2;
|
||||
private static final int PADDING = 2;
|
||||
|
||||
@@ -72,7 +74,6 @@ public class OverlayRenderer
|
||||
TooltipOverlay tooltipOverlay;
|
||||
|
||||
private final List<Overlay> overlays = new ArrayList<>();
|
||||
private final Rectangle chatboxBounds = new Rectangle();
|
||||
private BufferedImage surface;
|
||||
private Graphics2D surfaceGraphics;
|
||||
|
||||
@@ -168,21 +169,20 @@ public class OverlayRenderer
|
||||
return;
|
||||
}
|
||||
|
||||
final Widget chatbox = client.getWidget(WidgetInfo.CHATBOX);
|
||||
|
||||
if (chatbox != null)
|
||||
{
|
||||
chatboxBounds.setBounds(chatbox.getBounds());
|
||||
}
|
||||
final Widget viewport = client.getViewportWidget();
|
||||
final Rectangle bounds = viewport != null
|
||||
? new Rectangle(viewport.getBounds())
|
||||
: new Rectangle(0, 0, surface.getWidth(), surface.getHeight());
|
||||
|
||||
OverlayUtil.setGraphicProperties(graphics);
|
||||
final Point topLeftPoint = new Point();
|
||||
topLeftPoint.move(BORDER_LEFT, BORDER_TOP);
|
||||
final Point topRightPoint = new Point();
|
||||
topRightPoint.move(surface.getWidth() - BORDER_RIGHT, BORDER_TOP);
|
||||
topRightPoint.move(bounds.x + bounds.width - BORDER_RIGHT, BORDER_TOP);
|
||||
final Point bottomLeftPoint = new Point();
|
||||
bottomLeftPoint.move(BORDER_LEFT, chatboxBounds.y - BORDER_BOTTOM);
|
||||
bottomLeftPoint.move(BORDER_LEFT, bounds.y + bounds.height - BORDER_BOTTOM);
|
||||
final Point bottomRightPoint = new Point();
|
||||
bottomRightPoint.move(chatboxBounds.x + chatboxBounds.width - BORDER_RIGHT, chatboxBounds.y - BORDER_BOTTOM);
|
||||
bottomRightPoint.move(bounds.x + bounds.width - BORDER_RIGHT, bounds.y + bounds.height - BORDER_BOTTOM);
|
||||
|
||||
overlays.stream()
|
||||
.filter(overlay -> shouldDrawOverlay(client, overlay))
|
||||
@@ -208,13 +208,13 @@ public class OverlayRenderer
|
||||
|
||||
if (overlay.getPosition().equals(OverlayPosition.DYNAMIC))
|
||||
{
|
||||
overlay.render(graphics, new Point());
|
||||
safeRender(overlay, graphics, new Point());
|
||||
}
|
||||
else
|
||||
{
|
||||
surfaceGraphics.clearRect(0, 0, surface.getWidth(), surface.getHeight());
|
||||
|
||||
final Dimension dimension = MoreObjects.firstNonNull(overlay.render(surfaceGraphics, subPosition), new Dimension());
|
||||
final Dimension dimension = MoreObjects.firstNonNull(safeRender(overlay, surfaceGraphics, subPosition), new Dimension());
|
||||
if (dimension.width == 0 && dimension.height == 0)
|
||||
{
|
||||
return;
|
||||
@@ -244,6 +244,16 @@ public class OverlayRenderer
|
||||
});
|
||||
}
|
||||
|
||||
private Dimension safeRender(RenderableEntity entity, Graphics2D graphics, Point point)
|
||||
{
|
||||
final Font font = graphics.getFont();
|
||||
final AffineTransform transform = graphics.getTransform();
|
||||
final Dimension dimension = entity.render(graphics, point);
|
||||
graphics.setFont(font);
|
||||
graphics.setTransform(transform);
|
||||
return dimension;
|
||||
}
|
||||
|
||||
private boolean shouldDrawOverlay(Client client, Overlay overlay)
|
||||
{
|
||||
return client != null
|
||||
|
||||
@@ -28,10 +28,7 @@ import java.awt.Dimension;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Point;
|
||||
|
||||
public abstract class RenderableEntity
|
||||
public interface RenderableEntity
|
||||
{
|
||||
public Dimension render(Graphics2D graphics, Point parent)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
Dimension render(Graphics2D graphics, Point parent);
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ import net.runelite.client.ui.overlay.RenderableEntity;
|
||||
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class BackgroundComponent extends RenderableEntity
|
||||
public class BackgroundComponent implements RenderableEntity
|
||||
{
|
||||
private static final int BORDER_OFFSET = 2;
|
||||
private static final Color BACKGROUND_COLOR = new Color(70, 61, 50, 156);
|
||||
|
||||
@@ -36,7 +36,7 @@ import javax.annotation.Nullable;
|
||||
import lombok.Setter;
|
||||
import net.runelite.client.ui.overlay.RenderableEntity;
|
||||
|
||||
public class InfoBoxComponent extends RenderableEntity
|
||||
public class InfoBoxComponent implements RenderableEntity
|
||||
{
|
||||
private static final int BOX_SIZE = 35;
|
||||
private static final int SEPARATOR = 2;
|
||||
|
||||
@@ -41,7 +41,7 @@ import lombok.RequiredArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import net.runelite.client.ui.overlay.RenderableEntity;
|
||||
|
||||
public class PanelComponent extends RenderableEntity
|
||||
public class PanelComponent implements RenderableEntity
|
||||
{
|
||||
private static final int TOP_BORDER = 3;
|
||||
private static final int LEFT_BORDER = 6;
|
||||
|
||||
@@ -32,7 +32,7 @@ import java.awt.Point;
|
||||
import lombok.Setter;
|
||||
import net.runelite.client.ui.overlay.RenderableEntity;
|
||||
|
||||
public class TextComponent extends RenderableEntity
|
||||
public class TextComponent implements RenderableEntity
|
||||
{
|
||||
@Setter
|
||||
private String text;
|
||||
|
||||
@@ -33,9 +33,10 @@ import java.awt.Rectangle;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import lombok.Setter;
|
||||
import net.runelite.client.ui.FontManager;
|
||||
import net.runelite.client.ui.overlay.RenderableEntity;
|
||||
|
||||
public class TooltipComponent extends RenderableEntity
|
||||
public class TooltipComponent implements RenderableEntity
|
||||
{
|
||||
private static final Pattern COLOR_SPLIT = Pattern.compile("<\\/?col=?([^>]+)?>");
|
||||
private static final Pattern BR = Pattern.compile("</br>");
|
||||
@@ -50,6 +51,8 @@ public class TooltipComponent extends RenderableEntity
|
||||
@Override
|
||||
public Dimension render(Graphics2D graphics, Point parent)
|
||||
{
|
||||
graphics.setFont(FontManager.getRunescapeSmallFont());
|
||||
|
||||
// Tooltip size
|
||||
final FontMetrics metrics = graphics.getFontMetrics();
|
||||
final int textDescent = metrics.getDescent();
|
||||
|
||||
Reference in New Issue
Block a user