Update energy counter screen
This commit is contained in:
parent
4d4ecd28a5
commit
fced3058d5
@ -225,6 +225,11 @@ private fun misc(provider: MatteryLanguageProvider) {
|
||||
misc("item.power.last_20_ticks", "Last second: %s")
|
||||
misc("item.power.last_tick", "Last tick: %s")
|
||||
|
||||
gui("power.passed", "Total passed energy:")
|
||||
gui("power.average", "Average throughput per tick:")
|
||||
gui("power.last_20_ticks", "Last second:")
|
||||
gui("power.last_tick", "Last tick:")
|
||||
|
||||
misc("item.power.storage", "Stored energy: %s / %s")
|
||||
misc("item.power.storage0", "Stored energy: %s")
|
||||
misc("item.power.throughput", "Max I/O: %s / %s")
|
||||
|
@ -233,6 +233,11 @@ private fun misc(provider: MatteryLanguageProvider) {
|
||||
misc("item.power.last_20_ticks", "Последняя секунда: %s")
|
||||
misc("item.power.last_tick", "Последний тик: %s")
|
||||
|
||||
gui("power.passed", "Всего передано энергии:")
|
||||
gui("power.average", "Средняя передача в тик:")
|
||||
gui("power.last_20_ticks", "Последняя секунда:")
|
||||
gui("power.last_tick", "Последний тик:")
|
||||
|
||||
misc("item.power.storage", "Хранимая энергия: %s / %s")
|
||||
misc("item.power.throughput", "Максимальная пропускная способность: %s / %s")
|
||||
misc("item.power.throughput_mono", "Максимальная пропускная способность: %s")
|
||||
|
@ -0,0 +1,21 @@
|
||||
package ru.dbotthepony.mc.otm.client.screen.panels
|
||||
|
||||
import net.minecraft.client.gui.screens.Screen
|
||||
import net.minecraft.network.chat.Component
|
||||
import java.util.function.Supplier
|
||||
|
||||
open class DynamicLabel<out S : Screen>(
|
||||
screen: S,
|
||||
parent: EditablePanel<*>?,
|
||||
x: Float = 0f,
|
||||
y: Float = 0f,
|
||||
width: Float = 100f,
|
||||
height: Float = 10f,
|
||||
val textSupplier: Supplier<Component>,
|
||||
shadow: Boolean = false
|
||||
) : Label<S>(screen, parent, x, y, width, height, textSupplier.get(), shadow) {
|
||||
override fun tickInner() {
|
||||
super.tickInner()
|
||||
text = textSupplier.get()
|
||||
}
|
||||
}
|
@ -11,92 +11,54 @@ import ru.dbotthepony.mc.otm.client.screen.panels.button.makeDeviceControls
|
||||
import ru.dbotthepony.mc.otm.client.screen.panels.input.NetworkNumberInputPanel
|
||||
import ru.dbotthepony.mc.otm.core.util.formatPower
|
||||
import ru.dbotthepony.mc.otm.menu.tech.EnergyCounterMenu
|
||||
import java.util.function.Supplier
|
||||
|
||||
class EnergyCounterScreen(menu: EnergyCounterMenu, inventory: Inventory, title: Component) : MatteryScreen<EnergyCounterMenu>(menu, inventory, title) {
|
||||
override fun makeMainFrame(): FramePanel<MatteryScreen<*>> {
|
||||
val frame = super.makeMainFrame()!!
|
||||
|
||||
var label: Label<EnergyCounterScreen> = object : Label<EnergyCounterScreen>(this@EnergyCounterScreen, frame) {
|
||||
override fun tickInner() {
|
||||
super.tickInner()
|
||||
text = TranslatableComponent(
|
||||
"otm.item.power.passed",
|
||||
menu.passed.formatPower(formatAsReadable = ShiftPressedCond)
|
||||
)
|
||||
frame.height = 160f
|
||||
frame.width += 40f
|
||||
|
||||
val labels = ArrayList<EditablePanel<*>>()
|
||||
|
||||
labels.add(Label(this, frame, text = TranslatableComponent("otm.gui.power.passed")))
|
||||
labels.add(DynamicLabel(this, frame, textSupplier = { menu.passed.formatPower(formatAsReadable = ShiftPressedCond) }))
|
||||
labels.add(Label(this, frame, text = TranslatableComponent("otm.gui.power.average")))
|
||||
labels.add(DynamicLabel(this, frame, textSupplier = { menu.average.formatPower(formatAsReadable = ShiftPressedCond) }))
|
||||
labels.add(Label(this, frame, text = TranslatableComponent("otm.gui.power.last_20_ticks")))
|
||||
labels.add(DynamicLabel(this, frame, textSupplier = { menu.last20Ticks.formatPower(formatAsReadable = ShiftPressedCond) }))
|
||||
labels.add(Label(this, frame, text = TranslatableComponent("otm.gui.power.last_tick")))
|
||||
labels.add(DynamicLabel(this, frame, textSupplier = { menu.lastTick.formatPower(formatAsReadable = ShiftPressedCond) }))
|
||||
labels.add(DynamicLabel(this, frame, textSupplier = { TranslatableComponent("block.overdrive_that_matters.energy_counter.facing", menu.inputDirection) }))
|
||||
|
||||
for ((i, label) in labels.withIndex()) {
|
||||
if (i == 0) {
|
||||
label.dockTop = 5f
|
||||
} else {
|
||||
label.dockTop = 2f
|
||||
}
|
||||
|
||||
label.dock = Dock.TOP
|
||||
}
|
||||
|
||||
label.dock = Dock.TOP
|
||||
label.setDockMargin(4f, 0f, 0f, 0f)
|
||||
|
||||
label = object : Label<EnergyCounterScreen>(this@EnergyCounterScreen, frame) {
|
||||
override fun tickInner() {
|
||||
super.tickInner()
|
||||
text = TranslatableComponent(
|
||||
"otm.item.power.average",
|
||||
menu.average.formatPower(formatAsReadable = ShiftPressedCond)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
label.dock = Dock.TOP
|
||||
label.setDockMargin(4f, 0f, 0f, 0f)
|
||||
|
||||
label = object : Label<EnergyCounterScreen>(this@EnergyCounterScreen, frame) {
|
||||
override fun tickInner() {
|
||||
super.tickInner()
|
||||
text = TranslatableComponent(
|
||||
"otm.item.power.last_20_ticks",
|
||||
menu.last20Ticks.formatPower(formatAsReadable = ShiftPressedCond)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
label.dock = Dock.TOP
|
||||
label.setDockMargin(4f, 0f, 0f, 0f)
|
||||
|
||||
label = object : Label<EnergyCounterScreen>(this@EnergyCounterScreen, frame) {
|
||||
override fun tickInner() {
|
||||
super.tickInner()
|
||||
text = TranslatableComponent(
|
||||
"otm.item.power.last_tick",
|
||||
menu.lastTick.formatPower(formatAsReadable = ShiftPressedCond)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
label.dock = Dock.TOP
|
||||
label.setDockMargin(4f, 0f, 0f, 0f)
|
||||
|
||||
label = object : Label<EnergyCounterScreen>(this@EnergyCounterScreen, frame) {
|
||||
override fun tickInner() {
|
||||
super.tickInner()
|
||||
|
||||
text = TranslatableComponent(
|
||||
"block.overdrive_that_matters.energy_counter.facing",
|
||||
menu.inputDirection
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
label.dock = Dock.TOP
|
||||
label.setDockMargin(4f, 0f, 0f, 0f)
|
||||
|
||||
if (!menu.ply.isSpectator) {
|
||||
val button = ButtonPanel(this, frame, 0f, 0f, 0f, 20f, TranslatableComponent("block.overdrive_that_matters.energy_counter.switch"), onPress = Runnable { menu.switchDirection.input(null) })
|
||||
button.dock = Dock.TOP
|
||||
button.setDockMargin(4f, 0f, 4f, 0f)
|
||||
button.setDockMargin(4f, 5f, 4f, 0f)
|
||||
}
|
||||
|
||||
val infoPanels = frame.fetchChildren()
|
||||
|
||||
label = Label(this, frame, TranslatableComponent("block.overdrive_that_matters.energy_counter.limit"))
|
||||
label.dock = Dock.TOP
|
||||
label.setDockMargin(4f, 0f, 0f, 0f)
|
||||
Label(this, frame, TranslatableComponent("block.overdrive_that_matters.energy_counter.limit")).also {
|
||||
it.dock = Dock.TOP
|
||||
it.dockTop = 10f
|
||||
}
|
||||
|
||||
val inputPanel = NetworkNumberInputPanel(this, frame, widget = menu.maxIOInput, networkValue = menu::maxIO)
|
||||
inputPanel.dock = Dock.TOP
|
||||
inputPanel.setDockMargin(4f, 0f, 4f, 0f)
|
||||
NetworkNumberInputPanel(this, frame, widget = menu.maxIOInput, networkValue = menu::maxIO).also {
|
||||
it.dock = Dock.TOP
|
||||
it.dockTop = 4f
|
||||
}
|
||||
|
||||
val limitsPanels = frame.fetchChildren().filter { !infoPanels.contains(it) }
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user