diff options
author | Maxim <maxim235@gmx.de> | 2022-11-04 19:27:11 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-04 19:27:11 +0100 |
commit | 4c5ead49ab3ab6d9fdd69f0075912df4291e3f40 (patch) | |
tree | 6443963a045a8c9245538376154ec8ebebd142d5 /src/main/java/goodgenerator/blocks | |
parent | d9c4f5efcf34c628f7958b70a9c00d43f50702d0 (diff) | |
download | GT5-Unofficial-4c5ead49ab3ab6d9fdd69f0075912df4291e3f40.tar.gz GT5-Unofficial-4c5ead49ab3ab6d9fdd69f0075912df4291e3f40.tar.bz2 GT5-Unofficial-4c5ead49ab3ab6d9fdd69f0075912df4291e3f40.zip |
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
Diffstat (limited to 'src/main/java/goodgenerator/blocks')
-rw-r--r-- | src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/YOTTAHatch.java | 2 | ||||
-rw-r--r-- | src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java | 28 |
2 files changed, 28 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 9d5f9feb40..6c8758ce67 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 class YOTTAHatch extends GT_MetaTileEntity_Hatch } 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 fdcf4b4bb5..ef6982a88b 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java @@ -30,10 +30,12 @@ import gregtech.api.util.GT_Multiblock_Tooltip_Builder; 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 class YottaFluidTank extends GT_MetaTileEntity_TooltipMultiBlockBase_EM 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 class YottaFluidTank extends GT_MetaTileEntity_TooltipMultiBlockBase_EM 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 class YottaFluidTank extends GT_MetaTileEntity_TooltipMultiBlockBase_EM 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 class YottaFluidTank extends GT_MetaTileEntity_TooltipMultiBlockBase_EM } else { BigInteger delta = mStorage.subtract(mStorageCurrent); mStorageCurrent = mStorageCurrent.add(delta); - tFluid.amount -= delta.intValue(); + if (voidExcessEnabled) { + tFluid.amount = 0; + } else { + tFluid.amount -= delta.intValue(); + } } } } @@ -407,6 +421,18 @@ public class YottaFluidTank extends GT_MetaTileEntity_TooltipMultiBlockBase_EM } @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); } |