Fixes #143 "Crash related to losing power on the network"

This commit is contained in:
Raoul Van den Berge
2016-06-25 12:41:56 +02:00
parent 85121b7cae
commit bbbfe195e3

View File

@@ -85,7 +85,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
private RedstoneMode redstoneMode = RedstoneMode.IGNORE;
private List<ClientSlave> clientSlaves;
private List<ClientSlave> clientSlaves = new ArrayList<ClientSlave>();
@Override
public BlockPos getPosition() {
@@ -99,7 +99,7 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
@Override
public boolean canRun() {
return energy.getEnergyStored() > 0 && energy.getEnergyStored() >= energyUsage && redstoneMode.isEnabled(worldObj, pos);
return energy.getEnergyStored() > 0 && redstoneMode.isEnabled(worldObj, pos);
}
@Override
@@ -165,13 +165,11 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
craftingTasks.pop();
}
}
} else {
disconnectSlaves();
}
wirelessGridHandler.update();
if (canRun() && getType() == EnumControllerType.NORMAL) {
if (getType() == EnumControllerType.NORMAL) {
if (energy.getEnergyStored() - energyUsage >= 0) {
energy.extractEnergy(energyUsage, false);
} else {
@@ -181,6 +179,12 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
energy.setEnergyStored(energy.getMaxEnergyStored());
}
if (!canRun() && !slaves.isEmpty()) {
disconnectSlaves();
updateSlaves();
}
if (couldRun != canRun()) {
couldRun = canRun();