diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/English.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/English.kt index 25c89ec11..5a826974c 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/English.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/English.kt @@ -362,6 +362,8 @@ private fun misc(provider: MatteryLanguageProvider) { gui("progress_widget_stuck", "The machine can not work, check configuration") gui("total_raw", "Total:") + gui("total", "Total: %s") + gui("total_approx", "Total: ~%s") gui("matter.percentage_level", "Matter level: %s%%") gui("matter.format", "Matter: %s") diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt index 2c7761cd9..0f2e41364 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt @@ -367,6 +367,8 @@ private fun misc(provider: MatteryLanguageProvider) { gui("progress_widget_stuck", "Это устройство не может продолжить работу, проверьте конфигурацию") gui("total_raw", "Всего:") + gui("total", "Всего: %s") + gui("total_approx", "Всего примерно: %s") gui("matter.percentage_level", "Уровень материи: %s%%") gui("matter.format", "Материя: %s") diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/DecimalHistoryChartPanel.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/DecimalHistoryChartPanel.kt index 35033c9c7..4bc772cde 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/DecimalHistoryChartPanel.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/DecimalHistoryChartPanel.kt @@ -17,7 +17,7 @@ import ru.dbotthepony.mc.otm.core.util.formatTickDuration open class DecimalHistoryChartPanel>( screen: S, parent: EditablePanel<*>, - val graph: DecimalHistoryChart, + val chart: DecimalHistoryChart, val formatText: (Decimal) -> Component = { TextComponent(it.toString(2)) }, x: Float = 0f, y: Float = 0f, @@ -25,13 +25,13 @@ open class DecimalHistoryChartPanel>( height: Float = 10f ) : EditablePanel(screen, parent, x, y, width, height) { override fun innerRender(graphics: MGUIGraphics, mouseX: Float, mouseY: Float, partialTick: Float) { - val maximum = graph.max() + val maximum = chart.max() val normalized: FloatArray val levelLabels: ChartLevelLabels if (maximum.isZero || maximum.isInfinite) { - normalized = FloatArray(graph.width) { - if (graph[it].isInfinite) 0.8f else 0.0f + normalized = FloatArray(chart.width) { + if (chart[it].isInfinite) 0.8f else 0.0f } levelLabels = ChartLevelLabels( @@ -39,7 +39,7 @@ open class DecimalHistoryChartPanel>( font = font ) } else { - normalized = FloatArray(graph.width) { (graph[it] / maximum).toFloat() * 0.9f } + normalized = FloatArray(chart.width) { (chart[it] / maximum).toFloat() * 0.9f } val map = Float2ObjectArrayMap() @@ -65,11 +65,16 @@ open class DecimalHistoryChartPanel>( mouseX - absoluteX, mouseY - absoluteY, { - listOf( - formatText(graph[it]), - TextComponent(""), - TranslatableComponent("otm.gui.ago", formatTickDuration(it * graph.resolution, true)) - ) + val result = ArrayList() + result.add(formatText(chart[it])) + + if (chart.resolution != 1 && chart[it].isFinite && chart[it].isNotZero) { + result.add(TranslatableComponent("otm.gui.total_approx", formatText(chart[it] * chart.resolution))) + } + + result.add(TextComponent("")) + result.add(TranslatableComponent("otm.gui.ago", formatTickDuration(it * chart.resolution, true))) + result }, font, ), diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/core/math/Decimal.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/core/math/Decimal.kt index 3fcd85b4c..457874d17 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/core/math/Decimal.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/core/math/Decimal.kt @@ -120,6 +120,7 @@ sealed class Decimal : Number(), Comparable { * Whenever this Decimal is zero */ inline val isZero get() = signum() == 0 + inline val isNotZero get() = signum() != 0 abstract val isInfinite: Boolean abstract val isFinite: Boolean