v5.5.4 Beta #11

*Added TileEntity parameter to canTransferGas().
*Added TileEntity parameter to canTransferEnergy().

Closes #70.
This commit is contained in:
Aidan Brady 2013-04-12 20:30:00 -04:00
parent 13f62827f3
commit 2a54ef6765
6 changed files with 11 additions and 7 deletions

View file

@ -25,7 +25,7 @@ public class GasTransmission
{ {
TileEntity tube = VectorHelper.getTileEntityFromSide(tileEntity.worldObj, new Vector3(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord), orientation); TileEntity tube = VectorHelper.getTileEntityFromSide(tileEntity.worldObj, new Vector3(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord), orientation);
if(tube instanceof IPressurizedTube && ((IPressurizedTube)tube).canTransferGas()) if(tube instanceof IPressurizedTube && ((IPressurizedTube)tube).canTransferGas(tileEntity))
{ {
tubes[orientation.ordinal()] = tube; tubes[orientation.ordinal()] = tube;
} }

View file

@ -1,10 +1,12 @@
package mekanism.api; package mekanism.api;
import net.minecraft.tileentity.TileEntity;
public interface IPressurizedTube public interface IPressurizedTube
{ {
/** /**
* Whether or not this tube can transfer gas. * Whether or not this tube can transfer gas.
* @return if the tube can transfer gas * @return if the tube can transfer gas
*/ */
public boolean canTransferGas(); public boolean canTransferGas(TileEntity fromTile);
} }

View file

@ -1,5 +1,7 @@
package mekanism.api; package mekanism.api;
import net.minecraft.tileentity.TileEntity;
/** /**
* Implement this in your TileEntity class if the block can transfer energy as a Universal Cable. * Implement this in your TileEntity class if the block can transfer energy as a Universal Cable.
* @author AidanBrady * @author AidanBrady
@ -11,5 +13,5 @@ public interface IUniversalCable
* Whether or not this cable can transfer energy. * Whether or not this cable can transfer energy.
* @return if the cable can transfer energy * @return if the cable can transfer energy
*/ */
public boolean canTransferEnergy(); public boolean canTransferEnergy(TileEntity fromTile);
} }

View file

@ -53,7 +53,7 @@ public final class CableUtils
{ {
TileEntity cable = VectorHelper.getTileEntityFromSide(tileEntity.worldObj, new Vector3(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord), orientation); TileEntity cable = VectorHelper.getTileEntityFromSide(tileEntity.worldObj, new Vector3(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord), orientation);
if(cable instanceof IUniversalCable && ((IUniversalCable)cable).canTransferEnergy()) if(cable instanceof IUniversalCable && ((IUniversalCable)cable).canTransferEnergy(tileEntity))
{ {
cables[orientation.ordinal()] = cable; cables[orientation.ordinal()] = cable;
} }

View file

@ -11,7 +11,7 @@ import net.minecraftforge.common.ForgeDirection;
public class TileEntityPressurizedTube extends TileEntity implements IPressurizedTube, ITubeConnection public class TileEntityPressurizedTube extends TileEntity implements IPressurizedTube, ITubeConnection
{ {
@Override @Override
public boolean canTransferGas() public boolean canTransferGas(TileEntity fromTile)
{ {
return worldObj.getBlockPowerInput(xCoord, yCoord, zCoord) == 0; return worldObj.getBlockPowerInput(xCoord, yCoord, zCoord) == 0;
} }

View file

@ -30,7 +30,7 @@ public class TileEntityUniversalCable extends TileEntity implements IUniversalCa
} }
@Override @Override
public boolean canTransferEnergy() public boolean canTransferEnergy(TileEntity fromTile)
{ {
return worldObj.getBlockPowerInput(xCoord, yCoord, zCoord) == 0; return worldObj.getBlockPowerInput(xCoord, yCoord, zCoord) == 0;
} }
@ -58,7 +58,7 @@ public class TileEntityUniversalCable extends TileEntity implements IUniversalCa
{ {
ArrayList<TileEntity> ignored = new ArrayList<TileEntity>(); ArrayList<TileEntity> ignored = new ArrayList<TileEntity>();
ignored.add(VectorHelper.getTileEntityFromSide(worldObj, new Vector3(xCoord, yCoord, zCoord), from)); ignored.add(VectorHelper.getTileEntityFromSide(worldObj, new Vector3(xCoord, yCoord, zCoord), from));
return canTransferEnergy() ? (int)Math.min(100, new EnergyTransferProtocol(this, this, ignored).neededEnergy()) : 0; return canTransferEnergy(VectorHelper.getTileEntityFromSide(worldObj, new Vector3(xCoord, yCoord, zCoord), from)) ? (int)Math.min(100, new EnergyTransferProtocol(this, this, ignored).neededEnergy()) : 0;
} }
@Override @Override