From e9e7d6ccae0b125839a95829043d9f8a20ede89b Mon Sep 17 00:00:00 2001 From: Glease <4586901+Glease@users.noreply.github.com> Date: Mon, 9 Sep 2024 03:28:04 +0800 Subject: scrollable multiblock status display (#3089) Co-authored-by: Martin Robertz --- .../api/metatileentity/implementations/MTEMultiBlockBase.java | 7 ++++++- .../api/implementations/KubaTechGTMultiBlockBase.java | 7 ++++++- .../gregtech/multiblock/MTEExtremeIndustrialGreenhouse.java | 10 ++++++++-- .../gregtech/multiblock/MTEMegaIndustrialApiary.java | 11 +++++++++-- .../thing/metaTileEntity/multi/base/TTMultiblockBase.java | 7 ++++++- .../metaTileEntity/multi/godforge_modules/MTEBaseModule.java | 7 ++++++- 6 files changed, 41 insertions(+), 8 deletions(-) (limited to 'src/main') diff --git a/src/main/java/gregtech/api/metatileentity/implementations/MTEMultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/MTEMultiBlockBase.java index ab70cf25ae..bba64cbd8c 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/MTEMultiBlockBase.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/MTEMultiBlockBase.java @@ -54,6 +54,7 @@ import com.gtnewhorizons.modularui.common.internal.network.NetworkUtils; import com.gtnewhorizons.modularui.common.widget.DrawableWidget; import com.gtnewhorizons.modularui.common.widget.DynamicPositionedColumn; import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget; +import com.gtnewhorizons.modularui.common.widget.Scrollable; import com.gtnewhorizons.modularui.common.widget.SlotWidget; import com.gtnewhorizons.modularui.common.widget.TextWidget; @@ -2448,7 +2449,11 @@ public abstract class MTEMultiBlockBase extends MetaTileEntity final DynamicPositionedColumn screenElements = new DynamicPositionedColumn(); drawTexts(screenElements, inventorySlot); - builder.widget(screenElements); + builder.widget( + new Scrollable().setVerticalScroll() + .widget(screenElements.setPos(10, 0)) + .setPos(0, 7) + .setSize(190, 79)); setMachineModeIcons(); builder.widget(createPowerSwitchButton(builder)) diff --git a/src/main/java/kubatech/api/implementations/KubaTechGTMultiBlockBase.java b/src/main/java/kubatech/api/implementations/KubaTechGTMultiBlockBase.java index d8f12126c1..a6305b2f5f 100644 --- a/src/main/java/kubatech/api/implementations/KubaTechGTMultiBlockBase.java +++ b/src/main/java/kubatech/api/implementations/KubaTechGTMultiBlockBase.java @@ -53,6 +53,7 @@ import com.gtnewhorizons.modularui.common.widget.Column; import com.gtnewhorizons.modularui.common.widget.DrawableWidget; import com.gtnewhorizons.modularui.common.widget.DynamicPositionedColumn; import com.gtnewhorizons.modularui.common.widget.DynamicPositionedRow; +import com.gtnewhorizons.modularui.common.widget.Scrollable; import com.gtnewhorizons.modularui.common.widget.SlotWidget; import gregtech.api.enums.GTValues; @@ -311,7 +312,11 @@ public abstract class KubaTechGTMultiBlockBase 0 ? slotWidgets.get(0) : null); - builder.widget(screenElements); + builder.widget( + new Scrollable().setVerticalScroll() + .widget(screenElements.setPos(10, 0)) + .setPos(0, 7) + .setSize(190, 79)); builder.widget(createPowerSwitchButton(builder)) .widget(createVoidExcessButton(builder)) diff --git a/src/main/java/kubatech/tileentity/gregtech/multiblock/MTEExtremeIndustrialGreenhouse.java b/src/main/java/kubatech/tileentity/gregtech/multiblock/MTEExtremeIndustrialGreenhouse.java index 03ddadd269..8716a1a3bb 100644 --- a/src/main/java/kubatech/tileentity/gregtech/multiblock/MTEExtremeIndustrialGreenhouse.java +++ b/src/main/java/kubatech/tileentity/gregtech/multiblock/MTEExtremeIndustrialGreenhouse.java @@ -87,6 +87,7 @@ import com.gtnewhorizons.modularui.common.widget.DrawableWidget; import com.gtnewhorizons.modularui.common.widget.DynamicPositionedColumn; import com.gtnewhorizons.modularui.common.widget.DynamicPositionedRow; import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget; +import com.gtnewhorizons.modularui.common.widget.Scrollable; import com.gtnewhorizons.modularui.common.widget.SlotWidget; import com.gtnewhorizons.modularui.common.widget.TextWidget; @@ -1017,12 +1018,17 @@ public class MTEExtremeIndustrialGreenhouse extends KubaTechGTMultiBlockBase isInInventory, i -> isInInventory = i) .setTextureGetter(i -> i == 0 ? new Text("Inventory") : new Text("Status")) .setBackground(GTUITextures.BUTTON_STANDARD) - .setPos(140, 4) + .setPos(140, 91) .setSize(55, 16)); final DynamicPositionedColumn screenElements = new DynamicPositionedColumn(); drawTexts(screenElements, null); - builder.widget(screenElements.setEnabled(w -> !isInInventory)); + builder.widget( + new Scrollable().setVerticalScroll() + .widget(screenElements.setPos(10, 0)) + .setPos(0, 7) + .setSize(190, 79) + .setEnabled(w -> !isInInventory)); builder.widget(createPowerSwitchButton(builder)) .widget(createVoidExcessButton(builder)) diff --git a/src/main/java/kubatech/tileentity/gregtech/multiblock/MTEMegaIndustrialApiary.java b/src/main/java/kubatech/tileentity/gregtech/multiblock/MTEMegaIndustrialApiary.java index 6a8f34e2da..b6c1d845c8 100644 --- a/src/main/java/kubatech/tileentity/gregtech/multiblock/MTEMegaIndustrialApiary.java +++ b/src/main/java/kubatech/tileentity/gregtech/multiblock/MTEMegaIndustrialApiary.java @@ -90,6 +90,7 @@ import com.gtnewhorizons.modularui.common.widget.DrawableWidget; import com.gtnewhorizons.modularui.common.widget.DynamicPositionedColumn; import com.gtnewhorizons.modularui.common.widget.DynamicPositionedRow; import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget; +import com.gtnewhorizons.modularui.common.widget.Scrollable; import com.gtnewhorizons.modularui.common.widget.SlotWidget; import com.gtnewhorizons.modularui.common.widget.TextWidget; @@ -737,16 +738,22 @@ public class MTEMegaIndustrialApiary extends KubaTechGTMultiBlockBase isInInventory)); + builder.widget( new CycleButtonWidget().setToggle(() -> isInInventory, i -> isInInventory = i) .setTextureGetter(i -> i == 0 ? new Text("Inventory") : new Text("Status")) .setBackground(GTUITextures.BUTTON_STANDARD) - .setPos(140, 4) + .setPos(140, 91) .setSize(55, 16)); final DynamicPositionedColumn screenElements = new DynamicPositionedColumn(); drawTexts(screenElements, null); - builder.widget(screenElements.setEnabled(w -> !isInInventory)); + builder.widget( + new Scrollable().setVerticalScroll() + .widget(screenElements.setPos(10, 0)) + .setPos(0, 7) + .setSize(190, 79) + .setEnabled(w -> !isInInventory)); builder.widget(createPowerSwitchButton(builder)) .widget(createVoidExcessButton(builder)) diff --git a/src/main/java/tectech/thing/metaTileEntity/multi/base/TTMultiblockBase.java b/src/main/java/tectech/thing/metaTileEntity/multi/base/TTMultiblockBase.java index 22a2d38c0a..dab072e0a9 100644 --- a/src/main/java/tectech/thing/metaTileEntity/multi/base/TTMultiblockBase.java +++ b/src/main/java/tectech/thing/metaTileEntity/multi/base/TTMultiblockBase.java @@ -54,6 +54,7 @@ import com.gtnewhorizons.modularui.common.widget.ButtonWidget; import com.gtnewhorizons.modularui.common.widget.DrawableWidget; import com.gtnewhorizons.modularui.common.widget.DynamicPositionedColumn; import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget; +import com.gtnewhorizons.modularui.common.widget.Scrollable; import com.gtnewhorizons.modularui.common.widget.SlotWidget; import com.gtnewhorizons.modularui.common.widget.TextWidget; import com.gtnewhorizons.modularui.common.widget.textfield.NumericWidget; @@ -2402,7 +2403,11 @@ public abstract class TTMultiblockBase extends MTEExtendedPowerMultiBlockBase