From eb098792053145a2e44410b2c60475799d493890 Mon Sep 17 00:00:00 2001 From: Brandt Hill Date: Fri, 13 Mar 2020 19:15:40 -0700 Subject: [PATCH] fishing: Check player animation to update fishing status This commit adds an animation check to the other fishing status checks already present in the fishing overlay (interacting and fishing spot NPC name check) to ensure that the status correctly changes to "NOT fishing" when the player's fishing animation is interrupted by certain actions such as being presented with a level-up dialog. This commit causes one other behavioral change as a side effect, which is that the player's fishing status will be "NOT fishing" while running toward a distant fishing spot until they reach it and start their fishing animation. Fixes runelite/runelite#10900 --- .../java/net/runelite/api/AnimationID.java | 8 ++++++ .../plugins/fishing/FishingOverlay.java | 28 ++++++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/runelite-api/src/main/java/net/runelite/api/AnimationID.java b/runelite-api/src/main/java/net/runelite/api/AnimationID.java index 60aa84382e..b53ff59a2a 100644 --- a/runelite-api/src/main/java/net/runelite/api/AnimationID.java +++ b/runelite-api/src/main/java/net/runelite/api/AnimationID.java @@ -103,6 +103,14 @@ public final class AnimationID public static final int FISHING_CRUSHING_INFERNAL_EELS = 7553; public static final int FISHING_CUTTING_SACRED_EELS = 7151; public static final int FISHING_BAREHAND = 6709; + public static final int FISHING_BAREHAND_WINDUP_1 = 6703; + public static final int FISHING_BAREHAND_WINDUP_2 = 6704; + public static final int FISHING_BAREHAND_CAUGHT_SHARK_1 = 6705; + public static final int FISHING_BAREHAND_CAUGHT_SHARK_2 = 6706; + public static final int FISHING_BAREHAND_CAUGHT_SWORDFISH_1 = 6707; + public static final int FISHING_BAREHAND_CAUGHT_SWORDFISH_2 = 6708; + public static final int FISHING_BAREHAND_CAUGHT_TUNA_1 = 6710; + public static final int FISHING_BAREHAND_CAUGHT_TUNA_2 = 6711; public static final int MINING_BRONZE_PICKAXE = 625; public static final int MINING_IRON_PICKAXE = 626; public static final int MINING_STEEL_PICKAXE = 627; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingOverlay.java index e6cb7bd1e2..96b023f95f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingOverlay.java @@ -27,7 +27,10 @@ package net.runelite.client.plugins.fishing; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics2D; +import java.util.Set; import javax.inject.Inject; +import com.google.common.collect.ImmutableSet; +import net.runelite.api.AnimationID; import net.runelite.api.Client; import net.runelite.api.GraphicID; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY; @@ -47,6 +50,28 @@ class FishingOverlay extends Overlay private static final String FISHING_SPOT = "Fishing spot"; static final String FISHING_RESET = "Reset"; + private static final Set FISHING_ANIMATIONS = ImmutableSet.of( + AnimationID.FISHING_BARBTAIL_HARPOON, + AnimationID.FISHING_BAREHAND, + AnimationID.FISHING_BAREHAND_CAUGHT_SHARK_1, + AnimationID.FISHING_BAREHAND_CAUGHT_SHARK_2, + AnimationID.FISHING_BAREHAND_CAUGHT_SWORDFISH_1, + AnimationID.FISHING_BAREHAND_CAUGHT_SWORDFISH_2, + AnimationID.FISHING_BAREHAND_CAUGHT_TUNA_1, + AnimationID.FISHING_BAREHAND_CAUGHT_TUNA_2, + AnimationID.FISHING_BAREHAND_WINDUP_1, + AnimationID.FISHING_BAREHAND_WINDUP_2, + AnimationID.FISHING_BIG_NET, + AnimationID.FISHING_CAGE, + AnimationID.FISHING_CRYSTAL_HARPOON, + AnimationID.FISHING_DRAGON_HARPOON, + AnimationID.FISHING_HARPOON, + AnimationID.FISHING_INFERNAL_HARPOON, + AnimationID.FISHING_KARAMBWAN, + AnimationID.FISHING_NET, + AnimationID.FISHING_OILY_ROD, + AnimationID.FISHING_POLE_CAST); + private final Client client; private final FishingPlugin plugin; private final FishingConfig config; @@ -78,7 +103,8 @@ class FishingOverlay extends Overlay panelComponent.getChildren().clear(); if (client.getLocalPlayer().getInteracting() != null && client.getLocalPlayer().getInteracting().getName().contains(FISHING_SPOT) - && client.getLocalPlayer().getInteracting().getGraphic() != GraphicID.FLYING_FISH) + && client.getLocalPlayer().getInteracting().getGraphic() != GraphicID.FLYING_FISH + && FISHING_ANIMATIONS.contains(client.getLocalPlayer().getAnimation())) { panelComponent.getChildren().add(TitleComponent.builder() .text("Fishing")