From 271b19cca1b5969ae04f483d9c15a1c5180db343 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sat, 26 Dec 2015 02:48:07 +0100 Subject: [PATCH] mark dirty on places --- src/main/java/storagecraft/tile/TileBase.java | 10 ++++++---- src/main/java/storagecraft/tile/TileConstructor.java | 2 ++ src/main/java/storagecraft/tile/TileController.java | 9 +++++++++ src/main/java/storagecraft/tile/TileDetector.java | 4 ++++ src/main/java/storagecraft/tile/TileExporter.java | 2 ++ src/main/java/storagecraft/tile/TileGrid.java | 2 ++ src/main/java/storagecraft/tile/TileImporter.java | 4 ++++ src/main/java/storagecraft/tile/TileMachine.java | 6 ++++++ src/main/java/storagecraft/tile/TileSolderer.java | 4 ++++ .../storagecraft/tile/TileWirelessTransmitter.java | 5 ++++- 10 files changed, 43 insertions(+), 5 deletions(-) diff --git a/src/main/java/storagecraft/tile/TileBase.java b/src/main/java/storagecraft/tile/TileBase.java index 45c095268..b0dc78d9a 100644 --- a/src/main/java/storagecraft/tile/TileBase.java +++ b/src/main/java/storagecraft/tile/TileBase.java @@ -17,6 +17,8 @@ import storagecraft.network.MessageTileUpdate; public abstract class TileBase extends TileEntity implements IUpdatePlayerListBox { + public static final String NBT_DIRECTION = "Direction"; + public static final int UPDATE_RANGE = 256; private EnumFacing direction = EnumFacing.NORTH; @@ -54,7 +56,7 @@ public abstract class TileBase extends TileEntity implements IUpdatePlayerListBo { super.readFromNBT(nbt); - direction = EnumFacing.getFront(nbt.getInteger("Direction")); + direction = EnumFacing.getFront(nbt.getInteger(NBT_DIRECTION)); } @Override @@ -62,7 +64,7 @@ public abstract class TileBase extends TileEntity implements IUpdatePlayerListBo { super.writeToNBT(nbt); - nbt.setInteger("Direction", direction.ordinal()); + nbt.setInteger(NBT_DIRECTION, direction.ordinal()); } @Override @@ -70,7 +72,7 @@ public abstract class TileBase extends TileEntity implements IUpdatePlayerListBo { NBTTagCompound nbt = new NBTTagCompound(); - nbt.setInteger("Direction", direction.ordinal()); + nbt.setInteger(NBT_DIRECTION, direction.ordinal()); return new S35PacketUpdateTileEntity(pos, 1, nbt); } @@ -78,7 +80,7 @@ public abstract class TileBase extends TileEntity implements IUpdatePlayerListBo @Override public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet) { - direction = EnumFacing.getFront(packet.getNbtCompound().getInteger("Direction")); + direction = EnumFacing.getFront(packet.getNbtCompound().getInteger(NBT_DIRECTION)); } @Override diff --git a/src/main/java/storagecraft/tile/TileConstructor.java b/src/main/java/storagecraft/tile/TileConstructor.java index f231f0cba..0349a2f9d 100644 --- a/src/main/java/storagecraft/tile/TileConstructor.java +++ b/src/main/java/storagecraft/tile/TileConstructor.java @@ -55,6 +55,8 @@ public class TileConstructor extends TileMachine implements IInventory, ISidedIn @Override public void setCompare(int compare) { + markDirty(); + this.compare = compare; } diff --git a/src/main/java/storagecraft/tile/TileController.java b/src/main/java/storagecraft/tile/TileController.java index cceea0982..e3013c55c 100644 --- a/src/main/java/storagecraft/tile/TileController.java +++ b/src/main/java/storagecraft/tile/TileController.java @@ -118,6 +118,7 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor if (lastEnergy != energy.getEnergyStored()) { worldObj.setBlockState(pos, worldObj.getBlockState(pos).withProperty(BlockController.ENERGY, getEnergyScaled(15))); + // @TODO: Is this needed? worldObj.markBlockForUpdate(pos); worldObj.notifyNeighborsOfStateChange(pos, StorageCraftBlocks.CONTROLLER); } @@ -227,16 +228,22 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor syncItems(); + markDirty(); + return true; } public ItemStack take(ItemStack stack) { + markDirty(); + return take(stack, InventoryUtils.COMPARE_DAMAGE | InventoryUtils.COMPARE_NBT); } public ItemStack take(ItemStack stack, int flags) { + markDirty(); + int requested = stack.stackSize; int receiving = 0; @@ -343,6 +350,8 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor @Override public void setRedstoneMode(RedstoneMode mode) { + markDirty(); + this.redstoneMode = mode; } diff --git a/src/main/java/storagecraft/tile/TileDetector.java b/src/main/java/storagecraft/tile/TileDetector.java index 8ac537a22..df9ae77d9 100644 --- a/src/main/java/storagecraft/tile/TileDetector.java +++ b/src/main/java/storagecraft/tile/TileDetector.java @@ -121,6 +121,8 @@ public class TileDetector extends TileMachine implements IInventory, ISidedInven @Override public void setCompare(int compare) { + markDirty(); + this.compare = compare; } @@ -131,6 +133,8 @@ public class TileDetector extends TileMachine implements IInventory, ISidedInven public void setMode(int mode) { + markDirty(); + this.mode = mode; } diff --git a/src/main/java/storagecraft/tile/TileExporter.java b/src/main/java/storagecraft/tile/TileExporter.java index e3133a1b9..dd072f221 100644 --- a/src/main/java/storagecraft/tile/TileExporter.java +++ b/src/main/java/storagecraft/tile/TileExporter.java @@ -98,6 +98,8 @@ public class TileExporter extends TileMachine implements IInventory, ISidedInven @Override public void setCompare(int compare) { + markDirty(); + this.compare = compare; } diff --git a/src/main/java/storagecraft/tile/TileGrid.java b/src/main/java/storagecraft/tile/TileGrid.java index ebd5fc6a6..37ffff260 100644 --- a/src/main/java/storagecraft/tile/TileGrid.java +++ b/src/main/java/storagecraft/tile/TileGrid.java @@ -44,6 +44,8 @@ public class TileGrid extends TileMachine public void onCraftingMatrixChanged() { + markDirty(); + craftingResult.setInventorySlotContents(0, CraftingManager.getInstance().findMatchingRecipe(craftingMatrix, worldObj)); } diff --git a/src/main/java/storagecraft/tile/TileImporter.java b/src/main/java/storagecraft/tile/TileImporter.java index e0e7012d0..9881abd52 100644 --- a/src/main/java/storagecraft/tile/TileImporter.java +++ b/src/main/java/storagecraft/tile/TileImporter.java @@ -131,6 +131,8 @@ public class TileImporter extends TileMachine implements IInventory, ISidedInven @Override public void setCompare(int compare) { + markDirty(); + this.compare = compare; } @@ -141,6 +143,8 @@ public class TileImporter extends TileMachine implements IInventory, ISidedInven public void setMode(int mode) { + markDirty(); + this.mode = mode; } diff --git a/src/main/java/storagecraft/tile/TileMachine.java b/src/main/java/storagecraft/tile/TileMachine.java index 746b986b1..4dd15bba4 100644 --- a/src/main/java/storagecraft/tile/TileMachine.java +++ b/src/main/java/storagecraft/tile/TileMachine.java @@ -16,6 +16,8 @@ public abstract class TileMachine extends TileBase implements INetworkTile, IRed public void onConnected(TileController controller) { + markDirty(); + connected = true; controllerPos = controller.getPos(); @@ -25,6 +27,8 @@ public abstract class TileMachine extends TileBase implements INetworkTile, IRed public void onDisconnected() { + markDirty(); + connected = false; if (!worldObj.isAirBlock(pos)) @@ -60,6 +64,8 @@ public abstract class TileMachine extends TileBase implements INetworkTile, IRed { if (redstoneControlled) { + markDirty(); + this.redstoneMode = mode; } } diff --git a/src/main/java/storagecraft/tile/TileSolderer.java b/src/main/java/storagecraft/tile/TileSolderer.java index dcc7dfda2..429526840 100644 --- a/src/main/java/storagecraft/tile/TileSolderer.java +++ b/src/main/java/storagecraft/tile/TileSolderer.java @@ -47,6 +47,8 @@ public class TileSolderer extends TileMachine implements IInventory, ISidedInven recipe = newRecipe; progress = 0; working = true; + + markDirty(); } else if (working) { @@ -82,6 +84,8 @@ public class TileSolderer extends TileMachine implements IInventory, ISidedInven progress = 0; working = false; recipe = null; + + markDirty(); } @Override diff --git a/src/main/java/storagecraft/tile/TileWirelessTransmitter.java b/src/main/java/storagecraft/tile/TileWirelessTransmitter.java index 7e58bccc1..da6913b9a 100644 --- a/src/main/java/storagecraft/tile/TileWirelessTransmitter.java +++ b/src/main/java/storagecraft/tile/TileWirelessTransmitter.java @@ -47,6 +47,8 @@ public class TileWirelessTransmitter extends TileMachine implements IInventory progress = 0; working = true; + + markDirty(); } if (inventory.getStackInSlot(1) != null) @@ -68,6 +70,8 @@ public class TileWirelessTransmitter extends TileMachine implements IInventory { progress = 0; working = false; + + markDirty(); } @Override @@ -92,7 +96,6 @@ public class TileWirelessTransmitter extends TileMachine implements IInventory { for (TileMachine machine : getController().getMachines()) { - // @TODO: Is this still needed? if (worldObj.getTileEntity(machine.getPos()) != null) { if (machine instanceof TileGrid)