mark dirty on places

This commit is contained in:
Raoul Van den Berge
2015-12-26 02:48:07 +01:00
parent 9146a566b2
commit 271b19cca1
10 changed files with 43 additions and 5 deletions

View File

@@ -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

View File

@@ -55,6 +55,8 @@ public class TileConstructor extends TileMachine implements IInventory, ISidedIn
@Override
public void setCompare(int compare)
{
markDirty();
this.compare = compare;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -98,6 +98,8 @@ public class TileExporter extends TileMachine implements IInventory, ISidedInven
@Override
public void setCompare(int compare)
{
markDirty();
this.compare = compare;
}

View File

@@ -44,6 +44,8 @@ public class TileGrid extends TileMachine
public void onCraftingMatrixChanged()
{
markDirty();
craftingResult.setInventorySlotContents(0, CraftingManager.getInstance().findMatchingRecipe(craftingMatrix, worldObj));
}

View File

@@ -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;
}

View File

@@ -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;
}
}

View File

@@ -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

View File

@@ -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)