public void ResizeCompactedLongArrayTest(byte bitsPerEntry, byte newBitsPerEntry)
    {
        var faker        = new Faker();
        var array        = new CompactedLongArray(bitsPerEntry, 4096);
        var listOfValues = new List <int>();

        for (int i = 0; i < 4096; i++)
        {
            int value = faker.Random.Int(0, 15);

            listOfValues.Add(value);
            array.Set(i, value);
        }

        Assert.Equal(bitsPerEntry, array.BitsPerEntry);
        array.Resize(newBitsPerEntry);
        Assert.Equal(newBitsPerEntry, array.BitsPerEntry);

        for (int i = 0; i < 4096; i++)
        {
            int value      = array.Get(i);
            int savedValue = listOfValues[i];

            Assert.Equal(savedValue, value);
        }
    }
Beispiel #2
0
    public Chunk(IRegion region, int x, int z, IServiceProvider serviceProvider)
    {
        Region           = region;
        X                = x;
        Z                = z;
        _serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider));
        _chunkSections   = Enumerable.Range(0, ChunkSectionAmount).Select(index => new ChunkSection(this, index, _serviceProvider)).ToList();

        _heightmap             = new CompactedLongArray(9, 256);
        _oceanFloorHeightmap   = new CompactedLongArray(9, 256);
        _worldSurfaceHeightmap = new CompactedLongArray(9, 256);
    }
Beispiel #3
0
    public ChunkSection(IChunk chunk, int index, IServiceProvider serviceProvider)
    {
        Chunk             = chunk;
        Index             = index;
        _serviceProvider  = serviceProvider;
        _blocks           = new IBlock[MaximumBlockAmount];
        _blockFactory     = _serviceProvider.GetRequiredService <IBlockFactory>();
        _registry         = _serviceProvider.GetRequiredService <IRegistry>();
        _blockStorage     = new CompactedLongArray(DefaultBitsPerBlock, MaximumBlockAmount);
        _palette          = new BlockStatePalette(DefaultBitsPerBlock, MaximumBitsPerBlock);
        _palette.Resized += OnPaletteResized;

        Initialize();
    }
    public void CompactedLongArrayMethodsTest(byte bitsPerEntry, int capacity, int value)
    {
        var array = new CompactedLongArray(bitsPerEntry, capacity);

        Assert.Equal(capacity, array.Length);
        Assert.Equal(bitsPerEntry, array.BitsPerEntry);

        for (int i = 0; i < capacity; i++)
        {
            array.Set(i, value);
        }

        for (int i = 0; i < capacity; i++)
        {
            Assert.Equal(value, array.Get(i));
        }
    }
    public void CompactedLongArrayIndexerTest(byte bitsPerEntry, int capacity, int value)
    {
        var array = new CompactedLongArray(bitsPerEntry, capacity);

        Assert.Equal(capacity, array.Length);
        Assert.Equal(bitsPerEntry, array.BitsPerEntry);

        for (int i = 0; i < capacity; i++)
        {
            array[i] = value;
        }

        for (int i = 0; i < capacity; i++)
        {
            Assert.Equal(value, array[i]);
        }
    }