Last few bugs fixed
This commit is contained in:
@@ -298,6 +298,6 @@ public class RefinedStorageUtils {
|
||||
}
|
||||
|
||||
public static void reRenderBlock(World world, BlockPos pos) {
|
||||
world.notifyBlockUpdate(pos, world.getBlockState(pos), world.getBlockState(pos), 8);
|
||||
world.notifyBlockUpdate(pos, world.getBlockState(pos), world.getBlockState(pos), 1 | 2);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -90,7 +90,8 @@ public abstract class BlockBase extends Block {
|
||||
|
||||
((TileBase) tile).setDirection(EnumFacing.getFront(newDir));
|
||||
|
||||
world.notifyBlockUpdate(pos, world.getBlockState(pos), world.getBlockState(pos), 8);
|
||||
// This will resend the description packet
|
||||
world.notifyBlockUpdate(pos, world.getBlockState(pos), world.getBlockState(pos), 1 | 2);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -72,6 +72,8 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr
|
||||
private EnergyStorage energy = new EnergyStorage(ENERGY_CAPACITY);
|
||||
private int energyUsage;
|
||||
|
||||
private boolean couldRun;
|
||||
|
||||
private int wirelessGridRange;
|
||||
|
||||
public void addMachine(TileMachine machine) {
|
||||
@@ -101,8 +103,6 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr
|
||||
List<CraftingPattern> newPatterns = new ArrayList<CraftingPattern>();
|
||||
|
||||
if (canRun()) {
|
||||
newEnergyUsage = 10;
|
||||
|
||||
for (TileMachine machine : machines) {
|
||||
machine.updateMachine();
|
||||
|
||||
@@ -173,6 +173,12 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr
|
||||
disconnectAll();
|
||||
}
|
||||
|
||||
if (couldRun != canRun()) {
|
||||
couldRun = canRun();
|
||||
|
||||
worldObj.notifyNeighborsOfStateChange(pos, RefinedStorageBlocks.CONTROLLER);
|
||||
}
|
||||
|
||||
wirelessGridRange = newWirelessGridRange;
|
||||
energyUsage = newEnergyUsage;
|
||||
storages = newStorages;
|
||||
@@ -197,8 +203,12 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr
|
||||
|
||||
switch (getType()) {
|
||||
case NORMAL:
|
||||
if (canRun()) {
|
||||
energy.extractEnergy(energyUsage, false);
|
||||
if (energyUsage > 0) {
|
||||
if (energy.getEnergyStored() - energyUsage >= 0) {
|
||||
energy.extractEnergy(energyUsage, false);
|
||||
} else {
|
||||
energy.setEnergyStored(0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case CREATIVE:
|
||||
@@ -536,7 +546,7 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr
|
||||
}
|
||||
|
||||
public boolean canRun() {
|
||||
return energy.getEnergyStored() >= getEnergyUsage() && redstoneMode.isEnabled(worldObj, pos);
|
||||
return energy.getEnergyStored() > 0 && energy.getEnergyStored() >= energyUsage && redstoneMode.isEnabled(worldObj, pos);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -34,7 +34,7 @@ public abstract class TileMachine extends TileBase implements ISynchronizedConta
|
||||
TileController newController = ControllerSearcher.search(worldObj, pos, visited);
|
||||
|
||||
if (controller == null) {
|
||||
if (newController != null && redstoneMode.isEnabled(worldObj, pos)) {
|
||||
if (newController != null && newController.canRun() && redstoneMode.isEnabled(worldObj, pos)) {
|
||||
onConnected(world, newController);
|
||||
}
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user