@Override
 public boolean compareAndSetBlock(
     int x, int y, int z, short expectId, short expectData, short newId, short newData) {
   int exp = BlockFullState.getPacked(expectId, expectData);
   int update = BlockFullState.getPacked(newId, newData);
   boolean success = store.compareAndSet(getIndex(x, y, z), exp, update);
   if (success && exp != update) {
     markDirty(x, y, z, exp, update);
   }
   return success;
 }