Exemple #1
0
        public BlockStorage()
        {
            _bits = 8;

            Storage  = new FlexibleStorage(_bits, 4096);
            Pallette = new IntIdentityHashBiMap <IBlockState>((1 << _bits));

            Pallette.Add(Air);
        }
Exemple #2
0
        private uint Resize(int bits, IBlockState state)
        {
            var oldStorage = Storage;

            var oldPallete = Pallette;

            _bits = bits;

            Pallette = new IntIdentityHashBiMap <IBlockState>(1 << bits);
            Storage  = new FlexibleStorage(bits, 4096);
            IdFor(Air);

            for (int i = 0; i < oldStorage.Length; i++)
            {
                var oldEntry = oldPallete.Get(oldStorage[i]);
                if (oldEntry != null)
                {
                    Set(i, oldEntry);
                }
            }

            return(IdFor(state));
        }