From 01012165269f6bcc9b57418f96cdd38a8dcee14f Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Wed, 12 Sep 2018 00:56:17 +0200 Subject: [PATCH] Add fishing spot display configuration - Add separate config option to display fishing spot tiles - Add separate config option to display fishing spot names - Make config option to display fishing spot icons be independant of fishing spot names Signed-off-by: Tomas Slusny --- .../client/plugins/fishing/FishingConfig.java | 36 ++++++++++++++---- .../plugins/fishing/FishingSpotOverlay.java | 37 +++++++++++++------ 2 files changed, 54 insertions(+), 19 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingConfig.java index 39ad384040..17cb508a12 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingConfig.java @@ -44,17 +44,39 @@ public interface FishingConfig extends Config @ConfigItem( position = 1, - keyName = "showIcons", - name = "Display Fish icons", - description = "Display icons instead of text on fishing spots." + keyName = "showTiles", + name = "Display spot tiles", + description = "Configures whether tiles for fishing spots are highlighted" ) - default boolean showIcons() + default boolean showSpotTiles() { return true; } @ConfigItem( position = 2, + keyName = "showIcons", + name = "Display spot icons", + description = "Configures whether icons for fishing spots are displayed" + ) + default boolean showSpotIcons() + { + return true; + } + + @ConfigItem( + position = 3, + keyName = "showNames", + name = "Display spot names", + description = "Configures whether names for fishing spots are displayed" + ) + default boolean showSpotNames() + { + return false; + } + + @ConfigItem( + position = 4, keyName = "statTimeout", name = "Reset stats (minutes)", description = "The time until fishing session data is reset in minutes." @@ -65,7 +87,7 @@ public interface FishingConfig extends Config } @ConfigItem( - position = 3, + position = 5, keyName = "showFishingStats", name = "Show Fishing session stats", description = "Display the fishing session stats." @@ -76,7 +98,7 @@ public interface FishingConfig extends Config } @ConfigItem( - position = 4, + position = 6, keyName = "showMinnowOverlay", name = "Show Minnow Movement overlay", description = "Display the minnow progress pie overlay." @@ -87,7 +109,7 @@ public interface FishingConfig extends Config } @ConfigItem( - position = 5, + position = 7, keyName = "trawlerNotification", name = "Trawler activity notification", description = "Send a notification when fishing trawler activity drops below 15%." diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingSpotOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingSpotOverlay.java index 595025f23f..caf5620813 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingSpotOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingSpotOverlay.java @@ -27,6 +27,7 @@ package net.runelite.client.plugins.fishing; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics2D; +import java.awt.Polygon; import java.awt.image.BufferedImage; import java.time.Duration; import java.time.Instant; @@ -126,27 +127,39 @@ class FishingSpotOverlay extends Overlay } } - if (config.showIcons()) + if (config.showSpotTiles()) { - BufferedImage fishImage = getFishImage(spot); - if (fishImage != null) + Polygon poly = npc.getCanvasTilePoly(); + if (poly != null) { - OverlayUtil.renderActorOverlayImage(graphics, npc, fishImage, color.darker(), npc.getLogicalHeight()); + OverlayUtil.renderPolygon(graphics, poly, color.darker()); } } - else + + if (config.showSpotIcons()) + { + BufferedImage fishImage = itemManager.getImage(spot.getFishSpriteId());; + if (fishImage != null) + { + Point imageLocation = npc.getCanvasImageLocation(graphics, fishImage, npc.getLogicalHeight()); + if (imageLocation != null) + { + OverlayUtil.renderImageLocation(graphics, imageLocation, fishImage); + } + } + } + + if (config.showSpotNames()) { String text = spot.getName(); - OverlayUtil.renderActorOverlay(graphics, npc, text, color.darker()); + Point textLocation = npc.getCanvasTextLocation(graphics, text, npc.getLogicalHeight() + 40); + if (textLocation != null) + { + OverlayUtil.renderTextLocation(graphics, textLocation, text, color.darker()); + } } } return null; } - - private BufferedImage getFishImage(FishingSpot spot) - { - BufferedImage fishImage = itemManager.getImage(spot.getFishSpriteId()); - return fishImage; - } }