Finished new changes, canTransferGas() functionality temporarily severed

This commit is contained in:
Aidan C. Brady 2013-08-19 07:55:47 -04:00
parent 30f7bfa126
commit de10fa2d58
4 changed files with 66 additions and 100 deletions

View file

@ -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<GasNetwork>)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<GasNetwork>)sideTile).getNetwork());
}
}

View file

@ -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);
}
}
}

View file

@ -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();
}
}

View file

@ -84,36 +84,20 @@ public class TileEntityPressurizedTube extends TileEntityTransmitter<GasNetwork>
{
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<GasNetwork>)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<GasNetwork>)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<GasNetwork>
@Override
public boolean canTubeConnect(ForgeDirection side)
{
return canTransferGas();
return true;
}
@Override