Skip to content

Commit 9df09ee

Browse files
committed
fix decimal separator depending on locale
Signed-off-by: Octol1ttle <[email protected]>
1 parent 52cbc7b commit 9df09ee

File tree

6 files changed

+15
-6
lines changed

6 files changed

+15
-6
lines changed

src/main/kotlin/ru/octol1ttle/flightassistant/api/util/extensions/StringExtensions.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package ru.octol1ttle.flightassistant.api.util.extensions
22

3+
import java.util.Locale
4+
35
fun String.toIntOrNullWithFallback(): Int? {
46
if (this == "") {
57
return 0
@@ -20,4 +22,8 @@ fun String.toFloatOrNullWithFallback(): Float? {
2022
}
2123

2224
return this.toFloatOrNull()
25+
}
26+
27+
fun String.formatRoot(vararg args: Any?): String {
28+
return this.format(Locale.ROOT, args)
2329
}

src/main/kotlin/ru/octol1ttle/flightassistant/impl/computer/autoflight/FlightPlanComputer.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import ru.octol1ttle.flightassistant.api.computer.ComputerQuery
1515
import ru.octol1ttle.flightassistant.api.util.FATickCounter
1616
import ru.octol1ttle.flightassistant.api.util.LimitedFIFOQueue
1717
import ru.octol1ttle.flightassistant.api.util.extensions.distance2d
18+
import ru.octol1ttle.flightassistant.api.util.extensions.formatRoot
1819
import ru.octol1ttle.flightassistant.api.util.extensions.getProgressOnTrack
1920
import ru.octol1ttle.flightassistant.api.util.extensions.vec2dFromInts
2021
import ru.octol1ttle.flightassistant.impl.computer.autoflight.modes.*
@@ -154,7 +155,7 @@ class FlightPlanComputer(computers: ComputerBus) : Computer(computers) {
154155

155156
fun getFormattedTime(distance: Double): String {
156157
val duration: Duration = Duration.ofSeconds((distance / groundSpeeds.average()).roundToLong())
157-
return if (computers.data.flying) "${duration.toMinutesPart()}:${"%02d".format(duration.toSecondsPart())}" else "--:--"
158+
return if (computers.data.flying) "${duration.toMinutesPart()}:${"%02d".formatRoot(duration.toSecondsPart())}" else "--:--"
158159
}
159160

160161
fun getThrustMode(): AutoFlightComputer.ThrustMode? {

src/main/kotlin/ru/octol1ttle/flightassistant/impl/computer/autoflight/base/ThrustComputer.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import ru.octol1ttle.flightassistant.api.computer.ComputerBus
1515
import ru.octol1ttle.flightassistant.api.computer.ComputerQuery
1616
import ru.octol1ttle.flightassistant.api.util.FATickCounter
1717
import ru.octol1ttle.flightassistant.api.util.extensions.filterWorking
18+
import ru.octol1ttle.flightassistant.api.util.extensions.formatRoot
1819
import ru.octol1ttle.flightassistant.api.util.extensions.getActiveHighestPriority
1920
import ru.octol1ttle.flightassistant.api.util.throwIfNotInRange
2021
import ru.octol1ttle.flightassistant.impl.display.StatusDisplay
@@ -101,7 +102,7 @@ class ThrustComputer(computers: ComputerBus) : Computer(computers) {
101102
if (query is StatusDisplay.StatusMessageQuery) {
102103
// TODO: show actual thrust output and requested thrust (both by user and autoflight)
103104
if (getThrustSource() != null || current != 0.0f) {
104-
query.respond(Component.translatable("status.flightassistant.thrust", "%.1f".format(current * 100) + "%"))
105+
query.respond(Component.translatable("status.flightassistant.thrust", "%.1f".formatRoot(current * 100) + "%"))
105106
}
106107
}
107108
}

src/main/kotlin/ru/octol1ttle/flightassistant/impl/computer/safety/ElytraStatusComputer.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import net.minecraft.world.item.enchantment.Enchantments
1414
import ru.octol1ttle.flightassistant.FlightAssistant
1515
import ru.octol1ttle.flightassistant.api.computer.Computer
1616
import ru.octol1ttle.flightassistant.api.computer.ComputerBus
17+
import ru.octol1ttle.flightassistant.api.util.extensions.formatRoot
1718
import ru.octol1ttle.flightassistant.config.FAConfig
1819
import ru.octol1ttle.flightassistant.config.options.DisplayOptions
1920
import ru.octol1ttle.flightassistant.impl.computer.data.AirDataComputer
@@ -121,7 +122,7 @@ class ElytraStatusComputer(computers: ComputerBus) : Computer(computers) {
121122
2 -> Mth.quantize(duration.toSecondsPart().toDouble(), 15)
122123
else -> Mth.quantize(duration.toSecondsPart().toDouble(), 30)
123124
}
124-
Component.literal("${duration.toMinutesPart()}:${"%02d".format(seconds)}")
125+
Component.literal("${duration.toMinutesPart()}:${"%02d".formatRoot(seconds)}")
125126
}
126127
}
127128
}

src/main/kotlin/ru/octol1ttle/flightassistant/impl/display/AttitudeDisplay.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ class AttitudeDisplay(computers: ComputerBus) : Display(computers) {
151151
private fun GuiGraphics.renderPitchTarget(x: Int, y: Int) {
152152
val active: AutoFlightComputer.VerticalMode? = computers.autoflight.activeVerticalMode
153153
if (computers.autoflight.getPitchInput() != null && active is AutoFlightComputer.FollowsPitchMode) {
154-
drawRightAlignedString("%.1f".format(active.targetPitch), x, y, primaryAdvisoryColor)
154+
drawRightAlignedString("%.1f".formatRoot(active.targetPitch), x, y, primaryAdvisoryColor)
155155
}
156156
}
157157

src/main/kotlin/ru/octol1ttle/flightassistant/impl/display/HeadingDisplay.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class HeadingDisplay(computers: ComputerBus) : Display(computers) {
4040
val headingInt: Int = computers.data.heading.roundToInt()
4141

4242
renderOutline(x - 11, y, 23, 11, primaryColor)
43-
drawMiddleAlignedString("%03d".format(headingInt), x, y + 2, primaryColor)
43+
drawMiddleAlignedString("%03d".formatRoot(headingInt), x, y + 2, primaryColor)
4444
}
4545

4646
private fun GuiGraphics.renderHeadingScale(x: Int, y: Int) {
@@ -108,7 +108,7 @@ class HeadingDisplay(computers: ComputerBus) : Display(computers) {
108108
private fun GuiGraphics.renderHeadingTarget(x: Int, y: Int) {
109109
val active: AutoFlightComputer.LateralMode? = computers.autoflight.activeLateralMode
110110
if (computers.autoflight.getHeadingInput() != null && active is AutoFlightComputer.FollowsHeadingMode) {
111-
drawMiddleAlignedString("%03d".format(active.targetHeading), x, y, primaryAdvisoryColor)
111+
drawMiddleAlignedString("%03d".formatRoot(active.targetHeading), x, y, primaryAdvisoryColor)
112112
}
113113
}
114114

0 commit comments

Comments
 (0)