From 6059c784c08d7ba140f6a0b161414c17c48a8bde Mon Sep 17 00:00:00 2001 From: Twiglet1022 <29353990+Twiglet1022@users.noreply.github.com> Date: Fri, 7 Jun 2019 19:57:49 +0100 Subject: [PATCH 1/2] mining plugin: remove progress pie from mlm veins that respawn early --- .../client/plugins/mining/MiningPlugin.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/mining/MiningPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/mining/MiningPlugin.java index cd2feb16cc..4bc5232701 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/mining/MiningPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/mining/MiningPlugin.java @@ -39,7 +39,12 @@ import static net.runelite.api.ObjectID.DEPLETED_VEIN_26666; import static net.runelite.api.ObjectID.DEPLETED_VEIN_26667; import static net.runelite.api.ObjectID.DEPLETED_VEIN_26668; import static net.runelite.api.ObjectID.EMPTY_WALL; +import static net.runelite.api.ObjectID.ORE_VEIN_26661; +import static net.runelite.api.ObjectID.ORE_VEIN_26662; +import static net.runelite.api.ObjectID.ORE_VEIN_26663; +import static net.runelite.api.ObjectID.ORE_VEIN_26664; import net.runelite.api.WallObject; +import net.runelite.api.coords.WorldPoint; import net.runelite.api.events.GameObjectDespawned; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; @@ -158,6 +163,15 @@ public class MiningPlugin extends Plugin respawns.add(rockRespawn); break; } + case ORE_VEIN_26661: // Motherlode vein + case ORE_VEIN_26662: // Motherlode vein + case ORE_VEIN_26663: // Motherlode vein + case ORE_VEIN_26664: // Motherlode vein + { + final WorldPoint point = object.getWorldLocation(); + respawns.removeIf(rockRespawn -> rockRespawn.getWorldPoint().equals(point)); + break; + } } } From 2d12fbe5f4a80909506d24c2538113d4d5e5812d Mon Sep 17 00:00:00 2001 From: Twiglet1022 <29353990+Twiglet1022@users.noreply.github.com> Date: Wed, 5 Jun 2019 21:10:05 +0100 Subject: [PATCH 2/2] mining plugin: recolour pie in MLM during random segment of timer --- .../client/plugins/mining/MiningOverlay.java | 22 +++++++++++++++++-- .../runelite/client/plugins/mining/Rock.java | 2 +- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/mining/MiningOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/mining/MiningOverlay.java index 3c9ab79234..87e4e8a897 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/mining/MiningOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/mining/MiningOverlay.java @@ -31,6 +31,8 @@ import java.time.Instant; import java.util.Iterator; import java.util.List; import javax.inject.Inject; +import lombok.AccessLevel; +import lombok.Getter; import net.runelite.api.Client; import net.runelite.api.Perspective; import net.runelite.api.Point; @@ -43,6 +45,13 @@ import net.runelite.client.ui.overlay.components.ProgressPieComponent; class MiningOverlay extends Overlay { + // Range of Motherlode vein respawn time not 100% confirmed but based on observation + @Getter(AccessLevel.PACKAGE) + private static final int ORE_VEIN_MAX_RESPAWN_TIME = 123; + private static final int ORE_VEIN_MIN_RESPAWN_TIME = 90; + private static final float ORE_VEIN_RANDOM_PERCENT_THRESHOLD = (float) ORE_VEIN_MIN_RESPAWN_TIME / ORE_VEIN_MAX_RESPAWN_TIME; + private static final Color DARK_GREEN = new Color(0, 100, 0); + private final Client client; private final MiningPlugin plugin; @@ -67,6 +76,8 @@ class MiningOverlay extends Overlay Instant now = Instant.now(); for (Iterator it = respawns.iterator(); it.hasNext();) { + Color pieFillColor = Color.YELLOW; + Color pieBorderColor = Color.ORANGE; RockRespawn rockRespawn = it.next(); float percent = (now.toEpochMilli() - rockRespawn.getStartTime().toEpochMilli()) / (float) rockRespawn.getRespawnTime(); WorldPoint worldPoint = rockRespawn.getWorldPoint(); @@ -84,9 +95,16 @@ class MiningOverlay extends Overlay continue; } + // Recolour pie on motherlode veins during the portion of the timer where they may respawn + if (rockRespawn.getRock() == Rock.ORE_VEIN && percent > ORE_VEIN_RANDOM_PERCENT_THRESHOLD) + { + pieFillColor = Color.GREEN; + pieBorderColor = DARK_GREEN; + } + ProgressPieComponent ppc = new ProgressPieComponent(); - ppc.setBorderColor(Color.ORANGE); - ppc.setFill(Color.YELLOW); + ppc.setBorderColor(pieBorderColor); + ppc.setFill(pieFillColor); ppc.setPosition(point); ppc.setProgress(percent); ppc.render(graphics); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/mining/Rock.java b/runelite-client/src/main/java/net/runelite/client/plugins/mining/Rock.java index 45480e9669..293ad72c21 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/mining/Rock.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/mining/Rock.java @@ -96,7 +96,7 @@ enum Rock return inMiningGuild ? Duration.ofMinutes(6) : super.respawnTime; } }, - ORE_VEIN(Duration.ofSeconds(108), 150), + ORE_VEIN(Duration.ofSeconds(MiningOverlay.getORE_VEIN_MAX_RESPAWN_TIME()), 150), AMETHYST(Duration.ofSeconds(75), 120); private static final Map ROCKS;