39 lines
1.0 KiB
C#
39 lines
1.0 KiB
C#
using OpenTK.Mathematics;
|
|
using VoxelEngine.Core;
|
|
using VoxelEngine.World.Blocks;
|
|
using VoxelEngine.World.Chunk;
|
|
using VoxelEngine.World.WorldGen;
|
|
using Xunit;
|
|
|
|
namespace VoxelEngine.Tests.WorldGen;
|
|
|
|
public class CaveCarverTests
|
|
{
|
|
private static readonly BlockRegistry Blocks = new();
|
|
private static readonly Configuration Cfg = new();
|
|
|
|
private static Chunk MakeStoneChunk()
|
|
{
|
|
Chunk c = new();
|
|
for (int x = 0; x < Chunk.Size; x++)
|
|
for (int y = 0; y < Chunk.Size; y++)
|
|
for (int z = 0; z < Chunk.Size; z++)
|
|
c[x, y, z] = Blocks.Stone.Id;
|
|
return c;
|
|
}
|
|
|
|
[Fact]
|
|
public void Carve_IsNoOpOnAirChunk()
|
|
{
|
|
var carver = new CaveCarver(seed: 42, Blocks, Cfg);
|
|
Chunk c = new(); // all-air by default
|
|
|
|
carver.Carve(c, new Vector3i(0, 4, 0));
|
|
|
|
for (int x = 0; x < Chunk.Size; x++)
|
|
for (int y = 0; y < Chunk.Size; y++)
|
|
for (int z = 0; z < Chunk.Size; z++)
|
|
Assert.Equal(Blocks.Air.Id, c[x, y, z]);
|
|
}
|
|
}
|