diff options
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/mining')
2 files changed, 36 insertions, 49 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 655b885e0..ef3f922fb 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.addString +import at.hannibal2.skyhanni.utils.CollectionUtils.addSearchString import at.hannibal2.skyhanni.utils.ItemUtils.itemName import at.hannibal2.skyhanni.utils.LorenzUtils import at.hannibal2.skyhanni.utils.LorenzUtils.isInIsland @@ -19,6 +19,8 @@ import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators import at.hannibal2.skyhanni.utils.NumberUtil.shortFormat import at.hannibal2.skyhanni.utils.StringUtils import at.hannibal2.skyhanni.utils.renderables.Renderable +import at.hannibal2.skyhanni.utils.renderables.Searchable +import at.hannibal2.skyhanni.utils.renderables.toSearchable import at.hannibal2.skyhanni.utils.tracker.ItemTrackerData import at.hannibal2.skyhanni.utils.tracker.SkyHanniItemTracker import com.google.gson.annotations.Expose @@ -73,8 +75,8 @@ object ExcavatorProfitTracker { private val scrapItem get() = FossilExcavatorAPI.scrapItem - private fun drawDisplay(data: Data): List<Renderable> = buildList { - addString("§e§lFossil Excavation Profit Tracker") + private fun drawDisplay(data: Data): List<Searchable> = buildList { + addSearchString("§e§lFossil Excavation Profit Tracker") var profit = tracker.drawItems(data, { true }, this) val timesExcavated = data.timesExcavated @@ -82,7 +84,7 @@ object ExcavatorProfitTracker { Renderable.hoverTips( "§7Times excavated: §e${timesExcavated.addSeparators()}", listOf("§7You excavated §e${timesExcavated.addSeparators()} §7times."), - ), + ).toSearchable(), ) profit = addScrap(timesExcavated, profit) @@ -98,7 +100,7 @@ object ExcavatorProfitTracker { tracker.addPriceFromButton(this) } - private fun MutableList<Renderable>.addFossilDust( + private fun MutableList<Searchable>.addFossilDust( fossilDustGained: Long, profit: Double, ): Double { @@ -116,12 +118,12 @@ object ExcavatorProfitTracker { "", "§7Price Per Fossil Dust: §6${pricePer.shortFormat()}", ), - ), + ).toSearchable("Fossil Dust"), ) return profit + fossilDustPrice } - private fun MutableList<Renderable>.addGlacitePowder(data: Data) { + private fun MutableList<Searchable>.addGlacitePowder(data: Data) { val glacitePowderGained = data.glacitePowderGained if (glacitePowderGained <= 0) return add( @@ -131,11 +133,11 @@ object ExcavatorProfitTracker { "§7No real profit,", "§7but still nice to see! Right?", ), - ), + ).toSearchable("Glacite Powder"), ) } - private fun MutableList<Renderable>.addScrap( + private fun MutableList<Searchable>.addScrap( timesExcavated: Long, profit: Double, ): Double { @@ -151,7 +153,7 @@ object ExcavatorProfitTracker { "§7for all §e$timesExcavated $name", "§7you have used.", ), - ), + ).toSearchable("Scrap"), ) return profit - scrapPrice } 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 a8c81edab..a90b980d9 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 @@ -1,8 +1,6 @@ package at.hannibal2.skyhanni.features.mining.powdertracker import at.hannibal2.skyhanni.SkyHanniMod -import at.hannibal2.skyhanni.api.HotmAPI -import at.hannibal2.skyhanni.api.event.HandleEvent import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.config.features.mining.PowderTrackerConfig.PowderDisplayEntry import at.hannibal2.skyhanni.data.BossbarData @@ -14,10 +12,8 @@ import at.hannibal2.skyhanni.events.IslandChangeEvent import at.hannibal2.skyhanni.events.LorenzChatEvent 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.addOrPut -import at.hannibal2.skyhanni.utils.CollectionUtils.addString +import at.hannibal2.skyhanni.utils.CollectionUtils.addSearchString import at.hannibal2.skyhanni.utils.ConditionalUtils.afterChange import at.hannibal2.skyhanni.utils.ConfigUtils import at.hannibal2.skyhanni.utils.LorenzUtils.isInIsland @@ -27,7 +23,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.renderables.Searchable import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern import at.hannibal2.skyhanni.utils.tracker.SkyHanniTracker import at.hannibal2.skyhanni.utils.tracker.TrackerData @@ -37,7 +33,6 @@ import com.google.gson.annotations.Expose import net.minecraftforge.fml.common.eventhandler.SubscribeEvent import kotlin.time.Duration import kotlin.time.Duration.Companion.minutes -import kotlin.time.Duration.Companion.seconds @SkyHanniModule object PowderTracker { @@ -198,11 +193,13 @@ object PowderTracker { } for (reward in PowderChestReward.entries) { - if (reward == PowderChestReward.MITHRIL_POWDER || reward == PowderChestReward.GEMSTONE_POWDER) return reward.chatPattern.matchMatcher(msg) { tracker.modify { val count = it.rewards[reward] ?: 0 - val amount = groupOrNull("amount")?.formatLong() ?: 1 + var amount = groupOrNull("amount")?.formatLong() ?: 1 + if ((reward == PowderChestReward.MITHRIL_POWDER || reward == PowderChestReward.GEMSTONE_POWDER) && doublePowder) { + amount *= 2 + } it.rewards[reward] = count + amount } } @@ -210,20 +207,6 @@ object PowderTracker { tracker.update() } - @HandleEvent(onlyOnIsland = IslandType.CRYSTAL_HOLLOWS) - fun onPowderGain(event: PowderGainEvent) { - if (lastChestPicked.passedSince() > 5.seconds) return - tracker.modify { - val reward = when (event.powder) { - HotmAPI.PowderType.GEMSTONE -> PowderChestReward.GEMSTONE_POWDER - HotmAPI.PowderType.MITHRIL -> PowderChestReward.MITHRIL_POWDER - else -> return@modify - } - it.rewards.addOrPut(reward, event.amount) - } - tracker.update() - } - @SubscribeEvent fun onConfigLoad(event: ConfigLoadEvent) { config.textFormat.afterChange { @@ -284,10 +267,10 @@ object PowderTracker { } } - private fun formatDisplay(map: List<Renderable>) = buildList<Renderable> { + private fun formatDisplay(map: List<Searchable>) = buildList<Searchable> { if (map.isEmpty()) return@buildList - addString("§b§lPowder Tracker") + addSearchString("§b§lPowder Tracker") for (index in config.textFormat.get()) { // TODO, change functionality to use enum rather than ordinals @@ -295,7 +278,7 @@ object PowderTracker { } } - private fun drawDisplay(data: Data): List<Renderable> = buildList { + private fun drawDisplay(data: Data): List<Searchable> = buildList { calculate(data, gemstoneInfo, PowderChestReward.GEMSTONE_POWDER) calculate(data, mithrilInfo, PowderChestReward.MITHRIL_POWDER) calculate(data, diamondEssenceInfo, PowderChestReward.DIAMOND_ESSENCE) @@ -304,20 +287,20 @@ object PowderTracker { calculateHardStone(data) val chestPerHour = format(chestInfo.perHour) - addString("§d${data.totalChestPicked.addSeparators()} Total Chests Picked §7($chestPerHour/h)") - addString("§bDouble Powder: ${if (doublePowder) "§aActive! §7($powderTimer)" else "§cInactive!"}") + addSearchString("§d${data.totalChestPicked.addSeparators()} Total Chests Picked §7($chestPerHour/h)") + addSearchString("§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) - addString("") + addSearchString("") addPerHour(rewards, entries[46], diamondEssenceInfo) addPerHour(rewards, entries[47], goldEssenceInfo) - addString("") + addSearchString("") val hardStonePerHour = format(hardStoneInfo.perHour) - addString("§b${data.totalHardStoneCompacted.addSeparators()} §fHard Stone §bCompacted §7($hardStonePerHour/h)") - addString("") + addSearchString("§b${data.totalHardStoneCompacted.addSeparators()} §fHard Stone §bCompacted §7($hardStonePerHour/h)", "Hard Stone") + addSearchString("") for ((gem, color) in gemstones) { var totalGemstone = 0L @@ -334,38 +317,40 @@ object PowderTracker { } val (flawless, fine, flawed, rough) = convert(totalGemstone) - addString("§5${flawless}§7-§9${fine}§7-§a${flawed}§f-${rough} $color$gem Gemstone") + addSearchString("§5${flawless}§7-§9${fine}§7-§a${flawed}§f-${rough} $color$gem Gemstone", "Gemstone") } var totalParts = 0L for (reward in entries.subList(26, 32)) { // robots part val count = rewards.getOrDefault(reward, 0) totalParts += count - addString("§b${count.addSeparators()} ${reward.displayName}") + val name = reward.displayName + addSearchString("§b${count.addSeparators()} $name", name) } - addString("§b${totalParts.addSeparators()} §9Total Robot Parts") + addSearchString("§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) - addString("§3$blueEgg§7-§c$redEgg§7-§e$yellowEgg§f-§a$greenEgg§f-§9$goblinEgg §fGoblin Egg") + addSearchString("§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() - addString("§b$count ${reward.displayName}") + val name = reward.displayName + addSearchString("§b$count $name", name) } } - private fun MutableList<Renderable>.addPerHour( + private fun MutableList<Searchable>.addPerHour( map: Map<PowderChestReward, Long>, reward: PowderChestReward, info: ResourceInfo, ) { val mithrilCount = map.getOrDefault(reward, 0).addSeparators() val mithrilPerHour = format(info.perHour) - addString("§b$mithrilCount ${reward.displayName} §7($mithrilPerHour/h)") + addSearchString("§b$mithrilCount ${reward.displayName} §7($mithrilPerHour/h)") } private fun format(e: Double): String = if (e < 0) "0" else e.toInt().addSeparators() |
