diff options
author | Thunderblade73 <85900443+Thunderblade73@users.noreply.github.com> | 2024-03-05 01:41:53 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-05 01:41:53 +0100 |
commit | 775b803a1f509d65235e82d75354f4e6596c5b3d (patch) | |
tree | 61a2b4464aae81ce55bae4805a72d3403a7f7e9f /src/main/java/at/hannibal2/skyhanni/utils | |
parent | a8fe4fcd86b0abd646b719134f5606908cd516af (diff) | |
download | skyhanni-775b803a1f509d65235e82d75354f4e6596c5b3d.tar.gz skyhanni-775b803a1f509d65235e82d75354f4e6596c5b3d.tar.bz2 skyhanni-775b803a1f509d65235e82d75354f4e6596c5b3d.zip |
Change: Add Goal to CollectionTracker (#1102)
Co-authored-by: Cal <cwolfson58@gmail.com>
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/utils')
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/utils/NumberUtil.kt | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/NumberUtil.kt b/src/main/java/at/hannibal2/skyhanni/utils/NumberUtil.kt index c4dea1046..92cbe4d57 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/NumberUtil.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/NumberUtil.kt @@ -1,5 +1,7 @@ package at.hannibal2.skyhanni.utils +import at.hannibal2.skyhanni.utils.LorenzUtils.round +import at.hannibal2.skyhanni.utils.StringUtils.matches import java.text.NumberFormat import java.util.Locale import java.util.TreeMap @@ -171,20 +173,31 @@ object NumberUtil { } val pattern = "^[0-9]*$".toPattern() + val formatPattern = "^[0-9,.]*[kmb]?$".toPattern() fun String.isInt(): Boolean { return isNotEmpty() && pattern.matcher(this).matches() } - fun percentageColor(have: Long, max: Long): LorenzColor { - val percentage = have.fractionOf(max) - return when { - percentage > 0.9 -> LorenzColor.DARK_GREEN - percentage > 0.75 -> LorenzColor.GREEN - percentage > 0.5 -> LorenzColor.YELLOW - percentage > 0.25 -> LorenzColor.GOLD - else -> LorenzColor.RED - } + fun String.isFormatNumber(): Boolean { + return isNotEmpty() && formatPattern.matches(this) + } + + fun percentageColor(percentage: Double) = when { + percentage > 0.9 -> LorenzColor.DARK_GREEN + percentage > 0.75 -> LorenzColor.GREEN + percentage > 0.5 -> LorenzColor.YELLOW + percentage > 0.25 -> LorenzColor.GOLD + else -> LorenzColor.RED + } + + fun percentageColor(have: Long, max: Long): LorenzColor = percentageColor(have.fractionOf(max)) + + fun Number.percentWithColorCode(max: Number, round: Int = 1): String { + val fraction = this.fractionOf(max) + val color = percentageColor(fraction) + val amount = (fraction * 100.0).round(round) + return "${color.getChatColor()}$amount%" } // TODO create new function formatLong, and eventually deprecate this function. |