Fix weird connection issue

This commit is contained in:
Aidan Brady 2014-01-03 12:13:49 -05:00
parent 2cf27c698d
commit 8118e96efb
7 changed files with 14 additions and 8 deletions

View file

@ -321,7 +321,7 @@ public class GasNetwork extends DynamicNetwork<IGasHandler, GasNetwork>
{
ForgeDirection side = ForgeDirection.getOrientation(Arrays.asList(acceptors).indexOf(acceptor));
if(side != null && acceptor != null && !(acceptor instanceof IGridTransmitter) && transmitter.canConnectToAcceptor(side))
if(side != null && acceptor != null && !(acceptor instanceof IGridTransmitter) && transmitter.canConnectToAcceptor(side, true))
{
possibleAcceptors.add(acceptor);
acceptorDirections.put(acceptor, ForgeDirection.getOrientation(Arrays.asList(acceptors).indexOf(acceptor)));

View file

@ -41,7 +41,7 @@ public interface IGridTransmitter<N extends DynamicNetwork<?, N>> extends ITrans
*/
public void removeFromTransmitterNetwork();
public boolean canConnectToAcceptor(ForgeDirection side);
public boolean canConnectToAcceptor(ForgeDirection side, boolean ignoreActive);
/**
* Call this if you're worried a transmitter's network is messed up and you want

View file

@ -336,7 +336,7 @@ public class EnergyNetwork extends DynamicNetwork<TileEntity, EnergyNetwork>
{
ForgeDirection side = ForgeDirection.getOrientation(Arrays.asList(acceptors).indexOf(acceptor));
if(side != null && acceptor != null && !(acceptor instanceof IGridTransmitter) && transmitter.canConnectToAcceptor(side))
if(side != null && acceptor != null && !(acceptor instanceof IGridTransmitter) && transmitter.canConnectToAcceptor(side, true))
{
possibleAcceptors.add(acceptor);
acceptorDirections.put(acceptor, ForgeDirection.getOrientation(Arrays.asList(acceptors).indexOf(acceptor)));

View file

@ -320,7 +320,7 @@ public class FluidNetwork extends DynamicNetwork<IFluidHandler, FluidNetwork>
{
ForgeDirection side = ForgeDirection.getOrientation(Arrays.asList(acceptors).indexOf(acceptor));
if(side != null && acceptor != null && !(acceptor instanceof IGridTransmitter) && transmitter.canConnectToAcceptor(side))
if(side != null && acceptor != null && !(acceptor instanceof IGridTransmitter) && transmitter.canConnectToAcceptor(side, true))
{
possibleAcceptors.add(acceptor);
acceptorDirections.put(acceptor, ForgeDirection.getOrientation(Arrays.asList(acceptors).indexOf(acceptor)));

View file

@ -591,15 +591,21 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart,
return false;
}
public boolean canConnectToAcceptor(ForgeDirection side)
public boolean canConnectToAcceptor(ForgeDirection side, boolean ignoreActive)
{
if(!isValidAcceptor(Coord4D.get(tile()).getFromSide(side).getTileEntity(world()), side))
{
return false;
}
if(!ignoreActive)
{
return getConnectionType(side) == ConnectionType.NORMAL || getConnectionType(side) == ConnectionType.PUSH;
}
else {
return connectionTypes[side.ordinal()] == ConnectionType.NORMAL || connectionTypes[side.ordinal()] == ConnectionType.PUSH;
}
}
public static enum ConnectionType
{

View file

@ -535,7 +535,7 @@ public class TileEntityBin extends TileEntityBasicBlock implements ISidedInvento
setStoredItemType(null, 0);
}
cacheCount = amount;
setItemCount(amount);
}
@Override

View file

@ -116,7 +116,7 @@ public abstract class TileEntityTransmitter<N extends DynamicNetwork<?, N>> exte
}
@Override
public boolean canConnectToAcceptor(ForgeDirection side)
public boolean canConnectToAcceptor(ForgeDirection side, boolean ignoreActive)
{
return true;
}