aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornea <nea@nea.moe>2023-06-02 02:42:42 +0200
committernea <nea@nea.moe>2023-06-02 02:42:42 +0200
commitadd5eb6a4a1c8228e789f90ca100fc92f12baaea (patch)
treef77bc531e40208efa79b32e5b5d8c28d076aa31f
parent3d76538cef0cb150415ef5db734c80fb0dec7e85 (diff)
downloadfirmament-add5eb6a4a1c8228e789f90ca100fc92f12baaea.tar.gz
firmament-add5eb6a4a1c8228e789f90ca100fc92f12baaea.tar.bz2
firmament-add5eb6a4a1c8228e789f90ca100fc92f12baaea.zip
Improve floating point number formatting
-rw-r--r--src/main/kotlin/moe/nea/firmament/commands/rome.kt22
-rw-r--r--src/main/kotlin/moe/nea/firmament/gui/profileviewer/SkillPage.kt3
-rw-r--r--src/main/kotlin/moe/nea/firmament/util/FirmFormatters.kt15
-rw-r--r--src/main/resources/assets/firmament/lang/en_us.json8
4 files changed, 30 insertions, 18 deletions
diff --git a/src/main/kotlin/moe/nea/firmament/commands/rome.kt b/src/main/kotlin/moe/nea/firmament/commands/rome.kt
index 2d70df0..9c47fd2 100644
--- a/src/main/kotlin/moe/nea/firmament/commands/rome.kt
+++ b/src/main/kotlin/moe/nea/firmament/commands/rome.kt
@@ -21,25 +21,16 @@ package moe.nea.firmament.commands
import com.mojang.brigadier.CommandDispatcher
import com.mojang.brigadier.arguments.StringArgumentType.getString
import com.mojang.brigadier.arguments.StringArgumentType.string
-import io.github.cottonmc.cotton.gui.client.CottonClientScreen
-import io.ktor.client.call.body
-import io.ktor.client.request.get
-import io.ktor.client.request.parameter
-import io.ktor.http.URLProtocol
-import io.ktor.http.path
import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource
-import kotlinx.coroutines.launch
import net.minecraft.text.Text
-import moe.nea.firmament.Firmament
-import moe.nea.firmament.apis.Profiles
import moe.nea.firmament.features.world.FairySouls
import moe.nea.firmament.gui.config.AllConfigsGui
import moe.nea.firmament.gui.profileviewer.ProfileViewer
import moe.nea.firmament.repo.ItemCostData
import moe.nea.firmament.repo.RepoManager
+import moe.nea.firmament.util.FirmFormatters
import moe.nea.firmament.util.MC
import moe.nea.firmament.util.SBData
-import moe.nea.firmament.util.ScreenUtil
import moe.nea.firmament.util.SkyblockId
import moe.nea.firmament.util.unformattedString
@@ -87,7 +78,7 @@ fun firmamentCommand() = literal("firmament") {
source.sendFeedback(
Text.translatable(
"firmament.price.bazaar.buy.price",
- bazaarData.quickStatus.buyPrice
+ FirmFormatters.toString(bazaarData.quickStatus.buyPrice, 1)
)
)
source.sendFeedback(
@@ -99,7 +90,7 @@ fun firmamentCommand() = literal("firmament") {
source.sendFeedback(
Text.translatable(
"firmament.price.bazaar.sell.price",
- bazaarData.quickStatus.sellPrice
+ FirmFormatters.toString(bazaarData.quickStatus.sellPrice, 1)
)
)
source.sendFeedback(
@@ -111,7 +102,12 @@ fun firmamentCommand() = literal("firmament") {
}
val lowestBin = ItemCostData.lowestBin[itemName]
if (lowestBin != null) {
- source.sendFeedback(Text.translatable("firmament.price.lowestbin", lowestBin))
+ source.sendFeedback(
+ Text.translatable(
+ "firmament.price.lowestbin",
+ FirmFormatters.toString(lowestBin, 1)
+ )
+ )
}
}
}
diff --git a/src/main/kotlin/moe/nea/firmament/gui/profileviewer/SkillPage.kt b/src/main/kotlin/moe/nea/firmament/gui/profileviewer/SkillPage.kt
index d189b5b..88e477c 100644
--- a/src/main/kotlin/moe/nea/firmament/gui/profileviewer/SkillPage.kt
+++ b/src/main/kotlin/moe/nea/firmament/gui/profileviewer/SkillPage.kt
@@ -14,6 +14,7 @@ import net.minecraft.util.Formatting
import moe.nea.firmament.apis.Skill
import moe.nea.firmament.gui.WBar
import moe.nea.firmament.repo.RepoManager
+import moe.nea.firmament.util.FirmFormatters
import moe.nea.firmament.util.toShedaniel
object SkillPage : ProfilePage {
@@ -45,7 +46,7 @@ object SkillPage : ProfilePage {
) {
override fun addTooltip(tooltip: TooltipBuilder) {
tooltip.add(Text.literal("$level/$maxLevel"))
- tooltip.add(Text.translatable("firmament.pv.skills.total", exp))
+ tooltip.add(Text.translatable("firmament.pv.skills.total", FirmFormatters.toString(exp, 1)))
}
}, 4, i + 1, 4, 1)
}
diff --git a/src/main/kotlin/moe/nea/firmament/util/FirmFormatters.kt b/src/main/kotlin/moe/nea/firmament/util/FirmFormatters.kt
new file mode 100644
index 0000000..73ef121
--- /dev/null
+++ b/src/main/kotlin/moe/nea/firmament/util/FirmFormatters.kt
@@ -0,0 +1,15 @@
+package moe.nea.firmament.util
+
+import com.google.common.math.IntMath.pow
+import kotlin.math.absoluteValue
+
+object FirmFormatters {
+ fun toString(double: Double, fractionalDigits: Int): String {
+ val long = double.toLong()
+ val δ = (double - long).absoluteValue
+ val μ = pow(10, fractionalDigits)
+ val digits = (μ * δ).toInt().toString().padStart(fractionalDigits, '0').trimEnd('0')
+ return long.toString() + (if (digits.isEmpty()) "" else ".$digits")
+ }
+
+}
diff --git a/src/main/resources/assets/firmament/lang/en_us.json b/src/main/resources/assets/firmament/lang/en_us.json
index bd6c933..91bca24 100644
--- a/src/main/resources/assets/firmament/lang/en_us.json
+++ b/src/main/resources/assets/firmament/lang/en_us.json
@@ -6,11 +6,11 @@
"firmament.price": "Checking price for %s",
"firmament.price.bazaar": "Bazaar stats:",
"firmament.price.bazaar.productid": "Stock id: %s",
- "firmament.price.bazaar.buy.price": "Buy Price: %.1f",
+ "firmament.price.bazaar.buy.price": "Buy Price: %s",
"firmament.price.bazaar.buy.order": "Buy orders: %d",
- "firmament.price.bazaar.sell.price": "Sell Price: %.1f",
+ "firmament.price.bazaar.sell.price": "Sell Price: %s",
"firmament.price.bazaar.sell.order": "Sell orders: %d",
- "firmament.price.lowestbin": "Lowest BIN: %.1f",
+ "firmament.price.lowestbin": "Lowest BIN: %s",
"firmament.repo.reload.network": "Trying to redownload the repository",
"firmament.repo.reload.disk": "Reloading repository from disk. This may lag a bit.",
"firmament.repo.cache": "Recaching items",
@@ -53,6 +53,6 @@
"firmament.pv.skills.combat": "Combat",
"firmament.pv.skills.social": "Social",
"firmament.pv.skills.enchanting": "Enchanting",
- "firmament.pv.skills.total": "Total Exp: %.1f",
+ "firmament.pv.skills.total": "Total Exp: %s",
"firmament.pv.lookingup": "Looking up %s"
}