diff --git a/src/main/java/storagecraft/tile/TileCable.java b/src/main/java/storagecraft/tile/TileCable.java index e709226c1..e16a73c2d 100644 --- a/src/main/java/storagecraft/tile/TileCable.java +++ b/src/main/java/storagecraft/tile/TileCable.java @@ -26,11 +26,11 @@ public class TileCable extends TileSC { return true; } - public List findMachines() { - return findMachines(new ArrayList(), true); + public List findMachines(TileController controller) { + return findMachines(new ArrayList(), controller); } - private List findMachines(List visited, boolean ignoreController) { + private List findMachines(List visited, TileController controller) { List machines = new ArrayList(); for (Vec3 visitedCable : visited) { @@ -47,9 +47,9 @@ public class TileCable extends TileSC { if (tile instanceof IMachine) { machines.add((IMachine) tile); } else if (tile instanceof TileCable) { - machines.addAll(((TileCable) tile).findMachines(visited, false)); - } else if (tile instanceof TileController && !ignoreController) { - worldObj.createExplosion(null, xCoord, yCoord, zCoord, 4.5f, true); + machines.addAll(((TileCable) tile).findMachines(visited, controller)); + } else if (tile instanceof TileController && (tile.xCoord != controller.xCoord || tile.yCoord != controller.yCoord || tile.zCoord != controller.zCoord)) { + worldObj.createExplosion(null, tile.xCoord, tile.yCoord, tile.zCoord, 4.5f, true); } } diff --git a/src/main/java/storagecraft/tile/TileController.java b/src/main/java/storagecraft/tile/TileController.java index 7bd29dde8..540a11346 100644 --- a/src/main/java/storagecraft/tile/TileController.java +++ b/src/main/java/storagecraft/tile/TileController.java @@ -34,7 +34,7 @@ public class TileController extends TileSC implements IEnergyHandler, INetworkTi TileEntity tile = worldObj.getTileEntity(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); if (tile instanceof TileCable) { - machines.addAll(((TileCable) tile).findMachines()); + machines.addAll(((TileCable) tile).findMachines(this)); } }