From de880c5ab07b5d8ada0e8003e6c86313b3552428 Mon Sep 17 00:00:00 2001 From: Ben Spiers Date: Sun, 10 Aug 2014 03:33:25 +0100 Subject: [PATCH] Make Pressurized Tubes able to pull from IGasHandlers. Hopefully I didn't screw anything up too badly. --- .../java/mekanism/api/gas/GasNetwork.java | 19 +++++++------ .../java/mekanism/api/gas/IGasHandler.java | 4 +-- .../common/multipart/PartPressurizedTube.java | 27 ++++++++++++++++--- .../common/teleportation/SharedInventory.java | 8 +++--- .../TileEntityAdvancedElectricMachine.java | 4 +-- .../tile/TileEntityChemicalCrystallizer.java | 6 ++--- .../TileEntityChemicalDissolutionChamber.java | 8 +++--- .../tile/TileEntityChemicalInfuser.java | 10 +++---- .../TileEntityChemicalInjectionChamber.java | 4 +-- .../tile/TileEntityChemicalOxidizer.java | 2 +- .../common/tile/TileEntityChemicalWasher.java | 10 +++---- .../tile/TileEntityElectrolyticSeparator.java | 12 ++++----- .../common/tile/TileEntityEntangledBlock.java | 9 ++++--- .../common/tile/TileEntityFactory.java | 6 ++--- .../common/tile/TileEntityGasTank.java | 8 +++--- .../mekanism/common/tile/TileEntityPRC.java | 10 +++---- .../tile/TileEntityPurificationChamber.java | 4 +-- .../tile/TileEntityRotaryCondensentrator.java | 10 +++---- .../common/tile/TileEntityGasGenerator.java | 6 ++--- .../tile/reactor/TileEntityReactorPort.java | 12 ++++----- 20 files changed, 102 insertions(+), 77 deletions(-) diff --git a/src/main/java/mekanism/api/gas/GasNetwork.java b/src/main/java/mekanism/api/gas/GasNetwork.java index abc97366a..7eeedd0f6 100644 --- a/src/main/java/mekanism/api/gas/GasNetwork.java +++ b/src/main/java/mekanism/api/gas/GasNetwork.java @@ -168,7 +168,7 @@ public class GasNetwork extends DynamicNetwork remaining--; } - toSend -= acceptor.receiveGas(acceptorDirections.get(acceptor).getOpposite(), new GasStack(stack.getGas(), currentSending)); + toSend -= acceptor.receiveGas(acceptorDirections.get(acceptor).getOpposite(), new GasStack(stack.getGas(), currentSending), true); } } } @@ -184,7 +184,7 @@ public class GasNetwork extends DynamicNetwork return sent; } - public synchronized int emit(GasStack stack) + public synchronized int emit(GasStack stack, boolean doTransfer) { if(gasStored != null && gasStored.getGas() != stack.getGas()) { @@ -193,13 +193,16 @@ public class GasNetwork extends DynamicNetwork int toUse = Math.min(getGasNeeded(), stack.amount); - if(gasStored == null) + if(doTransfer) { - gasStored = stack.copy(); - gasStored.amount = toUse; - } - else { - gasStored.amount += toUse; + if(gasStored == null) + { + gasStored = stack.copy(); + gasStored.amount = toUse; + } + else { + gasStored.amount += toUse; + } } return toUse; diff --git a/src/main/java/mekanism/api/gas/IGasHandler.java b/src/main/java/mekanism/api/gas/IGasHandler.java index 8723da69a..3d99da62e 100644 --- a/src/main/java/mekanism/api/gas/IGasHandler.java +++ b/src/main/java/mekanism/api/gas/IGasHandler.java @@ -14,14 +14,14 @@ public interface IGasHandler * @param stack - gas to add * @return gas added */ - public int receiveGas(ForgeDirection side, GasStack stack); + public int receiveGas(ForgeDirection side, GasStack stack, boolean doTransfer); /** * Draws a certain amount of gas from this block. * @param amount - amount to draw * @return gas drawn */ - public GasStack drawGas(ForgeDirection side, int amount); + public GasStack drawGas(ForgeDirection side, int amount, boolean doTransfer); /** * Whether or not this block can accept gas from a certain side. diff --git a/src/main/java/mekanism/common/multipart/PartPressurizedTube.java b/src/main/java/mekanism/common/multipart/PartPressurizedTube.java index ebd570188..b38b57b7e 100644 --- a/src/main/java/mekanism/common/multipart/PartPressurizedTube.java +++ b/src/main/java/mekanism/common/multipart/PartPressurizedTube.java @@ -57,6 +57,27 @@ public class PartPressurizedTube extends PartTransmitter implements MekanismUtils.saveChunk(tile()); } } + + IGasHandler[] connectedAcceptors = GasTransmission.getConnectedAcceptors(tile()); + + for(ForgeDirection side : getConnections(ConnectionType.PULL)) + { + if(connectedAcceptors[side.ordinal()] != null) + { + IGasHandler container = connectedAcceptors[side.ordinal()]; + + if(container != null) + { + GasStack received = container.drawGas(side.getOpposite(), 100, false); + + if(received != null && received.amount != 0) + { + container.drawGas(side.getOpposite(), getTransmitterNetwork().emit(received, true), true); + } + } + } + } + } else { float targetScale = getTransmitterNetwork().gasScale; @@ -258,18 +279,18 @@ public class PartPressurizedTube extends PartTransmitter implements } @Override - public int receiveGas(ForgeDirection side, GasStack stack) + public int receiveGas(ForgeDirection side, GasStack stack, boolean doTransfer) { if(getConnectionType(side) == ConnectionType.NORMAL || getConnectionType(side) == ConnectionType.PULL) { - return getTransmitterNetwork().emit(stack); + return getTransmitterNetwork().emit(stack, doTransfer); } return 0; } @Override - public GasStack drawGas(ForgeDirection side, int amount) + public GasStack drawGas(ForgeDirection side, int amount, boolean doTransfer) { return null; } diff --git a/src/main/java/mekanism/common/teleportation/SharedInventory.java b/src/main/java/mekanism/common/teleportation/SharedInventory.java index f3a0b8b1c..604880efd 100644 --- a/src/main/java/mekanism/common/teleportation/SharedInventory.java +++ b/src/main/java/mekanism/common/teleportation/SharedInventory.java @@ -78,15 +78,15 @@ public class SharedInventory implements IStrictEnergyStorage, IFluidHandler, IGa } @Override - public int receiveGas(ForgeDirection side, GasStack stack) + public int receiveGas(ForgeDirection side, GasStack stack, boolean doTransfer) { - return storedGas.receive(stack, true); + return storedGas.receive(stack, doTransfer); } @Override - public GasStack drawGas(ForgeDirection side, int amount) + public GasStack drawGas(ForgeDirection side, int amount, boolean doTransfer) { - return storedGas.draw(amount, true); + return storedGas.draw(amount, doTransfer); } @Override diff --git a/src/main/java/mekanism/common/tile/TileEntityAdvancedElectricMachine.java b/src/main/java/mekanism/common/tile/TileEntityAdvancedElectricMachine.java index 336c1c5d5..cc9c42b33 100644 --- a/src/main/java/mekanism/common/tile/TileEntityAdvancedElectricMachine.java +++ b/src/main/java/mekanism/common/tile/TileEntityAdvancedElectricMachine.java @@ -333,13 +333,13 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM } @Override - public int receiveGas(ForgeDirection side, GasStack stack) + public int receiveGas(ForgeDirection side, GasStack stack, boolean doTransfer) { return 0; } @Override - public GasStack drawGas(ForgeDirection side, int amount) + public GasStack drawGas(ForgeDirection side, int amount, boolean doTransfer) { return null; } diff --git a/src/main/java/mekanism/common/tile/TileEntityChemicalCrystallizer.java b/src/main/java/mekanism/common/tile/TileEntityChemicalCrystallizer.java index f346a5b59..2c680ff16 100644 --- a/src/main/java/mekanism/common/tile/TileEntityChemicalCrystallizer.java +++ b/src/main/java/mekanism/common/tile/TileEntityChemicalCrystallizer.java @@ -394,18 +394,18 @@ public class TileEntityChemicalCrystallizer extends TileEntityElectricBlock impl } @Override - public int receiveGas(ForgeDirection side, GasStack stack) + public int receiveGas(ForgeDirection side, GasStack stack, boolean doTransfer) { if(canReceiveGas(side, stack.getGas())) { - return inputTank.receive(stack, true); + return inputTank.receive(stack, doTransfer); } return 0; } @Override - public GasStack drawGas(ForgeDirection side, int amount) + public GasStack drawGas(ForgeDirection side, int amount, boolean doTransfer) { return null; } diff --git a/src/main/java/mekanism/common/tile/TileEntityChemicalDissolutionChamber.java b/src/main/java/mekanism/common/tile/TileEntityChemicalDissolutionChamber.java index f83f46bf5..f06cf915b 100644 --- a/src/main/java/mekanism/common/tile/TileEntityChemicalDissolutionChamber.java +++ b/src/main/java/mekanism/common/tile/TileEntityChemicalDissolutionChamber.java @@ -165,7 +165,7 @@ public class TileEntityChemicalDissolutionChamber extends TileEntityElectricBloc { if(((IGasHandler)tileEntity).canReceiveGas(MekanismUtils.getRight(facing).getOpposite(), outputTank.getGas().getGas())) { - outputTank.draw(((IGasHandler)tileEntity).receiveGas(MekanismUtils.getRight(facing).getOpposite(), toSend), true); + outputTank.draw(((IGasHandler)tileEntity).receiveGas(MekanismUtils.getRight(facing).getOpposite(), toSend, true), true); } } } @@ -409,18 +409,18 @@ public class TileEntityChemicalDissolutionChamber extends TileEntityElectricBloc } @Override - public int receiveGas(ForgeDirection side, GasStack stack) + public int receiveGas(ForgeDirection side, GasStack stack, boolean doTransfer) { if(canReceiveGas(side, stack.getGas())) { - return injectTank.receive(stack, true); + return injectTank.receive(stack, doTransfer); } return 0; } @Override - public GasStack drawGas(ForgeDirection side, int amount) + public GasStack drawGas(ForgeDirection side, int amount, boolean doTransfer) { return null; } diff --git a/src/main/java/mekanism/common/tile/TileEntityChemicalInfuser.java b/src/main/java/mekanism/common/tile/TileEntityChemicalInfuser.java index d576f08dc..5b25aa89c 100644 --- a/src/main/java/mekanism/common/tile/TileEntityChemicalInfuser.java +++ b/src/main/java/mekanism/common/tile/TileEntityChemicalInfuser.java @@ -136,7 +136,7 @@ public class TileEntityChemicalInfuser extends TileEntityElectricBlock implement { if(((IGasHandler)tileEntity).canReceiveGas(ForgeDirection.getOrientation(facing).getOpposite(), centerTank.getGas().getGas())) { - centerTank.draw(((IGasHandler)tileEntity).receiveGas(ForgeDirection.getOrientation(facing).getOpposite(), toSend), true); + centerTank.draw(((IGasHandler)tileEntity).receiveGas(ForgeDirection.getOrientation(facing).getOpposite(), toSend, true), true); } } } @@ -388,22 +388,22 @@ public class TileEntityChemicalInfuser extends TileEntityElectricBlock implement } @Override - public int receiveGas(ForgeDirection side, GasStack stack) + public int receiveGas(ForgeDirection side, GasStack stack, boolean doTransfer) { if(canReceiveGas(side, stack != null ? stack.getGas() : null)) { - return getTank(side).receive(stack, true); + return getTank(side).receive(stack, doTransfer); } return 0; } @Override - public GasStack drawGas(ForgeDirection side, int amount) + public GasStack drawGas(ForgeDirection side, int amount, boolean doTransfer) { if(canDrawGas(side, null)) { - return getTank(side).draw(amount, true); + return getTank(side).draw(amount, doTransfer); } return null; diff --git a/src/main/java/mekanism/common/tile/TileEntityChemicalInjectionChamber.java b/src/main/java/mekanism/common/tile/TileEntityChemicalInjectionChamber.java index 29545e3b0..f99b7840e 100644 --- a/src/main/java/mekanism/common/tile/TileEntityChemicalInjectionChamber.java +++ b/src/main/java/mekanism/common/tile/TileEntityChemicalInjectionChamber.java @@ -43,11 +43,11 @@ public class TileEntityChemicalInjectionChamber extends TileEntityAdvancedElectr } @Override - public int receiveGas(ForgeDirection side, GasStack stack) + public int receiveGas(ForgeDirection side, GasStack stack, boolean doTransfer) { if(isValidGas(stack.getGas())) { - return gasTank.receive(stack, true); + return gasTank.receive(stack, doTransfer); } return 0; diff --git a/src/main/java/mekanism/common/tile/TileEntityChemicalOxidizer.java b/src/main/java/mekanism/common/tile/TileEntityChemicalOxidizer.java index 5599358fe..55290d9e7 100644 --- a/src/main/java/mekanism/common/tile/TileEntityChemicalOxidizer.java +++ b/src/main/java/mekanism/common/tile/TileEntityChemicalOxidizer.java @@ -145,7 +145,7 @@ public class TileEntityChemicalOxidizer extends TileEntityElectricBlock implemen { if(((IGasHandler)tileEntity).canReceiveGas(MekanismUtils.getRight(facing).getOpposite(), gasTank.getGas().getGas())) { - gasTank.draw(((IGasHandler)tileEntity).receiveGas(MekanismUtils.getRight(facing).getOpposite(), toSend), true); + gasTank.draw(((IGasHandler)tileEntity).receiveGas(MekanismUtils.getRight(facing).getOpposite(), toSend, true), true); } } } diff --git a/src/main/java/mekanism/common/tile/TileEntityChemicalWasher.java b/src/main/java/mekanism/common/tile/TileEntityChemicalWasher.java index abab985b3..bb3d6a9ef 100644 --- a/src/main/java/mekanism/common/tile/TileEntityChemicalWasher.java +++ b/src/main/java/mekanism/common/tile/TileEntityChemicalWasher.java @@ -141,7 +141,7 @@ public class TileEntityChemicalWasher extends TileEntityElectricBlock implements { if(((IGasHandler)tileEntity).canReceiveGas(MekanismUtils.getRight(facing).getOpposite(), outputTank.getGas().getGas())) { - outputTank.draw(((IGasHandler)tileEntity).receiveGas(MekanismUtils.getRight(facing).getOpposite(), toSend), true); + outputTank.draw(((IGasHandler)tileEntity).receiveGas(MekanismUtils.getRight(facing).getOpposite(), toSend, true), true); } } } @@ -457,22 +457,22 @@ public class TileEntityChemicalWasher extends TileEntityElectricBlock implements } @Override - public int receiveGas(ForgeDirection side, GasStack stack) + public int receiveGas(ForgeDirection side, GasStack stack, boolean doTransfer) { if(canReceiveGas(side, stack != null ? stack.getGas() : null)) { - return getTank(side).receive(stack, true); + return getTank(side).receive(stack, doTransfer); } return 0; } @Override - public GasStack drawGas(ForgeDirection side, int amount) + public GasStack drawGas(ForgeDirection side, int amount, boolean doTransfer) { if(canDrawGas(side, null)) { - return getTank(side).draw(amount, true); + return getTank(side).draw(amount, doTransfer); } return null; diff --git a/src/main/java/mekanism/common/tile/TileEntityElectrolyticSeparator.java b/src/main/java/mekanism/common/tile/TileEntityElectrolyticSeparator.java index 31cb93f0b..49dd3abcf 100644 --- a/src/main/java/mekanism/common/tile/TileEntityElectrolyticSeparator.java +++ b/src/main/java/mekanism/common/tile/TileEntityElectrolyticSeparator.java @@ -154,7 +154,7 @@ public class TileEntityElectrolyticSeparator extends TileEntityElectricBlock imp { if(((IGasHandler)tileEntity).canReceiveGas(MekanismUtils.getLeft(facing).getOpposite(), leftTank.getGas().getGas())) { - leftTank.draw(((IGasHandler)tileEntity).receiveGas(MekanismUtils.getLeft(facing).getOpposite(), toSend), true); + leftTank.draw(((IGasHandler)tileEntity).receiveGas(MekanismUtils.getLeft(facing).getOpposite(), toSend, true), true); } } } @@ -180,7 +180,7 @@ public class TileEntityElectrolyticSeparator extends TileEntityElectricBlock imp { if(((IGasHandler)tileEntity).canReceiveGas(MekanismUtils.getRight(facing).getOpposite(), rightTank.getGas().getGas())) { - rightTank.draw(((IGasHandler)tileEntity).receiveGas(MekanismUtils.getRight(facing).getOpposite(), toSend), true); + rightTank.draw(((IGasHandler)tileEntity).receiveGas(MekanismUtils.getRight(facing).getOpposite(), toSend, true), true); } } } @@ -645,21 +645,21 @@ public class TileEntityElectrolyticSeparator extends TileEntityElectricBlock imp } @Override - public int receiveGas(ForgeDirection side, GasStack stack) + public int receiveGas(ForgeDirection side, GasStack stack, boolean doTransfer) { return 0; } @Override - public GasStack drawGas(ForgeDirection side, int amount) + public GasStack drawGas(ForgeDirection side, int amount, boolean doTransfer) { if(side == MekanismUtils.getLeft(facing)) { - return leftTank.draw(amount, true); + return leftTank.draw(amount, doTransfer); } else if(side == MekanismUtils.getRight(facing)) { - return rightTank.draw(amount, true); + return rightTank.draw(amount, doTransfer); } return null; diff --git a/src/main/java/mekanism/common/tile/TileEntityEntangledBlock.java b/src/main/java/mekanism/common/tile/TileEntityEntangledBlock.java index 876309e59..77b09f78f 100644 --- a/src/main/java/mekanism/common/tile/TileEntityEntangledBlock.java +++ b/src/main/java/mekanism/common/tile/TileEntityEntangledBlock.java @@ -44,6 +44,7 @@ public class TileEntityEntangledBlock extends TileEntityElectricBlock implements public void setInventory(String frequency) { sharedInventory = SharedInventoryManager.getInventory(frequency); + markDirty(); } @Override @@ -152,15 +153,15 @@ public class TileEntityEntangledBlock extends TileEntityElectricBlock implements } @Override - public int receiveGas(ForgeDirection side, GasStack stack) + public int receiveGas(ForgeDirection side, GasStack stack, boolean doTransfer) { - return sharedInventory == null ? 0 : sharedInventory.receiveGas(side, stack); + return sharedInventory == null ? 0 : sharedInventory.receiveGas(side, stack, doTransfer); } @Override - public GasStack drawGas(ForgeDirection side, int amount) + public GasStack drawGas(ForgeDirection side, int amount, boolean doTransfer) { - return sharedInventory == null ? null : sharedInventory.drawGas(side, amount); + return sharedInventory == null ? null : sharedInventory.drawGas(side, amount, doTransfer); } @Override diff --git a/src/main/java/mekanism/common/tile/TileEntityFactory.java b/src/main/java/mekanism/common/tile/TileEntityFactory.java index 8200c8081..2b99c958a 100644 --- a/src/main/java/mekanism/common/tile/TileEntityFactory.java +++ b/src/main/java/mekanism/common/tile/TileEntityFactory.java @@ -878,11 +878,11 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IPerip } @Override - public int receiveGas(ForgeDirection side, GasStack stack) + public int receiveGas(ForgeDirection side, GasStack stack, boolean doTransfer) { if(canReceiveGas(side, stack.getGas())) { - return gasTank.receive(stack, true); + return gasTank.receive(stack, doTransfer); } return 0; @@ -901,7 +901,7 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IPerip } @Override - public GasStack drawGas(ForgeDirection side, int amount) + public GasStack drawGas(ForgeDirection side, int amount, boolean doTransfer) { return null; } diff --git a/src/main/java/mekanism/common/tile/TileEntityGasTank.java b/src/main/java/mekanism/common/tile/TileEntityGasTank.java index 7f970916a..4837d6b12 100644 --- a/src/main/java/mekanism/common/tile/TileEntityGasTank.java +++ b/src/main/java/mekanism/common/tile/TileEntityGasTank.java @@ -69,7 +69,7 @@ public class TileEntityGasTank extends TileEntityContainerBlock implements IGasH { if(((IGasHandler)tileEntity).canReceiveGas(ForgeDirection.getOrientation(facing).getOpposite(), gasTank.getGas().getGas())) { - gasTank.draw(((IGasHandler)tileEntity).receiveGas(ForgeDirection.getOrientation(facing).getOpposite(), toSend), true); + gasTank.draw(((IGasHandler)tileEntity).receiveGas(ForgeDirection.getOrientation(facing).getOpposite(), toSend, true), true); } } } @@ -118,13 +118,13 @@ public class TileEntityGasTank extends TileEntityContainerBlock implements IGasH } @Override - public int receiveGas(ForgeDirection side, GasStack stack) + public int receiveGas(ForgeDirection side, GasStack stack, boolean doTransfer) { - return gasTank.receive(stack, true); + return gasTank.receive(stack, doTransfer); } @Override - public GasStack drawGas(ForgeDirection side, int amount) + public GasStack drawGas(ForgeDirection side, int amount, boolean doTransfer) { return null; } diff --git a/src/main/java/mekanism/common/tile/TileEntityPRC.java b/src/main/java/mekanism/common/tile/TileEntityPRC.java index f9016d37f..4a3cf4f67 100644 --- a/src/main/java/mekanism/common/tile/TileEntityPRC.java +++ b/src/main/java/mekanism/common/tile/TileEntityPRC.java @@ -121,7 +121,7 @@ public class TileEntityPRC extends TileEntityBasicMachine implements IFluidHandl { if(((IGasHandler)tileEntity).canReceiveGas(MekanismUtils.getLeft(facing), outputGasTank.getGas().getGas())) { - outputGasTank.draw(((IGasHandler)tileEntity).receiveGas(MekanismUtils.getLeft(facing), toSend), true); + outputGasTank.draw(((IGasHandler)tileEntity).receiveGas(MekanismUtils.getLeft(facing), toSend, true), true); } } } @@ -401,22 +401,22 @@ public class TileEntityPRC extends TileEntityBasicMachine implements IFluidHandl } @Override - public int receiveGas(ForgeDirection side, GasStack stack) + public int receiveGas(ForgeDirection side, GasStack stack, boolean doTransfer) { if(side == MekanismUtils.getLeft(facing)) { - return inputGasTank.receive(stack, true); + return inputGasTank.receive(stack, doTransfer); } return 0; } @Override - public GasStack drawGas(ForgeDirection side, int amount) + public GasStack drawGas(ForgeDirection side, int amount, boolean doTransfer) { if(side == MekanismUtils.getRight(facing)) { - return outputGasTank.draw(amount, true); + return outputGasTank.draw(amount, doTransfer); } return null; diff --git a/src/main/java/mekanism/common/tile/TileEntityPurificationChamber.java b/src/main/java/mekanism/common/tile/TileEntityPurificationChamber.java index 39c3fd337..4263cfcf9 100644 --- a/src/main/java/mekanism/common/tile/TileEntityPurificationChamber.java +++ b/src/main/java/mekanism/common/tile/TileEntityPurificationChamber.java @@ -42,11 +42,11 @@ public class TileEntityPurificationChamber extends TileEntityAdvancedElectricMac } @Override - public int receiveGas(ForgeDirection side, GasStack stack) + public int receiveGas(ForgeDirection side, GasStack stack, boolean doTransfer) { if(stack.getGas() == GasRegistry.getGas("oxygen")) { - return gasTank.receive(stack, true); + return gasTank.receive(stack, doTransfer); } return 0; diff --git a/src/main/java/mekanism/common/tile/TileEntityRotaryCondensentrator.java b/src/main/java/mekanism/common/tile/TileEntityRotaryCondensentrator.java index b8093cd76..97087c8af 100644 --- a/src/main/java/mekanism/common/tile/TileEntityRotaryCondensentrator.java +++ b/src/main/java/mekanism/common/tile/TileEntityRotaryCondensentrator.java @@ -192,7 +192,7 @@ public class TileEntityRotaryCondensentrator extends TileEntityElectricBlock imp { if(((IGasHandler)tileEntity).canReceiveGas(MekanismUtils.getLeft(facing).getOpposite(), gasTank.getGas().getGas())) { - gasTank.draw(((IGasHandler)tileEntity).receiveGas(MekanismUtils.getLeft(facing).getOpposite(), toSend), true); + gasTank.draw(((IGasHandler)tileEntity).receiveGas(MekanismUtils.getLeft(facing).getOpposite(), toSend, true), true); } } } @@ -481,15 +481,15 @@ public class TileEntityRotaryCondensentrator extends TileEntityElectricBlock imp } @Override - public int receiveGas(ForgeDirection side, GasStack stack) + public int receiveGas(ForgeDirection side, GasStack stack, boolean doTransfer) { - return gasTank.receive(stack, true); + return gasTank.receive(stack, doTransfer); } @Override - public GasStack drawGas(ForgeDirection side, int amount) + public GasStack drawGas(ForgeDirection side, int amount, boolean doTransfer) { - return gasTank.draw(amount, true); + return gasTank.draw(amount, doTransfer); } @Override diff --git a/src/main/java/mekanism/generators/common/tile/TileEntityGasGenerator.java b/src/main/java/mekanism/generators/common/tile/TileEntityGasGenerator.java index 91dcc30c0..6e76c744e 100644 --- a/src/main/java/mekanism/generators/common/tile/TileEntityGasGenerator.java +++ b/src/main/java/mekanism/generators/common/tile/TileEntityGasGenerator.java @@ -229,11 +229,11 @@ public class TileEntityGasGenerator extends TileEntityGenerator implements IGasH } @Override - public int receiveGas(ForgeDirection side, GasStack stack) + public int receiveGas(ForgeDirection side, GasStack stack, boolean doTransfer) { if(fuelTank.getGas() == null || fuelTank.getGas().isGasEqual(stack)) { - return fuelTank.receive(stack, true); + return fuelTank.receive(stack, doTransfer); } return 0; @@ -262,7 +262,7 @@ public class TileEntityGasGenerator extends TileEntityGenerator implements IGasH } @Override - public GasStack drawGas(ForgeDirection side, int amount) + public GasStack drawGas(ForgeDirection side, int amount, boolean doTransfer) { return null; } diff --git a/src/main/java/mekanism/generators/common/tile/reactor/TileEntityReactorPort.java b/src/main/java/mekanism/generators/common/tile/reactor/TileEntityReactorPort.java index ac0bd335b..3c82fcb09 100644 --- a/src/main/java/mekanism/generators/common/tile/reactor/TileEntityReactorPort.java +++ b/src/main/java/mekanism/generators/common/tile/reactor/TileEntityReactorPort.java @@ -104,21 +104,21 @@ public class TileEntityReactorPort extends TileEntityReactorBlock implements IFl } @Override - public int receiveGas(ForgeDirection side, GasStack stack) + public int receiveGas(ForgeDirection side, GasStack stack, boolean doTransfer) { if(getReactor() != null) { if(stack.getGas() == GasRegistry.getGas("deuterium")) { - return getReactor().getDeuteriumTank().receive(stack, true); + return getReactor().getDeuteriumTank().receive(stack, doTransfer); } else if(stack.getGas() == GasRegistry.getGas("tritium")) { - return getReactor().getTritiumTank().receive(stack, true); + return getReactor().getTritiumTank().receive(stack, doTransfer); } else if(stack.getGas() == GasRegistry.getGas("fusionFuelDT")) { - return getReactor().getFuelTank().receive(stack, true); + return getReactor().getFuelTank().receive(stack, doTransfer); } } @@ -126,13 +126,13 @@ public class TileEntityReactorPort extends TileEntityReactorBlock implements IFl } @Override - public GasStack drawGas(ForgeDirection side, int amount) + public GasStack drawGas(ForgeDirection side, int amount, boolean doTransfer) { if(getReactor() != null) { if(getReactor().getSteamTank().getFluidAmount() > 0) { - return new GasStack(GasRegistry.getGas("steam"), getReactor().getSteamTank().drain(amount, true).amount); + return new GasStack(GasRegistry.getGas("steam"), getReactor().getSteamTank().drain(amount, doTransfer).amount); } }