From dbfd0b107c2abf1966300dfc6dd7f34329fc282c Mon Sep 17 00:00:00 2001 From: hannibal2 <24389977+hannibal00212@users.noreply.github.com> Date: Wed, 19 Jul 2023 17:13:28 +0200 Subject: Show total amount of all rarities at the end of the chat message --- .../at/hannibal2/skyhanni/utils/LorenzUtils.kt | 25 +++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) (limited to 'src/main/java/at/hannibal2/skyhanni/utils') diff --git a/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt index 2c355b402..e58d05fab 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt @@ -371,11 +371,30 @@ object LorenzUtils { fun IslandType.isInIsland() = inIsland(this) - fun MutableMap.addOrPut(item: K, amount: N) { + fun MutableMap.addOrPut(item: K, amount: N): N { val old = this[item] ?: 0 - val d = old.toDouble() + amount.toDouble() + val new = when (old) { + is Double -> old + amount.toDouble() + is Float -> old + amount.toFloat() + is Long -> old + amount.toLong() + else -> old.toInt() + amount.toInt() + } @Suppress("UNCHECKED_CAST") - this[item] = d as N + this[item] = new as N + return new + } + + @Suppress("UNCHECKED_CAST") + fun MutableMap.sumAllValues(): Double { + if (values.isEmpty()) { + return 0.0 + } + return when (values.first()) { + is Double -> values.sumOf { it.toDouble() } + is Float -> values.sumOf { it.toDouble() } + is Long -> values.sumOf { it.toLong() }.toDouble() + else -> values.sumOf { it.toInt() }.toDouble() + } } /** transfer string colors from the config to java.awt.Color */ -- cgit