aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/metatileentity
diff options
context:
space:
mode:
authorGlease <4586901+Glease@users.noreply.github.com>2022-11-13 04:25:05 +0800
committerGitHub <noreply@github.com>2022-11-12 23:25:05 +0300
commit62ba05e40fc746e733235e62dc5075e4cc5194ec (patch)
treeb0adb83cd66a9d91b42002de361da005be1500f4 /src/main/java/gregtech/api/metatileentity
parente2fc7fad7f1f871155aa4ec77de16297810cb400 (diff)
downloadGT5-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/api/metatileentity')
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_MultiInput.java38
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java22
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;
}
}
}