From 4c5ead49ab3ab6d9fdd69f0075912df4291e3f40 Mon Sep 17 00:00:00 2001 From: Maxim Date: Fri, 4 Nov 2022 19:27:11 +0100 Subject: [PATCH] Add void excess option to yotta fluid tank (#100) * Add void excess option to yotta fluid tank * derp * Added own localization of void excess toggle messages --- .../GTMetaTileEntity/YOTTAHatch.java | 2 +- .../blocks/tileEntity/YottaFluidTank.java | 28 ++++++++++++++++++- .../assets/goodgenerator/lang/en_US.lang | 2 ++ 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/YOTTAHatch.java b/src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/YOTTAHatch.java index 9d5f9feb..6c8758ce 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/YOTTAHatch.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/YOTTAHatch.java @@ -281,7 +281,7 @@ public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { } else { int added = host.mStorage.subtract(host.mStorageCurrent).intValue(); if (doFill) host.addFluid(added); - return added; + return host.getIsVoidExcessEnabled() ? resource.amount : added; } } return 0; diff --git a/src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java b/src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java index fdcf4b4b..ef6982a8 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java @@ -30,10 +30,12 @@ import java.math.BigInteger; 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; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.StatCollector; import net.minecraftforge.common.util.ForgeDirection; @@ -63,6 +65,8 @@ public class YottaFluidTank extends GT_MetaTileEntity_TooltipMultiBlockBase_EM protected final String YOTTANK_MID = mName + "mid"; protected final String YOTTANK_TOP = mName + "top"; + protected boolean voidExcessEnabled = false; + public YottaFluidTank(int id, String name, String nameRegional) { super(id, name, nameRegional); } @@ -102,6 +106,7 @@ public void loadNBTData(NBTTagCompound aNBT) { mStorage = new BigInteger(tAmount, 10); mStorageCurrent = new BigInteger(tAmountCurrent, 10); mFluidName = aNBT.getString("mFluidName"); + voidExcessEnabled = aNBT.getBoolean("voidExcessEnabled"); super.loadNBTData(aNBT); } @@ -110,6 +115,7 @@ public void saveNBTData(NBTTagCompound aNBT) { aNBT.setString("mStorage", mStorage.toString(10)); aNBT.setString("mStorageCurrent", mStorageCurrent.toString(10)); aNBT.setString("mFluidName", mFluidName); + aNBT.setBoolean("voidExcessEnabled", voidExcessEnabled); super.saveNBTData(aNBT); } @@ -120,6 +126,10 @@ public boolean checkRecipe_EM(ItemStack aStack) { return true; } + public boolean getIsVoidExcessEnabled() { + return voidExcessEnabled; + } + public boolean reduceFluid(long amount) { BigInteger tmp = new BigInteger(amount + ""); if (mStorageCurrent.compareTo(tmp) < 0) { @@ -357,7 +367,11 @@ public boolean onRunningTick(ItemStack aStack) { } else { BigInteger delta = mStorage.subtract(mStorageCurrent); mStorageCurrent = mStorageCurrent.add(delta); - tFluid.amount -= delta.intValue(); + if (voidExcessEnabled) { + tFluid.amount = 0; + } else { + tFluid.amount -= delta.intValue(); + } } } } @@ -406,6 +420,18 @@ public void construct(ItemStack stackSize, boolean hintsOnly) { } } + @Override + public boolean onSolderingToolRightClick( + byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { + if (aSide == getBaseMetaTileEntity().getFrontFacing()) { + voidExcessEnabled ^= true; + aPlayer.addChatMessage(new ChatComponentTranslation( + voidExcessEnabled ? "yottank.chat.voidExcessEnabled" : "yottank.chat.voidExcessDisabled")); + return true; + } + return false; + } + @Override public String[] getStructureDescription(ItemStack stackSize) { return DescTextLocalization.addText("YOTTank.hint", 8); diff --git a/src/main/resources/assets/goodgenerator/lang/en_US.lang b/src/main/resources/assets/goodgenerator/lang/en_US.lang index 87c6fd36..7817a094 100644 --- a/src/main/resources/assets/goodgenerator/lang/en_US.lang +++ b/src/main/resources/assets/goodgenerator/lang/en_US.lang @@ -414,6 +414,8 @@ 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.voidExcessEnabled=Void Excess Enabled +yottank.chat.voidExcessDisabled=Void Excess Disabled preciseassembler.chat.0=Precise Mode preciseassembler.chat.1=Normal Mode essentiaoutputhatch.chat.0=Cleared.