public BlockStorage() { _bits = 8; Storage = new FlexibleStorage(_bits, 4096); Pallette = new IntIdentityHashBiMap <IBlockState>((1 << _bits)); Pallette.Add(Air); }
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)); }