diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/groundmarkers/GroundMarkerConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/groundmarkers/GroundMarkerConfig.java index f3d1dcc3f6..9303844452 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/groundmarkers/GroundMarkerConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/groundmarkers/GroundMarkerConfig.java @@ -283,4 +283,15 @@ public interface GroundMarkerConfig extends Config { return 100; } + + @ConfigItem( + position = 16, + keyName = "thinMarkers", + name = "Thin markesr", + description = "Render marked tile borders as 1 pixel wide instead of 2" + ) + default boolean thinMarkers() + { + return false; + } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/groundmarkers/GroundMarkerOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/groundmarkers/GroundMarkerOverlay.java index e17bd1c336..4af11b450c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/groundmarkers/GroundMarkerOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/groundmarkers/GroundMarkerOverlay.java @@ -126,6 +126,13 @@ public class GroundMarkerOverlay extends Overlay case 12: color = plugin.getMarkerColor12(); } - OverlayUtil.renderPolygon(graphics, poly, color); + if (plugin.isThinMarkers()) + { + OverlayUtil.renderPolygonThin(graphics, poly, color); + } + else + { + OverlayUtil.renderPolygon(graphics, poly, color); + } } } \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/groundmarkers/GroundMarkerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/groundmarkers/GroundMarkerPlugin.java index ab37bac5e8..0fa3afcf4e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/groundmarkers/GroundMarkerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/groundmarkers/GroundMarkerPlugin.java @@ -173,6 +173,8 @@ public class GroundMarkerPlugin extends Plugin private boolean showMinimap; @Getter(AccessLevel.PACKAGE) private int minimapOverlayOpacity; + @Getter(AccessLevel.PACKAGE) + private boolean thinMarkers; @Provides GroundMarkerConfig provideConfig(ConfigManager configManager) @@ -259,7 +261,7 @@ public class GroundMarkerPlugin extends Plugin /** * Rotate the chunk containing the given point to rotation 0 * - * @param point point + * @param point point * @param rotation rotation * @return world point */ @@ -271,7 +273,7 @@ public class GroundMarkerPlugin extends Plugin /** * Rotate the coordinates in the chunk according to chunk rotation * - * @param point point + * @param point point * @param rotation rotation * @return world point */ @@ -509,5 +511,6 @@ public class GroundMarkerPlugin extends Plugin this.markerColor12 = config.markerColor12(); this.showMinimap = config.showMinimap(); this.minimapOverlayOpacity = config.minimapOverlayOpacity(); + this.thinMarkers = config.thinMarkers(); } } \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsConfig.java index 595e0fba78..6b695de731 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsConfig.java @@ -121,4 +121,15 @@ public interface MultiIndicatorsConfig extends Config return Color.WHITE; } + @ConfigItem( + keyName = "thinnerLines", + name = "Thin lines", + description = "Render multi lines, safe zone lines, and wildy level lines as 1 pixel wide instead of 2", + position = 9 + ) + default boolean thinnerLines() + { + return false; + } + } \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsOverlay.java index 74573f97a4..129c63317f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsOverlay.java @@ -64,7 +64,14 @@ public class MultiIndicatorsOverlay extends Overlay private Color getTransparentColorVersion(Color c) { - return new Color(c.getRed(), c.getGreen(), c.getBlue(), 92); + if (plugin.isThinnerLines()) //The thin lines are difficult to see with low opacity, but they are visible and less obtrusive with full opacity + { + return c; + } + else + { + return new Color(c.getRed(), c.getGreen(), c.getBlue(), 92); + } } private void renderPath(Graphics2D graphics, GeneralPath path, Color color) @@ -77,8 +84,14 @@ public class MultiIndicatorsOverlay extends Overlay MAX_LOCAL_DRAW_LENGTH * 2); graphics.setColor(color); - graphics.setStroke(new BasicStroke(2)); - + if (plugin.isThinnerLines()) + { + graphics.setStroke(new BasicStroke(1)); + } + else + { + graphics.setStroke(new BasicStroke(2)); + } path = Geometry.clipPath(path, viewArea); path = Geometry.filterPath(path, (p1, p2) -> Perspective.localToCanvas(client, new LocalPoint((int) p1[0], (int) p1[1]), client.getPlane()) != null && diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsPlugin.java index d93a8a0ec7..298bba7d0f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsPlugin.java @@ -120,6 +120,8 @@ public class MultiIndicatorsPlugin extends Plugin private Color safeZoneColor; @Getter(AccessLevel.PACKAGE) private Color wildernessLevelLinesColor; + @Getter(AccessLevel.PACKAGE) + private boolean thinnerLines; @Provides MultiIndicatorsConfig getConfig(ConfigManager configManager) @@ -407,5 +409,6 @@ public class MultiIndicatorsPlugin extends Plugin this.multicombatColor = config.multicombatColor(); this.safeZoneColor = config.safeZoneColor(); this.wildernessLevelLinesColor = config.wildernessLevelLinesColor(); + this.thinnerLines = config.thinnerLines(); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsConfig.java index 03bea0d0c1..2260883600 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsConfig.java @@ -37,7 +37,8 @@ public interface TileIndicatorsConfig extends Config @ConfigItem( keyName = "highlightDestinationColor", name = "Color of current destination highlighting", - description = "Configures the highlight color of current destination" + description = "Configures the highlight color of current destination", + position = 0 ) default Color highlightDestinationColor() { @@ -47,18 +48,31 @@ public interface TileIndicatorsConfig extends Config @ConfigItem( keyName = "highlightDestinationTile", name = "Highlight destination tile", - description = "Highlights tile player is walking to" + description = "Highlights tile player is walking to", + position = 1 ) default boolean highlightDestinationTile() { return true; } + @ConfigItem( + keyName = "thinDestinationTile", + name = "Thin destination tile", + description = "Renders the tile border as 1 pixel wide instead of 2", + position = 2 + ) + default boolean thinDestinationTile() + { + return false; + } + @Alpha @ConfigItem( keyName = "highlightCurrentColor", name = "Color of current tile highlighting", - description = "Configures the highlight color of current tile position" + description = "Configures the highlight color of current tile position", + position = 3 ) default Color highlightCurrentColor() { @@ -68,18 +82,31 @@ public interface TileIndicatorsConfig extends Config @ConfigItem( keyName = "highlightCurrentTile", name = "Highlight current tile", - description = "Highlights tile player is on" + description = "Highlights tile player is on", + position = 4 ) default boolean highlightCurrentTile() { return false; } + @ConfigItem( + keyName = "thinCurrentTile", + name = "Thin current tile", + description = "Renders the tile border as 1 pixel wide instead of 2", + position = 5 + ) + default boolean thinCurrentTile() + { + return false; + } + @Alpha @ConfigItem( keyName = "highlightHoveredColor", name = "Color of current hovered highlighting", - description = "Configures the highlight color of hovered tile" + description = "Configures the highlight color of hovered tile", + position = 6 ) default Color highlightHoveredColor() { @@ -89,10 +116,22 @@ public interface TileIndicatorsConfig extends Config @ConfigItem( keyName = "highlightHoveredTile", name = "Highlight hovered tile", - description = "Highlights tile player is hovering with mouse" + description = "Highlights tile player is hovering with mouse", + position = 7 ) default boolean highlightHoveredTile() { return false; } + + @ConfigItem( + keyName = "thinHoveredTile", + name = "Thin hovered tile", + description = "Renders the tile border as 1 pixel wide instead of 2", + position = 8 + ) + default boolean thinHoveredTile() + { + return false; + } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsOverlay.java index e701b46390..785cea22dc 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsOverlay.java @@ -63,12 +63,26 @@ public class TileIndicatorsOverlay extends Overlay // If we have tile "selected" render it client.getSelectedSceneTile() != null) { - renderTile(graphics, client.getSelectedSceneTile().getLocalLocation(), plugin.getHighlightHoveredColor()); + if (plugin.isThinHoveredTile()) + { + renderTileThin(graphics, client.getSelectedSceneTile().getLocalLocation(), plugin.getHighlightHoveredColor()); + } + else + { + renderTile(graphics, client.getSelectedSceneTile().getLocalLocation(), plugin.getHighlightHoveredColor()); + } } if (plugin.isHighlightDestinationTile()) { - renderTile(graphics, client.getLocalDestinationLocation(), plugin.getHighlightDestinationColor()); + if (plugin.isThinDestinationTile()) + { + renderTileThin(graphics, client.getLocalDestinationLocation(), plugin.getHighlightDestinationColor()); + } + else + { + renderTile(graphics, client.getLocalDestinationLocation(), plugin.getHighlightDestinationColor()); + } } if (plugin.isHighlightCurrentTile()) @@ -85,7 +99,14 @@ public class TileIndicatorsOverlay extends Overlay return null; } - renderTile(graphics, playerPosLocal, plugin.getHighlightCurrentColor()); + if (plugin.isThinCurrentTile()) + { + renderTileThin(graphics, playerPosLocal, plugin.getHighlightCurrentColor()); + } + else + { + renderTile(graphics, playerPosLocal, plugin.getHighlightCurrentColor()); + } } return null; @@ -107,4 +128,21 @@ public class TileIndicatorsOverlay extends Overlay OverlayUtil.renderPolygon(graphics, poly, color); } + + private void renderTileThin(final Graphics2D graphics, final LocalPoint dest, final Color color) + { + if (dest == null) + { + return; + } + + final Polygon poly = Perspective.getCanvasTilePoly(client, dest); + + if (poly == null) + { + return; + } + + OverlayUtil.renderPolygonThin(graphics, poly, color); + } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsPlugin.java index c10ae5f23d..79276eb09b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsPlugin.java @@ -63,13 +63,19 @@ public class TileIndicatorsPlugin extends Plugin @Getter(AccessLevel.PACKAGE) private boolean highlightDestinationTile; @Getter(AccessLevel.PACKAGE) + private boolean thinDestinationTile; + @Getter(AccessLevel.PACKAGE) private Color highlightCurrentColor; @Getter(AccessLevel.PACKAGE) private boolean highlightCurrentTile; @Getter(AccessLevel.PACKAGE) + private boolean thinCurrentTile; + @Getter(AccessLevel.PACKAGE) private Color highlightHoveredColor; @Getter(AccessLevel.PACKAGE) private boolean highlightHoveredTile; + @Getter(AccessLevel.PACKAGE) + private boolean thinHoveredTile; @Provides TileIndicatorsConfig provideConfig(ConfigManager configManager) @@ -108,9 +114,12 @@ public class TileIndicatorsPlugin extends Plugin { this.highlightDestinationColor = config.highlightDestinationColor(); this.highlightDestinationTile = config.highlightDestinationTile(); + this.thinDestinationTile = config.thinDestinationTile(); this.highlightCurrentColor = config.highlightCurrentColor(); this.highlightCurrentTile = config.highlightCurrentTile(); + this.thinCurrentTile = config.thinCurrentTile(); this.highlightHoveredColor = config.highlightHoveredColor(); this.highlightHoveredTile = config.highlightHoveredTile(); + this.thinHoveredTile = config.thinHoveredTile(); } } diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayUtil.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayUtil.java index 8917b89114..61c95ea785 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayUtil.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayUtil.java @@ -72,6 +72,17 @@ public class OverlayUtil graphics.setStroke(originalStroke); } + public static void renderPolygonThin(Graphics2D graphics, Polygon poly, Color color) + { + graphics.setColor(color); + final Stroke originalStroke = graphics.getStroke(); + graphics.setStroke(new BasicStroke(1)); + graphics.drawPolygon(poly); + graphics.setColor(new Color(0, 0, 0, 50)); + graphics.fillPolygon(poly); + graphics.setStroke(originalStroke); + } + public static void renderMinimapLocation(Graphics2D graphics, Point mini, Color color) { graphics.setColor(Color.BLACK); @@ -286,12 +297,12 @@ public class OverlayUtil public static void renderActorTextAndImage(Graphics2D graphics, Actor actor, String text, Color color, BufferedImage image, int yOffset, int xOffset) { - Point textLocation = actor.getCanvasTextLocation(graphics, text, actor.getLogicalHeight() + yOffset); + Point textLocation = actor.getCanvasTextLocation(graphics, text, actor.getLogicalHeight() + yOffset); if (textLocation != null) { renderImageLocation(graphics, textLocation, image); - textLocation = new Point(textLocation.getX() + xOffset , textLocation.getY()); + textLocation = new Point(textLocation.getX() + xOffset, textLocation.getY()); renderTextLocation(graphics, textLocation, text, color); } }