diff options
-rw-r--r-- | dependencies.gradle | 6 | ||||
-rw-r--r-- | src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/YOTTAHatch.java | 6 | ||||
-rw-r--r-- | src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java | 122 | ||||
-rw-r--r-- | src/main/java/goodgenerator/client/GUI/GG_UITextures.java | 2 | ||||
-rw-r--r-- | src/main/resources/assets/goodgenerator/lang/en_US.lang | 12 | ||||
-rw-r--r-- | src/main/resources/assets/goodgenerator/textures/gui/overlay_button/lock_off.png | bin | 0 -> 697 bytes | |||
-rw-r--r-- | src/main/resources/assets/goodgenerator/textures/gui/overlay_button/lock_on.png | bin | 0 -> 696 bytes |
7 files changed, 135 insertions, 13 deletions
diff --git a/dependencies.gradle b/dependencies.gradle index 617fb5da19..52a8f46500 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -2,12 +2,12 @@ dependencies { - compile('com.github.GTNewHorizons:GT5-Unofficial:5.09.41.197:dev') + compile('com.github.GTNewHorizons:GT5-Unofficial:5.09.41.218:dev') compile('com.github.GTNewHorizons:StructureLib:1.1.12:dev') compile("com.github.GTNewHorizons:ModularUI:1.0.31:dev") compile('com.github.GTNewHorizons:bartworks:0.5.131:dev') compile('com.github.GTNewHorizons:NotEnoughItems:2.3.17-GTNH:dev') - compile('com.github.GTNewHorizons:TecTech:5.0.61:dev') + compile('com.github.GTNewHorizons:TecTech:5.0.73:dev') compile('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev') compile('net.industrial-craft:industrialcraft-2:2.2.828-experimental:dev') @@ -25,7 +25,7 @@ dependencies { compileOnly('com.github.GTNewHorizons:ThaumicEnergistics:1.3.24-GTNH:dev') {transitive = false} compileOnly("com.github.GTNewHorizons:ProjectRed:4.7.9-GTNH:dev") {transitive = false} - runtime('com.github.GTNewHorizons:NewHorizonsCoreMod:1.9.116:dev') + runtime('com.github.GTNewHorizons:NewHorizonsCoreMod:1.9.132:dev') runtime('com.github.GTNewHorizons:ForestryMC:4.5.6:dev') runtime('com.github.GTNewHorizons:GTplusplus:1.7.176:dev') diff --git a/src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/YOTTAHatch.java b/src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/YOTTAHatch.java index 6c8758ce67..6ac023a559 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/YOTTAHatch.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/YOTTAHatch.java @@ -271,6 +271,9 @@ public class YOTTAHatch extends GT_MetaTileEntity_Hatch if (host == null || host.getBaseMetaTileEntity() == null || !host.getBaseMetaTileEntity().isActive()) return 0; + if (host.mLockedFluidName != null + && !host.mLockedFluidName.equals("") + && !host.mLockedFluidName.equals(resource.getFluid().getName())) return 0; if (host.mFluidName == null || host.mFluidName.equals("") || host.mFluidName.equals(resource.getFluid().getName())) { @@ -291,6 +294,9 @@ public class YOTTAHatch extends GT_MetaTileEntity_Hatch if (host == null || host.getBaseMetaTileEntity() == null || !host.getBaseMetaTileEntity().isActive()) return 0; + if (host.mLockedFluidName != null + && !host.mLockedFluidName.equals("") + && !host.mLockedFluidName.equals(resource.getFluid().getName())) return 0; if (host.mFluidName == null || host.mFluidName.equals("") || host.mFluidName.equals(resource.getFluid().getName())) { diff --git a/src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java b/src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java index ab60660002..cfeba833a2 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java @@ -2,18 +2,21 @@ package goodgenerator.blocks.tileEntity; import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; import static goodgenerator.util.DescTextLocalization.BLUE_PRINT_INFO; +import static gregtech.api.metatileentity.BaseTileEntity.TOOLTIP_DELAY; import static gregtech.api.util.GT_StructureUtility.*; import com.github.bartimaeusnek.bartworks.API.BorosilicateGlass; +import com.github.technus.tectech.TecTech; +import com.github.technus.tectech.thing.gui.TecTechUITextures; 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 com.gtnewhorizons.modularui.api.drawable.IDrawable; +import com.gtnewhorizons.modularui.api.drawable.UITexture; +import com.gtnewhorizons.modularui.common.widget.*; import goodgenerator.blocks.tileEntity.GTMetaTileEntity.YOTTAHatch; import goodgenerator.blocks.tileEntity.base.GT_MetaTileEntity_TooltipMultiBlockBase_EM; +import goodgenerator.client.GUI.GG_UITextures; import goodgenerator.loader.Loaders; import goodgenerator.util.CharExchanger; import goodgenerator.util.DescTextLocalization; @@ -60,6 +63,8 @@ public class YottaFluidTank extends GT_MetaTileEntity_TooltipMultiBlockBase_EM public BigInteger mStorage = new BigInteger("0", 10); public BigInteger mStorageCurrent = new BigInteger("0", 10); public String mFluidName = ""; + public String mLockedFluidName = ""; + protected boolean isFluidLocked = false; protected int glassMeta; protected int maxCell; protected final String YOTTANK_BOTTOM = mName + "buttom"; @@ -94,10 +99,19 @@ public class YottaFluidTank extends GT_MetaTileEntity_TooltipMultiBlockBase_EM public String getFluidName() { if (mFluidName == null || mFluidName.equals("") || FluidRegistry.getFluidStack(mFluidName, 1) == null) - return "Empty"; + return StatCollector.translateToLocal("scanner.info.YOTTank.empty"); return FluidRegistry.getFluidStack(mFluidName, 1).getLocalizedName(); } + public String getLockedFluidName() { + if (!isFluidLocked) return StatCollector.translateToLocal("scanner.info.YOTTank.none"); + if (mLockedFluidName == null + || mLockedFluidName.equals("") + || FluidRegistry.getFluidStack(mLockedFluidName, 1) == null) + return StatCollector.translateToLocal("scanner.info.YOTTank.next"); + return FluidRegistry.getFluidStack(mLockedFluidName, 1).getLocalizedName(); + } + @Override public void loadNBTData(NBTTagCompound aNBT) { String tAmount = aNBT.getString("mStorage"); @@ -107,7 +121,9 @@ public class YottaFluidTank extends GT_MetaTileEntity_TooltipMultiBlockBase_EM mStorage = new BigInteger(tAmount, 10); mStorageCurrent = new BigInteger(tAmountCurrent, 10); mFluidName = aNBT.getString("mFluidName"); + mLockedFluidName = aNBT.getString("mLockedFluidName"); voidExcessEnabled = aNBT.getBoolean("voidExcessEnabled"); + isFluidLocked = aNBT.getBoolean("isFluidLocked"); super.loadNBTData(aNBT); } @@ -116,7 +132,9 @@ public class YottaFluidTank extends GT_MetaTileEntity_TooltipMultiBlockBase_EM aNBT.setString("mStorage", mStorage.toString(10)); aNBT.setString("mStorageCurrent", mStorageCurrent.toString(10)); aNBT.setString("mFluidName", mFluidName); + aNBT.setString("mLockedFluidName", mLockedFluidName); aNBT.setBoolean("voidExcessEnabled", voidExcessEnabled); + aNBT.setBoolean("isFluidLocked", isFluidLocked); super.saveNBTData(aNBT); } @@ -311,8 +329,12 @@ public class YottaFluidTank extends GT_MetaTileEntity_TooltipMultiBlockBase_EM StatCollector.translateToLocal( EnumChatFormatting.YELLOW + CharExchanger.formatNumber(getFluidName()) + EnumChatFormatting.RESET), StatCollector.translateToLocal("scanner.info.YOTTank.2"), - StatCollector.translateToLocal( - EnumChatFormatting.BLUE + CharExchanger.formatNumber(getStored()) + EnumChatFormatting.RESET + " L") + StatCollector.translateToLocal(EnumChatFormatting.BLUE + CharExchanger.formatNumber(getStored()) + + EnumChatFormatting.RESET + " L"), + StatCollector.translateToLocal("scanner.info.YOTTank.3"), + StatCollector.translateToLocal(EnumChatFormatting.YELLOW + + CharExchanger.formatNumber(getLockedFluidName()) + + EnumChatFormatting.RESET) }; } @@ -352,6 +374,13 @@ public class YottaFluidTank extends GT_MetaTileEntity_TooltipMultiBlockBase_EM List<FluidStack> tStore = getStoredFluids(); for (FluidStack tFluid : tStore) { if (tFluid == null) continue; + if (isFluidLocked) { + if (mLockedFluidName != null && !mLockedFluidName.equals("")) { + if (!tFluid.getFluid().getName().equals(mLockedFluidName)) continue; + } else { + mLockedFluidName = tFluid.getFluid().getName(); + } + } if (mFluidName == null || mFluidName.equals("") || tFluid.getFluid().getName().equals(mFluidName)) { @@ -430,6 +459,28 @@ public class YottaFluidTank extends GT_MetaTileEntity_TooltipMultiBlockBase_EM } @Override + public boolean onWireCutterRightClick( + byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { + if (aSide == getBaseMetaTileEntity().getFrontFacing()) { + if (mLockedFluidName == null || mLockedFluidName.equals("")) { + if (mFluidName != null && !mFluidName.equals("")) { + mLockedFluidName = mFluidName; + aPlayer.addChatMessage(new ChatComponentTranslation("yottank.chat.1", getFluidName())); + } else { + aPlayer.addChatMessage(new ChatComponentTranslation("yottank.chat.2")); + } + isFluidLocked = true; + } else { + mLockedFluidName = ""; + isFluidLocked = false; + aPlayer.addChatMessage(new ChatComponentTranslation("yottank.chat.0")); + } + return true; + } + return false; + } + + @Override public String[] getStructureDescription(ItemStack stackSize) { return DescTextLocalization.addText("YOTTank.hint", 8); } @@ -502,6 +553,61 @@ public class YottaFluidTank extends GT_MetaTileEntity_TooltipMultiBlockBase_EM .setSynced(false) .setDefaultColor(COLOR_TEXT_WHITE.get()) .setEnabled(widget -> getBaseMetaTileEntity().getErrorDisplayID() == 0)) - .widget(new FakeSyncWidget.BigIntegerSyncer(() -> mStorageCurrent, val -> mStorageCurrent = val)); + .widget(new FakeSyncWidget.BigIntegerSyncer(() -> mStorageCurrent, val -> mStorageCurrent = val)) + .widget(TextWidget.dynamicString( + () -> StatCollector.translateToLocal("gui.YOTTank.3") + " " + getLockedFluidName()) + .setSynced(false) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setEnabled(widget -> getBaseMetaTileEntity().getErrorDisplayID() == 0)) + .widget(new FakeSyncWidget.StringSyncer(() -> mLockedFluidName, val -> mLockedFluidName = val)) + .widget(new FakeSyncWidget.BooleanSyncer(() -> isFluidLocked, val -> isFluidLocked = val)) + .widget(new FakeSyncWidget.BooleanSyncer(() -> voidExcessEnabled, val -> voidExcessEnabled = val)); + } + + @Override + protected ButtonWidget createSafeVoidButton() { + return (ButtonWidget) new ButtonWidget() + .setOnClick((clickData, widget) -> { + TecTech.proxy.playSound(getBaseMetaTileEntity(), "fx_click"); + voidExcessEnabled = !voidExcessEnabled; + }) + .setPlayClickSound(false) + .setBackground(() -> { + List<UITexture> ret = new ArrayList<>(); + ret.add(TecTechUITextures.BUTTON_STANDARD_16x16); + ret.add( + voidExcessEnabled + ? TecTechUITextures.OVERLAY_BUTTON_SAFE_VOID_ON + : TecTechUITextures.OVERLAY_BUTTON_SAFE_VOID_OFF); + return ret.toArray(new IDrawable[0]); + }) + .setPos(174, doesBindPlayerInventory() ? 132 : 156) + .setSize(16, 16) + .addTooltip(StatCollector.translateToLocal("gui.YOTTank.button.void")) + .setTooltipShowUpDelay(TOOLTIP_DELAY); + } + + @Override + protected ButtonWidget createPowerPassButton() { + return (ButtonWidget) new ButtonWidget() + .setOnClick((clickData, widget) -> { + TecTech.proxy.playSound(getBaseMetaTileEntity(), "fx_click"); + isFluidLocked = !isFluidLocked; + if (!widget.getContext().isClient()) mLockedFluidName = isFluidLocked ? mFluidName : ""; + }) + .setPlayClickSound(false) + .setBackground(() -> { + List<UITexture> ret = new ArrayList<>(); + ret.add(TecTechUITextures.BUTTON_STANDARD_16x16); + ret.add( + isFluidLocked + ? GG_UITextures.OVERLAY_BUTTON_LOCK_ON + : GG_UITextures.OVERLAY_BUTTON_LOCK_OFF); + return ret.toArray(new IDrawable[0]); + }) + .setPos(174, doesBindPlayerInventory() ? 116 : 140) + .setSize(16, 16) + .addTooltip(StatCollector.translateToLocal("gui.YOTTank.button.locking")) + .setTooltipShowUpDelay(TOOLTIP_DELAY); } } diff --git a/src/main/java/goodgenerator/client/GUI/GG_UITextures.java b/src/main/java/goodgenerator/client/GUI/GG_UITextures.java index 260dc22185..0dcc2f7743 100644 --- a/src/main/java/goodgenerator/client/GUI/GG_UITextures.java +++ b/src/main/java/goodgenerator/client/GUI/GG_UITextures.java @@ -13,4 +13,6 @@ public class GG_UITextures { UITexture.fullImage(MODID, "gui/picture/extreme_heat_exchanger"); public static final UITexture PICTURE_COMPONENT_ASSLINE = UITexture.fullImage(MODID, "gui/picture/component_assline"); + public static final UITexture OVERLAY_BUTTON_LOCK_OFF = UITexture.fullImage(MODID, "gui/overlay_button/lock_off"); + public static final UITexture OVERLAY_BUTTON_LOCK_ON = UITexture.fullImage(MODID, "gui/overlay_button/lock_on"); } diff --git a/src/main/resources/assets/goodgenerator/lang/en_US.lang b/src/main/resources/assets/goodgenerator/lang/en_US.lang index be8210803d..9c137a4bae 100644 --- a/src/main/resources/assets/goodgenerator/lang/en_US.lang +++ b/src/main/resources/assets/goodgenerator/lang/en_US.lang @@ -283,6 +283,10 @@ scanner.info.NA=Current Neutron Kinetic Energy: scanner.info.YOTTank.0=Current Capacity: scanner.info.YOTTank.1=Fluid Name: scanner.info.YOTTank.2=Current Used: +scanner.info.YOTTank.3=Locked to: +scanner.info.YOTTank.none=None +scanner.info.YOTTank.empty=Empty +scanner.info.YOTTank.next=None. Will lock to next fluid scanner.info.XHE.0=Steam Output is equal to scanner.info.XHE.1=Overheated Threshold: scanner.info.UX.0=Running Parallel @@ -298,6 +302,9 @@ gui.NeutronActivator.1=Input: gui.YOTTank.0=Capacity: gui.YOTTank.1=Fluid: gui.YOTTank.2=Stored: +gui.YOTTank.3=Locked: +gui.YOTTank.button.void=Void Excess +gui.YOTTank.button.locking=Fluid locking gui.LargeFusion.0=Energy Capacity: gui.LargeFusion.1=Stored Energy: @@ -444,8 +451,9 @@ essentiahatch.chat.0=Successfully locked to %s. essentiahatch.chat.1=Cleared. yothatch.chat.0=Set storage priority to %s. yothatch.chat.1=Set to %s mode -yottank.chat.0=Clear the lock filter -yottank.chat.1=Lock to %s +yottank.chat.0=Locked fluid cleared +yottank.chat.1=Locked to %s +yottank.chat.2=Will lock to next input fluid yottank.chat.voidExcessEnabled=Void Excess Enabled yottank.chat.voidExcessDisabled=Void Excess Disabled preciseassembler.chat.0=Precise Mode diff --git a/src/main/resources/assets/goodgenerator/textures/gui/overlay_button/lock_off.png b/src/main/resources/assets/goodgenerator/textures/gui/overlay_button/lock_off.png Binary files differnew file mode 100644 index 0000000000..20dceacc7a --- /dev/null +++ b/src/main/resources/assets/goodgenerator/textures/gui/overlay_button/lock_off.png diff --git a/src/main/resources/assets/goodgenerator/textures/gui/overlay_button/lock_on.png b/src/main/resources/assets/goodgenerator/textures/gui/overlay_button/lock_on.png Binary files differnew file mode 100644 index 0000000000..ddd07319cb --- /dev/null +++ b/src/main/resources/assets/goodgenerator/textures/gui/overlay_button/lock_on.png |