summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features/mining
diff options
context:
space:
mode:
authorhannibal2 <24389977+hannibal00212@users.noreply.github.com>2023-11-09 18:39:30 +0100
committerhannibal2 <24389977+hannibal00212@users.noreply.github.com>2023-11-09 18:39:30 +0100
commite03ba746fa0ab6258fcd5e6855d1590b0ba6f5c9 (patch)
tree2de4b40f7e7466e52e5d1b16eb8a45c3d5f4eabe /src/main/java/at/hannibal2/skyhanni/features/mining
parentd2d6162ce5830099418e85b69f02b958625ad6a7 (diff)
downloadskyhanni-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.kt53
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 {