diff options
Diffstat (limited to 'src')
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 Binary files differdeleted file mode 100644 index 27bc15e8ee..0000000000 --- a/src/main/resources/assets/goodgenerator/textures/gui/ComponentAssline.png +++ /dev/null diff --git a/src/main/resources/assets/goodgenerator/textures/gui/NeutronSensorGUI.png b/src/main/resources/assets/goodgenerator/textures/gui/NeutronSensorGUI.png Binary files differdeleted file mode 100644 index 226721d322..0000000000 --- a/src/main/resources/assets/goodgenerator/textures/gui/NeutronSensorGUI.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index dcbc004bb6..0000000000 --- a/src/main/resources/assets/goodgenerator/textures/gui/extreme_heat_exchanger.png +++ /dev/null diff --git a/src/main/resources/assets/goodgenerator/textures/gui/naquadah_reactor.png b/src/main/resources/assets/goodgenerator/textures/gui/naquadah_reactor.png Binary files differdeleted file mode 100644 index f2cbb5ffe0..0000000000 --- a/src/main/resources/assets/goodgenerator/textures/gui/naquadah_reactor.png +++ /dev/null diff --git a/src/main/resources/assets/goodgenerator/textures/gui/neutron_activator.png b/src/main/resources/assets/goodgenerator/textures/gui/neutron_activator.png Binary files differdeleted file mode 100644 index b96cfe9e31..0000000000 --- a/src/main/resources/assets/goodgenerator/textures/gui/neutron_activator.png +++ /dev/null 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 Binary files differnew file mode 100644 index 0000000000..24d76af699 --- /dev/null +++ b/src/main/resources/assets/goodgenerator/textures/gui/picture/component_assline.png 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 Binary files differnew file mode 100644 index 0000000000..3aa19cd3de --- /dev/null +++ b/src/main/resources/assets/goodgenerator/textures/gui/picture/extreme_heat_exchanger.png 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 Binary files differnew file mode 100644 index 0000000000..cc25723ec5 --- /dev/null +++ b/src/main/resources/assets/goodgenerator/textures/gui/picture/naquadah_reactor.png 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 Binary files differnew file mode 100644 index 0000000000..a78ba3f6c9 --- /dev/null +++ b/src/main/resources/assets/goodgenerator/textures/gui/picture/neutron_activator.png diff --git a/src/main/resources/assets/goodgenerator/textures/gui/precise_assembler.png b/src/main/resources/assets/goodgenerator/textures/gui/precise_assembler.png Binary files differdeleted file mode 100644 index 3644fdf977..0000000000 --- a/src/main/resources/assets/goodgenerator/textures/gui/precise_assembler.png +++ /dev/null |