Display total matter required, stored, and total complexity in pattern grid
This commit is contained in:
parent
b063175b8c
commit
75b06f34c2
@ -215,19 +215,6 @@ private fun misc(provider: MatteryLanguageProvider) {
|
|||||||
misc("suffix_raw.zepto", "z")
|
misc("suffix_raw.zepto", "z")
|
||||||
misc("suffix_raw.yocto", "y")
|
misc("suffix_raw.yocto", "y")
|
||||||
|
|
||||||
misc("container.matter_panel.increase_by", "+%s")
|
|
||||||
misc("container.matter_panel.decrease_by", "-%s")
|
|
||||||
misc("container.matter_panel.send", "Send")
|
|
||||||
misc("container.matter_panel.close", "Close")
|
|
||||||
misc("container.matter_panel.cancel_task", "Cancel task")
|
|
||||||
misc("container.matter_panel.cancel", "Cancel")
|
|
||||||
misc("container.matter_panel.label", "Replication request")
|
|
||||||
misc("container.matter_panel.task", "Ongoing replication task")
|
|
||||||
misc("container.matter_panel.task_line", "%s: %s | %s / %s")
|
|
||||||
|
|
||||||
misc("container.matter_panel.tasks", "Tasks")
|
|
||||||
misc("container.matter_panel.patterns", "Patterns")
|
|
||||||
|
|
||||||
misc("item.power.infinite.storage", "Stored energy: ∞ / ∞")
|
misc("item.power.infinite.storage", "Stored energy: ∞ / ∞")
|
||||||
misc("item.power.infinite.throughput", "Max I/O: ∞ / ∞")
|
misc("item.power.infinite.throughput", "Max I/O: ∞ / ∞")
|
||||||
misc("item.power.passed", "Passed energy: %s")
|
misc("item.power.passed", "Passed energy: %s")
|
||||||
@ -330,8 +317,6 @@ private fun misc(provider: MatteryLanguageProvider) {
|
|||||||
|
|
||||||
misc("matter_bottler.switch_mode", "Switch work mode")
|
misc("matter_bottler.switch_mode", "Switch work mode")
|
||||||
|
|
||||||
misc("container.matter_panel.number_input", "Input replication task count")
|
|
||||||
|
|
||||||
misc("item.quantum_battery.creative", "Fill this to win Minecraft.")
|
misc("item.quantum_battery.creative", "Fill this to win Minecraft.")
|
||||||
misc("item.quantum_battery.creative2", "See ya after millions of stars burn out.")
|
misc("item.quantum_battery.creative2", "See ya after millions of stars burn out.")
|
||||||
misc("item.quantum_battery.creative_power", "Stored energy: %s / Infinity")
|
misc("item.quantum_battery.creative_power", "Stored energy: %s / Infinity")
|
||||||
@ -646,6 +631,25 @@ private fun gui(provider: MatteryLanguageProvider) {
|
|||||||
gui("sorting.count", "Sort by amount")
|
gui("sorting.count", "Sort by amount")
|
||||||
gui("sorting.ascending", "Ascending")
|
gui("sorting.ascending", "Ascending")
|
||||||
gui("sorting.descending", "Descending")
|
gui("sorting.descending", "Descending")
|
||||||
|
|
||||||
|
gui("matter_panel.increase_by", "+%s")
|
||||||
|
gui("matter_panel.decrease_by", "-%s")
|
||||||
|
gui("matter_panel.send", "Send")
|
||||||
|
gui("matter_panel.close", "Close")
|
||||||
|
gui("matter_panel.cancel_task", "Cancel task")
|
||||||
|
gui("matter_panel.cancel", "Cancel")
|
||||||
|
gui("matter_panel.label", "Replication request")
|
||||||
|
gui("matter_panel.task", "Ongoing replication task")
|
||||||
|
gui("matter_panel.task_line", "%s: %s | %s / %s")
|
||||||
|
|
||||||
|
gui("matter_panel.tasks", "Tasks")
|
||||||
|
gui("matter_panel.patterns", "Patterns")
|
||||||
|
|
||||||
|
gui("matter_panel.number_input", "Input replication task count")
|
||||||
|
|
||||||
|
gui("matter_panel.matter_stored", "Matter stored: %s")
|
||||||
|
gui("matter_panel.matter_required", "Matter required: %s")
|
||||||
|
gui("matter_panel.complexity", "Total complexity: %s")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -224,16 +224,6 @@ private fun misc(provider: MatteryLanguageProvider) {
|
|||||||
misc("suffix_raw.zepto", "з")
|
misc("suffix_raw.zepto", "з")
|
||||||
misc("suffix_raw.yocto", "и")
|
misc("suffix_raw.yocto", "и")
|
||||||
|
|
||||||
misc("container.matter_panel.send", "Запросить")
|
|
||||||
misc("container.matter_panel.close", "Закрыть")
|
|
||||||
misc("container.matter_panel.cancel_task", "Отменить задание")
|
|
||||||
misc("container.matter_panel.cancel", "Отмена")
|
|
||||||
misc("container.matter_panel.label", "Запрос на репликацию")
|
|
||||||
misc("container.matter_panel.task", "Будущий запрос на репликацию")
|
|
||||||
|
|
||||||
misc("container.matter_panel.tasks", "Задачи")
|
|
||||||
misc("container.matter_panel.patterns", "Шаблоны")
|
|
||||||
|
|
||||||
misc("item.power.infinite.storage", "Хранимая энергия неиссякаема")
|
misc("item.power.infinite.storage", "Хранимая энергия неиссякаема")
|
||||||
misc("item.power.infinite.throughput", "Максимальный ввод/вывод неограничен")
|
misc("item.power.infinite.throughput", "Максимальный ввод/вывод неограничен")
|
||||||
misc("item.power.passed", "Переданная энергия: %s")
|
misc("item.power.passed", "Переданная энергия: %s")
|
||||||
@ -335,8 +325,6 @@ private fun misc(provider: MatteryLanguageProvider) {
|
|||||||
|
|
||||||
misc("matter_bottler.switch_mode", "Переключить режим работы")
|
misc("matter_bottler.switch_mode", "Переключить режим работы")
|
||||||
|
|
||||||
misc("container.matter_panel.number_input", "Введите кол-во единиц репликации")
|
|
||||||
|
|
||||||
misc("item.quantum_battery.creative", "Наполните этот аккумулятор чтоб выиграть Minecraft.")
|
misc("item.quantum_battery.creative", "Наполните этот аккумулятор чтоб выиграть Minecraft.")
|
||||||
misc("item.quantum_battery.creative2", "Встретимся после выгорания миллионов звёзд.")
|
misc("item.quantum_battery.creative2", "Встретимся после выгорания миллионов звёзд.")
|
||||||
misc("item.quantum_battery.creative_power", "Хранимая энергия: %s / ∞")
|
misc("item.quantum_battery.creative_power", "Хранимая энергия: %s / ∞")
|
||||||
@ -651,6 +639,22 @@ private fun gui(provider: MatteryLanguageProvider) {
|
|||||||
gui("sorting.count", "Сортировка по количеству")
|
gui("sorting.count", "Сортировка по количеству")
|
||||||
gui("sorting.ascending", "Возрастающая")
|
gui("sorting.ascending", "Возрастающая")
|
||||||
gui("sorting.descending", "Убывающая")
|
gui("sorting.descending", "Убывающая")
|
||||||
|
|
||||||
|
gui("matter_panel.send", "Запросить")
|
||||||
|
gui("matter_panel.close", "Закрыть")
|
||||||
|
gui("matter_panel.cancel_task", "Отменить задание")
|
||||||
|
gui("matter_panel.cancel", "Отмена")
|
||||||
|
gui("matter_panel.label", "Запрос на репликацию")
|
||||||
|
gui("matter_panel.task", "Будущий запрос на репликацию")
|
||||||
|
|
||||||
|
gui("matter_panel.tasks", "Задачи")
|
||||||
|
gui("matter_panel.patterns", "Шаблоны")
|
||||||
|
|
||||||
|
gui("matter_panel.number_input", "Введите кол-во единиц репликации")
|
||||||
|
|
||||||
|
gui("matter_panel.matter_stored", "Материи хранится: %s")
|
||||||
|
gui("matter_panel.matter_required", "Материи требуется: %s")
|
||||||
|
gui("matter_panel.complexity", "Общая сложность: %s")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ import net.minecraft.world.entity.player.Inventory
|
|||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
import ru.dbotthepony.mc.otm.capability.matter.IPatternState
|
import ru.dbotthepony.mc.otm.capability.matter.IPatternState
|
||||||
import ru.dbotthepony.mc.otm.capability.matter.IReplicationTask
|
import ru.dbotthepony.mc.otm.capability.matter.IReplicationTask
|
||||||
|
import ru.dbotthepony.mc.otm.client.ShiftPressedCond
|
||||||
import ru.dbotthepony.mc.otm.client.render.WidgetLocation
|
import ru.dbotthepony.mc.otm.client.render.WidgetLocation
|
||||||
import ru.dbotthepony.mc.otm.client.render.Widgets18
|
import ru.dbotthepony.mc.otm.client.render.Widgets18
|
||||||
import ru.dbotthepony.mc.otm.client.screen.MatteryScreen
|
import ru.dbotthepony.mc.otm.client.screen.MatteryScreen
|
||||||
@ -19,13 +20,18 @@ import ru.dbotthepony.mc.otm.client.screen.panels.input.EditBoxPanel
|
|||||||
import ru.dbotthepony.mc.otm.client.screen.panels.slot.AbstractSlotPanel
|
import ru.dbotthepony.mc.otm.client.screen.panels.slot.AbstractSlotPanel
|
||||||
import ru.dbotthepony.mc.otm.client.screen.panels.util.DiscreteScrollBarPanel
|
import ru.dbotthepony.mc.otm.client.screen.panels.util.DiscreteScrollBarPanel
|
||||||
import ru.dbotthepony.mc.otm.client.screen.panels.util.ScrollBarConstants
|
import ru.dbotthepony.mc.otm.client.screen.panels.util.ScrollBarConstants
|
||||||
|
import ru.dbotthepony.mc.otm.core.TextComponent
|
||||||
import ru.dbotthepony.mc.otm.core.TranslatableComponent
|
import ru.dbotthepony.mc.otm.core.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.core.math.integerDivisionDown
|
import ru.dbotthepony.mc.otm.core.math.integerDivisionDown
|
||||||
import ru.dbotthepony.mc.otm.core.util.ItemSorter
|
import ru.dbotthepony.mc.otm.core.util.ItemSorter
|
||||||
|
import ru.dbotthepony.mc.otm.core.util.formatMatter
|
||||||
|
import ru.dbotthepony.mc.otm.core.util.formatTickDuration
|
||||||
|
import ru.dbotthepony.mc.otm.matter.MatterManager
|
||||||
import ru.dbotthepony.mc.otm.menu.matter.MatterPanelMenu
|
import ru.dbotthepony.mc.otm.menu.matter.MatterPanelMenu
|
||||||
import ru.dbotthepony.mc.otm.menu.matter.ReplicationRequestPacket
|
import ru.dbotthepony.mc.otm.menu.matter.ReplicationRequestPacket
|
||||||
import ru.dbotthepony.mc.otm.network.MenuNetworkChannel
|
import ru.dbotthepony.mc.otm.network.MenuNetworkChannel
|
||||||
import yalter.mousetweaks.api.MouseTweaksDisableWheelTweak
|
import yalter.mousetweaks.api.MouseTweaksDisableWheelTweak
|
||||||
|
import kotlin.math.roundToInt
|
||||||
|
|
||||||
@MouseTweaksDisableWheelTweak
|
@MouseTweaksDisableWheelTweak
|
||||||
class MatterPanelScreen(
|
class MatterPanelScreen(
|
||||||
@ -76,11 +82,11 @@ class MatterPanelScreen(
|
|||||||
scrollBar.dock = Dock.RIGHT
|
scrollBar.dock = Dock.RIGHT
|
||||||
|
|
||||||
frame.Tab(onOpen = { isPatternView = true; scrollBar.scroll = scrollPatterns }, activeIcon = PATTERN_LIST_ACTIVE, inactiveIcon = PATTERN_LIST_INACTIVE).also {
|
frame.Tab(onOpen = { isPatternView = true; scrollBar.scroll = scrollPatterns }, activeIcon = PATTERN_LIST_ACTIVE, inactiveIcon = PATTERN_LIST_INACTIVE).also {
|
||||||
it.tooltip = TranslatableComponent("otm.container.matter_panel.patterns")
|
it.tooltip = TranslatableComponent("otm.gui.matter_panel.patterns")
|
||||||
}
|
}
|
||||||
|
|
||||||
frame.Tab(onOpen = { isPatternView = false; scrollBar.scroll = scrollTasks }, activeIcon = TASK_LIST_ACTIVE, inactiveIcon = TASK_LIST_INACTIVE).also {
|
frame.Tab(onOpen = { isPatternView = false; scrollBar.scroll = scrollTasks }, activeIcon = TASK_LIST_ACTIVE, inactiveIcon = TASK_LIST_INACTIVE).also {
|
||||||
it.tooltip = TranslatableComponent("otm.container.matter_panel.tasks")
|
it.tooltip = TranslatableComponent("otm.gui.matter_panel.tasks")
|
||||||
}
|
}
|
||||||
|
|
||||||
val canvas = object : EditablePanel<MatterPanelScreen>(this@MatterPanelScreen, frame, width = GRID_WIDTH * AbstractSlotPanel.SIZE) {
|
val canvas = object : EditablePanel<MatterPanelScreen>(this@MatterPanelScreen, frame, width = GRID_WIDTH * AbstractSlotPanel.SIZE) {
|
||||||
@ -163,7 +169,7 @@ class MatterPanelScreen(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun openTask(task: IReplicationTask<*>) {
|
private fun openTask(task: IReplicationTask<*>) {
|
||||||
val frame = FramePanel.padded(this, null, 170f, 20f, TranslatableComponent("otm.container.matter_panel.task"))
|
val frame = FramePanel.padded(this, null, 170f, 20f, TranslatableComponent("otm.gui.matter_panel.task"))
|
||||||
|
|
||||||
frame.closeOnEscape = true
|
frame.closeOnEscape = true
|
||||||
|
|
||||||
@ -185,13 +191,13 @@ class MatterPanelScreen(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ButtonPanel(this@MatterPanelScreen, frame, width = 40f, label = TranslatableComponent("otm.container.matter_panel.close"), onPress = frame::remove).also {
|
ButtonPanel(this@MatterPanelScreen, frame, width = 40f, label = TranslatableComponent("otm.gui.matter_panel.close"), onPress = frame::remove).also {
|
||||||
it.dock = Dock.RIGHT
|
it.dock = Dock.RIGHT
|
||||||
it.dockLeft = 2f
|
it.dockLeft = 2f
|
||||||
}
|
}
|
||||||
|
|
||||||
if (minecraft?.player?.isSpectator != true) {
|
if (minecraft?.player?.isSpectator != true) {
|
||||||
ButtonPanel(this@MatterPanelScreen, frame, width = 80f, label = TranslatableComponent("otm.container.matter_panel.cancel_task"), onPress = Runnable {
|
ButtonPanel(this@MatterPanelScreen, frame, width = 80f, label = TranslatableComponent("otm.gui.matter_panel.cancel_task"), onPress = Runnable {
|
||||||
menu.requestTaskCancel(task.id)
|
menu.requestTaskCancel(task.id)
|
||||||
frame.remove()
|
frame.remove()
|
||||||
}).also {
|
}).also {
|
||||||
@ -207,7 +213,7 @@ class MatterPanelScreen(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun openPattern(pattern: IPatternState) {
|
private fun openPattern(pattern: IPatternState) {
|
||||||
val frame = FramePanel.padded(this, null, 213f, (ButtonPanel.HEIGHT + 3f) * 4f, TranslatableComponent("otm.container.matter_panel.task"))
|
val frame = FramePanel.padded(this, null, 213f, (ButtonPanel.HEIGHT + 3f) * 4f + 38f, TranslatableComponent("otm.gui.matter_panel.task"))
|
||||||
|
|
||||||
frame.closeOnEscape = true
|
frame.closeOnEscape = true
|
||||||
|
|
||||||
@ -253,6 +259,8 @@ class MatterPanelScreen(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var count = 1
|
||||||
|
|
||||||
val input = object : EditBoxPanel<MatterPanelScreen>(this@MatterPanelScreen, rowInput) {
|
val input = object : EditBoxPanel<MatterPanelScreen>(this@MatterPanelScreen, rowInput) {
|
||||||
init {
|
init {
|
||||||
dock = Dock.FILL
|
dock = Dock.FILL
|
||||||
@ -269,68 +277,77 @@ class MatterPanelScreen(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun increase(amount: Int) {
|
fun increase(amount: Int) {
|
||||||
var value = 1
|
count = 1
|
||||||
|
|
||||||
try {
|
try {
|
||||||
value = getOrCreateWidget().value.toInt()
|
count = getOrCreateWidget().value.toInt().coerceIn(1, 99999)
|
||||||
} catch (_: NumberFormatException) {
|
} catch (_: NumberFormatException) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (value == 1 && amount > 0)
|
if (count == 1 && amount > 0)
|
||||||
getOrCreateWidget().value = amount.toString()
|
getOrCreateWidget().value = amount.toString()
|
||||||
else
|
else
|
||||||
getOrCreateWidget().value = 1.coerceAtLeast(99999.coerceAtMost(value + amount)).toString()
|
getOrCreateWidget().value = (count + amount).coerceIn(1, 99999).toString()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun tickInner() {
|
||||||
|
super.tickInner()
|
||||||
|
|
||||||
|
try {
|
||||||
|
count = getOrCreateWidget().value.toInt().coerceIn(1, 99999)
|
||||||
|
} catch (_: NumberFormatException) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun send() {
|
fun send() {
|
||||||
var value = 1
|
count = 1
|
||||||
|
|
||||||
try {
|
try {
|
||||||
value = getOrCreateWidget().value.toInt()
|
count = getOrCreateWidget().value.toInt().coerceIn(1, 99999)
|
||||||
} catch (_: NumberFormatException) {
|
} catch (_: NumberFormatException) {
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuNetworkChannel.sendToServer(ReplicationRequestPacket(pattern.id, value))
|
MenuNetworkChannel.sendToServer(ReplicationRequestPacket(pattern.id, count))
|
||||||
frame.remove()
|
frame.remove()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ButtonPanel(this, rowTop, width = 40f, label = TranslatableComponent("otm.container.matter_panel.increase_by", 8), onPress = Runnable { input.increase(8) }).also {
|
ButtonPanel(this, rowTop, width = 40f, label = TranslatableComponent("otm.gui.matter_panel.increase_by", 8), onPress = Runnable { input.increase(8) }).also {
|
||||||
it.dock = Dock.RIGHT
|
it.dock = Dock.RIGHT
|
||||||
it.dockLeft = 2f
|
it.dockLeft = 2f
|
||||||
}
|
}
|
||||||
|
|
||||||
ButtonPanel(this, rowTop, width = 40f, label = TranslatableComponent("otm.container.matter_panel.increase_by", 64), onPress = Runnable { input.increase(64) }).also {
|
ButtonPanel(this, rowTop, width = 40f, label = TranslatableComponent("otm.gui.matter_panel.increase_by", 64), onPress = Runnable { input.increase(64) }).also {
|
||||||
it.dock = Dock.RIGHT
|
it.dock = Dock.RIGHT
|
||||||
it.dockLeft = 2f
|
it.dockLeft = 2f
|
||||||
}
|
}
|
||||||
|
|
||||||
ButtonPanel(this, rowTop, width = 40f, label = TranslatableComponent("otm.container.matter_panel.increase_by", 256), onPress = Runnable { input.increase(256) }).also {
|
ButtonPanel(this, rowTop, width = 40f, label = TranslatableComponent("otm.gui.matter_panel.increase_by", 256), onPress = Runnable { input.increase(256) }).also {
|
||||||
it.dock = Dock.RIGHT
|
it.dock = Dock.RIGHT
|
||||||
it.dockLeft = 2f
|
it.dockLeft = 2f
|
||||||
}
|
}
|
||||||
|
|
||||||
ButtonPanel(this, rowBottom, width = 40f, label = TranslatableComponent("otm.container.matter_panel.decrease_by", 8), onPress = Runnable { input.increase(-8) }).also {
|
ButtonPanel(this, rowBottom, width = 40f, label = TranslatableComponent("otm.gui.matter_panel.decrease_by", 8), onPress = Runnable { input.increase(-8) }).also {
|
||||||
it.dock = Dock.RIGHT
|
it.dock = Dock.RIGHT
|
||||||
it.dockLeft = 2f
|
it.dockLeft = 2f
|
||||||
}
|
}
|
||||||
|
|
||||||
ButtonPanel(this, rowBottom, width = 40f, label = TranslatableComponent("otm.container.matter_panel.decrease_by", 64), onPress = Runnable { input.increase(-64) }).also {
|
ButtonPanel(this, rowBottom, width = 40f, label = TranslatableComponent("otm.gui.matter_panel.decrease_by", 64), onPress = Runnable { input.increase(-64) }).also {
|
||||||
it.dock = Dock.RIGHT
|
it.dock = Dock.RIGHT
|
||||||
it.dockLeft = 2f
|
it.dockLeft = 2f
|
||||||
}
|
}
|
||||||
|
|
||||||
ButtonPanel(this, rowBottom, width = 40f, label = TranslatableComponent("otm.container.matter_panel.decrease_by", 256), onPress = Runnable { input.increase(-256) }).also {
|
ButtonPanel(this, rowBottom, width = 40f, label = TranslatableComponent("otm.gui.matter_panel.decrease_by", 256), onPress = Runnable { input.increase(-256) }).also {
|
||||||
it.dock = Dock.RIGHT
|
it.dock = Dock.RIGHT
|
||||||
it.dockLeft = 2f
|
it.dockLeft = 2f
|
||||||
}
|
}
|
||||||
|
|
||||||
ButtonPanel(this, rowControls, width = 40f, label = TranslatableComponent("otm.container.matter_panel.cancel"), onPress = frame::remove).also {
|
ButtonPanel(this, rowControls, width = 40f, label = TranslatableComponent("otm.gui.matter_panel.cancel"), onPress = frame::remove).also {
|
||||||
it.dock = Dock.RIGHT
|
it.dock = Dock.RIGHT
|
||||||
it.dockLeft = 2f
|
it.dockLeft = 2f
|
||||||
}
|
}
|
||||||
|
|
||||||
ButtonPanel(this, rowControls, width = 82f, label = TranslatableComponent("otm.container.matter_panel.send"), onPress = input::send).also {
|
ButtonPanel(this, rowControls, width = 82f, label = TranslatableComponent("otm.gui.matter_panel.send"), onPress = input::send).also {
|
||||||
it.dock = Dock.RIGHT
|
it.dock = Dock.RIGHT
|
||||||
it.dockLeft = 2f
|
it.dockLeft = 2f
|
||||||
}
|
}
|
||||||
@ -338,6 +355,54 @@ class MatterPanelScreen(
|
|||||||
addPanel(frame)
|
addPanel(frame)
|
||||||
popup(frame)
|
popup(frame)
|
||||||
|
|
||||||
|
object : Label<MatterPanelScreen>(this@MatterPanelScreen, frame, text = TextComponent("")) {
|
||||||
|
init {
|
||||||
|
dock = Dock.TOP
|
||||||
|
dockTop = 5f
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun tickInner() {
|
||||||
|
super.tickInner()
|
||||||
|
|
||||||
|
text = TranslatableComponent(
|
||||||
|
"otm.gui.matter_panel.matter_stored",
|
||||||
|
menu.totalMatterStored.formatMatter(formatAsReadable = ShiftPressedCond),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
object : Label<MatterPanelScreen>(this@MatterPanelScreen, frame, text = TextComponent("")) {
|
||||||
|
init {
|
||||||
|
dock = Dock.TOP
|
||||||
|
dockTop = 3f
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun tickInner() {
|
||||||
|
super.tickInner()
|
||||||
|
|
||||||
|
text = TranslatableComponent(
|
||||||
|
"otm.gui.matter_panel.matter_required",
|
||||||
|
(MatterManager.get(pattern.item).matter * count).formatMatter(formatAsReadable = ShiftPressedCond),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
object : Label<MatterPanelScreen>(this@MatterPanelScreen, frame, text = TextComponent("")) {
|
||||||
|
init {
|
||||||
|
dock = Dock.TOP
|
||||||
|
dockTop = 3f
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun tickInner() {
|
||||||
|
super.tickInner()
|
||||||
|
|
||||||
|
text = TranslatableComponent(
|
||||||
|
"otm.gui.matter_panel.complexity",
|
||||||
|
formatTickDuration((MatterManager.get(pattern.item).complexity * count).roundToInt(), true),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
frame.toScreenCenter()
|
frame.toScreenCenter()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,8 +12,9 @@ import ru.dbotthepony.mc.otm.capability.matter.*
|
|||||||
import ru.dbotthepony.mc.otm.client.minecraft
|
import ru.dbotthepony.mc.otm.client.minecraft
|
||||||
import ru.dbotthepony.mc.otm.core.GetterSetter
|
import ru.dbotthepony.mc.otm.core.GetterSetter
|
||||||
import ru.dbotthepony.mc.otm.core.addSorted
|
import ru.dbotthepony.mc.otm.core.addSorted
|
||||||
|
import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||||
import ru.dbotthepony.mc.otm.core.util.BooleanValueCodec
|
import ru.dbotthepony.mc.otm.core.util.BooleanValueCodec
|
||||||
import ru.dbotthepony.mc.otm.core.util.EnumValueCodec
|
import ru.dbotthepony.mc.otm.core.util.DecimalValueCodec
|
||||||
import ru.dbotthepony.mc.otm.core.util.ItemSorter
|
import ru.dbotthepony.mc.otm.core.util.ItemSorter
|
||||||
import ru.dbotthepony.mc.otm.core.util.codec
|
import ru.dbotthepony.mc.otm.core.util.codec
|
||||||
import ru.dbotthepony.mc.otm.graph.matter.IMatterGraphListener
|
import ru.dbotthepony.mc.otm.graph.matter.IMatterGraphListener
|
||||||
@ -168,6 +169,11 @@ class MatterPanelMenu @JvmOverloads constructor(
|
|||||||
tasks.sortWith(actualTaskComparator)
|
tasks.sortWith(actualTaskComparator)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
val totalMatterStored: Decimal by mSynchronizer.ComputedField(
|
||||||
|
getter = { tile?.matterGraph?.getMatterStorageLevel() ?: Decimal.ZERO },
|
||||||
|
codec = DecimalValueCodec,
|
||||||
|
)
|
||||||
|
|
||||||
val changeIsAscending = booleanInput(allowSpectators = true) { tile?.getPlayerSettings(ply)?.ascending = it }
|
val changeIsAscending = booleanInput(allowSpectators = true) { tile?.getPlayerSettings(ply)?.ascending = it }
|
||||||
val changeSorting = PlayerInput(ItemSorter::class.codec(), allowSpectators = true) { tile?.getPlayerSettings(ply)?.sorter = it }
|
val changeSorting = PlayerInput(ItemSorter::class.codec(), allowSpectators = true) { tile?.getPlayerSettings(ply)?.sorter = it }
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user