public AtomicPaletteBlockStore( int shift, boolean storeState, int dirtySize, int[] palette, int blockArrayWidth, int[] variableWidthBlockArray) { this(shift, storeState, dirtySize); store.set(palette, blockArrayWidth, variableWidthBlockArray); }
@Override public int getAndSetBlock(int x, int y, int z, short id, short data) { int oldState = BlockFullState.getPacked(id, data); int newState = 0; try { return newState = store.set(getIndex(x, y, z), oldState); } finally { markDirty(x, y, z, oldState, newState); } }
public AtomicPaletteBlockStore( int shift, boolean storeState, int dirtySize, short[] blocks, short[] data) { this(shift, storeState, dirtySize); if (blocks != null) { int[] initial = new int[Math.min(blocks.length, this.length)]; for (int i = 0; i < blocks.length; i++) { short d = data != null ? data[i] : 0; initial[i] = BlockFullState.getPacked(blocks[i], d); } store.set(initial); } }