fix multiple controllers not always exploding
This commit is contained in:
@@ -26,11 +26,11 @@ public class TileCable extends TileSC {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<IMachine> findMachines() {
|
public List<IMachine> findMachines(TileController controller) {
|
||||||
return findMachines(new ArrayList(), true);
|
return findMachines(new ArrayList(), controller);
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<IMachine> findMachines(List<Vec3> visited, boolean ignoreController) {
|
private List<IMachine> findMachines(List<Vec3> visited, TileController controller) {
|
||||||
List<IMachine> machines = new ArrayList<IMachine>();
|
List<IMachine> machines = new ArrayList<IMachine>();
|
||||||
|
|
||||||
for (Vec3 visitedCable : visited) {
|
for (Vec3 visitedCable : visited) {
|
||||||
@@ -47,9 +47,9 @@ public class TileCable extends TileSC {
|
|||||||
if (tile instanceof IMachine) {
|
if (tile instanceof IMachine) {
|
||||||
machines.add((IMachine) tile);
|
machines.add((IMachine) tile);
|
||||||
} else if (tile instanceof TileCable) {
|
} else if (tile instanceof TileCable) {
|
||||||
machines.addAll(((TileCable) tile).findMachines(visited, false));
|
machines.addAll(((TileCable) tile).findMachines(visited, controller));
|
||||||
} else if (tile instanceof TileController && !ignoreController) {
|
} else if (tile instanceof TileController && (tile.xCoord != controller.xCoord || tile.yCoord != controller.yCoord || tile.zCoord != controller.zCoord)) {
|
||||||
worldObj.createExplosion(null, xCoord, yCoord, zCoord, 4.5f, true);
|
worldObj.createExplosion(null, tile.xCoord, tile.yCoord, tile.zCoord, 4.5f, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
TileEntity tile = worldObj.getTileEntity(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ);
|
||||||
|
|
||||||
if (tile instanceof TileCable) {
|
if (tile instanceof TileCable) {
|
||||||
machines.addAll(((TileCable) tile).findMachines());
|
machines.addAll(((TileCable) tile).findMachines(this));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user