This commit is contained in:
Raoul Van den Berge
2016-05-14 17:20:03 +02:00
parent 440b4cc0bc
commit 38f1209f11
8 changed files with 83 additions and 75 deletions

View File

@@ -12,6 +12,8 @@ import refinedstorage.RefinedStorageUtils;
import refinedstorage.tile.TileController;
public class MessageControllerEnergyUpdate implements IMessage, IMessageHandler<MessageControllerEnergyUpdate, IMessage> {
public static long LAST_RE_RENDER;
private int x;
private int y;
private int z;
@@ -52,9 +54,15 @@ public class MessageControllerEnergyUpdate implements IMessage, IMessageHandler<
TileEntity tile = world.getTileEntity(pos);
if (tile instanceof TileController) {
int lastEnergy = ((TileController) tile).getEnergyStored(null);
((TileController) tile).setEnergyStored(message.energy);
if (lastEnergy != message.energy && System.currentTimeMillis() - LAST_RE_RENDER > 3000) {
RefinedStorageUtils.reRenderBlock(world, pos);
LAST_RE_RENDER = System.currentTimeMillis();
}
}
return null;

View File

@@ -52,10 +52,14 @@ public class MessageDetectorPoweredUpdate implements IMessage, IMessageHandler<M
TileEntity tile = world.getTileEntity(pos);
if (tile instanceof TileDetector) {
boolean wasPowered = ((TileDetector) tile).isPowered();
((TileDetector) tile).setPowered(message.powered);
if (wasPowered != message.powered) {
RefinedStorageUtils.reRenderBlock(world, pos);
}
}
return null;
}

View File

@@ -52,10 +52,14 @@ public class MessageMachineConnectedUpdate implements IMessage, IMessageHandler<
TileEntity tile = world.getTileEntity(pos);
if (tile instanceof TileMachine) {
boolean wasConnected = ((TileMachine) tile).isConnected();
((TileMachine) tile).setConnected(message.connected);
if (wasConnected != message.connected) {
RefinedStorageUtils.reRenderBlock(world, pos);
}
}
return null;
}

View File

@@ -52,10 +52,14 @@ public class MessageSoldererWorkingUpdate implements IMessage, IMessageHandler<M
TileEntity tile = world.getTileEntity(pos);
if (tile instanceof TileSolderer) {
boolean wasWorking = ((TileSolderer) tile).isWorking();
((TileSolderer) tile).setWorking(message.working);
if (wasWorking != message.working) {
RefinedStorageUtils.reRenderBlock(world, pos);
}
}
return null;
}

View File

@@ -74,8 +74,6 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr
private int wirelessGridRange;
private long lastEnergyUpdate;
public void addMachine(TileMachine machine) {
machinesToAdd.add(machine);
}
@@ -102,7 +100,7 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr
List<IStorage> newStorages = new ArrayList<IStorage>();
List<CraftingPattern> newPatterns = new ArrayList<CraftingPattern>();
//if (canRun()) {
if (canRun()) {
newEnergyUsage = 10;
for (TileMachine machine : machines) {
@@ -171,9 +169,9 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr
craftingTaskIterator.remove();
}
}
/*} else {
} else {
disconnectAll();
}*/
}
wirelessGridRange = newWirelessGridRange;
energyUsage = newEnergyUsage;
@@ -208,14 +206,10 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr
break;
}
if (lastEnergy != energy.getEnergyStored() || ticks == 1) {
worldObj.updateComparatorOutputLevel(pos, RefinedStorageBlocks.CONTROLLER);
if (System.currentTimeMillis() - lastEnergyUpdate > 3000L) {
RefinedStorageUtils.sendToAllAround(worldObj, pos, new MessageControllerEnergyUpdate(this));
lastEnergyUpdate = System.currentTimeMillis();
}
if (lastEnergy != energy.getEnergyStored()) {
worldObj.updateComparatorOutputLevel(pos, RefinedStorageBlocks.CONTROLLER);
}
}
}

View File

@@ -88,11 +88,11 @@ public class TileDetector extends TileMachine implements ICompareConfig {
if (powered != lastPowered) {
worldObj.notifyNeighborsOfStateChange(pos, RefinedStorageBlocks.DETECTOR);
}
RefinedStorageUtils.sendToAllAround(worldObj, pos, new MessageDetectorPoweredUpdate(this));
}
}
}
public boolean isPowered() {
return powered;

View File

@@ -60,6 +60,8 @@ public abstract class TileMachine extends TileBase implements ISynchronizedConta
searchController(worldObj);
}
RefinedStorageUtils.sendToAllAround(worldObj, pos, new MessageMachineConnectedUpdate(this));
if (connected && !redstoneMode.isEnabled(worldObj, pos)) {
onDisconnected();
}
@@ -72,8 +74,6 @@ public abstract class TileMachine extends TileBase implements ISynchronizedConta
if (worldObj.getBlockState(pos).getBlock() == block) {
worldObj.setBlockState(pos, worldObj.getBlockState(pos).withProperty(BlockMachine.CONNECTED, true));
RefinedStorageUtils.sendToAllAround(worldObj, pos, new MessageMachineConnectedUpdate(this));
}
worldObj.notifyNeighborsOfStateChange(pos, block);
@@ -86,12 +86,10 @@ public abstract class TileMachine extends TileBase implements ISynchronizedConta
if (worldObj.getBlockState(pos).getBlock() == block) {
worldObj.setBlockState(pos, worldObj.getBlockState(pos).withProperty(BlockMachine.CONNECTED, false));
RefinedStorageUtils.sendToAllAround(worldObj, pos, new MessageMachineConnectedUpdate(this));
}
// I have no idea why this is needed
if (controller != null) {
if (this.controller != null) {
this.controller.removeMachine(this);
this.controller = null;
}

View File

@@ -44,8 +44,6 @@ public class TileSolderer extends TileMachine implements IInventory, ISidedInven
public void updateMachine() {
ISoldererRecipe newRecipe = SoldererRegistry.getRecipe(inventory);
boolean lastWorking = working;
if (newRecipe == null) {
reset();
} else if (newRecipe != recipe) {
@@ -78,10 +76,8 @@ public class TileSolderer extends TileMachine implements IInventory, ISidedInven
}
}
if (working != lastWorking) {
RefinedStorageUtils.sendToAllAround(worldObj, pos, new MessageSoldererWorkingUpdate(this));
}
}
@Override
public void onDisconnected() {