private bool EnsureY(int y, out IDynBitArray bitarray, out List <NamespacedBlock> palette) { bitarray = _blockStates[y]; if (bitarray == null) { var longs = _blockStateRaw[y]; if (longs != null) { palette = _palette[y] = ToNamespacedBlockList(_paletteList[y]); bitarray = _blockStates[y] = DynBitArray.CreateFromLongArray(longs); _paletteList[y] = null; _blockStateRaw[y] = null; return(true); } else { bitarray = null; palette = null; return(false); } } palette = _palette[y]; return(true); }
/// <summary> /// Create from an existing DynBitArray with a different cell size /// </summary> /// <param name="bitArray"></param> /// <param name="newCellSize"></param> public DynBitArray(IDynBitArray bitArray, int newCellSize) : this(newCellSize, bitArray.Length) { for (var i = 0; i < Length; i++) { SetAt(i, bitArray[i]); } }