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