diff options
Diffstat (limited to 'src/main/java/gregtech/common/covers/GT_Cover_Shutter.java')
-rw-r--r-- | src/main/java/gregtech/common/covers/GT_Cover_Shutter.java | 131 |
1 files changed, 55 insertions, 76 deletions
diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Shutter.java b/src/main/java/gregtech/common/covers/GT_Cover_Shutter.java index 2b15359d64..6a3df96c5a 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Shutter.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Shutter.java @@ -1,17 +1,17 @@ package gregtech.common.covers; -import gregtech.api.enums.GT_Values; -import gregtech.api.gui.GT_GUICover; -import gregtech.api.gui.widgets.GT_GuiIcon; -import gregtech.api.gui.widgets.GT_GuiIconCheckButton; +import com.gtnewhorizons.modularui.api.screen.ModularWindow; +import com.gtnewhorizons.modularui.common.widget.TextWidget; +import gregtech.api.gui.modularui.GT_CoverUIBuildContext; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.ICoverable; import gregtech.api.interfaces.tileentity.IMachineProgress; import gregtech.api.metatileentity.BaseMetaPipeEntity; -import gregtech.api.net.GT_Packet_TileEntityCover; import gregtech.api.util.GT_CoverBehavior; import gregtech.api.util.GT_Utility; -import net.minecraft.client.gui.GuiButton; +import gregtech.api.util.ISerializableObject; +import gregtech.common.gui.modularui.widget.CoverDataControllerWidget; +import gregtech.common.gui.modularui.widget.CoverDataFollower_ToggleButtonWidget; import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.fluids.Fluid; @@ -149,93 +149,72 @@ public class GT_Cover_Shutter extends GT_CoverBehavior { return 0; } - /** - * GUI Stuff - */ + // GUI stuff + @Override public boolean hasCoverGUI() { return true; } @Override - public Object getClientGUI(byte aSide, int aCoverID, int coverData, ICoverable aTileEntity) { - return new GUI(aSide, aCoverID, coverData, aTileEntity); + public boolean useModularUI() { + return true; } - private class GUI extends GT_GUICover { - private final byte side; - private final int coverID; - private int coverVariable; + @Override + public ModularWindow createWindow(GT_CoverUIBuildContext buildContext) { + return new ShutterUIFactory(buildContext).createWindow(); + } + + private class ShutterUIFactory extends UIFactory { private static final int startX = 10; private static final int startY = 25; private static final int spaceX = 18; private static final int spaceY = 18; - private final int textColor = this.getTextColorOrDefault("text", 0xFF555555); - - public GUI(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - super(aTileEntity, 176, 107, GT_Utility.intToStack(aCoverID)); - this.side = aSide; - this.coverID = aCoverID; - this.coverVariable = aCoverVariable; - - new GT_GuiIconCheckButton(this, 0, startX + spaceX * 0, startY + spaceY * 0, GT_GuiIcon.CHECKMARK, null); - new GT_GuiIconCheckButton(this, 1, startX + spaceX * 0, startY + spaceY * 1, GT_GuiIcon.CHECKMARK, null); - new GT_GuiIconCheckButton(this, 2, startX + spaceX * 0, startY + spaceY * 2, GT_GuiIcon.CHECKMARK, null); - new GT_GuiIconCheckButton(this, 3, startX + spaceX * 0, startY + spaceY * 3, GT_GuiIcon.CHECKMARK, null); + public ShutterUIFactory(GT_CoverUIBuildContext buildContext) { + super(buildContext); } + @SuppressWarnings("PointlessArithmeticExpression") @Override - public void drawExtras(int mouseX, int mouseY, float parTicks) { - super.drawExtras(mouseX, mouseY, parTicks); - this.fontRendererObj.drawString( - GT_Utility.trans("082", "Open if work enabled"), - 3 + startX + spaceX * 1, - 4 + startY + spaceY * 0, - textColor); - this.fontRendererObj.drawString( - GT_Utility.trans("083", "Open if work disabled"), - 3 + startX + spaceX * 1, - 4 + startY + spaceY * 1, - textColor); - this.fontRendererObj.drawString( - GT_Utility.trans("084", "Only Output allowed"), - 3 + startX + spaceX * 1, - 4 + startY + spaceY * 2, - textColor); - this.fontRendererObj.drawString( - GT_Utility.trans("085", "Only Input allowed"), - 3 + startX + spaceX * 1, - 4 + startY + spaceY * 3, - textColor); - } - - @Override - protected void onInitGui(int guiLeft, int guiTop, int gui_width, int gui_height) { - updateButtons(); - } - - @Override - public void buttonClicked(GuiButton btn) { - if (!isEnabled(btn.id)) { - coverVariable = getNewCoverVariable(btn.id, ((GT_GuiIconCheckButton) btn).isChecked()); - GT_Values.NW.sendToServer(new GT_Packet_TileEntityCover(side, coverID, coverVariable, tile)); - } - updateButtons(); - } - - private void updateButtons() { - for (Object o : buttonList) - ((GT_GuiIconCheckButton) o).setChecked(isEnabled(((GT_GuiIconCheckButton) o).id)); - } - - private int getNewCoverVariable(int id, boolean checked) { - return id; - } - - private boolean isEnabled(int id) { - return coverVariable == id; + protected void addUIWidgets(ModularWindow.Builder builder) { + builder.widget(new CoverDataControllerWidget.CoverDataIndexedControllerWidget_ToggleButtons<>( + this::getCoverData, + this::setCoverData, + GT_Cover_Shutter.this, + (index, coverData) -> index == convert(coverData), + (index, coverData) -> new ISerializableObject.LegacyCoverData(index)) + .addToggleButton( + 0, + CoverDataFollower_ToggleButtonWidget.ofCheck(), + widget -> widget.setPos(spaceX * 0, spaceY * 0)) + .addToggleButton( + 1, + CoverDataFollower_ToggleButtonWidget.ofCheck(), + widget -> widget.setPos(spaceX * 0, spaceY * 1)) + .addToggleButton( + 2, + CoverDataFollower_ToggleButtonWidget.ofCheck(), + widget -> widget.setPos(spaceX * 0, spaceY * 2)) + .addToggleButton( + 3, + CoverDataFollower_ToggleButtonWidget.ofCheck(), + widget -> widget.setPos(spaceX * 0, spaceY * 3)) + .setPos(startX, startY)) + .widget(new TextWidget(GT_Utility.trans("082", "Open if work enabled")) + .setDefaultColor(COLOR_TEXT_GRAY.get()) + .setPos(3 + startX + spaceX * 1, 4 + startY + spaceY * 0)) + .widget(new TextWidget(GT_Utility.trans("083", "Open if work disabled")) + .setDefaultColor(COLOR_TEXT_GRAY.get()) + .setPos(3 + startX + spaceX * 1, 4 + startY + spaceY * 1)) + .widget(new TextWidget(GT_Utility.trans("084", "Only Output allowed")) + .setDefaultColor(COLOR_TEXT_GRAY.get()) + .setPos(3 + startX + spaceX * 1, 4 + startY + spaceY * 2)) + .widget(new TextWidget(GT_Utility.trans("085", "Only Input allowed")) + .setDefaultColor(COLOR_TEXT_GRAY.get()) + .setPos(3 + startX + spaceX * 1, 4 + startY + spaceY * 3)); } } } |