From d66b96c791867d22fdb7eef0df30f99a8203b891 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Fri, 17 Feb 2023 14:46:12 +0700 Subject: [PATCH] Make children panels override tickInner --- .../client/screen/matter/MatterPanelScreen.kt | 8 ++++---- .../otm/client/screen/panels/EditablePanel.kt | 11 +++++++--- .../client/screen/panels/EffectListPanel.kt | 8 ++++---- .../otm/client/screen/panels/Widget2Panel.kt | 4 ++-- .../client/screen/panels/button/Buttons.kt | 4 ++-- .../screen/panels/input/EditBoxPanel.kt | 4 ++-- .../panels/input/NetworkNumberInputPanel.kt | 4 ++-- .../panels/input/NetworkedStringInputPanel.kt | 4 ++-- .../screen/panels/input/TextInputPanel.kt | 4 ++-- .../screen/panels/slot/FoldableSlotPanel.kt | 8 ++++---- .../storage/StoragePowerSupplierScreen.kt | 8 ++++---- .../screen/tech/AndroidStationScreen.kt | 4 ++-- .../client/screen/tech/EnergyCounterScreen.kt | 20 +++++++++---------- .../screen/widget/ProgressGaugePanel.kt | 4 ++-- 14 files changed, 50 insertions(+), 45 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/matter/MatterPanelScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/matter/MatterPanelScreen.kt index 87585c6c3..75c0a72fe 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/matter/MatterPanelScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/matter/MatterPanelScreen.kt @@ -142,8 +142,8 @@ class MatterPanelScreen( return menu.tasks.firstOrNull { it.id == task.id }?.let { it.stack((it.required + it.inProgress).coerceAtLeast(1)) } ?: task.stack((task.required + task.inProgress).coerceAtLeast(1)) } - override fun tick() { - super.tick() + override fun tickInner() { + super.tickInner() if (!menu.tasks.any { it.id == task.id }) { frame.remove() @@ -208,8 +208,8 @@ class MatterPanelScreen( } } - override fun tick() { - super.tick() + override fun tickInner() { + super.tickInner() if (!menu.patterns.any { it.id == pattern.id }) { frame.remove() diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/EditablePanel.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/EditablePanel.kt index 864394e24..b4c168828 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/EditablePanel.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/EditablePanel.kt @@ -1598,10 +1598,15 @@ open class EditablePanel @JvmOverloads constructor( return x >= pos.x && x <= pos.x + width && y >= pos.y && y + height <= pos.y } - protected var tick = 0 + var tickCount = 0 + private set - open fun tick() { - tick++ + protected open fun tickInner() {} + + fun tick() { + tickCount++ + + tickInner() for (child in Array(visibleChildrenInternal.size) { visibleChildrenInternal[it] }) { child.tick() diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/EffectListPanel.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/EffectListPanel.kt index cc9b47ef5..5aec68c76 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/EffectListPanel.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/EffectListPanel.kt @@ -100,8 +100,8 @@ open class EffectListPanel @JvmOverloads constructor( return true } - override fun tick() { - super.tick() + override fun tickInner() { + super.tickInner() if (!isStillValid) { effectButtons.remove(effectType) @@ -163,14 +163,14 @@ open class EffectListPanel @JvmOverloads constructor( canvas.yOffset = newScroll * -26f } - override fun tick() { + override fun tickInner() { for (effect in entity.activeEffects) { effectButtons.computeIfAbsent(effect.effect, Object2ObjectFunction { EffectSquare(effect) }) } - super.tick() + super.tickInner() } val canvas = object : EditablePanel(screen, this@EffectListPanel, 0f, 0f, width, height) { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/Widget2Panel.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/Widget2Panel.kt index 6b5b6fd1e..c20095400 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/Widget2Panel.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/Widget2Panel.kt @@ -26,8 +26,8 @@ abstract class Widget2Panel( val isWidgetDisabled: Boolean get() = disableTicks > 0 - override fun tick() { - super.tick() + override fun tickInner() { + super.tickInner() if (disableTicks > 0) { disableTicks-- diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/button/Buttons.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/button/Buttons.kt index e5f01598c..c9ab1997f 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/button/Buttons.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/button/Buttons.kt @@ -41,8 +41,8 @@ fun > makeDeviceControls( redstone: IPlayerInputWithFeedback? = null ): EditablePanel { val panel = object : EditablePanel(screen, parent, width = LargeEnumRectangleButtonPanel.SIZE, height = 0f, x = parent.width + 3f) { - override fun tick() { - super.tick() + override fun tickInner() { + super.tickInner() x = parent.width + 3f y = 0f } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/input/EditBoxPanel.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/input/EditBoxPanel.kt index 050256363..2bdebef73 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/input/EditBoxPanel.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/input/EditBoxPanel.kt @@ -36,8 +36,8 @@ open class EditBoxPanel( new_widget.value = old_widget.value } - override fun tick() { - super.tick() + override fun tickInner() { + super.tickInner() widget?.tick() } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/input/NetworkNumberInputPanel.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/input/NetworkNumberInputPanel.kt index 4e9c1cbf6..b92c12a83 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/input/NetworkNumberInputPanel.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/input/NetworkNumberInputPanel.kt @@ -55,8 +55,8 @@ open class NetworkNumberInputPanel @JvmOverloads constructor( return super.mouseClickedInner(x, y, button) } - override fun tick() { - super.tick() + override fun tickInner() { + super.tickInner() if (isFocused) { if (!isAvailable.asBoolean) { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/input/NetworkedStringInputPanel.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/input/NetworkedStringInputPanel.kt index 799d6fd52..4026ccdaa 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/input/NetworkedStringInputPanel.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/input/NetworkedStringInputPanel.kt @@ -34,8 +34,8 @@ open class NetworkedStringInputPanel( backend.accept(new) } - override fun tick() { - super.tick() + override fun tickInner() { + super.tickInner() if (milliTime >= lastChanges) { text = backend.value diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/input/TextInputPanel.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/input/TextInputPanel.kt index 2fd29f08e..f9c850265 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/input/TextInputPanel.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/input/TextInputPanel.kt @@ -182,8 +182,8 @@ open class TextInputPanel( private var snapshotTimer: Long? = null - override fun tick() { - super.tick() + override fun tickInner() { + super.tickInner() if (snapshotTimer != null && snapshotTimer!! <= milliTime) { pushbackSnapshot() diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/slot/FoldableSlotPanel.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/slot/FoldableSlotPanel.kt index 7adfe743b..a74d550bb 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/slot/FoldableSlotPanel.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/slot/FoldableSlotPanel.kt @@ -64,8 +64,8 @@ open class FoldableSlotPanel, out T : Slot> @JvmOverloa remove() } - override fun tick() { - super.tick() + override fun tickInner() { + super.tickInner() x = this@FoldableSlotPanel.absoluteX - dockPadding.left y = this@FoldableSlotPanel.absoluteY - dockPadding.top @@ -92,8 +92,8 @@ open class FoldableSlotPanel, out T : Slot> @JvmOverloa hoverPanel?.remove() } - override fun tick() { - super.tick() + override fun tickInner() { + super.tickInner() val hoveringSince = hoveringSince diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/storage/StoragePowerSupplierScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/storage/StoragePowerSupplierScreen.kt index d50b6a97c..5eda45a80 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/storage/StoragePowerSupplierScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/storage/StoragePowerSupplierScreen.kt @@ -42,8 +42,8 @@ class StoragePowerSupplierScreen(menu: StoragePowerSupplierMenu, inventory: Inve dock = Dock.TOP } - override fun tick() { - super.tick() + override fun tickInner() { + super.tickInner() text = TranslatableComponent( "otm.item.power.passed", @@ -57,8 +57,8 @@ class StoragePowerSupplierScreen(menu: StoragePowerSupplierMenu, inventory: Inve dock = Dock.TOP } - override fun tick() { - super.tick() + override fun tickInner() { + super.tickInner() text = TranslatableComponent( "otm.gui.power_supplier.active_nodes", diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/tech/AndroidStationScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/tech/AndroidStationScreen.kt index 7e621b80b..1d3fbfa6e 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/tech/AndroidStationScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/tech/AndroidStationScreen.kt @@ -551,8 +551,8 @@ class AndroidStationScreen constructor(p_97741_: AndroidStationMenu, p_97742_: I return super.mouseClickedInner(x, y, button) } - override fun tick() { - super.tick() + override fun tickInner() { + super.tickInner() if (isPreview && !layoutInvalidated) { if (firstTick) { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/tech/EnergyCounterScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/tech/EnergyCounterScreen.kt index e500f4ce8..ee5cb47e1 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/tech/EnergyCounterScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/tech/EnergyCounterScreen.kt @@ -17,8 +17,8 @@ class EnergyCounterScreen(menu: EnergyCounterMenu, inventory: Inventory, title: val frame = super.makeMainFrame()!! var label: Label = object : Label(this@EnergyCounterScreen, frame) { - override fun tick() { - super.tick() + override fun tickInner() { + super.tickInner() text = TranslatableComponent( "otm.item.power.passed", menu.passed.formatPower(formatAsReadable = ShiftPressedCond) @@ -30,8 +30,8 @@ class EnergyCounterScreen(menu: EnergyCounterMenu, inventory: Inventory, title: label.setDockMargin(4f, 0f, 0f, 0f) label = object : Label(this@EnergyCounterScreen, frame) { - override fun tick() { - super.tick() + override fun tickInner() { + super.tickInner() text = TranslatableComponent( "otm.item.power.average", menu.average.formatPower(formatAsReadable = ShiftPressedCond) @@ -43,8 +43,8 @@ class EnergyCounterScreen(menu: EnergyCounterMenu, inventory: Inventory, title: label.setDockMargin(4f, 0f, 0f, 0f) label = object : Label(this@EnergyCounterScreen, frame) { - override fun tick() { - super.tick() + override fun tickInner() { + super.tickInner() text = TranslatableComponent( "otm.item.power.last_20_ticks", menu.last20Ticks.formatPower(formatAsReadable = ShiftPressedCond) @@ -56,8 +56,8 @@ class EnergyCounterScreen(menu: EnergyCounterMenu, inventory: Inventory, title: label.setDockMargin(4f, 0f, 0f, 0f) label = object : Label(this@EnergyCounterScreen, frame) { - override fun tick() { - super.tick() + override fun tickInner() { + super.tickInner() text = TranslatableComponent( "otm.item.power.last_tick", menu.lastTick.formatPower(formatAsReadable = ShiftPressedCond) @@ -69,8 +69,8 @@ class EnergyCounterScreen(menu: EnergyCounterMenu, inventory: Inventory, title: label.setDockMargin(4f, 0f, 0f, 0f) label = object : Label(this@EnergyCounterScreen, frame) { - override fun tick() { - super.tick() + override fun tickInner() { + super.tickInner() text = TranslatableComponent( "block.overdrive_that_matters.energy_counter.facing", diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/widget/ProgressGaugePanel.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/widget/ProgressGaugePanel.kt index bd54da6eb..530506aa3 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/widget/ProgressGaugePanel.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/widget/ProgressGaugePanel.kt @@ -49,7 +49,7 @@ open class ProgressGaugePanel @JvmOverloads constructor( } override fun innerRender(stack: PoseStack, mouseX: Float, mouseY: Float, partialTick: Float) { - if (widget.isStuck() && tick % 40 <= 20) { + if (widget.isStuck() && tickCount % 40 <= 20) { RenderSystem.setShaderColor(0.75f, 0.4f, 0.4f, 1f) } @@ -63,7 +63,7 @@ open class ProgressGaugePanel @JvmOverloads constructor( GAUGE_FOREGROUND.renderPartial(stack, height = height, width = width) } - if (widget.isStuck() && tick % 40 <= 20) { + if (widget.isStuck() && tickCount % 40 <= 20) { RenderSystem.setShaderColor(1f, 1f, 1f, 1f) } }