diff --git a/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatterPanelScreen.java b/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatterPanelScreen.java index a99a31470..159bbcd5b 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatterPanelScreen.java +++ b/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatterPanelScreen.java @@ -246,12 +246,12 @@ public class MatterPanelScreen extends MatteryScreen { var button = new ButtonPanel(this, task_frame, 0, 0, 40, 20, new TranslatableComponent("otm.container.matter_panel.close")); button.setDock(Dock.RIGHT); button.setDockMargin(2, 0, 0, 0); - button.bindOnPress(task_frame::remove); + button.bind(task_frame::remove); button = new ButtonPanel(this, task_frame, 0, 0, 80, 20, new TranslatableComponent("otm.container.matter_panel.cancel_task")); button.setDock(Dock.RIGHT); button.setDockMargin(2, 0, 0, 0); - button.bindOnPress(() -> { + button.bind(() -> { menu.requestTaskCancel(task.id()); task_frame.remove(); }); @@ -307,8 +307,8 @@ public class MatterPanelScreen extends MatteryScreen { var input_amount = new EditBoxPanel(this, row_2, 0, 0, 10, 20, new TextComponent("Input amount")) { @Override - protected void factorize(EditBox widget, boolean recreation) { - super.factorize(widget, recreation); + protected void configureNew(EditBox widget, boolean recreation) { + super.configureNew(widget, recreation); widget.setMaxLength(6); @@ -334,18 +334,18 @@ public class MatterPanelScreen extends MatteryScreen { }; var button = new ButtonPanel(this, row_1, 0, 0, 40, 20, new TranslatableComponent("otm.container.matter_panel.increase_by", 8)); - button.bindOnPress(() -> input_amount.increase(8)); + button.bind(() -> input_amount.increase(8)); button.setDock(Dock.RIGHT); button.setDockMargin(2, 0, 0, 0); button = new ButtonPanel(this, row_1, 0, 0, 40, 20, new TranslatableComponent("otm.container.matter_panel.increase_by", 64)); button.setDock(Dock.RIGHT); - button.bindOnPress(() -> input_amount.increase(64)); + button.bind(() -> input_amount.increase(64)); button.setDockMargin(2, 0, 0, 0); button = new ButtonPanel(this, row_1, 0, 0, 40, 20, new TranslatableComponent("otm.container.matter_panel.increase_by", 256)); button.setDock(Dock.RIGHT); - button.bindOnPress(() -> input_amount.increase(256)); + button.bind(() -> input_amount.increase(256)); button.setDockMargin(2, 0, 0, 0); slot.setDock(Dock.LEFT); @@ -353,28 +353,28 @@ public class MatterPanelScreen extends MatteryScreen { input_amount.setDock(Dock.FILL); button = new ButtonPanel(this, row_3, 0, 0, 40, 20, new TranslatableComponent("otm.container.matter_panel.decrease_by", 8)); - button.bindOnPress(() -> input_amount.increase(-8)); + button.bind(() -> input_amount.increase(-8)); button.setDock(Dock.RIGHT); button.setDockMargin(2, 0, 0, 0); button = new ButtonPanel(this, row_3, 0, 0, 40, 20, new TranslatableComponent("otm.container.matter_panel.decrease_by", 64)); button.setDock(Dock.RIGHT); - button.bindOnPress(() -> input_amount.increase(-64)); + button.bind(() -> input_amount.increase(-64)); button.setDockMargin(2, 0, 0, 0); button = new ButtonPanel(this, row_3, 0, 0, 40, 20, new TranslatableComponent("otm.container.matter_panel.decrease_by", 256)); button.setDock(Dock.RIGHT); - button.bindOnPress(() -> input_amount.increase(-256)); + button.bind(() -> input_amount.increase(-256)); button.setDockMargin(2, 0, 0, 0); button = new ButtonPanel(this, row_4, 0, 0, 40, 20, new TranslatableComponent("otm.container.matter_panel.cancel")); button.setDock(Dock.RIGHT); - button.bindOnPress(pattern_frame::remove); + button.bind(pattern_frame::remove); button.setDockMargin(2, 0, 0, 0); button = new ButtonPanel(this, row_4, 0, 0, 82, 20, new TranslatableComponent("otm.container.matter_panel.send")); button.setDock(Dock.RIGHT); - button.bindOnPress(() -> { + button.bind(() -> { int value = 1; try { diff --git a/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatteryScreen.java b/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatteryScreen.java index 22ad1d329..1ece8b919 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatteryScreen.java +++ b/src/main/java/ru/dbotthepony/mc/otm/client/screen/MatteryScreen.java @@ -220,9 +220,11 @@ public abstract class MatteryScreen extends AbstractConta var panel = panels.get(i); if (happen_to_click) { - panel.killFocus(); + panel.killFocusForEverythingExceptInner$overdrive_that_matters(); } else if (panel.mouseClickedChecked(p_97748_, p_97749_, p_97750_)) { happen_to_click = true; + } else { + panel.killFocusForEverythingExceptInner$overdrive_that_matters(); } } diff --git a/src/main/java/ru/dbotthepony/mc/otm/client/screen/panels/SupplierSlotPanel.java b/src/main/java/ru/dbotthepony/mc/otm/client/screen/panels/SupplierSlotPanel.java deleted file mode 100644 index e14c31b3e..000000000 --- a/src/main/java/ru/dbotthepony/mc/otm/client/screen/panels/SupplierSlotPanel.java +++ /dev/null @@ -1,27 +0,0 @@ -package ru.dbotthepony.mc.otm.client.screen.panels; - -import net.minecraft.world.item.ItemStack; -import ru.dbotthepony.mc.otm.client.screen.MatteryScreen; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; -import java.util.function.Supplier; - -public class SupplierSlotPanel extends AbstractSlotPanel { - protected Supplier stack_getter; - - public SupplierSlotPanel(@Nonnull MatteryScreen screen, @Nullable EditablePanel parent, float x, float y, float width, float height, Supplier supplier) { - super(screen, parent, x, y, width, height); - stack_getter = supplier; - } - - public SupplierSlotPanel(@Nonnull MatteryScreen screen, @Nullable EditablePanel parent, float x, float y, Supplier supplier) { - this(screen, parent, x, y, REGULAR_DIMENSIONS, REGULAR_DIMENSIONS, supplier); - } - - @Nonnull - @Override - protected ItemStack getItemStack() { - return stack_getter.get(); - } -} diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ScreenAndroidStation.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ScreenAndroidStation.kt index 2c737c549..a7c88d03f 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ScreenAndroidStation.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ScreenAndroidStation.kt @@ -201,7 +201,7 @@ class ScreenAndroidStation constructor(p_97741_: AndroidStationMenu, p_97742_: I bottom.dock = Dock.BOTTOM close.dock = Dock.LEFT - close.bindOnPress { research!!.remove() } + close.bind { research!!.remove() } bottom.setDockMargin(0f, 0f, 4f, 4f) canvas!!.setDockMargin(4f, 4f, 4f, 4f) @@ -230,7 +230,7 @@ class ScreenAndroidStation constructor(p_97741_: AndroidStationMenu, p_97742_: I SlotPanel(this, frame, menu.androidBattery, 38f, 17f) val button = ButtonPanel(this, frame, 38f, 69f, 124f, 20f, TranslatableComponent("otm.gui.android_research")) - button.bindOnPress(this::openResearchTree) + button.bind(this::openResearchTree) return frame } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ScreenDriveViewer.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ScreenDriveViewer.kt index 206f763a7..8e5673c8a 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ScreenDriveViewer.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ScreenDriveViewer.kt @@ -124,10 +124,10 @@ class ScreenDriveViewer(menu: MenuDriveViewer, inventory: Inventory, title: Comp val filter = menu.getFilter() if (filter != null) { - orCreateWidget.message = TranslatableComponent("otm.filter.match_nbt", if (filter.matchNbt) yes else no) - orCreateWidget.active = !isWidgetDisabled + widget?.message = TranslatableComponent("otm.filter.match_nbt", if (filter.matchNbt) yes else no) + widget?.active = !isWidgetDisabled } else { - orCreateWidget.active = false + widget?.active = false } } @@ -144,7 +144,8 @@ class ScreenDriveViewer(menu: MenuDriveViewer, inventory: Inventory, title: Comp !filter.matchNbt ) ) - disableFor(20) + + disableTicks = 20 } } } @@ -156,11 +157,10 @@ class ScreenDriveViewer(menu: MenuDriveViewer, inventory: Inventory, title: Comp val filter = menu.getFilter() if (filter != null) { - orCreateWidget.message = - TranslatableComponent("otm.filter.match_tag", if (filter.matchTag) yes else no) - orCreateWidget.active = !isWidgetDisabled + widget?.message = TranslatableComponent("otm.filter.match_tag", if (filter.matchTag) yes else no) + widget?.active = !isWidgetDisabled } else { - orCreateWidget.active = false + widget?.active = false } } @@ -177,7 +177,8 @@ class ScreenDriveViewer(menu: MenuDriveViewer, inventory: Inventory, title: Comp !filter.matchTag ) ) - disableFor(20) + + disableTicks = 20 } } } @@ -189,10 +190,10 @@ class ScreenDriveViewer(menu: MenuDriveViewer, inventory: Inventory, title: Comp val filter = menu.getFilter() if (filter != null) { - orCreateWidget.message = TranslatableComponent("otm.filter.blacklist", if (filter.isBlacklist) yes else no) - orCreateWidget.active = !isWidgetDisabled + widget?.message = TranslatableComponent("otm.filter.blacklist", if (filter.isBlacklist) yes else no) + widget?.active = !isWidgetDisabled } else { - orCreateWidget.active = false + widget?.active = false } } @@ -208,7 +209,8 @@ class ScreenDriveViewer(menu: MenuDriveViewer, inventory: Inventory, title: Comp !filter.isBlacklist ) ) - disableFor(20) + + disableTicks = 20 } } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ScreenEnergyCounter.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ScreenEnergyCounter.kt index 29aab8618..6e5e65f1e 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ScreenEnergyCounter.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ScreenEnergyCounter.kt @@ -17,11 +17,9 @@ class ScreenEnergyCounter(menu: MenuEnergyCounter, inventory: Inventory, title: var label: Label = object : Label(this@ScreenEnergyCounter, frame) { override fun tick() { super.tick() - setText( - TranslatableComponent( - "otm.item.power.passed", - FormattingHelper.formatPower(menu.passed.value) - ) + text = TranslatableComponent( + "otm.item.power.passed", + FormattingHelper.formatPower(menu.passed.value) ) } } @@ -32,11 +30,9 @@ class ScreenEnergyCounter(menu: MenuEnergyCounter, inventory: Inventory, title: label = object : Label(this@ScreenEnergyCounter, frame) { override fun tick() { super.tick() - setText( - TranslatableComponent( - "otm.item.power.average", - FormattingHelper.formatPower(menu.average.value) - ) + text = TranslatableComponent( + "otm.item.power.average", + FormattingHelper.formatPower(menu.average.value) ) } } @@ -47,11 +43,9 @@ class ScreenEnergyCounter(menu: MenuEnergyCounter, inventory: Inventory, title: label = object : Label(this@ScreenEnergyCounter, frame) { override fun tick() { super.tick() - setText( - TranslatableComponent( - "otm.item.power.last_20_ticks", - FormattingHelper.formatPower(menu.last20Ticks.value) - ) + text = TranslatableComponent( + "otm.item.power.last_20_ticks", + FormattingHelper.formatPower(menu.last20Ticks.value) ) } } @@ -62,11 +56,9 @@ class ScreenEnergyCounter(menu: MenuEnergyCounter, inventory: Inventory, title: label = object : Label(this@ScreenEnergyCounter, frame) { override fun tick() { super.tick() - setText( - TranslatableComponent( - "otm.item.power.last_tick", - FormattingHelper.formatPower(menu.lastTick.value) - ) + text = TranslatableComponent( + "otm.item.power.last_tick", + FormattingHelper.formatPower(menu.lastTick.value) ) } } @@ -78,11 +70,9 @@ class ScreenEnergyCounter(menu: MenuEnergyCounter, inventory: Inventory, title: override fun tick() { super.tick() - setText( - TranslatableComponent( - "block.overdrive_that_matters.energy_counter.facing", - menu.inputDirection.value - ) + text = TranslatableComponent( + "block.overdrive_that_matters.energy_counter.facing", + menu.inputDirection.value ) } } @@ -93,7 +83,7 @@ class ScreenEnergyCounter(menu: MenuEnergyCounter, inventory: Inventory, title: val button = ButtonPanel(this, frame, 0f, 0f, 0f, 20f, TranslatableComponent("block.overdrive_that_matters.energy_counter.switch")) button.dock = Dock.TOP button.setDockMargin(4f, 0f, 4f, 0f) - button.bindOnPress { menu.switchDirection.userInput() } + button.bind { menu.switchDirection.userInput() } return frame } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ScreenMatterBottler.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ScreenMatterBottler.kt index fd1c2d319..d9cb1b05b 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ScreenMatterBottler.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ScreenMatterBottler.kt @@ -35,7 +35,7 @@ class ScreenMatterBottler(menu: MenuMatterBottler, inventory: Inventory, title: progress = ProgressGaugePanel(this, frame, menu.progressWidget, 90f, PROGRESS_ARROW_TOP) val mode = ButtonPanel(this, frame, 46f, 69f, 100f, 20f, TranslatableComponent("otm.matter_bottler.switch_mode")) - mode.bindOnPress { menu.workFlow.switchValue() } + mode.bind { menu.workFlow.switchValue() } return frame } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/ButtonPanel.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/ButtonPanel.kt index bfd73ca46..aa5a56eac 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/ButtonPanel.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/ButtonPanel.kt @@ -1,34 +1,45 @@ -package ru.dbotthepony.mc.otm.client.screen.panels; +package ru.dbotthepony.mc.otm.client.screen.panels -import com.mojang.blaze3d.vertex.PoseStack; -import net.minecraft.client.gui.components.Button; -import net.minecraft.network.chat.Component; -import ru.dbotthepony.mc.otm.client.screen.MatteryScreen; +import net.minecraft.client.gui.components.Button +import net.minecraft.client.gui.components.Button.OnPress +import net.minecraft.network.chat.Component +import ru.dbotthepony.mc.otm.client.screen.MatteryScreen -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +open class ButtonPanel( + screen: MatteryScreen<*>, + parent: EditablePanel?, + x: Float = 0f, + y: Float = 0f, + width: Float = 40f, + height: Float = 20f, + label: Component +) : MinecraftWidgetPanel