fix structure pipes not respecting blocking pluggables

This commit is contained in:
asiekierka 2015-03-10 19:40:07 +01:00
parent a110ed1071
commit c5408d95d6
2 changed files with 8 additions and 4 deletions

View file

@ -226,7 +226,7 @@ public abstract class Pipe<T extends PipeTransport> implements IDropControlInven
Pipe<?> pipe = (Pipe<?>) tilePipe.getPipe();
if (BlockGenericPipe.isFullyDefined(pipe)) {
if (isWireConnectedTo(tile, color)) {
if (isWireConnectedTo(tile, color, o)) {
foundBiggerSignal |= receiveSignal(pipe.signalStrength[color.ordinal()] - 1, color);
}
}
@ -289,7 +289,7 @@ public abstract class Pipe<T extends PipeTransport> implements IDropControlInven
Pipe<?> pipe = (Pipe<?>) tilePipe.getPipe();
if (BlockGenericPipe.isFullyDefined(pipe) && pipe.wireSet[wire.ordinal()]) {
if (isWireConnectedTo(tile, wire)) {
if (isWireConnectedTo(tile, wire, o)) {
pipe.receiveSignal(signalStrength[wire.ordinal()] - 1, wire);
}
}
@ -474,7 +474,7 @@ public abstract class Pipe<T extends PipeTransport> implements IDropControlInven
return container;
}
public boolean isWireConnectedTo(TileEntity tile, PipeWire color) {
public boolean isWireConnectedTo(TileEntity tile, PipeWire color, ForgeDirection dir) {
if (!(tile instanceof IPipeTile)) {
return false;
}
@ -489,6 +489,10 @@ public abstract class Pipe<T extends PipeTransport> implements IDropControlInven
return false;
}
if (container.hasBlockingPluggable(dir) || pipe.container.hasBlockingPluggable(dir.getOpposite())) {
return false;
}
return pipe.transport instanceof PipeTransportStructure || transport instanceof PipeTransportStructure
|| Utils.checkPipesConnections(
container, tile);

View file

@ -480,7 +480,7 @@ public class TileGenericPipe extends TileEntity implements IFluidHandler,
renderState.wireMatrix.setWire(color, pipe.wireSet[color.ordinal()]);
for (ForgeDirection direction : ForgeDirection.VALID_DIRECTIONS) {
renderState.wireMatrix.setWireConnected(color, direction, pipe.isWireConnectedTo(this.getTile(direction), color));
renderState.wireMatrix.setWireConnected(color, direction, pipe.isWireConnectedTo(this.getTile(direction), color, direction));
}
boolean lit = pipe.signalStrength[color.ordinal()] > 0;