diff options
| author | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-11-09 18:39:30 +0100 |
|---|---|---|
| committer | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-11-09 18:39:30 +0100 |
| commit | e03ba746fa0ab6258fcd5e6855d1590b0ba6f5c9 (patch) | |
| tree | 2de4b40f7e7466e52e5d1b16eb8a45c3d5f4eabe /src/main/java/at/hannibal2/skyhanni/features/mining | |
| parent | d2d6162ce5830099418e85b69f02b958625ad6a7 (diff) | |
| download | skyhanni-e03ba746fa0ab6258fcd5e6855d1590b0ba6f5c9.tar.gz skyhanni-e03ba746fa0ab6258fcd5e6855d1590b0ba6f5c9.tar.bz2 skyhanni-e03ba746fa0ab6258fcd5e6855d1590b0ba6f5c9.zip | |
SkyHanniTracker now handles the display list as well.
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/mining')
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/mining/powdertracker/PowderTracker.kt | 53 |
1 files changed, 22 insertions, 31 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/mining/powdertracker/PowderTracker.kt b/src/main/java/at/hannibal2/skyhanni/features/mining/powdertracker/PowderTracker.kt index fa2506069..359fb40b9 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/mining/powdertracker/PowderTracker.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/mining/powdertracker/PowderTracker.kt @@ -24,7 +24,6 @@ import kotlin.concurrent.fixedRateTimer object PowderTracker { private val config get() = SkyHanniMod.feature.mining.powderTracker - private var display = emptyList<List<Any>>() private val picked = "§6You have successfully picked the lock on this chest!".toPattern() private val uncovered = "§aYou uncovered a treasure chest!".toPattern() private val powderEvent = ".*§r§b§l2X POWDER STARTED!.*".toPattern() @@ -59,7 +58,8 @@ object PowderTracker { } } - private val tracker = SkyHanniTracker("Powder Tracker", { Data() }, { it.powderTracker }) { saveAndUpdate() } + private val tracker = SkyHanniTracker("Powder Tracker", { Data() }, { it.powderTracker }) + { formatDisplay(drawDisplay(it)) } class Data : TrackerData() { override fun reset() { @@ -80,7 +80,7 @@ object PowderTracker { if (config.onlyWhenPowderGrinding && !isGrinding) return - tracker.renderDisplay(config.position, display) + tracker.renderDisplay(config.position) } @SubscribeEvent @@ -120,7 +120,7 @@ object PowderTracker { } } } - saveAndUpdate() + tracker.update() } @SubscribeEvent @@ -132,7 +132,7 @@ object PowderTracker { powderTimer = group("time") doublePowder = powderTimer != "00:00" - saveAndUpdate() + tracker.update() } } if (System.currentTimeMillis() - lastChestPicked > 60_000) { @@ -142,7 +142,9 @@ object PowderTracker { @SubscribeEvent fun onConfigLoad(event: ConfigLoadEvent) { - config.textFormat.afterChange { saveAndUpdate() } + config.textFormat.afterChange { + tracker.update() + } } @SubscribeEvent @@ -164,7 +166,7 @@ object PowderTracker { chestInfo.stoppedChecks = 0 chestInfo.perMin.clear() doublePowder = false - saveAndUpdate() + tracker.update() } @SubscribeEvent @@ -176,40 +178,32 @@ object PowderTracker { } } - private fun saveAndUpdate() { - calculate(gemstoneInfo, PowderChestReward.GEMSTONE_POWDER) - calculate(mithrilInfo, PowderChestReward.MITHRIL_POWDER) - calculate(diamondEssenceInfo, PowderChestReward.DIAMOND_ESSENCE) - calculate(goldEssenceInfo, PowderChestReward.GOLD_ESSENCE) - calculateChest() - display = formatDisplay(drawDisplay()) - } - private fun formatDisplay(map: List<List<Any>>) = buildList { if (map.isEmpty()) return@buildList for (index in config.textFormat.get()) { add(map[index]) } - - tracker.addSessionResetButton(this) } - private fun drawDisplay() = buildList<List<Any>> { + private fun drawDisplay(data: Data): List<List<Any>> = buildList { + calculate(data, gemstoneInfo, PowderChestReward.GEMSTONE_POWDER) + calculate(data, mithrilInfo, PowderChestReward.MITHRIL_POWDER) + calculate(data, diamondEssenceInfo, PowderChestReward.DIAMOND_ESSENCE) + calculate(data, goldEssenceInfo, PowderChestReward.GOLD_ESSENCE) + calculateChest(data) + addAsSingletonList("§b§lPowder Tracker") - tracker.addDisplayModeToggle(this) if (!tracker.isInventoryOpen()) { addAsSingletonList("") } - val display = tracker.currentDisplay() ?: return@buildList - val chestPerHour = format(chestInfo.perHour) - addAsSingletonList("§d${display.totalChestPicked.addSeparators()} Total Chests Picked §7($chestPerHour/h)") + addAsSingletonList("§d${data.totalChestPicked.addSeparators()} Total Chests Picked §7($chestPerHour/h)") addAsSingletonList("§bDouble Powder: ${if (doublePowder) "§aActive! §7($powderTimer)" else "§cInactive!"}") val entries = PowderChestReward.entries - val rewards = display.rewards + val rewards = data.rewards addPerHour(rewards, entries[0], mithrilInfo) addPerHour(rewards, entries[1], gemstoneInfo) addAsSingletonList("") @@ -296,15 +290,12 @@ object PowderTracker { resourceInfo.stoppedChecks = 0 } - private fun calculate(info: ResourceInfo, reward: PowderChestReward) { - val display = tracker.currentDisplay() ?: return - val rewards = display.rewards - info.estimated = rewards.getOrDefault(reward, 0) + private fun calculate(display: Data, info: ResourceInfo, reward: PowderChestReward) { + info.estimated = display.rewards.getOrDefault(reward, 0) } - private fun calculateChest() { - val display = tracker.currentDisplay() ?: return - chestInfo.estimated = display.totalChestPicked.toLong() + private fun calculateChest(data: Data) { + chestInfo.estimated = data.totalChestPicked.toLong() } private fun convert(roughCount: Long): Gem { |
