From c802f7cae7533d193a3008c3520c3a813b839cbe Mon Sep 17 00:00:00 2001 From: hannibal2 <24389977+hannibal00212@users.noreply.github.com> Date: Tue, 28 Nov 2023 01:33:30 +0100 Subject: Show the fishing tracker for couple seconds after catching something even while moving. --- .../features/fishing/FishingProfitTrackerConfig.java | 5 +++++ .../features/fishing/tracker/FishingProfitTracker.kt | 19 +++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/fishing/FishingProfitTrackerConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/fishing/FishingProfitTrackerConfig.java index 5c6e9b580..8297c3b3b 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/features/fishing/FishingProfitTrackerConfig.java +++ b/src/main/java/at/hannibal2/skyhanni/config/features/fishing/FishingProfitTrackerConfig.java @@ -21,4 +21,9 @@ public class FishingProfitTrackerConfig { @ConfigOption(name = "Hide Moving", desc = "Hide the Fishing Profit Tracker while moving.") @ConfigEditorBoolean public boolean hideMoving = true; + + @Expose + @ConfigOption(name = "Show When Pickup", desc = "Show the fishing tracker for couple seconds after catching something even while moving.") + @ConfigEditorBoolean + public boolean showWhenPickup = true; } diff --git a/src/main/java/at/hannibal2/skyhanni/features/fishing/tracker/FishingProfitTracker.kt b/src/main/java/at/hannibal2/skyhanni/features/fishing/tracker/FishingProfitTracker.kt index e6f2a9a92..8d3da8564 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/fishing/tracker/FishingProfitTracker.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/fishing/tracker/FishingProfitTracker.kt @@ -5,6 +5,7 @@ import at.hannibal2.skyhanni.events.FishingBobberCastEvent import at.hannibal2.skyhanni.events.GuiRenderEvent import at.hannibal2.skyhanni.events.ItemAddEvent import at.hannibal2.skyhanni.events.LorenzChatEvent +import at.hannibal2.skyhanni.events.LorenzWorldChangeEvent import at.hannibal2.skyhanni.features.fishing.FishingAPI import at.hannibal2.skyhanni.utils.DelayedRun import at.hannibal2.skyhanni.utils.LorenzUtils @@ -15,6 +16,7 @@ import at.hannibal2.skyhanni.utils.NEUInternalName.Companion.asInternalName import at.hannibal2.skyhanni.utils.NumberUtil import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators import at.hannibal2.skyhanni.utils.NumberUtil.formatNumber +import at.hannibal2.skyhanni.utils.SimpleTimeMark import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher import at.hannibal2.skyhanni.utils.renderables.Renderable import at.hannibal2.skyhanni.utils.tracker.ItemTrackerData @@ -24,6 +26,7 @@ import com.google.gson.annotations.Expose import net.minecraftforge.fml.common.eventhandler.SubscribeEvent import kotlin.time.Duration.Companion.milliseconds import kotlin.time.Duration.Companion.minutes +import kotlin.time.Duration.Companion.seconds typealias CategoryName = String @@ -32,6 +35,7 @@ object FishingProfitTracker { private val coinsChatPattern = ".* CATCH! §r§bYou found §r§6(?.*) Coins§r§b\\.".toPattern() + private var lastCatchTime = SimpleTimeMark.farPast() private val tracker = SkyHanniItemTracker( "Fishing Profit Tracker", { Data() }, @@ -169,17 +173,28 @@ object FishingProfitTracker { tracker.modify { it.totalCatchAmount++ } + lastCatchTime = SimpleTimeMark.now() } @SubscribeEvent fun onRenderOverlay(event: GuiRenderEvent) { if (!isEnabled()) return - if (!FishingAPI.hasFishingRodInHand()) return - if (FishingProfitPlayerMoving.isMoving && config.hideMoving) return + + val recentPickup = config.showWhenPickup && lastCatchTime.passedSince() < 3.seconds + if (!recentPickup) { + if (!FishingAPI.hasFishingRodInHand()) return + // TODO remove hide moving chech, replace with last cast location + radius + if (FishingProfitPlayerMoving.isMoving && config.hideMoving) return + } tracker.renderDisplay(config.position) } + @SubscribeEvent + fun onWorldChange(event: LorenzWorldChangeEvent) { + lastCatchTime = SimpleTimeMark.farPast() + } + private fun maybeAddItem(internalName: NEUInternalName, amount: Int) { if (FishingAPI.lastActiveFishingTime.passedSince() > 10.minutes) return -- cgit