diff options
author | Glease <4586901+Glease@users.noreply.github.com> | 2022-11-13 04:25:05 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-12 23:25:05 +0300 |
commit | 62ba05e40fc746e733235e62dc5075e4cc5194ec (patch) | |
tree | b0adb83cd66a9d91b42002de361da005be1500f4 /src/main/java/gregtech | |
parent | e2fc7fad7f1f871155aa4ec77de16297810cb400 (diff) | |
download | GT5-Unofficial-62ba05e40fc746e733235e62dc5075e4cc5194ec.tar.gz GT5-Unofficial-62ba05e40fc746e733235e62dc5075e4cc5194ec.tar.bz2 GT5-Unofficial-62ba05e40fc746e733235e62dc5075e4cc5194ec.zip |
fix depleteInput only seeing first slot of multi input (#1509)
Diffstat (limited to 'src/main/java/gregtech')
2 files changed, 22 insertions, 38 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_MultiInput.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_MultiInput.java index 726943f917..3d4b24ef93 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_MultiInput.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_MultiInput.java @@ -215,28 +215,24 @@ public class GT_MetaTileEntity_Hatch_MultiInput extends GT_MetaTileEntity_Hatch_ @Override public FluidStack drain(ForgeDirection from, FluidStack aFluid, boolean doDrain) { - if (getFluid() != null && aFluid != null && getFluid().isFluidEqual(aFluid)) { - if (hasFluid(aFluid)) { - FluidStack tStored = mStoredFluid[getFluidSlot(aFluid)]; - if (tStored.amount <= 0 && isFluidChangingAllowed()) { - setFluid(null, getFluidSlot(tStored)); - getBaseMetaTileEntity().markDirty(); - return null; - } - FluidStack tRemove = tStored.copy(); - tRemove.amount = Math.min(aFluid.amount, tRemove.amount); - if (doDrain) { - tStored.amount -= tRemove.amount; - getBaseMetaTileEntity().markDirty(); - } - if (tStored.amount <= 0 && isFluidChangingAllowed()) { - setFluid(null, getFluidSlot(tStored)); - getBaseMetaTileEntity().markDirty(); - } - return tRemove; - } + if (aFluid == null || !hasFluid(aFluid)) return null; + FluidStack tStored = mStoredFluid[getFluidSlot(aFluid)]; + if (tStored.amount <= 0 && isFluidChangingAllowed()) { + setFluid(null, getFluidSlot(tStored)); + getBaseMetaTileEntity().markDirty(); + return null; } - return null; + FluidStack tRemove = tStored.copy(); + tRemove.amount = Math.min(aFluid.amount, tRemove.amount); + if (doDrain) { + tStored.amount -= tRemove.amount; + getBaseMetaTileEntity().markDirty(); + } + if (tStored.amount <= 0 && isFluidChangingAllowed()) { + setFluid(null, getFluidSlot(tStored)); + getBaseMetaTileEntity().markDirty(); + } + return tRemove; } @Override diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java index e24663f18d..5e1b01ca1d 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java @@ -32,6 +32,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.StatCollector; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; import org.lwjgl.input.Keyboard; @@ -826,23 +827,10 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { for (GT_MetaTileEntity_Hatch_Input tHatch : mInputHatches) { tHatch.mRecipeMap = getRecipeMap(); if (isValidMetaTileEntity(tHatch)) { - if (tHatch instanceof GT_MetaTileEntity_Hatch_MultiInput) { - if (((GT_MetaTileEntity_Hatch_MultiInput) tHatch).hasFluid(aLiquid)) { - FluidStack tLiquid = tHatch.drain(aLiquid.amount, false); - if (tLiquid != null && tLiquid.amount >= aLiquid.amount) { - tLiquid = tHatch.drain(aLiquid.amount, true); - return tLiquid != null && tLiquid.amount >= aLiquid.amount; - } - } - } else { - FluidStack tLiquid = tHatch.getFluid(); - if (tLiquid != null && tLiquid.isFluidEqual(aLiquid)) { - tLiquid = tHatch.drain(aLiquid.amount, false); - if (tLiquid != null && tLiquid.amount >= aLiquid.amount) { - tLiquid = tHatch.drain(aLiquid.amount, true); - return tLiquid != null && tLiquid.amount >= aLiquid.amount; - } - } + FluidStack tLiquid = tHatch.drain(ForgeDirection.UNKNOWN, aLiquid, false); + if (tLiquid != null && tLiquid.amount >= aLiquid.amount) { + tLiquid = tHatch.drain(ForgeDirection.UNKNOWN, aLiquid, false); + return tLiquid != null && tLiquid.amount >= aLiquid.amount; } } } |