using VoxelEngine.World; using VoxelEngine.World.Blocks; using Xunit; namespace VoxelEngine.Tests; public class BlockRegistryTests { [Fact] public void Get_ReturnsRegisteredBlockById() { var registry = new BlockRegistry(); Assert.IsType(registry.Get(0)); Assert.IsType(registry.Get(1)); Assert.IsType(registry.Get(2)); Assert.IsType(registry.Get(3)); } [Fact] public void Air_IsNotOpaqueOrSolid_OthersAre() { var registry = new BlockRegistry(); Assert.False(registry.Get(0).IsOpaque); Assert.False(registry.Get(0).IsSolid); Assert.True(registry.Get(1).IsOpaque); Assert.True(registry.Get(1).IsSolid); } [Fact] public void Grass_HasDifferentTexturesPerFace() { var registry = new BlockRegistry(); IBlock grass = registry.Get(3); Assert.Equal(new TileCoord(0, 1), grass.GetTextureTile(BlockFace.Top)); Assert.Equal(new TileCoord(0, 0), grass.GetTextureTile(BlockFace.Bottom)); Assert.Equal(new TileCoord(1, 1), grass.GetTextureTile(BlockFace.North)); } [Fact] public void NamedAccessors_MatchIds() { var registry = new BlockRegistry(); Assert.Equal((ushort)0, registry.Air.Id); Assert.Equal((ushort)1, registry.Stone.Id); Assert.Equal((ushort)2, registry.Dirt.Id); Assert.Equal((ushort)3, registry.Grass.Id); } }