Add option for enabling small font

- Add option for toggling between small and large font for in-game
overlays
- Normalize the font size usage around overlays

Closes: #1214

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
This commit is contained in:
Tomas Slusny
2018-04-01 08:53:42 +02:00
parent a24b7b427e
commit 4ddd3bc32f
7 changed files with 25 additions and 39 deletions

View File

@@ -116,4 +116,14 @@ public interface RuneLiteConfig extends Config
{ {
return true; return true;
} }
@ConfigItem(
keyName = "useSmallFont",
name = "Use smaller font for in-game overlays",
description = "Toggles between small and regular RuneScape font for in-game overlays"
)
default boolean useSmallFont()
{
return false;
}
} }

View File

@@ -39,7 +39,6 @@ import net.runelite.api.Player;
import net.runelite.api.Point; import net.runelite.api.Point;
import net.runelite.api.coords.LocalPoint; import net.runelite.api.coords.LocalPoint;
import net.runelite.api.coords.WorldPoint; import net.runelite.api.coords.WorldPoint;
import net.runelite.client.ui.FontManager;
import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayLayer;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
@@ -90,7 +89,6 @@ public class GroundItemsOverlay extends Overlay
plugin.checkItems(); plugin.checkItems();
graphics.setFont(FontManager.getRunescapeSmallFont());
offsetMap.clear(); offsetMap.clear();
final LocalPoint localLocation = player.getLocalLocation(); final LocalPoint localLocation = player.getLocalLocation();

View File

@@ -25,13 +25,8 @@
*/ */
package net.runelite.client.plugins.pestcontrol; package net.runelite.client.plugins.pestcontrol;
import static net.runelite.client.plugins.pestcontrol.Portal.BLUE;
import static net.runelite.client.plugins.pestcontrol.Portal.PURPLE;
import static net.runelite.client.plugins.pestcontrol.Portal.RED;
import static net.runelite.client.plugins.pestcontrol.Portal.YELLOW;
import java.awt.Color; import java.awt.Color;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontMetrics; import java.awt.FontMetrics;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D; import java.awt.geom.Rectangle2D;
@@ -44,6 +39,10 @@ import net.runelite.api.Query;
import net.runelite.api.queries.NPCQuery; import net.runelite.api.queries.NPCQuery;
import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetInfo;
import static net.runelite.client.plugins.pestcontrol.Portal.BLUE;
import static net.runelite.client.plugins.pestcontrol.Portal.PURPLE;
import static net.runelite.client.plugins.pestcontrol.Portal.RED;
import static net.runelite.client.plugins.pestcontrol.Portal.YELLOW;
import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.OverlayUtil; import net.runelite.client.ui.overlay.OverlayUtil;
@@ -55,18 +54,15 @@ public class PestControlOverlay extends Overlay
private final QueryRunner queryRunner; private final QueryRunner queryRunner;
private final Client client; private final Client client;
private final PestControlPlugin plugin;
// Pest control game // Pest control game
private Game game; private Game game;
@Inject @Inject
public PestControlOverlay(QueryRunner queryRunner, Client client, PestControlPlugin plugin) public PestControlOverlay(QueryRunner queryRunner, Client client)
{ {
setPosition(OverlayPosition.DYNAMIC); setPosition(OverlayPosition.DYNAMIC);
this.queryRunner = queryRunner; this.queryRunner = queryRunner;
this.client = client; this.client = client;
this.plugin = plugin;
} }
@Override @Override
@@ -90,12 +86,6 @@ public class PestControlOverlay extends Overlay
game = new Game(); game = new Game();
} }
Font font = plugin.getFont();
if (font != null)
{
graphics.setFont(font);
}
renderSpinners(graphics); renderSpinners(graphics);
renderPortalWidgets(graphics); renderPortalWidgets(graphics);

View File

@@ -24,11 +24,9 @@
*/ */
package net.runelite.client.plugins.pestcontrol; package net.runelite.client.plugins.pestcontrol;
import java.awt.Font;
import javax.inject.Inject; import javax.inject.Inject;
import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginDescriptor;
import net.runelite.client.ui.FontManager;
import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.Overlay;
@PluginDescriptor( @PluginDescriptor(
@@ -36,26 +34,12 @@ import net.runelite.client.ui.overlay.Overlay;
) )
public class PestControlPlugin extends Plugin public class PestControlPlugin extends Plugin
{ {
private Font font;
@Inject @Inject
private PestControlOverlay overlay; private PestControlOverlay overlay;
@Override
protected void startUp() throws Exception
{
font = FontManager.getRunescapeFont()
.deriveFont(Font.BOLD, 16);
}
@Override @Override
public Overlay getOverlay() public Overlay getOverlay()
{ {
return overlay; return overlay;
} }
public Font getFont()
{
return font;
}
} }

View File

