diff --git a/common/mekanism/api/GasTransmission.java b/common/mekanism/api/GasTransmission.java index 5fe778a35..ea42dbb10 100644 --- a/common/mekanism/api/GasTransmission.java +++ b/common/mekanism/api/GasTransmission.java @@ -3,6 +3,7 @@ package mekanism.api; import java.util.HashSet; import java.util.Set; +import mekanism.common.MekanismUtils; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.ForgeDirection; @@ -26,14 +27,7 @@ public final class GasTransmission { TileEntity tube = Object3D.get(tileEntity).getFromSide(orientation).getTileEntity(tileEntity.worldObj); - if(tileEntity instanceof IPressurizedTube) - { - if(((IPressurizedTube)tileEntity).canTransferGasToTube(tube)) - { - tubes[orientation.ordinal()] = tube; - } - } - else if(tube instanceof IPressurizedTube) + if(MekanismUtils.checkNetwork(tube, GasNetwork.class)) { tubes[orientation.ordinal()] = tube; } @@ -50,18 +44,15 @@ public final class GasTransmission public static IGasAcceptor[] getConnectedAcceptors(TileEntity tileEntity) { IGasAcceptor[] acceptors = new IGasAcceptor[] {null, null, null, null, null, null}; - - if(!(tileEntity instanceof IPressurizedTube)) + + for(ForgeDirection orientation : ForgeDirection.VALID_DIRECTIONS) { - for(ForgeDirection orientation : ForgeDirection.VALID_DIRECTIONS) - { - TileEntity acceptor = Object3D.get(tileEntity).getFromSide(orientation).getTileEntity(tileEntity.worldObj); - - if(acceptor instanceof IGasAcceptor) - { - acceptors[orientation.ordinal()] = (IGasAcceptor)acceptor; - } - } + TileEntity acceptor = Object3D.get(tileEntity).getFromSide(orientation).getTileEntity(tileEntity.worldObj); + + if(acceptor instanceof IGasAcceptor) + { + acceptors[orientation.ordinal()] = (IGasAcceptor)acceptor; + } } return acceptors; @@ -75,18 +66,15 @@ public final class GasTransmission public static ITubeConnection[] getConnections(TileEntity tileEntity) { ITubeConnection[] connections = new ITubeConnection[] {null, null, null, null, null, null}; - - if(!(tileEntity instanceof IPressurizedTube)) + + for(ForgeDirection orientation : ForgeDirection.VALID_DIRECTIONS) { - for(ForgeDirection orientation : ForgeDirection.VALID_DIRECTIONS) - { - TileEntity connection = Object3D.get(tileEntity).getFromSide(orientation).getTileEntity(tileEntity.worldObj); - - if(connection instanceof ITubeConnection) - { - connections[orientation.ordinal()] = (ITubeConnection)connection; - } - } + TileEntity connection = Object3D.get(tileEntity).getFromSide(orientation).getTileEntity(tileEntity.worldObj); + + if(connection instanceof ITubeConnection) + { + connections[orientation.ordinal()] = (ITubeConnection)connection; + } } return connections; @@ -104,9 +92,9 @@ public final class GasTransmission { TileEntity pointer = Object3D.get(sender).getFromSide(facing).getTileEntity(sender.worldObj); - if(pointer instanceof IPressurizedTube) + if(MekanismUtils.checkNetwork(pointer, GasNetwork.class)) { - return ((IPressurizedTube)pointer).getNetwork().emit(amount, type, sender); + return ((ITransmitter)pointer).getNetwork().emit(amount, type, sender); } return amount; @@ -130,9 +118,9 @@ public final class GasTransmission { TileEntity sideTile = Object3D.get(pointer).getFromSide(side).getTileEntity(pointer.worldObj); - if(sideTile instanceof IPressurizedTube) + if(MekanismUtils.checkNetwork(sideTile, GasNetwork.class)) { - networks.add(((IPressurizedTube)sideTile).getNetwork()); + networks.add(((ITransmitter)sideTile).getNetwork()); } } diff --git a/common/mekanism/client/GasClientUpdate.java b/common/mekanism/client/GasClientUpdate.java index 1e891954b..97ed3686e 100644 --- a/common/mekanism/client/GasClientUpdate.java +++ b/common/mekanism/client/GasClientUpdate.java @@ -4,8 +4,8 @@ import java.util.List; import mekanism.api.EnumGas; import mekanism.api.GasNetwork.NetworkFinder; -import mekanism.api.IPressurizedTube; import mekanism.api.Object3D; +import mekanism.common.TileEntityPressurizedTube; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; @@ -32,9 +32,9 @@ public class GasClientUpdate { TileEntity tileEntity = object.getTileEntity(worldObj); - if(tileEntity instanceof IPressurizedTube) + if(tileEntity instanceof TileEntityPressurizedTube) { - ((IPressurizedTube)tileEntity).onTransfer(gasType); + ((TileEntityPressurizedTube)tileEntity).onTransfer(gasType); } } } diff --git a/common/mekanism/client/RenderPressurizedTube.java b/common/mekanism/client/RenderPressurizedTube.java index 7cb465f63..0f27a1104 100644 --- a/common/mekanism/client/RenderPressurizedTube.java +++ b/common/mekanism/client/RenderPressurizedTube.java @@ -71,43 +71,40 @@ public class RenderPressurizedTube extends TileEntitySpecialRenderer model.renderCenter(connectable); - if(tileEntity.canTransferGas()) + for(int i = 0; i < 6; i++) { - for(int i = 0; i < 6; i++) + TileEntity sideTile = Object3D.get(tileEntity).getFromSide(ForgeDirection.getOrientation(i)).getTileEntity(tileEntity.worldObj); + + if(sideTile instanceof TileEntityGasTank && i != 0 && i != 1) { - TileEntity sideTile = Object3D.get(tileEntity).getFromSide(ForgeDirection.getOrientation(i)).getTileEntity(tileEntity.worldObj); + GL11.glPushMatrix(); - if(sideTile instanceof TileEntityGasTank && i != 0 && i != 1) + switch(ForgeDirection.getOrientation(i)) { - GL11.glPushMatrix(); - - switch(ForgeDirection.getOrientation(i)) - { - case NORTH: - GL11.glScalef(1, 1, 1.63f); - GL11.glTranslatef(0, 0, -.073f); - break; - case SOUTH: - GL11.glScalef(1, 1, 1.63f); - GL11.glTranslatef(0, 0, .073f); - break; - case WEST: - GL11.glScalef(1.63f, 1, 1); - GL11.glTranslatef(.073f, 0, 0); - break; - case EAST: - GL11.glScalef(1.63f, 1, 1); - GL11.glTranslatef(-.073f, 0, 0); - break; - } - - model.renderSide(ForgeDirection.getOrientation(i), connectable[i]); - - GL11.glPopMatrix(); - } - else { - model.renderSide(ForgeDirection.getOrientation(i), connectable[i]); + case NORTH: + GL11.glScalef(1, 1, 1.63f); + GL11.glTranslatef(0, 0, -.073f); + break; + case SOUTH: + GL11.glScalef(1, 1, 1.63f); + GL11.glTranslatef(0, 0, .073f); + break; + case WEST: + GL11.glScalef(1.63f, 1, 1); + GL11.glTranslatef(.073f, 0, 0); + break; + case EAST: + GL11.glScalef(1.63f, 1, 1); + GL11.glTranslatef(-.073f, 0, 0); + break; } + + model.renderSide(ForgeDirection.getOrientation(i), connectable[i]); + + GL11.glPopMatrix(); + } + else { + model.renderSide(ForgeDirection.getOrientation(i), connectable[i]); } } @@ -130,14 +127,11 @@ public class RenderPressurizedTube extends TileEntitySpecialRenderer tileEntity.refGas = null; } - if(tileEntity.canTransferGas()) + for(int i = 0; i < 6; i++) { - for(int i = 0; i < 6; i++) + if(connectable[i]) { - if(connectable[i]) - { - getListAndRender(ForgeDirection.getOrientation(i), tileEntity.refGas).render(); - } + getListAndRender(ForgeDirection.getOrientation(i), tileEntity.refGas).render(); } } diff --git a/common/mekanism/common/TileEntityPressurizedTube.java b/common/mekanism/common/TileEntityPressurizedTube.java index cb0285a3e..0e67a8ee7 100644 --- a/common/mekanism/common/TileEntityPressurizedTube.java +++ b/common/mekanism/common/TileEntityPressurizedTube.java @@ -84,36 +84,20 @@ public class TileEntityPressurizedTube extends TileEntityTransmitter { if(!worldObj.isRemote) { - if(canTransferGas()) + for(ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { - for(ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) - { - TileEntity tileEntity = Object3D.get(this).getFromSide(side).getTileEntity(worldObj); - - if(MekanismUtils.checkNetwork(tileEntity, GasNetwork.class)) - { - getNetwork().merge(((ITransmitter)tileEntity).getNetwork()); - } - } + TileEntity tileEntity = Object3D.get(this).getFromSide(side).getTileEntity(worldObj); - getNetwork().refresh(); - } - else { - getNetwork().split(this); + if(MekanismUtils.checkNetwork(tileEntity, GasNetwork.class)) + { + getNetwork().merge(((ITransmitter)tileEntity).getNetwork()); + } } + + getNetwork().refresh(); } } - public boolean canTransferGas() - { - return worldObj.getBlockPowerInput(xCoord, yCoord, zCoord) == 0; - } - - public boolean canTransferGasToTube(TileEntity tile) - { - return canTransferGas(); - } - public void onTransfer(EnumGas type) { if(type == refGas) @@ -130,7 +114,7 @@ public class TileEntityPressurizedTube extends TileEntityTransmitter @Override public boolean canTubeConnect(ForgeDirection side) { - return canTransferGas(); + return true; } @Override