aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dependencies.gradle6
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/YOTTAHatch.java6
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java122
-rw-r--r--src/main/java/goodgenerator/client/GUI/GG_UITextures.java2
-rw-r--r--src/main/resources/assets/goodgenerator/lang/en_US.lang12
-rw-r--r--src/main/resources/assets/goodgenerator/textures/gui/overlay_button/lock_off.pngbin0 -> 697 bytes
-rw-r--r--src/main/resources/assets/goodgenerator/textures/gui/overlay_button/lock_on.pngbin0 -> 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
new file mode 100644
index 0000000000..20dceacc7a
--- /dev/null
+++ b/src/main/resources/assets/goodgenerator/textures/gui/overlay_button/lock_off.png
Binary files differ
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
new file mode 100644
index 0000000000..ddd07319cb
--- /dev/null
+++ b/src/main/resources/assets/goodgenerator/textures/gui/overlay_button/lock_on.png
Binary files differ