Thin bois (#1638)
This commit is contained in:
@@ -283,4 +283,15 @@ public interface GroundMarkerConfig extends Config
|
|||||||
{
|
{
|
||||||
return 100;
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -126,6 +126,13 @@ public class GroundMarkerOverlay extends Overlay
|
|||||||
case 12:
|
case 12:
|
||||||
color = plugin.getMarkerColor12();
|
color = plugin.getMarkerColor12();
|
||||||
}
|
}
|
||||||
OverlayUtil.renderPolygon(graphics, poly, color);
|
if (plugin.isThinMarkers())
|
||||||
|
{
|
||||||
|
OverlayUtil.renderPolygonThin(graphics, poly, color);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
OverlayUtil.renderPolygon(graphics, poly, color);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -173,6 +173,8 @@ public class GroundMarkerPlugin extends Plugin
|
|||||||
private boolean showMinimap;
|
private boolean showMinimap;
|
||||||
@Getter(AccessLevel.PACKAGE)
|
@Getter(AccessLevel.PACKAGE)
|
||||||
private int minimapOverlayOpacity;
|
private int minimapOverlayOpacity;
|
||||||
|
@Getter(AccessLevel.PACKAGE)
|
||||||
|
private boolean thinMarkers;
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
GroundMarkerConfig provideConfig(ConfigManager configManager)
|
GroundMarkerConfig provideConfig(ConfigManager configManager)
|
||||||
@@ -259,7 +261,7 @@ public class GroundMarkerPlugin extends Plugin
|
|||||||
/**
|
/**
|
||||||
* Rotate the chunk containing the given point to rotation 0
|
* Rotate the chunk containing the given point to rotation 0
|
||||||
*
|
*
|
||||||
* @param point point
|
* @param point point
|
||||||
* @param rotation rotation
|
* @param rotation rotation
|
||||||
* @return world point
|
* @return world point
|
||||||
*/
|
*/
|
||||||
@@ -271,7 +273,7 @@ public class GroundMarkerPlugin extends Plugin
|
|||||||
/**
|
/**
|
||||||
* Rotate the coordinates in the chunk according to chunk rotation
|
* Rotate the coordinates in the chunk according to chunk rotation
|
||||||
*
|
*
|
||||||
* @param point point
|
* @param point point
|
||||||
* @param rotation rotation
|
* @param rotation rotation
|
||||||
* @return world point
|
* @return world point
|
||||||
*/
|
*/
|
||||||
@@ -509,5 +511,6 @@ public class GroundMarkerPlugin extends Plugin
|
|||||||
this.markerColor12 = config.markerColor12();
|
this.markerColor12 = config.markerColor12();
|
||||||
this.showMinimap = config.showMinimap();
|
this.showMinimap = config.showMinimap();
|
||||||
this.minimapOverlayOpacity = config.minimapOverlayOpacity();
|
this.minimapOverlayOpacity = config.minimapOverlayOpacity();
|
||||||
|
this.thinMarkers = config.thinMarkers();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -121,4 +121,15 @@ public interface MultiIndicatorsConfig extends Config
|
|||||||
return Color.WHITE;
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -64,7 +64,14 @@ public class MultiIndicatorsOverlay extends Overlay
|
|||||||
|
|
||||||
private Color getTransparentColorVersion(Color c)
|
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)
|
private void renderPath(Graphics2D graphics, GeneralPath path, Color color)
|
||||||
@@ -77,8 +84,14 @@ public class MultiIndicatorsOverlay extends Overlay
|
|||||||
MAX_LOCAL_DRAW_LENGTH * 2);
|
MAX_LOCAL_DRAW_LENGTH * 2);
|
||||||
|
|
||||||
graphics.setColor(color);
|
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.clipPath(path, viewArea);
|
||||||
path = Geometry.filterPath(path, (p1, p2) ->
|
path = Geometry.filterPath(path, (p1, p2) ->
|
||||||
Perspective.localToCanvas(client, new LocalPoint((int) p1[0], (int) p1[1]), client.getPlane()) != null &&
|
Perspective.localToCanvas(client, new LocalPoint((int) p1[0], (int) p1[1]), client.getPlane()) != null &&
|
||||||
|
|||||||
@@ -120,6 +120,8 @@ public class MultiIndicatorsPlugin extends Plugin
|
|||||||
private Color safeZoneColor;
|
private Color safeZoneColor;
|
||||||
@Getter(AccessLevel.PACKAGE)
|
@Getter(AccessLevel.PACKAGE)
|
||||||
private Color wildernessLevelLinesColor;
|
private Color wildernessLevelLinesColor;
|
||||||
|
@Getter(AccessLevel.PACKAGE)
|
||||||
|
private boolean thinnerLines;
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
MultiIndicatorsConfig getConfig(ConfigManager configManager)
|
MultiIndicatorsConfig getConfig(ConfigManager configManager)
|
||||||
@@ -407,5 +409,6 @@ public class MultiIndicatorsPlugin extends Plugin
|
|||||||
this.multicombatColor = config.multicombatColor();
|
this.multicombatColor = config.multicombatColor();
|
||||||
this.safeZoneColor = config.safeZoneColor();
|
this.safeZoneColor = config.safeZoneColor();
|
||||||
this.wildernessLevelLinesColor = config.wildernessLevelLinesColor();
|
this.wildernessLevelLinesColor = config.wildernessLevelLinesColor();
|
||||||
|
this.thinnerLines = config.thinnerLines();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,8 @@ public interface TileIndicatorsConfig extends Config
|
|||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
keyName = "highlightDestinationColor",
|
keyName = "highlightDestinationColor",
|
||||||
name = "Color of current destination highlighting",
|
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()
|
default Color highlightDestinationColor()
|
||||||
{
|
{
|
||||||
@@ -47,18 +48,31 @@ public interface TileIndicatorsConfig extends Config
|
|||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
keyName = "highlightDestinationTile",
|
keyName = "highlightDestinationTile",
|
||||||
name = "Highlight destination tile",
|
name = "Highlight destination tile",
|
||||||
description = "Highlights tile player is walking to"
|
description = "Highlights tile player is walking to",
|
||||||
|
position = 1
|
||||||
)
|
)
|
||||||
default boolean highlightDestinationTile()
|
default boolean highlightDestinationTile()
|
||||||
{
|
{
|
||||||
return true;
|
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
|
@Alpha
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
keyName = "highlightCurrentColor",
|
keyName = "highlightCurrentColor",
|
||||||
name = "Color of current tile highlighting",
|
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()
|
default Color highlightCurrentColor()
|
||||||
{
|
{
|
||||||
@@ -68,18 +82,31 @@ public interface TileIndicatorsConfig extends Config
|
|||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
keyName = "highlightCurrentTile",
|
keyName = "highlightCurrentTile",
|
||||||
name = "Highlight current tile",
|
name = "Highlight current tile",
|
||||||
description = "Highlights tile player is on"
|
description = "Highlights tile player is on",
|
||||||
|
position = 4
|
||||||
)
|
)
|
||||||
default boolean highlightCurrentTile()
|
default boolean highlightCurrentTile()
|
||||||
{
|
{
|
||||||
return false;
|
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
|
@Alpha
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
keyName = "highlightHoveredColor",
|
keyName = "highlightHoveredColor",
|
||||||
name = "Color of current hovered highlighting",
|
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()
|
default Color highlightHoveredColor()
|
||||||
{
|
{
|
||||||
@@ -89,10 +116,22 @@ public interface TileIndicatorsConfig extends Config
|
|||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
keyName = "highlightHoveredTile",
|
keyName = "highlightHoveredTile",
|
||||||
name = "Highlight hovered tile",
|
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()
|
default boolean highlightHoveredTile()
|
||||||
{
|
{
|
||||||
return false;
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,12 +63,26 @@ public class TileIndicatorsOverlay extends Overlay
|
|||||||
// If we have tile "selected" render it
|
// If we have tile "selected" render it
|
||||||
client.getSelectedSceneTile() != null)
|
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())
|
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())
|
if (plugin.isHighlightCurrentTile())
|
||||||
@@ -85,7 +99,14 @@ public class TileIndicatorsOverlay extends Overlay
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
renderTile(graphics, playerPosLocal, plugin.getHighlightCurrentColor());
|
if (plugin.isThinCurrentTile())
|
||||||
|
{
|
||||||
|
renderTileThin(graphics, playerPosLocal, plugin.getHighlightCurrentColor());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
renderTile(graphics, playerPosLocal, plugin.getHighlightCurrentColor());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
@@ -107,4 +128,21 @@ public class TileIndicatorsOverlay extends Overlay
|
|||||||
|
|
||||||
OverlayUtil.renderPolygon(graphics, poly, color);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,13 +63,19 @@ public class TileIndicatorsPlugin extends Plugin
|
|||||||
@Getter(AccessLevel.PACKAGE)
|
@Getter(AccessLevel.PACKAGE)
|
||||||
private boolean highlightDestinationTile;
|
private boolean highlightDestinationTile;
|
||||||
@Getter(AccessLevel.PACKAGE)
|
@Getter(AccessLevel.PACKAGE)
|
||||||
|
private boolean thinDestinationTile;
|
||||||
|
@Getter(AccessLevel.PACKAGE)
|
||||||
private Color highlightCurrentColor;
|
private Color highlightCurrentColor;
|
||||||
@Getter(AccessLevel.PACKAGE)
|
@Getter(AccessLevel.PACKAGE)
|
||||||
private boolean highlightCurrentTile;
|
private boolean highlightCurrentTile;
|
||||||
@Getter(AccessLevel.PACKAGE)
|
@Getter(AccessLevel.PACKAGE)
|
||||||
|
private boolean thinCurrentTile;
|
||||||
|
@Getter(AccessLevel.PACKAGE)
|
||||||
private Color highlightHoveredColor;
|
private Color highlightHoveredColor;
|
||||||
@Getter(AccessLevel.PACKAGE)
|
@Getter(AccessLevel.PACKAGE)
|
||||||
private boolean highlightHoveredTile;
|
private boolean highlightHoveredTile;
|
||||||
|
@Getter(AccessLevel.PACKAGE)
|
||||||
|
private boolean thinHoveredTile;
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
TileIndicatorsConfig provideConfig(ConfigManager configManager)
|
TileIndicatorsConfig provideConfig(ConfigManager configManager)
|
||||||
@@ -108,9 +114,12 @@ public class TileIndicatorsPlugin extends Plugin
|
|||||||
{
|
{
|
||||||
this.highlightDestinationColor = config.highlightDestinationColor();
|
this.highlightDestinationColor = config.highlightDestinationColor();
|
||||||
this.highlightDestinationTile = config.highlightDestinationTile();
|
this.highlightDestinationTile = config.highlightDestinationTile();
|
||||||
|
this.thinDestinationTile = config.thinDestinationTile();
|
||||||
this.highlightCurrentColor = config.highlightCurrentColor();
|
this.highlightCurrentColor = config.highlightCurrentColor();
|
||||||
this.highlightCurrentTile = config.highlightCurrentTile();
|
this.highlightCurrentTile = config.highlightCurrentTile();
|
||||||
|
this.thinCurrentTile = config.thinCurrentTile();
|
||||||
this.highlightHoveredColor = config.highlightHoveredColor();
|
this.highlightHoveredColor = config.highlightHoveredColor();
|
||||||
this.highlightHoveredTile = config.highlightHoveredTile();
|
this.highlightHoveredTile = config.highlightHoveredTile();
|
||||||
|
this.thinHoveredTile = config.thinHoveredTile();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,6 +72,17 @@ public class OverlayUtil
|
|||||||
graphics.setStroke(originalStroke);
|
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)
|
public static void renderMinimapLocation(Graphics2D graphics, Point mini, Color color)
|
||||||
{
|
{
|
||||||
graphics.setColor(Color.BLACK);
|
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)
|
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)
|
if (textLocation != null)
|
||||||
{
|
{
|
||||||
renderImageLocation(graphics, textLocation, image);
|
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);
|
renderTextLocation(graphics, textLocation, text, color);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user