aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authormiozune <miozune@gmail.com>2022-12-12 15:15:43 +0900
committerGitHub <noreply@github.com>2022-12-12 07:15:43 +0100
commit271b177799b1d9ba7d66c575caf4b7bccd6b9357 (patch)
tree8eef75e928feaa3d6cddb0949921c3ef121be791 /src/main/java
parent889d0fc3c5a1235aaac6df9be02d496078cfe44f (diff)
downloadGT5-Unofficial-271b177799b1d9ba7d66c575caf4b7bccd6b9357.tar.gz
GT5-Unofficial-271b177799b1d9ba7d66c575caf4b7bccd6b9357.tar.bz2
GT5-Unofficial-271b177799b1d9ba7d66c575caf4b7bccd6b9357.zip
Rewrite GUIs with ModularUI (#110)
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/NeutronSensor.java99
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java46
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java42
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LargeTurbineBase.java8
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputer.java32
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputerPP.java32
-rw-r--r--src/main/java/goodgenerator/client/GUI/GG_UITextures.java16
-rw-r--r--src/main/java/goodgenerator/client/GUI/LargeFusionComputerGUIClient.java35
-rw-r--r--src/main/java/goodgenerator/client/GUI/NeutronActivatorGUIClient.java43
-rw-r--r--src/main/java/goodgenerator/client/GUI/NeutronSensorGUIClient.java121
-rw-r--r--src/main/java/goodgenerator/client/GUI/YOTTankGUIClient.java44
-rw-r--r--src/main/java/goodgenerator/common/container/NeutronActivatorGUIContainer.java79
-rw-r--r--src/main/java/goodgenerator/common/container/NeutronSensorGUIContainer.java12
-rw-r--r--src/main/java/goodgenerator/common/container/YOTTankGUIContainer.java138
-rw-r--r--src/main/java/goodgenerator/crossmod/nei/ComponentAssemblyLineHandler.java2
-rw-r--r--src/main/java/goodgenerator/crossmod/nei/ExtremeHeatExchangerHandler.java20
-rw-r--r--src/main/java/goodgenerator/crossmod/nei/IMCForNEI.java2
-rw-r--r--src/main/java/goodgenerator/crossmod/nei/NEI_Config.java1
-rw-r--r--src/main/java/goodgenerator/crossmod/nei/NeutronActivatorHandler.java17
-rw-r--r--src/main/java/goodgenerator/crossmod/nei/PreciseAssemblerHandler.java33
-rw-r--r--src/main/java/goodgenerator/main/GoodGenerator.java7
-rw-r--r--src/main/java/goodgenerator/network/MessageOpenNeutronSensorGUI.java49
-rw-r--r--src/main/java/goodgenerator/network/MessageSetNeutronSensorData.java50
-rw-r--r--src/main/java/goodgenerator/util/MyRecipeAdder.java226
24 files changed, 345 insertions, 809 deletions
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/NeutronSensor.java b/src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/NeutronSensor.java
index 6a0f7d5d8f..e176e103b7 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/NeutronSensor.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/NeutronSensor.java
@@ -1,10 +1,17 @@
package goodgenerator.blocks.tileEntity.GTMetaTileEntity;
-import goodgenerator.client.GUI.NeutronSensorGUIClient;
-import goodgenerator.common.container.NeutronSensorGUIContainer;
-import goodgenerator.main.GoodGenerator;
-import goodgenerator.network.MessageOpenNeutronSensorGUI;
+import com.gtnewhorizons.modularui.api.drawable.Text;
+import com.gtnewhorizons.modularui.api.math.Alignment;
+import com.gtnewhorizons.modularui.api.math.Color;
+import com.gtnewhorizons.modularui.api.screen.ModularWindow;
+import com.gtnewhorizons.modularui.api.screen.UIBuildContext;
+import com.gtnewhorizons.modularui.common.widget.TextWidget;
+import com.gtnewhorizons.modularui.common.widget.textfield.TextFieldWidget;
+import goodgenerator.blocks.tileEntity.NeutronActivator;
+import goodgenerator.util.CharExchanger;
import gregtech.api.enums.Textures;
+import gregtech.api.gui.modularui.GT_UIInfos;
+import gregtech.api.gui.modularui.GT_UITextures;
import gregtech.api.interfaces.IIconContainer;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
@@ -12,10 +19,9 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch;
import gregtech.api.render.TextureFactory;
import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.entity.player.EntityPlayerMP;
-import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.StatCollector;
public class NeutronSensor extends GT_MetaTileEntity_Hatch {
@@ -81,29 +87,10 @@ public class NeutronSensor extends GT_MetaTileEntity_Hatch {
}
@Override
- public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
- return new NeutronSensorGUIClient(
- aPlayerInventory,
- aBaseMetaTileEntity,
- GoodGenerator.MOD_ID + ":textures/gui/NeutronSensorGUI.png",
- this.texts);
- }
-
- @Override
- public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
- return new NeutronSensorGUIContainer(aPlayerInventory, aBaseMetaTileEntity);
- }
-
- @Override
public boolean onRightclick(
IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ) {
- if (aBaseMetaTileEntity.isClientSide()) return true;
- if (aSide == aBaseMetaTileEntity.getFrontFacing() && aPlayer instanceof EntityPlayerMP) {
- GoodGenerator.CHANNEL.sendTo(
- new MessageOpenNeutronSensorGUI(aBaseMetaTileEntity, texts), (EntityPlayerMP) aPlayer);
- return true;
- }
- return false;
+ GT_UIInfos.openGTTileEntityUI(aBaseMetaTileEntity, aPlayer);
+ return true;
}
public void setText(String text) {
@@ -165,4 +152,62 @@ public class NeutronSensor extends GT_MetaTileEntity_Hatch {
public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
return false;
}
+
+ @Override
+ public boolean useModularUI() {
+ return true;
+ }
+
+ @Override
+ public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildContext) {
+ TextFieldWidget textField = new TextFieldWidget();
+ builder.widget(textField
+ .setGetter(this::getText)
+ .setSetter(this::setText)
+ .setValidator(str -> isValidExpression(str)
+ ? str
+ : textField.getLastText().size() > 0
+ ? textField.getLastText().get(0)
+ : "")
+ .setFocusOnGuiOpen(true)
+ .setTextColor(Color.WHITE.dark(1))
+ .setTextAlignment(Alignment.CenterLeft)
+ .setBackground(GT_UITextures.BACKGROUND_TEXT_FIELD.withOffset(-1, -1, 2, 2))
+ .setPos(8, 48)
+ .setSize(100, 18))
+ .widget(new TextWidget(StatCollector.translateToLocal("gui.NeutronSensor.0"))
+ .setDefaultColor(COLOR_TEXT_GRAY.get())
+ .setTextAlignment(Alignment.CenterLeft)
+ .setPos(8, 8))
+ .widget(new TextWidget(StatCollector.translateToLocal("gui.NeutronSensor.1"))
+ .setDefaultColor(COLOR_TEXT_GRAY.get())
+ .setPos(8, 32))
+ .widget(TextWidget.dynamicText(() -> isValidExpression(textField.getText())
+ ? new Text(StatCollector.translateToLocal("gui.NeutronSensor.2")).color(0x077d02)
+ : new Text(StatCollector.translateToLocal("gui.NeutronSensor.3"))
+ .color(COLOR_TEXT_RED.get()))
+ .setSynced(false)
+ .setPos(120, 53));
+ }
+
+ private boolean isValidExpression(String exp) {
+ return isValidSuffix(exp) && CharExchanger.isValidCompareExpress(NeutronActivator.rawProcessExp(exp));
+ }
+
+ private boolean isValidSuffix(String exp) {
+ int index;
+ index = exp.length() - 1;
+ if (index < 0) return false;
+ if (exp.charAt(index) != 'V' && exp.charAt(index) != 'v') return false;
+ index = exp.length() - 2;
+ if (index < 0) return false;
+ if (exp.charAt(index) != 'E' && exp.charAt(index) != 'e') return false;
+ index = exp.length() - 3;
+ if (index < 0) return false;
+ return exp.charAt(index) == 'M'
+ || exp.charAt(index) == 'm'
+ || exp.charAt(index) == 'K'
+ || exp.charAt(index) == 'k'
+ || Character.isDigit(exp.charAt(index));
+ }
}
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java b/src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java
index 41e4ad6124..41e715b65d 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java
@@ -10,11 +10,13 @@ import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructa
import com.gtnewhorizon.structurelib.structure.IItemSource;
import com.gtnewhorizon.structurelib.structure.IStructureDefinition;
import com.gtnewhorizon.structurelib.structure.StructureDefinition;
+import com.gtnewhorizons.modularui.common.widget.DynamicPositionedColumn;
+import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget;
+import com.gtnewhorizons.modularui.common.widget.SlotWidget;
+import com.gtnewhorizons.modularui.common.widget.TextWidget;
import goodgenerator.blocks.tileEntity.GTMetaTileEntity.NeutronAccelerator;
import goodgenerator.blocks.tileEntity.GTMetaTileEntity.NeutronSensor;
import goodgenerator.blocks.tileEntity.base.GT_MetaTileEntity_TooltipMultiBlockBase_EM;
-import goodgenerator.client.GUI.NeutronActivatorGUIClient;
-import goodgenerator.common.container.NeutronActivatorGUIContainer;
import goodgenerator.loader.Loaders;
import goodgenerator.util.CharExchanger;
import goodgenerator.util.DescTextLocalization;
@@ -37,7 +39,6 @@ import ic2.core.Ic2Items;
import java.util.*;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayerMP;
-import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumChatFormatting;
@@ -144,16 +145,6 @@ public class NeutronActivator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
}
@Override
- public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
- return new NeutronActivatorGUIClient(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "EMDisplay.png");
- }
-
- @Override
- public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
- return new NeutronActivatorGUIContainer(aPlayerInventory, aBaseMetaTileEntity);
- }
-
- @Override
public void loadNBTData(NBTTagCompound aNBT) {
eV = aNBT.getInteger("mKeV");
mCeil = aNBT.getInteger("mCeil");
@@ -341,7 +332,7 @@ public class NeutronActivator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
}
}
- protected String rawProcessExp(String exp) {
+ public static String rawProcessExp(String exp) {
StringBuilder ret = new StringBuilder();
for (char c : exp.toCharArray()) {
if (exp.length() - ret.length() == 3) {
@@ -447,6 +438,33 @@ public class NeutronActivator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
casingAmount++;
}
+ @Override
+ protected void drawTexts(DynamicPositionedColumn screenElements, SlotWidget inventorySlot) {
+ super.drawTexts(screenElements, inventorySlot);
+
+ screenElements
+ .widget(new TextWidget(StatCollector.translateToLocal("gui.NeutronActivator.0"))
+ .setDefaultColor(COLOR_TEXT_WHITE.get()))
+ .widget(TextWidget.dynamicString(() -> processNumber(eV) + "eV")
+ .setSynced(false)
+ .setDefaultColor(COLOR_TEXT_WHITE.get())
+ .setEnabled(widget -> getBaseMetaTileEntity().getErrorDisplayID() == 0))
+ .widget(new FakeSyncWidget.IntegerSyncer(() -> eV, val -> eV = val));
+ }
+
+ private String processNumber(int num) {
+ float num2;
+ num2 = ((float) num) / 1000F;
+ if (num2 <= 0) {
+ return String.format("%d", num);
+ }
+ if (num2 < 1000.0) {
+ return String.format("%.1fK", num2);
+ }
+ num2 /= 1000F;
+ return String.format("%.1fM", num2);
+ }
+
private enum NeutronHatchElement implements IHatchElement<NeutronActivator> {
NeutronSensor(NeutronActivator::addAcceleratorAndSensor, NeutronSensor.class) {
@Override
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java b/src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java
index e05978b8aa..ab60660002 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java
@@ -8,10 +8,12 @@ import com.github.bartimaeusnek.bartworks.API.BorosilicateGlass;
import com.gtnewhorizon.structurelib.alignment.constructable.IConstructable;
import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable;
import com.gtnewhorizon.structurelib.structure.*;
+import com.gtnewhorizons.modularui.common.widget.DynamicPositionedColumn;
+import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget;
+import com.gtnewhorizons.modularui.common.widget.SlotWidget;
+import com.gtnewhorizons.modularui.common.widget.TextWidget;
import goodgenerator.blocks.tileEntity.GTMetaTileEntity.YOTTAHatch;
import goodgenerator.blocks.tileEntity.base.GT_MetaTileEntity_TooltipMultiBlockBase_EM;
-import goodgenerator.client.GUI.YOTTankGUIClient;
-import goodgenerator.common.container.YOTTankGUIContainer;
import goodgenerator.loader.Loaders;
import goodgenerator.util.CharExchanger;
import goodgenerator.util.DescTextLocalization;
@@ -32,7 +34,6 @@ import java.util.ArrayList;
import java.util.List;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
-import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.ChatComponentTranslation;
@@ -345,16 +346,6 @@ public class YottaFluidTank extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
}
@Override
- public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
- return new YOTTankGUIClient(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "EMDisplay.png");
- }
-
- @Override
- public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
- return new YOTTankGUIContainer(aPlayerInventory, aBaseMetaTileEntity);
- }
-
- @Override
public boolean onRunningTick(ItemStack aStack) {
super.onRunningTick(aStack);
if (this.getBaseMetaTileEntity().isServerSide()) {
@@ -488,4 +479,29 @@ public class YottaFluidTank extends GT_MetaTileEntity_TooltipMultiBlockBase_EM
}
return built;
}
+
+ @Override
+ protected void drawTexts(DynamicPositionedColumn screenElements, SlotWidget inventorySlot) {
+ super.drawTexts(screenElements, inventorySlot);
+
+ screenElements
+ .widget(TextWidget.dynamicString(() -> StatCollector.translateToLocal("gui.YOTTank.0") + " "
+ + CharExchanger.formatNumber(mStorage.toString()) + " L")
+ .setSynced(false)
+ .setDefaultColor(COLOR_TEXT_WHITE.get())
+ .setEnabled(widget -> getBaseMetaTileEntity().getErrorDisplayID() == 0))
+ .widget(new FakeSyncWidget.BigIntegerSyncer(() -> mStorage, val -> mStorage = val))
+ .widget(TextWidget.dynamicString(
+ () -> StatCollector.translateToLocal("gui.YOTTank.1") + " " + getFluidName())
+ .setSynced(false)
+ .setDefaultColor(COLOR_TEXT_WHITE.get())
+ .setEnabled(widget -> getBaseMetaTileEntity().getErrorDisplayID() == 0))
+ .widget(new FakeSyncWidget.StringSyncer(() -> mFluidName, val -> mFluidName = val))
+ .widget(TextWidget.dynamicString(() -> StatCollector.translateToLocal("gui.YOTTank.2") + " "
+ + CharExchanger.formatNumber(mStorageCurrent.toString()) + " L")
+ .setSynced(false)
+ .setDefaultColor(COLOR_TEXT_WHITE.get())
+ .setEnabled(widget -> getBaseMetaTileEntity().getErrorDisplayID() == 0))
+ .widget(new FakeSyncWidget.BigIntegerSyncer(() -> mStorageCurrent, val -> mStorageCurrent = val));
+ }
}
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LargeTurbineBase.java b/src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LargeTurbineBase.java
index 2ae630eef7..0e44718e9e 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LargeTurbineBase.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LargeTurbineBase.java
@@ -13,7 +13,6 @@ import com.gtnewhorizon.structurelib.structure.IItemSource;
import com.gtnewhorizon.structurelib.structure.IStructureDefinition;
import com.gtnewhorizon.structurelib.structure.IStructureElementCheckOnly;
import com.gtnewhorizon.structurelib.structure.StructureDefinition;
-import gregtech.api.gui.GT_GUIContainer_MultiMachine;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.items.GT_MetaGenerated_Tool;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_EnhancedMultiBlockBase;
@@ -24,7 +23,6 @@ import gregtech.common.items.GT_MetaGenerated_Tool_01;
import java.util.ArrayList;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayerMP;
-import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
@@ -97,12 +95,6 @@ public abstract class GT_MetaTileEntity_LargeTurbineBase
}
@Override
- public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
- return new GT_GUIContainer_MultiMachine(
- aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "LargeTurbine.png");
- }
-
- @Override
public IStructureDefinition<GT_MetaTileEntity_LargeTurbineBase> getStructureDefinition() {
return STRUCTURE_DEFINITION.get(getClass());
}
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputer.java b/src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputer.java
index b461dfa0dd..5a90e8dab8 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputer.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputer.java
@@ -12,7 +12,10 @@ import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructa
import com.gtnewhorizon.structurelib.structure.IItemSource;
import com.gtnewhorizon.structurelib.structure.IStructureDefinition;
import com.gtnewhorizon.structurelib.structure.StructureDefinition;
-import goodgenerator.client.GUI.LargeFusionComputerGUIClient;
+import com.gtnewhorizons.modularui.common.widget.DynamicPositionedColumn;
+import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget;
+import com.gtnewhorizons.modularui.common.widget.SlotWidget;
+import com.gtnewhorizons.modularui.common.widget.TextWidget;
import gregtech.api.enums.GT_HatchElement;
import gregtech.api.enums.Materials;
import gregtech.api.enums.Textures;
@@ -31,7 +34,6 @@ import gregtech.api.util.GT_Utility;
import java.util.ArrayList;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayerMP;
-import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumChatFormatting;
@@ -104,11 +106,6 @@ public abstract class LargeFusionComputer extends GT_MetaTileEntity_TooltipMulti
}
@Override
- public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
- return new LargeFusionComputerGUIClient(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "EMDisplay.png");
- }
-
- @Override
public abstract long maxEUStore();
public abstract Block getCasingBlock();
@@ -603,6 +600,27 @@ public abstract class LargeFusionComputer extends GT_MetaTileEntity_TooltipMulti
};
}
+ protected long energyStorageCache;
+
+ @Override
+ protected void drawTexts(DynamicPositionedColumn screenElements, SlotWidget inventorySlot) {
+ super.drawTexts(screenElements, inventorySlot);
+
+ screenElements
+ .widget(TextWidget.dynamicString(() -> StatCollector.translateToLocal("gui.LargeFusion.0") + " "
+ + GT_Utility.formatNumbers(energyStorageCache) + " EU")
+ .setSynced(false)
+ .setDefaultColor(COLOR_TEXT_WHITE.get())
+ .setEnabled(widget -> getBaseMetaTileEntity().getErrorDisplayID() == 0))
+ .widget(new FakeSyncWidget.LongSyncer(this::maxEUStore, val -> energyStorageCache = val))
+ .widget(TextWidget.dynamicString(() -> StatCollector.translateToLocal("gui.LargeFusion.1") + " "
+ + GT_Utility.formatNumbers(getEUVar()) + " EU")
+ .setSynced(false)
+ .setDefaultColor(COLOR_TEXT_WHITE.get())
+ .setEnabled(widget -> getBaseMetaTileEntity().getErrorDisplayID() == 0))
+ .widget(new FakeSyncWidget.LongSyncer(this::getEUVar, this::setEUVar));
+ }
+
public static final String[] L0 = {
" ",
" ",
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputerPP.java b/src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputerPP.java
index aa29b0c35b..b1d6a1c3e9 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputerPP.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputerPP.java
@@ -12,7 +12,10 @@ import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructa
import com.gtnewhorizon.structurelib.structure.IItemSource;
import com.gtnewhorizon.structurelib.structure.IStructureDefinition;
import com.gtnewhorizon.structurelib.structure.StructureDefinition;
-import goodgenerator.client.GUI.LargeFusionComputerGUIClient;
+import com.gtnewhorizons.modularui.common.widget.DynamicPositionedColumn;
+import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget;
+import com.gtnewhorizons.modularui.common.widget.SlotWidget;
+import com.gtnewhorizons.modularui.common.widget.TextWidget;
import gregtech.api.enums.GT_HatchElement;
import gregtech.api.enums.Materials;
import gregtech.api.enums.Textures;
@@ -31,7 +34,6 @@ import gregtech.api.util.GT_Utility;
import java.util.ArrayList;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayerMP;
-import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumChatFormatting;
@@ -104,11 +106,6 @@ public abstract class LargeFusionComputerPP extends GT_MetaTileEntity_TooltipMul
}
@Override
- public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
- return new LargeFusionComputerGUIClient(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "EMDisplay.png");
- }
-
- @Override
public abstract long maxEUStore();
public abstract Block getCasingBlock();
@@ -582,6 +579,27 @@ public abstract class LargeFusionComputerPP extends GT_MetaTileEntity_TooltipMul
};
}
+ protected long energyStorageCache;
+
+ @Override
+ protected void drawTexts(DynamicPositionedColumn screenElements, SlotWidget inventorySlot) {
+ super.drawTexts(screenElements, inventorySlot);
+
+ screenElements
+ .widget(TextWidget.dynamicString(() -> StatCollector.translateToLocal("gui.LargeFusion.0") + " "
+ + GT_Utility.formatNumbers(energyStorageCache) + " EU")
+ .setSynced(false)
+ .setDefaultColor(COLOR_TEXT_WHITE.get())
+ .setEnabled(widget -> getBaseMetaTileEntity().getErrorDisplayID() == 0))
+ .widget(new FakeSyncWidget.LongSyncer(this::maxEUStore, val -> energyStorageCache = val))
+ .widget(TextWidget.dynamicString(() -> StatCollector.translateToLocal("gui.LargeFusion.1") + " "
+ + GT_Utility.formatNumbers(getEUVar()) + " EU")
+ .setSynced(false)
+ .setDefaultColor(COLOR_TEXT_WHITE.get())
+ .setEnabled(widget -> getBaseMetaTileEntity().getErrorDisplayID() == 0))
+ .widget(new FakeSyncWidget.LongSyncer(this::getEUVar, this::setEUVar));
+ }
+
public static final String[] L0 = {
" ",
" ",
diff --git a/src/main/java/goodgenerator/client/GUI/GG_UITextures.java b/src/main/java/goodgenerator/client/GUI/GG_UITextures.java
new file mode 100644
index 0000000000..260dc22185
--- /dev/null
+++ b/src/main/java/goodgenerator/client/GUI/GG_UITextures.java
@@ -0,0 +1,16 @@
+package goodgenerator.client.GUI;
+
+import com.gtnewhorizons.modularui.api.drawable.UITexture;
+
+public class GG_UITextures {
+
+ private static final String MODID = "goodgenerator";
+
+ public static final UITexture PICTURE_NAQUADAH_REACTOR = UITexture.fullImage(MODID, "gui/picture/naquadah_reactor");
+ public static final UITexture PICTURE_NEUTRON_ACTIVATOR =
+ UITexture.fullImage(MODID, "gui/picture/neutron_activator");
+ public static final UITexture PICTURE_EXTREME_HEAT_EXCHANGER =
+ UITexture.fullImage(MODID, "gui/picture/extreme_heat_exchanger");
+ public static final UITexture PICTURE_COMPONENT_ASSLINE =
+ UITexture.fullImage(MODID, "gui/picture/component_assline");
+}
diff --git a/src/main/java/goodgenerator/client/GUI/LargeFusionComputerGUIClient.java b/src/main/java/goodgenerator/client/GUI/LargeFusionComputerGUIClient.java
deleted file mode 100644
index 51899b09cd..0000000000
--- a/src/main/java/goodgenerator/client/GUI/LargeFusionComputerGUIClient.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package goodgenerator.client.GUI;
-
-import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_GUIContainer_MultiMachineEM;
-import goodgenerator.common.container.YOTTankGUIContainer;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import gregtech.api.util.GT_Utility;
-import net.minecraft.entity.player.InventoryPlayer;
-import net.minecraft.util.StatCollector;
-
-public class LargeFusionComputerGUIClient extends GT_GUIContainer_MultiMachineEM {
-
- public LargeFusionComputerGUIClient(
- InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aName, String aTextureFile) {
- super(new YOTTankGUIContainer(aInventoryPlayer, aTileEntity), aName, aTextureFile, true, true, true);
- }
-
- @Override
- protected void drawGuiContainerForegroundLayer(int par1, int par2) {
- super.drawGuiContainerForegroundLayer(par1, par2);
- if (this.mContainer.mDisplayErrorCode == 0) {
- fontRendererObj.drawString(
- StatCollector.translateToLocal("gui.LargeFusion.0") + " "
- + GT_Utility.formatNumbers(this.mContainer.mStorage) + " EU",
- 7,
- 40,
- 16448255);
- fontRendererObj.drawString(
- StatCollector.translateToLocal("gui.LargeFusion.1") + " "
- + GT_Utility.formatNumbers(this.mContainer.mEnergy) + " EU",
- 7,
- 48,
- 16448255);
- }
- }
-}
diff --git a/src/main/java/goodgenerator/client/GUI/NeutronActivatorGUIClient.java b/src/main/java/goodgenerator/client/GUI/NeutronActivatorGUIClient.java
deleted file mode 100644
index 1bd0b09f99..0000000000
--- a/src/main/java/goodgenerator/client/GUI/NeutronActivatorGUIClient.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package goodgenerator.client.GUI;
-
-import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_GUIContainer_MultiMachineEM;
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-import goodgenerator.common.container.NeutronActivatorGUIContainer;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import net.minecraft.entity.player.InventoryPlayer;
-import net.minecraft.util.StatCollector;
-
-@SideOnly(Side.CLIENT)
-public class NeutronActivatorGUIClient extends GT_GUIContainer_MultiMachineEM {
-
- private final NeutronActivatorGUIContainer containerNeutronActivator;
-
- public NeutronActivatorGUIClient(
- InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aName, String aTextureFile) {
- super(new NeutronActivatorGUIContainer(aInventoryPlayer, aTileEntity), aName, aTextureFile, true, true, true);
- containerNeutronActivator = (NeutronActivatorGUIContainer) this.mContainer;
- }
-
- @Override
- protected void drawGuiContainerForegroundLayer(int par1, int par2) {
- super.drawGuiContainerForegroundLayer(par1, par2);
- if (this.mContainer.mDisplayErrorCode == 0) {
- fontRendererObj.drawString(StatCollector.translateToLocal("gui.NeutronActivator.0"), 7, 40, 16448255);
- fontRendererObj.drawString(processNumber(containerNeutronActivator.getKineticE()) + "eV", 7, 48, 16448255);
- }
- }
-
- protected String processNumber(int num) {
- float num2;
- num2 = ((float) num) / 1000F;
- if (num2 <= 0) {
- return String.format("%d", num);
- }
- if (num2 < 1000.0) {
- return String.format("%.1fK", num2);
- }
- num2 /= 1000F;
- return String.format("%.1fM", num2);
- }
-}
diff --git a/src/main/java/goodgenerator/client/GUI/NeutronSensorGUIClient.java b/src/main/java/goodgenerator/client/GUI/NeutronSensorGUIClient.java
deleted file mode 100644
index b2ddd6b04a..0000000000
--- a/src/main/java/goodgenerator/client/GUI/NeutronSensorGUIClient.java
+++ /dev/null
@@ -1,121 +0,0 @@
-package goodgenerator.client.GUI;
-
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-import goodgenerator.main.GoodGenerator;
-import goodgenerator.network.MessageSetNeutronSensorData;
-import goodgenerator.util.CharExchanger;
-import gregtech.api.gui.GT_GUIContainerMetaTile_Machine;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import net.minecraft.client.gui.GuiTextField;
-import net.minecraft.entity.player.InventoryPlayer;
-import net.minecraft.util.ResourceLocation;
-import net.minecraft.util.StatCollector;
-
-@SideOnly(Side.CLIENT)
-public class NeutronSensorGUIClient extends GT_GUIContainerMetaTile_Machine {
-
- protected final String mName;
-
- private GuiTextField TextBox;
- private String context;
-
- public NeutronSensorGUIClient(
- InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aTexture, String text) {
- super(aInventoryPlayer, aTileEntity, aTexture);
- this.mName = "Neutron Sensor";
- this.mContainer.detectAndSendChanges();
- if (text == null) this.context = "";
- else this.context = text;
- }
-
- public void initGui() {
- super.initGui();
- this.TextBox = new GuiTextField(this.fontRendererObj, 8, 48, 100, 18);
- TextBox.setMaxStringLength(20);
- TextBox.setText(context);
- this.TextBox.setFocused(true);
- }
-
- protected void draw