示例#1
0
        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);
        }
示例#2
0
 /// <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]);
     }
 }