aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-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
-rw-r--r--src/main/resources/assets/goodgenerator/textures/gui/ComponentAssline.pngbin2310 -> 0 bytes
-rw-r--r--src/main/resources/assets/goodgenerator/textures/gui/NeutronSensorGUI.pngbin2569 -> 0 bytes
-rw-r--r--src/main/resources/assets/goodgenerator/textures/gui/extreme_heat_exchanger.pngbin2279 -> 0 bytes
-rw-r--r--src/main/resources/assets/goodgenerator/textures/gui/naquadah_reactor.pngbin3376 -> 0 bytes
-rw-r--r--src/main/resources/assets/goodgenerator/textures/gui/neutron_activator.pngbin4019 -> 0 bytes
-rw-r--r--src/main/resources/assets/goodgenerator/textures/gui/picture/component_assline.pngbin0 -> 243 bytes
-rw-r--r--src/main/resources/assets/goodgenerator/textures/gui/picture/extreme_heat_exchanger.pngbin0 -> 510 bytes
-rw-r--r--src/main/resources/assets/goodgenerator/textures/gui/picture/naquadah_reactor.pngbin0 -> 516 bytes
-rw-r--r--src/main/resources/assets/goodgenerator/textures/gui/picture/neutron_activator.pngbin0 -> 290 bytes
-rw-r--r--src/main/resources/assets/goodgenerator/textures/gui/precise_assembler.pngbin2314 -> 0 bytes
34 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 drawGuiContainerForegroundLayer(int par1, int par2) {
- this.fontRendererObj.drawString(this.mName, 8, 4, 4210752);
- this.fontRendererObj.drawString(StatCollector.translateToLocal("gui.NeutronSensor.0"), 8, 16, 0x000000);
- this.fontRendererObj.drawString(StatCollector.translateToLocal("gui.NeutronSensor.1"), 8, 28, 0x000000);
- this.TextBox.drawTextBox();
- if (TextBox.getText() != null) {
- if (isValidSuffix(TextBox.getText())) {
- if (CharExchanger.isValidCompareExpress(rawProcessExp(TextBox.getText())))
- this.fontRendererObj.drawString(
- StatCollector.translateToLocal("gui.NeutronSensor.2"), 120, 53, 0x077d02);
- else
- this.fontRendererObj.drawString(
- StatCollector.translateToLocal("gui.NeutronSensor.3"), 120, 53, 0xff0000);
- } else
- this.fontRendererObj.drawString(
- StatCollector.translateToLocal("gui.NeutronSensor.3"), 120, 53, 0xff0000);
- }
- this.mc
- .getTextureManager()
- .bindTexture(new ResourceLocation(GoodGenerator.MOD_ID + ":textures/gui/NeutronSensorGUI.png"));
- }
-
- protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) {
- super.drawGuiContainerBackgroundLayer(par1, par2, par3);
- int x = (this.width - this.xSize) / 2;
- int y = (this.height - this.ySize) / 2;
- this.drawTexturedModalRect(x, y, 0, 0, this.xSize, this.ySize);
- }
-
- protected void keyTyped(char par1, int par2) {
- if (!this.TextBox.isFocused()) super.keyTyped(par1, par2);
- if (par2 == 1) this.mc.thePlayer.closeScreen();
- this.TextBox.textboxKeyTyped(par1, par2);
- }
-
- public void updateScreen() {
- super.updateScreen();
- this.TextBox.updateCursorCounter();
- }
-
- protected void mouseClicked(int x, int y, int btn) {
- super.mouseClicked(x, y, btn);
- this.TextBox.mouseClicked(x - this.getLeft(), y - this.getTop(), btn);
- }
-
- @Override
- public void onGuiClosed() {
- if (CharExchanger.isValidCompareExpress(rawProcessExp(TextBox.getText())))
- GoodGenerator.CHANNEL.sendToServer(
- new MessageSetNeutronSensorData(mContainer.mTileEntity, TextBox.getText()));
- super.onGuiClosed();
- }
-
- protected String rawProcessExp(String exp) {
- StringBuilder ret = new StringBuilder();
- for (char c : exp.toCharArray()) {
- if (exp.length() - ret.length() == 3) {
- if (Character.isDigit(c)) ret.append(c);
- break;
- }
- ret.append(c);
- }
- return ret.toString();
- }
-
- protected 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/client/GUI/YOTTankGUIClient.java b/src/main/java/goodgenerator/client/GUI/YOTTankGUIClient.java
deleted file mode 100644
index e4a93fb6e2..0000000000
--- a/src/main/java/goodgenerator/client/GUI/YOTTankGUIClient.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package goodgenerator.client.GUI;
-
-import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_GUIContainer_MultiMachineEM;
-import goodgenerator.common.container.YOTTankGUIContainer;
-import goodgenerator.util.CharExchanger;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import net.minecraft.entity.player.InventoryPlayer;
-import net.minecraft.util.StatCollector;
-
-public class YOTTankGUIClient extends GT_GUIContainer_MultiMachineEM {
-
- private final YOTTankGUIContainer containerYOTTank;
-
- public YOTTankGUIClient(
- InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aName, String aTextureFile) {
- super(new YOTTankGUIContainer(aInventoryPlayer, aTileEntity), aName, aTextureFile, true, true, true);
- containerYOTTank = (YOTTankGUIContainer) this.mContainer;
- }
-
- @Override
- protected void drawGuiContainerForegroundLayer(int par1, int par2) {
- super.drawGuiContainerForegroundLayer(par1, par2);
- if (this.mContainer.mDisplayErrorCode == 0) {
- fontRendererObj.drawString(
- StatCollector.translateToLocal("gui.YOTTank.0") + " "
- + CharExchanger.formatNumber(containerYOTTank.getCap()) + " L",
- 7,
- 40,
- 16448255);
- fontRendererObj.drawString(
- StatCollector.translateToLocal("gui.YOTTank.1") + " "
- + CharExchanger.formatNumber(containerYOTTank.getFluidName()),
- 7,
- 48,
- 16448255);
- fontRendererObj.drawString(
- StatCollector.translateToLocal("gui.YOTTank.2") + " "
- + CharExchanger.formatNumber(containerYOTTank.getStorage()) + " L",
- 7,
- 56,
- 16448255);
- }
- }
-}
diff --git a/src/main/java/goodgenerator/common/container/NeutronActivatorGUIContainer.java b/src/main/java/goodgenerator/common/container/NeutronActivatorGUIContainer.java
deleted file mode 100644
index c13e290755..0000000000
--- a/src/main/java/goodgenerator/common/container/NeutronActivatorGUIContainer.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package goodgenerator.common.container;
-
-import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_Container_MultiMachineEM;
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-import goodgenerator.blocks.tileEntity.NeutronActivator;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import java.nio.ByteBuffer;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.entity.player.InventoryPlayer;
-import net.minecraft.inventory.ICrafting;
-
-public class NeutronActivatorGUIContainer extends GT_Container_MultiMachineEM {
-
- private int KineticE;
-
- private ByteBuffer buffer;
-
- public NeutronActivatorGUIContainer(InventoryPlayer inventoryPlayer, IGregTechTileEntity aTileEntity) {
- super(inventoryPlayer, aTileEntity, true, true, true);
- }
-
- @Override
- public void addCraftingToCrafters(ICrafting clientHandle) {
- buffer.putInt(0, KineticE);
- sendStateUpdate(clientHandle);
- super.addCraftingToCrafters(clientHandle);
- }
-
- @Override
- public void detectAndSendChanges() {
- super.detectAndSendChanges();
- if (buffer == null) {
- buffer = ByteBuffer.allocate(Integer.BYTES);
- }
- if (mTileEntity.isServerSide()) {
- NeutronActivator tile = (NeutronActivator) mTileEntity.getMetaTileEntity();
- if (tile == null) return;
- int currentKineticE = tile.getCurrentNeutronKineticEnergy();
- boolean isUpdated = false;
- if (currentKineticE != KineticE) {
- KineticE = currentKineticE;
- buffer.putInt(0, KineticE);
- isUpdated = true;
- }
- for (Object clientHandle : this.crafters) {
- if (isUpdated) {
- sendStateUpdate((ICrafting) clientHandle);
- }
- }
- }
- }
-
- @Override
- public boolean canInteractWith(EntityPlayer player) {
- return true;
- }
-
- private void sendStateUpdate(ICrafting clientHandle) {
- final int bytes = Integer.BYTES;
- for (int i = 0; i < bytes; i++) {
- clientHandle.sendProgressBarUpdate(this, i + 21, buffer.get(i));
- }
- }
-
- @SideOnly(Side.CLIENT)
- public void updateProgressBar(int index, int value) {
- super.updateProgressBar(index, value);
- index = index - 21;
- if (index >= 0 && index < buffer.capacity()) {
- buffer.put(index, (byte) value);
- }
- }
-
- @SideOnly(Side.CLIENT)
- public int getKineticE() {
- return buffer.getInt(0);
- }
-}
diff --git a/src/main/java/goodgenerator/common/container/NeutronSensorGUIContainer.java b/src/main/java/goodgenerator/common/container/NeutronSensorGUIContainer.java
deleted file mode 100644
index ebfcd10bda..0000000000
--- a/src/main/java/goodgenerator/common/container/NeutronSensorGUIContainer.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package goodgenerator.common.container;
-
-import gregtech.api.gui.GT_ContainerMetaTile_Machine;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import net.minecraft.entity.player.InventoryPlayer;
-
-public class NeutronSensorGUIContainer extends GT_ContainerMetaTile_Machine {
-
- public NeutronSensorGUIContainer(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) {
- super(aInventoryPlayer, aTileEntity);
- }
-}
diff --git a/src/main/java/goodgenerator/common/container/YOTTankGUIContainer.java b/src/main/java/goodgenerator/common/container/YOTTankGUIContainer.java
deleted file mode 100644
index 05a5352132..0000000000
--- a/src/main/java/goodgenerator/common/container/YOTTankGUIContainer.java
+++ /dev/null
@@ -1,138 +0,0 @@
-package goodgenerator.common.container;
-
-import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_Container_MultiMachineEM;
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-import goodgenerator.blocks.tileEntity.YottaFluidTank;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import java.nio.ByteBuffer;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.entity.player.InventoryPlayer;
-import net.minecraft.inventory.ICrafting;
-import net.minecraft.util.StatCollector;
-
-public class YOTTankGUIContainer extends GT_Container_MultiMachineEM {
-
- private String currentStore = "";
- private String store = "";
- private String fluidName = "";
-
- private ByteBuffer buffer;
-
- public YOTTankGUIContainer(InventoryPlayer inventoryPlayer, IGregTechTileEntity aTileEntity) {
- super(inventoryPlayer, aTileEntity, true, true, true);
- }
-
- @Override
- public void addCraftingToCrafters(ICrafting clientHandle) {
- buffer.putInt(0, currentStore.length());
- buffer.putInt(Integer.BYTES, store.length());
- buffer.putInt(Integer.BYTES * 2, fluidName.length());
- for (int i = 0; i < currentStore.length(); ++i) {
- buffer.putChar(Integer.BYTES * 3 + Character.BYTES * i, currentStore.charAt(i));
- }
- for (int i = 0; i < store.length(); ++i) {
- buffer.putChar(Integer.BYTES * 3 + Character.BYTES * (i + currentStore.length()), store.charAt(i));
- }
- for (int i = 0; i < fluidName.length(); ++i) {
- buffer.putChar(
- Integer.BYTES * 3 + Character.BYTES * (i + currentStore.length() + store.length()),
- fluidName.charAt(i));
- }
- sendStateUpdate(clientHandle);
- super.addCraftingToCrafters(clientHandle);
- }
-
- @Override
- public void detectAndSendChanges() {
- super.detectAndSendChanges();
- if (buffer == null) {
- buffer = ByteBuffer.allocate(8192);
- }
- if (mTileEntity.isServerSide()) {
- YottaFluidTank tile = (YottaFluidTank) mTileEntity.getMetaTileEntity();
- if (tile == null) return;
- String newStored = tile.getStored();
- String newCap = tile.getCap();
- String newFluid = tile.getFluidName();
- boolean isUpdated = false;
- if (!newStored.equals(currentStore) || !newCap.equals(store) || !newFluid.equals(fluidName)) {
- currentStore = newStored;
- store = newCap;
- fluidName = newFluid;
- buffer.putInt(0, currentStore.length());
- buffer.putInt(Integer.BYTES, store.length());
- buffer.putInt(Integer.BYTES * 2, fluidName.length());
- for (int i = 0; i < currentStore.length(); ++i) {
- buffer.putChar(Integer.BYTES * 3 + Character.BYTES * i, currentStore.charAt(i));
- }
- for (int i = 0; i < store.length(); ++i) {
- buffer.putChar(Integer.BYTES * 3 + Character.BYTES * (i + currentStore.length()), store.charAt(i));
- }
- for (int i = 0; i < fluidName.length(); ++i) {
- buffer.putChar(
- Integer.BYTES * 3 + Character.BYTES * (i + currentStore.length() + store.length()),
- fluidName.charAt(i));
- }
- isUpdated = true;
- }
- for (Object clientHandle : this.crafters) {
- if (isUpdated) {
- sendStateUpdate((ICrafting) clientHandle);
- }
- }
- }
- }
-
- @Override
- public boolean canInteractWith(EntityPlayer player) {
- return true;
- }
-
- private void sendStateUpdate(ICrafting clientHandle) {
- final int bytes =
- Integer.BYTES * 3 + Character.BYTES * (currentStore.length() + store.length() + fluidName.length());
- for (int i = 0; i < bytes; i++) {
- clientHandle.sendProgressBarUpdate(this, i + 300, buffer.get(i));
- }
- }
-
- @SideOnly(Side.CLIENT)
- public void updateProgressBar(int index, int value) {
- super.updateProgressBar(index, value);
- index = index - 300;
- if (index >= 0 && index < buffer.capacity()) {
- buffer.put(index, (byte) value);
- }
- }
-
- @SideOnly(Side.CLIENT)
- public String getStorage() {
- StringBuilder sb = new StringBuilder();
- int startP = Integer.BYTES * 3;
- for (int i = 0; i < buffer.getInt(0); ++i) {
- sb.append(buffer.getChar(startP + Character.BYTES * i));
- }
- return sb.toString();
- }
-
- @SideOnly(Side.CLIENT)
- public String getCap() {
- StringBuilder sb = new StringBuilder();
- int startP = Integer.BYTES * 3 + Character.BYTES * buffer.getInt(0);
- for (int i = 0; i < buffer.getInt(Integer.BYTES); ++i) {
- sb.append(buffer.getChar(startP + Character.BYTES * i));
- }
- return sb.toString();
- }
-
- @SideOnly(Side.CLIENT)
- public String getFluidName() {
- StringBuilder sb = new StringBuilder();
- int startP = Integer.BYTES * 3 + Character.BYTES * (buffer.getInt(0) + buffer.getInt(Integer.BYTES));
- for (int i = 0; i < buffer.getInt(Integer.BYTES * 2); ++i) {
- sb.append(buffer.getChar(startP + Character.BYTES * i));
- }
- return StatCollector.translateToLocal(sb.toString());
- }
-}
diff --git a/src/main/java/goodgenerator/crossmod/nei/ComponentAssemblyLineHandler.java b/src/main/java/goodgenerator/crossmod/nei/ComponentAssemblyLineHandler.java
index d365434c3f..9fe3b3a8bb 100644
--- a/src/main/java/goodgenerator/crossmod/nei/ComponentAssemblyLineHandler.java
+++ b/src/main/java/goodgenerator/crossmod/nei/ComponentAssemblyLineHandler.java
@@ -13,8 +13,6 @@ public class ComponentAssemblyLineHandler extends GT_NEI_DefaultHandler {
public ComponentAssemblyLineHandler(GT_Recipe.GT_Recipe_Map aRecipeMap) {
super(aRecipeMap);
- this.transferRects.remove(new RecipeTransferRect(new Rectangle(65, 13, 36, 18), getOverlayIdentifier()));
- this.transferRects.add(new RecipeTransferRect(new Rectangle(69, 18, 9, 34), getOverlayIdentifier()));
if (!NEI_Config.isAdded) {
FMLInterModComms.sendRuntimeMessage(
GT_Values.GT,
diff --git a/src/main/java/goodgenerator/crossmod/nei/ExtremeHeatExchangerHandler.java b/src/main/java/goodgenerator/crossmod/nei/ExtremeHeatExchangerHandler.java
index d2bc69d90b..dcdc240b8a 100644
--- a/src/main/java/goodgenerator/crossmod/nei/ExtremeHeatExchangerHandler.java
+++ b/src/main/java/goodgenerator/crossmod/nei/ExtremeHeatExchangerHandler.java
@@ -16,8 +16,6 @@ public class ExtremeHeatExchangerHandler extends GT_NEI_DefaultHandler {
public ExtremeHeatExchangerHandler(GT_Recipe.GT_Recipe_Map aRecipeMap) {
super(aRecipeMap);
- this.transferRects.add(new TemplateRecipeHandler.RecipeTransferRect(
- new Rectangle(65, 13, 36, 18), this.getOverlayIdentifier()));
if (!NEI_Config.isAdded) {
FMLInterModComms.sendRuntimeMessage(
GT_Values.GT,
@@ -39,19 +37,25 @@ public class ExtremeHeatExchangerHandler extends GT_NEI_DefaultHandler {
FluidStack[] Inputs = ((CachedDefaultRecipe) this.arecipes.get(aRecipeIndex)).mRecipe.mFluidInputs;
FluidStack[] Outputs = ((CachedDefaultRecipe) this.arecipes.get(aRecipeIndex)).mRecipe.mFluidOutputs;
int Threshold = ((CachedDefaultRecipe) this.arecipes.get(aRecipeIndex)).mRecipe.mSpecialValue;
+ int y = getDescriptionYOffset();
drawText(
10,
- 73,
+ y,
StatCollector.translateToLocal("value.extreme_heat_exchanger.0") + " "
+ GT_Utility.formatNumbers(Inputs[0].amount) + " L/s",
-16777216);
- drawText(10, 83, StatCollector.translateToLocal("value.extreme_heat_exchanger.1"), -16777216);
- drawText(10, 93, GT_Utility.formatNumbers(Outputs[0].amount / 160) + " L/s", -16777216);
- drawText(10, 103, StatCollector.translateToLocal("value.extreme_heat_exchanger.2"), -16777216);
- drawText(10, 113, GT_Utility.formatNumbers(Outputs[1].amount / 160) + " L/s", -16777216);
+ y += 10;
+ drawText(10, y, StatCollector.translateToLocal("value.extreme_heat_exchanger.1"), -16777216);
+ y += 10;
+ drawText(10, y, GT_Utility.formatNumbers(Outputs[0].amount / 160) + " L/s", -16777216);
+ y += 10;
+ drawText(10, y, StatCollector.translateToLocal("value.extreme_heat_exchanger.2"), -16777216);
+ y += 10;
+ drawText(10, y, GT_Utility.formatNumbers(Outputs[1].amount / 160) + " L/s", -16777216);
+ y += 10;
drawText(
10,
- 123,
+ y,
StatCollector.translateToLocal("value.extreme_heat_exchanger.4") + " " + Threshold + " L/s",
-16777216);
}
diff --git a/src/main/java/goodgenerator/crossmod/nei/IMCForNEI.java b/src/main/java/goodgenerator/crossmod/nei/IMCForNEI.java
index a4879e9ff6..d50d53177d 100644
--- a/src/main/java/goodgenerator/crossmod/nei/IMCForNEI.java
+++ b/src/main/java/goodgenerator/crossmod/nei/IMCForNEI.java
@@ -12,7 +12,7 @@ public class IMCForNEI {
sendHandler("goodgenerator.crossmod.nei.ExtremeHeatExchangerHandler", "gregtech:gt.blockmachines:32017");
sendCatalyst("gg.recipe.extreme_heat_exchanger", "gregtech:gt.blockmachines:32017");
- sendHandler("goodgenerator.crossmod.nei.PreciseAssemblerHandler", "gregtech:gt.blockmachines:32018");
+ sendHandler("gg.recipe.precise_assembler", "gregtech:gt.blockmachines:32018");
sendCatalyst("gg.recipe.precise_assembler", "gregtech:gt.blockmachines:32018");
sendCatalyst("gt.recipe.assembler", "gregtech:gt.blockmachines:32018");
diff --git a/src/main/java/goodgenerator/crossmod/nei/NEI_Config.java b/src/main/java/goodgenerator/crossmod/nei/NEI_Config.java
index 70b31e51ad..a9f52d3fed 100644
--- a/src/main/java/goodgenerator/crossmod/nei/NEI_Config.java
+++ b/src/main/java/goodgenerator/crossmod/nei/NEI_Config.java
@@ -16,7 +16,6 @@ public class NEI_Config implements IConfigureNEI {
NEI_Config.isAdded = false;
new NeutronActivatorHandler(MyRecipeAdder.instance.NA);
new ExtremeHeatExchangerHandler(MyRecipeAdder.instance.XHE);
- new PreciseAssemblerHandler(MyRecipeAdder.instance.PA);
new ComponentAssemblyLineHandler(MyRecipeAdder.instance.COMPASSLINE_RECIPES);
NEI_Config.isAdded = true;
}
diff --git a/src/main/java/goodgenerator/crossmod/nei/NeutronActivatorHandler.java b/src/main/java/goodgenerator/crossmod/nei/NeutronActivatorHandler.java
index ab2aedf2fc..44a1574778 100644
--- a/src/main/java/goodgenerator/crossmod/nei/NeutronActivatorHandler.java
+++ b/src/main/java/goodgenerator/crossmod/nei/NeutronActivatorHandler.java
@@ -15,8 +15,6 @@ public class NeutronActivatorHandler extends GT_NEI_DefaultHandler {
public NeutronActivatorHandler(GT_Recipe.GT_Recipe_Map aRecipeMap) {
super(aRecipeMap);
- this.transferRects.add(new TemplateRecipeHandler.RecipeTransferRect(
- new Rectangle(65, 13, 36, 18), this.getOverlayIdentifier()));
if (!NEI_Config.isAdded) {
FMLInterModComms.sendRuntimeMessage(
GT_Values.GT,
@@ -38,23 +36,28 @@ public class NeutronActivatorHandler extends GT_NEI_DefaultHandler {
int tDuration = ((CachedDefaultRecipe) this.arecipes.get(aRecipeIndex)).mRecipe.mDuration;
int minNKE = ((CachedDefaultRecipe) this.arecipes.get(aRecipeIndex)).mRecipe.mSpecialValue % 10000;
int maxNKE = ((CachedDefaultRecipe) this.arecipes.get(aRecipeIndex)).mRecipe.mSpecialValue / 10000;
+ int y = getDescriptionYOffset();
drawText(
10,
- 73,
+ y,
this.trans("158", "Time: ")
+ GT_Utility.formatNumbers((float) tDuration / 20.0)
+ this.trans("161", " secs"),
-16777216);
- drawText(10, 83, StatCollector.translateToLocal("value.neutron_activator.0"), -16777216);
+ y += 10;
+ drawText(10, y, StatCollector.translateToLocal("value.neutron_activator.0"), -16777216);
+ y += 10;
drawText(
10,
- 93,
+ y,
GT_Utility.formatNumbers(minNKE) + StatCollector.translateToLocal("value.neutron_activator.2"),
-16777216);
- drawText(10, 103, StatCollector.translateToLocal("value.neutron_activator.1"), -16777216);
+ y += 10;
+ drawText(10, y, StatCollector.translateToLocal("value.neutron_activator.1"), -16777216);
+ y += 10;
drawText(
10,
- 113,
+ y,
GT_Utility.formatNumbers(maxNKE) + StatCollector.translateToLocal("value.neutron_activator.2"),
-16777216);
}
diff --git a/src/main/java/goodgenerator/crossmod/nei/PreciseAssemblerHandler.java b/src/main/java/goodgenerator/crossmod/nei/PreciseAssemblerHandler.java
deleted file mode 100644
index 5d1797a834..0000000000
--- a/src/main/java/goodgenerator/crossmod/nei/PreciseAssemblerHandler.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package goodgenerator.crossmod.nei;
-
-import codechicken.nei.recipe.GuiCraftingRecipe;
-import codechicken.nei.recipe.GuiUsageRecipe;
-import codechicken.nei.recipe.TemplateRecipeHandler;
-import cpw.mods.fml.common.event.FMLInterModComms;
-import gregtech.api.enums.GT_Values;
-import gregtech.api.util.GT_Recipe;
-import gregtech.nei.GT_NEI_DefaultHandler;
-import java.awt.*;
-
-public class PreciseAssemblerHandler extends GT_NEI_DefaultHandler {
-
- public PreciseAssemblerHandler(GT_Recipe.GT_Recipe_Map aRecipeMap) {
- super(aRecipeMap);
- this.transferRects.remove(new RecipeTransferRect(new Rectangle(65, 13, 36, 18), getOverlayIdentifier()));
- this.transferRects.add(new RecipeTransferRect(new Rectangle(75, 19, 26, 18), getOverlayIdentifier()));
- if (!NEI_Config.isAdded) {
- FMLInterModComms.sendRuntimeMessage(
- GT_Values.GT,
- "NEIPlugins",
- "register-crafting-handler",
- "gregtech@" + this.getRecipeName() + "@" + this.getOverlayIdentifier());
- GuiCraftingRecipe.craftinghandlers.add(this);
- GuiUsageRecipe.usagehandlers.add(this);
- }
- }
-
- @Override
- public TemplateRecipeHandler newInstance() {
- return new PreciseAssemblerHandler(this.mRecipeMap);
- }
-}
diff --git a/src/main/java/goodgenerator/main/GoodGenerator.java b/src/main/java/goodgenerator/main/GoodGenerator.java
index f1aad54ebd..475c3909b2 100644
--- a/src/main/java/goodgenerator/main/GoodGenerator.java
+++ b/src/main/java/goodgenerator/main/GoodGenerator.java
@@ -10,14 +10,11 @@ import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper;
-import cpw.mods.fml.relauncher.Side;
import goodgenerator.common.CommonProxy;
import goodgenerator.crossmod.thaumcraft.Research;
import goodgenerator.items.MyMaterial;
import goodgenerator.loader.Loaders;
import goodgenerator.loader.NaquadahReworkRecipeLoader;
-import goodgenerator.network.MessageOpenNeutronSensorGUI;
-import goodgenerator.network.MessageSetNeutronSensorData;
import goodgenerator.tabs.MyTabs;
import net.minecraft.creativetab.CreativeTabs;
@@ -45,10 +42,6 @@ public final class GoodGenerator {
public static SimpleNetworkWrapper CHANNEL = NetworkRegistry.INSTANCE.newSimpleChannel(MOD_ID);
static {
- CHANNEL.registerMessage(
- MessageSetNeutronSensorData.ServerHandler.class, MessageSetNeutronSensorData.class, 0, Side.SERVER);
- CHANNEL.registerMessage(
- MessageOpenNeutronSensorGUI.ClientHandler.class, MessageOpenNeutronSensorGUI.class, 1, Side.CLIENT);
}
@Mod.Instance(GoodGenerator.MOD_ID)
diff --git a/src/main/java/goodgenerator/network/MessageOpenNeutronSensorGUI.java b/src/main/java/goodgenerator/network/MessageOpenNeutronSensorGUI.java
deleted file mode 100644
index 634864564d..0000000000
--- a/src/main/java/goodgenerator/network/MessageOpenNeutronSensorGUI.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package goodgenerator.network;
-
-import com.github.technus.tectech.TecTech;
-import cpw.mods.fml.common.network.ByteBufUtils;
-import cpw.mods.fml.common.network.simpleimpl.IMessage;
-import cpw.mods.fml.common.network.simpleimpl.MessageContext;
-import goodgenerator.blocks.tileEntity.GTMetaTileEntity.NeutronSensor;
-import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import io.netty.buffer.ByteBuf;
-
-public class MessageOpenNeutronSensorGUI extends MessageMTEBase {
- protected String data;
-
- public MessageOpenNeutronSensorGUI() {}
-
- public MessageOpenNeutronSensorGUI(IGregTechTileEntity tile, String data) {
- super(tile);
- this.data = data;
- }
-
- @Override
- public void fromBytes(ByteBuf buf) {
- super.fromBytes(buf);
- data = ByteBufUtils.readUTF8String(buf);
- }
-
- @Override
- public void toBytes(ByteBuf buf) {
- super.toBytes(buf);
- ByteBufUtils.writeUTF8String(buf, data);
- }
-
- public static class ClientHandler extends MessageMTEBase.Handler<MessageOpenNeutronSensorGUI, IMessage> {
- @Override
- protected IMessage onError(MessageOpenNeutronSensorGUI message, MessageContext ctx) {
- return null;
- }
-
- @Override
- protected IMessage onSuccess(MessageOpenNeutronSensorGUI message, MessageContext ctx, IMetaTileEntity mte) {
- if (mte instanceof NeutronSensor) {
- ((NeutronSensor) mte).setText(message.data);
- mte.getBaseMetaTileEntity().openGUI(TecTech.proxy.getPlayer());
- }
- return null;
- }
- }
-}
diff --git a/src/main/java/goodgenerator/network/MessageSetNeutronSensorData.java b/src/main/java/goodgenerator/network/MessageSetNeutronSensorData.java
deleted file mode 100644
index a3e2d30d60..0000000000
--- a/src/main/java/goodgenerator/network/MessageSetNeutronSensorData.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package goodgenerator.network;
-
-import com.github.technus.tectech.TecTech;
-import cpw.mods.fml.common.network.ByteBufUtils;
-import cpw.mods.fml.common.network.simpleimpl.IMessage;
-import cpw.mods.fml.common.network.simpleimpl.MessageContext;
-import cpw.mods.fml.relauncher.Side;
-import goodgenerator.blocks.tileEntity.GTMetaTileEntity.NeutronSensor;
-import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import io.netty.buffer.ByteBuf;
-
-public class MessageSetNeutronSensorData extends MessageMTEBase {
- protected String data;
-
- public MessageSetNeutronSensorData() {}
-
- public MessageSetNeutronSensorData(IGregTechTileEntity tile, String data) {
- super(tile);
- this.data = data;
- }
-
- @Override
- public void fromBytes(ByteBuf buf) {
- super.fromBytes(buf);
- data = ByteBufUtils.readUTF8String(buf);
- }
-
- @Override
- public void toBytes(ByteBuf buf) {
- super.toBytes(buf);
- ByteBufUtils.writeUTF8String(buf, data);
- }
-
- public static class ServerHandler extends MessageMTEBase.Handler<MessageSetNeutronSensorData, IMessage> {
- @Override
- protected IMessage onError(MessageSetNeutronSensorData message, MessageContext ctx) {
- return null;
- }
-
- @Override
- protected IMessage onSuccess(MessageSetNeutronSensorData message, MessageContext ctx, IMetaTileEntity mte) {
- if (mte instanceof NeutronSensor) {
- ((NeutronSensor) mte).setText(message.data);
- if (ctx.side == Side.CLIENT) mte.getBaseMetaTileEntity().openGUI(TecTech.proxy.getPlayer());
- }
- return null;
- }
- }
-}
diff --git a/src/main/java/goodgenerator/util/MyRecipeAdder.java b/src/main/java/goodgenerator/util/MyRecipeAdder.java
index 58e0540340..99a8b43747 100644
--- a/src/main/java/goodgenerator/util/MyRecipeAdder.java
+++ b/src/main/java/goodgenerator/util/MyRecipeAdder.java
@@ -1,15 +1,20 @@
package goodgenerator.util;
-import static gregtech.api.enums.GT_Values.NI;
-
-import codechicken.nei.PositionedStack;
+import com.gtnewhorizons.modularui.api.math.Pos2d;
+import com.gtnewhorizons.modularui.api.screen.ModularWindow;
+import com.gtnewhorizons.modularui.common.widget.DrawableWidget;
+import goodgenerator.client.GUI.GG_UITextures;
+import gregtech.api.gui.modularui.GT_UITextures;
import gregtech.api.util.GT_Recipe;
-import gregtech.api.util.GT_Utility;
-import gregtech.nei.GT_NEI_DefaultHandler;
+import java.awt.*;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.List;
+import java.util.function.Supplier;
import net.minecraft.item.ItemStack;
import net.minecraft.util.StatCollector;
import net.minecraftforge.fluids.Fluid;
@@ -19,22 +24,32 @@ public class MyRecipeAdder {
public static final MyRecipeAdder instance = new MyRecipeAdder();
- public final liquidMentalFuelMapper NqGFuels = new liquidMentalFuelMapper(
- new HashSet<>(50),
- "gg.recipe.naquadah_reactor",
- StatCollector.translateToLocal("tile.recipe.naquadah_reactor"),
- null,
- "goodgenerator:textures/gui/naquadah_reactor",
- 0,
- 0,
- 0,
- 1,
- 1,
- StatCollector.translateToLocal("value.naquadah_reactor") + " ",
- 1,
- " EU/t",
- false,
- true);
+ public final liquidMentalFuelMapper NqGFuels = (liquidMentalFuelMapper)
+ new liquidMentalFuelMapper(
+ new HashSet<>(50),
+ "gg.recipe.naquadah_reactor",
+ StatCollector.translateToLocal("tile.recipe.naquadah_reactor"),
+ null,
+ "goodgenerator:textures/gui/naquadah_reactor",
+ 0,
+ 0,
+ 0,
+ 1,
+ 1,
+ StatCollector.translateToLocal("value.naquadah_reactor") + " ",
+ 1,
+ " EU/t",
+ false,
+ true) {
+ @Override
+ public void addProgressBarUI(
+ ModularWindow.Builder builder, Supplier<Float> progressSupplier, Pos2d windowOffset) {
+ builder.widget(new DrawableWidget()
+ .setDrawable(GG_UITextures.PICTURE_NAQUADAH_REACTOR)
+ .setPos(new Pos2d(59, 20).add(windowOffset))
+ .setSize(58, 42));
+ }
+ }.useModularUI(true);
public final NaqFuelRefineMapper FRF = new NaqFuelRefineMapper(
new HashSet<>(50),
@@ -102,7 +117,7 @@ public class MyRecipeAdder {
1,
StatCollector.translateToLocal("value.precise_assembler.1"),
true,
- false);
+ true);
public static class liquidMentalFuelMapper extends GT_Recipe.GT_Recipe_Map_Fuel {
public liquidMentalFuelMapper(
@@ -181,6 +196,7 @@ public class MyRecipeAdder {
aNEISpecialValuePost,
aShowVoltageAmperageInNEI,
aNEIAllowed);
+ setUsualFluidInputCount(2);
}
public void addNaqFuelRefineRecipe(
@@ -227,6 +243,7 @@ public class MyRecipeAdder {
aNEISpecialValuePost,
aShowVoltageAmperageInNEI,
aNEIAllowed);
+ useModularUI(true);
}
public void addNARecipe(
@@ -238,6 +255,15 @@ public class MyRecipeAdder {
int special) {
super.addRecipe(false, input2, output2, null, input1, output1, ticks, 0, special);
}
+
+ @Override
+ public void addProgressBarUI(
+ ModularWindow.Builder builder, Supplier<Float> progressSupplier, Pos2d windowOffset) {
+ builder.widget(new DrawableWidget()
+ .setDrawable(GG_UITextures.PICTURE_NEUTRON_ACTIVATOR)
+ .setPos(new Pos2d(73, 22).add(windowOffset))
+ .setSize(31, 21));
+ }
}
public void addNeutronActivatorRecipe(
@@ -290,6 +316,8 @@ public class MyRecipeAdder {
aNEISpecialValuePost,
aShowVoltageAmperageInNEI,
aNEIAllowed);
+ setUsualFluidInputCount(2);
+ setUsualFluidOutputCount(3);
}
@Override
@@ -309,38 +337,31 @@ public class MyRecipeAdder {
mXHeatExchangerFuelMap.put(aFluidInputs[0].getFluid(), tRecipe);
return addRecipe(tRecipe);
}
- }
-
- public static class ExtremeHeatExchangerRecipe extends GT_Recipe {
- public ExtremeHeatExchangerRecipe(FluidStack[] input, FluidStack[] output, int special) {
- super(false, null, null, null, null, input, output, 0, 0, special);
+ @Override
+ public List<Pos2d> getFluidInputPositions(int fluidInputCount) {
+ return Arrays.asList(new Pos2d(26, 13), new Pos2d(26, 37));
}
@Override
- public ArrayList<PositionedStack> getInputPositionedStacks() {
- ArrayList<PositionedStack> inputStacks = new ArrayList<>();
- if (this.mFluidInputs != null && this.mFluidInputs.length == 2) {
- inputStacks.add(
- new PositionedStack(GT_Utility.getFluidDisplayStack(this.mFluidInputs[0], true), 22, 3));
- inputStacks.add(
- new PositionedStack(GT_Utility.getFluidDisplayStack(this.mFluidInputs[1], true), 22, 27));
- }
- return inputStacks;
+ public List<Pos2d> getFluidOutputPositions(int fluidOutputCount) {
+ return Arrays.asList(new Pos2d(128, 13), new Pos2d(128, 31), new Pos2d(128, 54));
}
@Override
- public ArrayList<PositionedStack> getOutputPositionedStacks() {
- ArrayList<PositionedStack> outputStacks = new ArrayList<>();
- if (this.mFluidOutputs != null && this.mFluidOutputs.length == 3) {
- outputStacks.add(
- new PositionedStack(GT_Utility.getFluidDisplayStack(this.mFluidOutputs[0], true), 124, 3));
- outputStacks.add(
- new PositionedStack(GT_Utility.getFluidDisplayStack(this.mFluidOutputs[1], true), 124, 21));
- outputStacks.add(
- new PositionedStack(GT_Utility.getFluidDisplayStack(this.mFluidOutputs[2], true), 124, 44));
- }
- return outputStacks;
+ public void addProgressBarUI(
+ ModularWindow.Builder builder, Supplier<Float> progressSupplier, Pos2d windowOffset) {
+ builder.widget(new DrawableWidget()
+ .setDrawable(GG_UITextures.PICTURE_EXTREME_HEAT_EXCHANGER)
+ .setPos(new Pos2d(47, 13).add(windowOffset))
+ .setSize(78, 59));
+ }
+ }
+
+ public static class ExtremeHeatExchangerRecipe extends GT_Recipe {
+
+ public ExtremeHeatExchangerRecipe(FluidStack[] input, FluidStack[] output, int special) {
+ super(false, null, null, null, null, input, output, 0, 0, special);
}
public int getMaxHotFluidConsume() {
@@ -450,6 +471,10 @@ public class MyRecipeAdder {
aNEISpecialValuePost,
aShowVoltageAmperageInNEI,
aNEIAllowed);
+ setUsualFluidInputCount(4);
+ setProgressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE);
+ setProgressBarPos(85, 30);
+ setNEITransferRect(new Rectangle(80, 30, 35, 18));
}
@Override
@@ -468,44 +493,35 @@ public class MyRecipeAdder {
new PreciseAssemblerRecipe(aInputs, aFluidInputs, aOutputs[0], aEUt, aDuration, aSpecialValue);
return addRecipe(tRecipe);
}
- }
- @SuppressWarnings("deprecation")
- public static class PreciseAssemblerRecipe extends GT_Recipe {
- public PreciseAssemblerRecipe(
- ItemStack[] input1, FluidStack[] input2, ItemStack output, int EUt, int ticks, int tier) {
- super(false, input1, new ItemStack[] {output}, null, null, input2, null, ticks, EUt, tier);
+ @Override
+ public List<Pos2d> getItemInputPositions(int itemInputCount) {
+ List<Pos2d> results = new ArrayList<>();
+ for (int i = 0; i < itemInputCount; i++) {
+ results.add(new Pos2d(8 + i * 18, 13));
+ }
+ return results;
}
@Override
- public ArrayList<PositionedStack> getInputPositionedStacks() {
- ArrayList<PositionedStack> inputStacks = new ArrayList<>();
- if (this.mFluidInputs != null) {
- int index = 0;
- for (FluidStack inFluid : mFluidInputs) {
- if (inFluid == null) continue;
- inputStacks.add(
- new PositionedStack(GT_Utility.getFluidDisplayStack(inFluid, true), 4 + index * 18, 38));
- index++;
- }
- }
- if (this.mInputs != null) {
- int index = 0;
- for (ItemStack inItem : mInputs) {
- if (inItem == null) continue;
- inputStacks.add(new PositionedStack(inItem, 4 + index * 18, 3));
- index++;
- }
- }
- return inputStacks;
+ public List<Pos2d> getItemOutputPositions(int itemOutputCount) {
+ return Collections.singletonList(new Pos2d(115, 30));
}
@Override
- public ArrayList<PositionedStack> getOutputPositionedStacks() {
- ArrayList<PositionedStack> outputStacks = new ArrayList<>();
- if (this.mOutputs != null && this.mOutputs.length > 0)
- outputStacks.add(new PositionedStack(this.mOutputs[0], 111, 20));
- return outputStacks;
+ public List<Pos2d> getFluidInputPositions(int fluidInputCount) {
+ List<Pos2d> results = new ArrayList<>();
+ for (int i = 0; i < fluidInputCount; i++) {
+ results.add(new Pos2d(8 + i * 18, 48));
+ }
+ return results;
+ }
+ }
+
+ public static class PreciseAssemblerRecipe extends GT_Recipe {
+ public PreciseAssemblerRecipe(
+ ItemStack[] input1, FluidStack[] input2, ItemStack output, int EUt, int ticks, int tier) {
+ super(false, input1, new ItemStack[] {output}, null, null, input2, null, ticks, EUt, tier);
}
}
@@ -550,40 +566,44 @@ public class MyRecipeAdder {
aNEISpecialValueMultiplier,
aNEISpecialValuePost,
aShowVoltageAmperageInNEI,
- aNEIAllowed,
- true);
+ aNEIAllowed);
+ setUsualFluidInputCount(8);
+ setNEITransferRect(new Rectangle(70, 15, 18, 54));
}
@Override
- public ArrayList<PositionedStack> getInputPositionedStacks(GT_Recipe recipe) {
- ArrayList<PositionedStack> inputStacks = new ArrayList<>();
-
- if (recipe.mInputs != null) {
- for (int j = 0; j < recipe.mInputs.length; j++) {
- if (recipe.mInputs[j] == NI) continue;
- inputStacks.add(new GT_NEI_DefaultHandler.FixedPositionedStack(
- recipe.mInputs[j].copy(), 12 + 18 * (j % 3), 5 + 18 * (j / 3)));
- }
+ public List<Pos2d> getItemInputPositions(int itemInputCount) {
+ List<Pos2d> results = new ArrayList<>();
+ for (int i = 0; i < itemInputCount; i++) {
+ results.add(new Pos2d(16 + (i % 3) * 18, 15 + (i / 3) * 18));
}
- if (recipe.mFluidInputs != null) {
- for (int j = 0; j < recipe.mFluidInputs.length; j++) {
+ return results;
+ }
- inputStacks.add(new GT_NEI_DefaultHandler.FixedPositionedStack(
- GT_Utility.getFluidDisplayStack(recipe.mFluidInputs[j], true),
- 84 + 18 * (j % 4),
- 27 + 18 * (j / 4)));
- }
- }
- return inputStacks;
+ @Override
+ public List<Pos2d> getItemOutputPositions(int itemOutputCount) {
+ return Collections.singletonList(new Pos2d(142, 15));
}
@Override
- public ArrayList<PositionedStack> getOutputPositionedStacks(GT_Recipe recipe) {
- ArrayList<PositionedStack> outputStacks = new ArrayList<>();
- if (recipe.mOutputs != null) {
- outputStacks.add(new GT_NEI_DefaultHandler.FixedPositionedStack(recipe.mOutputs[0].copy(), 138, 5));
+ public List<Pos2d> getFluidInputPositions(int fluidInputCount) {
+ List<Pos2d> results = new ArrayList<>();
+ for (int i = 0; i < fluidInputCount; i++) {
+ results.add(new Pos2d(88 + (i % 4) * 18, 37 + (i / 4) * 18));
}
- return outputStacks;
+ return results;
+ }
+
+ @Override
+ public void addGregTechLogoUI(ModularWindow.Builder builder, Pos2d windowOffset) {}
+
+ @Override
+ public void addProgressBarUI(
+ ModularWindow.Builder builder, Supplier<Float> progressSupplier, Pos2d windowOffset) {
+ builder.widget(new DrawableWidget()
+ .setDrawable(GG_UITextures.PICTURE_COMPONENT_ASSLINE)
+ .setPos(new Pos2d(70, 22).add(windowOffset))
+ .setSize(72, 40));
}
}
diff --git a/src/main/resources/assets/goodgenerator/textures/gui/ComponentAssline.png b/src/main/resources/assets/goodgenerator/textures/gui/ComponentAssline.png
deleted file mode 100644
index 27bc15e8ee..0000000000
--- a/src/main/resources/assets/goodgenerator/textures/gui/ComponentAssline.png
+++ /dev/null
Binary files differ
diff --git a/src/main/resources/assets/goodgenerator/textures/gui/NeutronSensorGUI.png b/src/main/resources/assets/goodgenerator/textures/gui/NeutronSensorGUI.png
deleted file mode 100644
index 226721d322..0000000000
--- a/src/main/resources/assets/goodgenerator/textures/gui/NeutronSensorGUI.png
+++ /dev/null
Binary files differ
diff --git a/src/main/resources/assets/goodgenerator/textures/gui/extreme_heat_exchanger.png b/src/main/resources/assets/goodgenerator/textures/gui/extreme_heat_exchanger.png
deleted file mode 100644
index dcbc004bb6..0000000000
--- a/src/main/resources/assets/goodgenerator/textures/gui/extreme_heat_exchanger.png
+++ /dev/null
Binary files differ
diff --git a/src/main/resources/assets/goodgenerator/textures/gui/naquadah_reactor.png b/src/main/resources/assets/goodgenerator/textures/gui/naquadah_reactor.png
deleted file mode 100644
index f2cbb5ffe0..0000000000
--- a/src/main/resources/assets/goodgenerator/textures/gui/naquadah_reactor.png
+++ /dev/null
Binary files differ
diff --git a/src/main/resources/assets/goodgenerator/textures/gui/neutron_activator.png b/src/main/resources/assets/goodgenerator/textures/gui/neutron_activator.png
deleted file mode 100644
index b96cfe9e31..0000000000
--- a/src/main/resources/assets/goodgenerator/textures/gui/neutron_activator.png
+++ /dev/null
Binary files differ
diff --git a/src/main/resources/assets/goodgenerator/textures/gui/picture/component_assline.png b/src/main/resources/assets/goodgenerator/textures/gui/picture/component_assline.png
new file mode 100644
index 0000000000..24d76af699
--- /dev/null
+++ b/src/main/resources/assets/goodgenerator/textures/gui/picture/component_assline.png
Binary files differ
diff --git a/src/main/resources/assets/goodgenerator/textures/gui/picture/extreme_heat_exchanger.png b/src/main/resources/assets/goodgenerator/textures/gui/picture/extreme_heat_exchanger.png
new file mode 100644
index 0000000000..3aa19cd3de
--- /dev/null
+++ b/src/main/resources/assets/goodgenerator/textures/gui/picture/extreme_heat_exchanger.png
Binary files differ
diff --git a/src/main/resources/assets/goodgenerator/textures/gui/picture/naquadah_reactor.png b/src/main/resources/assets/goodgenerator/textures/gui/picture/naquadah_reactor.png
new file mode 100644
index 0000000000..cc25723ec5
--- /dev/null
+++ b/src/main/resources/assets/goodgenerator/textures/gui/picture/naquadah_reactor.png
Binary files differ
diff --git a/src/main/resources/assets/goodgenerator/textures/gui/picture/neutron_activator.png b/src/main/resources/assets/goodgenerator/textures/gui/picture/neutron_activator.png
new file mode 100644
index 0000000000..a78ba3f6c9
--- /dev/null
+++ b/src/main/resources/assets/goodgenerator/textures/gui/picture/neutron_activator.png
Binary files differ
diff --git a/src/main/resources/assets/goodgenerator/textures/gui/precise_assembler.png b/src/main/resources/assets/goodgenerator/textures/gui/precise_assembler.png
deleted file mode 100644
index 3644fdf977..0000000000
--- a/src/main/resources/assets/goodgenerator/textures/gui/precise_assembler.png
+++ /dev/null
Binary files differ