summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features/mining
diff options
context:
space:
mode:
authorhannibal2 <24389977+hannibal002@users.noreply.github.com>2024-09-08 13:36:19 +0200
committerGitHub <noreply@github.com>2024-09-08 13:36:19 +0200
commit796ef7ca4139669f15e323c112378125760b5292 (patch)
treef389143acf59ee7a8fd095503c49ddfd16205443 /src/main/java/at/hannibal2/skyhanni/features/mining
parent7519ef5249502f9aa14e350e5e5b8b83eab0e1eb (diff)
downloadskyhanni-796ef7ca4139669f15e323c112378125760b5292.tar.gz
skyhanni-796ef7ca4139669f15e323c112378125760b5292.tar.bz2
skyhanni-796ef7ca4139669f15e323c112378125760b5292.zip
Backend: No List<Any> in Trackers (#2474)
Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com> Co-authored-by: Cal <cwolfson58@gmail.com>
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/mining')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/mining/fossilexcavator/ExcavatorProfitTracker.kt22
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/mining/powdertracker/PowderTracker.kt35
2 files changed, 29 insertions, 28 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/mining/fossilexcavator/ExcavatorProfitTracker.kt b/src/main/java/at/hannibal2/skyhanni/features/mining/fossilexcavator/ExcavatorProfitTracker.kt
index ef3b780b7..655b885e0 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/mining/fossilexcavator/ExcavatorProfitTracker.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/mining/fossilexcavator/ExcavatorProfitTracker.kt
@@ -9,7 +9,7 @@ import at.hannibal2.skyhanni.events.ItemAddEvent
import at.hannibal2.skyhanni.events.mining.FossilExcavationEvent
import at.hannibal2.skyhanni.skyhannimodule.SkyHanniModule
import at.hannibal2.skyhanni.utils.ChatUtils
-import at.hannibal2.skyhanni.utils.CollectionUtils.addAsSingletonList
+import at.hannibal2.skyhanni.utils.CollectionUtils.addString
import at.hannibal2.skyhanni.utils.ItemUtils.itemName
import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.LorenzUtils.isInIsland
@@ -73,12 +73,12 @@ object ExcavatorProfitTracker {
private val scrapItem get() = FossilExcavatorAPI.scrapItem
- private fun drawDisplay(data: Data): List<List<Any>> = buildList {
- addAsSingletonList("§e§lFossil Excavation Profit Tracker")
+ private fun drawDisplay(data: Data): List<Renderable> = buildList {
+ addString("§e§lFossil Excavation Profit Tracker")
var profit = tracker.drawItems(data, { true }, this)
val timesExcavated = data.timesExcavated
- addAsSingletonList(
+ add(
Renderable.hoverTips(
"§7Times excavated: §e${timesExcavated.addSeparators()}",
listOf("§7You excavated §e${timesExcavated.addSeparators()} §7times."),
@@ -93,12 +93,12 @@ object ExcavatorProfitTracker {
addGlacitePowder(data)
}
- addAsSingletonList(tracker.addTotalProfit(profit, data.timesExcavated, "excavation"))
+ add(tracker.addTotalProfit(profit, data.timesExcavated, "excavation"))
tracker.addPriceFromButton(this)
}
- private fun MutableList<List<Any>>.addFossilDust(
+ private fun MutableList<Renderable>.addFossilDust(
fossilDustGained: Long,
profit: Double,
): Double {
@@ -106,7 +106,7 @@ object ExcavatorProfitTracker {
// TODO use same price source as profit tracker
val pricePer = scrapItem.getPrice() / 500
val fossilDustPrice = pricePer * fossilDustGained
- addAsSingletonList(
+ add(
Renderable.hoverTips(
"§7${fossilDustGained.shortFormat()}x §fFossil Dust§7: §6${fossilDustPrice.shortFormat()}",
listOf(
@@ -121,10 +121,10 @@ object ExcavatorProfitTracker {
return profit + fossilDustPrice
}
- private fun MutableList<List<Any>>.addGlacitePowder(data: Data) {
+ private fun MutableList<Renderable>.addGlacitePowder(data: Data) {
val glacitePowderGained = data.glacitePowderGained
if (glacitePowderGained <= 0) return
- addAsSingletonList(
+ add(
Renderable.hoverTips(
"§bGlacite Powder§7: §e${glacitePowderGained.addSeparators()}",
listOf(
@@ -135,7 +135,7 @@ object ExcavatorProfitTracker {
)
}
- private fun MutableList<List<Any>>.addScrap(
+ private fun MutableList<Renderable>.addScrap(
timesExcavated: Long,
profit: Double,
): Double {
@@ -143,7 +143,7 @@ object ExcavatorProfitTracker {
// TODO use same price source as profit tracker
val scrapPrice = timesExcavated * scrapItem.getPrice()
val name = StringUtils.pluralize(timesExcavated.toInt(), scrapItem.itemName)
- addAsSingletonList(
+ add(
Renderable.hoverTips(
"$name §7price: §c-${scrapPrice.shortFormat()}",
listOf(
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 6edcac0a0..a8c81edab 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
@@ -16,8 +16,8 @@ import at.hannibal2.skyhanni.events.LorenzWorldChangeEvent
import at.hannibal2.skyhanni.events.SecondPassedEvent
import at.hannibal2.skyhanni.events.mining.PowderGainEvent
import at.hannibal2.skyhanni.skyhannimodule.SkyHanniModule
-import at.hannibal2.skyhanni.utils.CollectionUtils.addAsSingletonList
import at.hannibal2.skyhanni.utils.CollectionUtils.addOrPut
+import at.hannibal2.skyhanni.utils.CollectionUtils.addString
import at.hannibal2.skyhanni.utils.ConditionalUtils.afterChange
import at.hannibal2.skyhanni.utils.ConfigUtils
import at.hannibal2.skyhanni.utils.LorenzUtils.isInIsland
@@ -27,6 +27,7 @@ import at.hannibal2.skyhanni.utils.RegexUtils.groupOrNull
import at.hannibal2.skyhanni.utils.RegexUtils.matchMatcher
import at.hannibal2.skyhanni.utils.SimpleTimeMark
import at.hannibal2.skyhanni.utils.TimeUtils
+import at.hannibal2.skyhanni.utils.renderables.Renderable
import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern
import at.hannibal2.skyhanni.utils.tracker.SkyHanniTracker
import at.hannibal2.skyhanni.utils.tracker.TrackerData
@@ -283,10 +284,10 @@ object PowderTracker {
}
}
- private fun formatDisplay(map: List<List<Any>>) = buildList<List<Any>> {
+ private fun formatDisplay(map: List<Renderable>) = buildList<Renderable> {
if (map.isEmpty()) return@buildList
- addAsSingletonList("§b§lPowder Tracker")
+ addString("§b§lPowder Tracker")
for (index in config.textFormat.get()) {
// TODO, change functionality to use enum rather than ordinals
@@ -294,7 +295,7 @@ object PowderTracker {
}
}
- private fun drawDisplay(data: Data): List<List<Any>> = buildList {
+ private fun drawDisplay(data: Data): List<Renderable> = buildList {
calculate(data, gemstoneInfo, PowderChestReward.GEMSTONE_POWDER)
calculate(data, mithrilInfo, PowderChestReward.MITHRIL_POWDER)
calculate(data, diamondEssenceInfo, PowderChestReward.DIAMOND_ESSENCE)
@@ -303,20 +304,20 @@ object PowderTracker {
calculateHardStone(data)
val chestPerHour = format(chestInfo.perHour)
- addAsSingletonList("§d${data.totalChestPicked.addSeparators()} Total Chests Picked §7($chestPerHour/h)")
- addAsSingletonList("§bDouble Powder: ${if (doublePowder) "§aActive! §7($powderTimer)" else "§cInactive!"}")
+ addString("§d${data.totalChestPicked.addSeparators()} Total Chests Picked §7($chestPerHour/h)")
+ addString("§bDouble Powder: ${if (doublePowder) "§aActive! §7($powderTimer)" else "§cInactive!"}")
val entries = PowderChestReward.entries
val rewards = data.rewards
addPerHour(rewards, entries[0], mithrilInfo)
addPerHour(rewards, entries[1], gemstoneInfo)
- addAsSingletonList("")
+ addString("")
addPerHour(rewards, entries[46], diamondEssenceInfo)
addPerHour(rewards, entries[47], goldEssenceInfo)
- addAsSingletonList("")
+ addString("")
val hardStonePerHour = format(hardStoneInfo.perHour)
- addAsSingletonList("§b${data.totalHardStoneCompacted.addSeparators()} §fHard Stone §bCompacted §7($hardStonePerHour/h)")
- addAsSingletonList("")
+ addString("§b${data.totalHardStoneCompacted.addSeparators()} §fHard Stone §bCompacted §7($hardStonePerHour/h)")
+ addString("")
for ((gem, color) in gemstones) {
var totalGemstone = 0L
@@ -333,38 +334,38 @@ object PowderTracker {
}
val (flawless, fine, flawed, rough) = convert(totalGemstone)
- addAsSingletonList("§5${flawless}§7-§9${fine}§7-§a${flawed}§f-${rough} $color$gem Gemstone")
+ addString("§5${flawless}§7-§9${fine}§7-§a${flawed}§f-${rough} $color$gem Gemstone")
}
var totalParts = 0L
for (reward in entries.subList(26, 32)) { // robots part
val count = rewards.getOrDefault(reward, 0)
totalParts += count
- addAsSingletonList("§b${count.addSeparators()} ${reward.displayName}")
+ addString("§b${count.addSeparators()} ${reward.displayName}")
}
- addAsSingletonList("§b${totalParts.addSeparators()} §9Total Robot Parts")
+ addString("§b${totalParts.addSeparators()} §9Total Robot Parts")
val goblinEgg = rewards.getOrDefault(PowderChestReward.GOBLIN_EGG, 0)
val greenEgg = rewards.getOrDefault(PowderChestReward.GREEN_GOBLIN_EGG, 0)
val redEgg = rewards.getOrDefault(PowderChestReward.RED_GOBLIN_EGG, 0)
val yellowEgg = rewards.getOrDefault(PowderChestReward.YELLOW_GOBLIN_EGG, 0)
val blueEgg = rewards.getOrDefault(PowderChestReward.BLUE_GOBLIN_EGG, 0)
- addAsSingletonList("§3$blueEgg§7-§c$redEgg§7-§e$yellowEgg§f-§a$greenEgg§f-§9$goblinEgg §fGoblin Egg")
+ addString("§3$blueEgg§7-§c$redEgg§7-§e$yellowEgg§f-§a$greenEgg§f-§9$goblinEgg §fGoblin Egg")
for (reward in entries.subList(37, 46)) {
val count = rewards.getOrDefault(reward, 0).addSeparators()
- addAsSingletonList("§b$count ${reward.displayName}")
+ addString("§b$count ${reward.displayName}")
}
}
- private fun MutableList<List<Any>>.addPerHour(
+ private fun MutableList<Renderable>.addPerHour(
map: Map<PowderChestReward, Long>,
reward: PowderChestReward,
info: ResourceInfo,
) {
val mithrilCount = map.getOrDefault(reward, 0).addSeparators()
val mithrilPerHour = format(info.perHour)
- addAsSingletonList("§b$mithrilCount ${reward.displayName} §7($mithrilPerHour/h)")
+ addString("§b$mithrilCount ${reward.displayName} §7($mithrilPerHour/h)")
}
private fun format(e: Double): String = if (e < 0) "0" else e.toInt().addSeparators()