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)); 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); possibleAcceptors.add(acceptor);
acceptorDirections.put(acceptor, ForgeDirection.getOrientation(Arrays.asList(acceptors).indexOf(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 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 * 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)); 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); possibleAcceptors.add(acceptor);
acceptorDirections.put(acceptor, ForgeDirection.getOrientation(Arrays.asList(acceptors).indexOf(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)); 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); possibleAcceptors.add(acceptor);
acceptorDirections.put(acceptor, ForgeDirection.getOrientation(Arrays.asList(acceptors).indexOf(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; return false;
} }
public boolean canConnectToAcceptor(ForgeDirection side) public boolean canConnectToAcceptor(ForgeDirection side, boolean ignoreActive)
{ {
if(!isValidAcceptor(Coord4D.get(tile()).getFromSide(side).getTileEntity(world()), side)) if(!isValidAcceptor(Coord4D.get(tile()).getFromSide(side).getTileEntity(world()), side))
{ {
return false; return false;
} }
if(!ignoreActive)
{
return getConnectionType(side) == ConnectionType.NORMAL || getConnectionType(side) == ConnectionType.PUSH; 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 public static enum ConnectionType
{ {

View file

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

View file

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