@@ -65,6 +65,7 @@ import net.runelite.client.input.KeyManager;
import net.runelite.client.input.MouseListener; import net.runelite.client.input.MouseListener;
import net.runelite.client.input.MouseManager; import net.runelite.client.input.MouseManager;
import net.runelite.client.plugins.PluginManager; import net.runelite.client.plugins.PluginManager;
import net.runelite.client.ui.FontManager;
import net.runelite.client.ui.overlay.infobox.InfoBoxOverlay; import net.runelite.client.ui.overlay.infobox.InfoBoxOverlay;
import net.runelite.client.ui.overlay.tooltip.TooltipOverlay; import net.runelite.client.ui.overlay.tooltip.TooltipOverlay;
@@ -92,6 +93,7 @@ public class OverlayRenderer extends MouseListener implements KeyListener
private final Provider<Client> clientProvider; private final Provider<Client> clientProvider;
private final InfoBoxOverlay infoBoxOverlay; private final InfoBoxOverlay infoBoxOverlay;
private final ConfigManager configManager; private final ConfigManager configManager;
private final RuneLiteConfig runeLiteConfig;
private final TooltipOverlay tooltipOverlay; private final TooltipOverlay tooltipOverlay;
private final List<Overlay> allOverlays = new CopyOnWriteArrayList<>(); private final List<Overlay> allOverlays = new CopyOnWriteArrayList<>();
private final ConcurrentLinkedQueue<Consumer<BufferedImage>> screenshotRequests = new ConcurrentLinkedQueue<>(); private final ConcurrentLinkedQueue<Consumer<BufferedImage>> screenshotRequests = new ConcurrentLinkedQueue<>();
@@ -120,13 +122,15 @@ public class OverlayRenderer extends MouseListener implements KeyListener
final KeyManager keyManager, final KeyManager keyManager,
final TooltipOverlay tooltipOverlay, final TooltipOverlay tooltipOverlay,
final InfoBoxOverlay infoBoxOverlay, final InfoBoxOverlay infoBoxOverlay,
final ConfigManager configManager) final ConfigManager configManager,
final RuneLiteConfig runeLiteConfig)
{ {
this.clientProvider = clientProvider; this.clientProvider = clientProvider;
this.pluginManager = pluginManager; this.pluginManager = pluginManager;
this.tooltipOverlay = tooltipOverlay; this.tooltipOverlay = tooltipOverlay;
this.infoBoxOverlay = infoBoxOverlay; this.infoBoxOverlay = infoBoxOverlay;
this.configManager = configManager; this.configManager = configManager;
this.runeLiteConfig = runeLiteConfig;
keyManager.registerKeyListener(this); keyManager.registerKeyListener(this);
mouseManager.registerMouseListener(this); mouseManager.registerMouseListener(this);
} }
@@ -279,6 +283,11 @@ public class OverlayRenderer extends MouseListener implements KeyListener
// Create copy of snap corners because overlays will modify them // Create copy of snap corners because overlays will modify them
OverlayBounds snapCorners = new OverlayBounds(this.snapCorners); OverlayBounds snapCorners = new OverlayBounds(this.snapCorners);
// Set font based on configuration
graphics.setFont(runeLiteConfig.useSmallFont()
? FontManager.getRunescapeSmallFont()
: FontManager.getRunescapeFont());
OverlayUtil.setGraphicProperties(graphics); OverlayUtil.setGraphicProperties(graphics);
// Draw snap corners // Draw snap corners

View File

@@ -38,7 +38,6 @@ import net.runelite.api.Perspective;
import net.runelite.api.Point; import net.runelite.api.Point;
import net.runelite.api.TileObject; import net.runelite.api.TileObject;
import net.runelite.api.coords.LocalPoint; import net.runelite.api.coords.LocalPoint;
import net.runelite.client.ui.FontManager;
/** /**
@@ -176,7 +175,6 @@ public class OverlayUtil
public static void setGraphicProperties(Graphics2D graphics) public static void setGraphicProperties(Graphics2D graphics)
{ {
graphics.setFont(FontManager.getRunescapeFont());
graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
} }

View File

@@ -33,7 +33,6 @@ import java.awt.Rectangle;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import lombok.Setter; import lombok.Setter;
import net.runelite.api.IndexedSprite; import net.runelite.api.IndexedSprite;
import net.runelite.client.ui.FontManager;
import net.runelite.client.ui.overlay.RenderableEntity; import net.runelite.client.ui.overlay.RenderableEntity;
public class TooltipComponent implements RenderableEntity public class TooltipComponent implements RenderableEntity
@@ -57,8 +56,6 @@ public class TooltipComponent implements RenderableEntity
@Override @Override
public Dimension render(Graphics2D graphics) public Dimension render(Graphics2D graphics)
{ {
graphics.setFont(FontManager.getRunescapeSmallFont());
// Tooltip size // Tooltip size
final FontMetrics metrics = graphics.getFontMetrics(); final FontMetrics metrics = graphics.getFontMetrics();
final int textDescent = metrics.getDescent(); final int textDescent = metrics.getDescent();