feat: moved blockclasses into dedicated folder

This commit is contained in:
2026-06-01 15:41:49 +02:00
parent 15be8f6059
commit 645fd00868
11 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
namespace VoxelEngine.World.Blocks;
public sealed class AirBlock : IBlock
{
public ushort Id => 0;
public string Name => "Air";
public bool IsOpaque => false;
public bool IsSolid => false;
public TileCoord GetTextureTile(BlockFace face) => new(0, 0);
}

View File

@@ -0,0 +1,10 @@
namespace VoxelEngine.World.Blocks;
public sealed class CoalOreBlock : IBlock
{
public ushort Id => 7;
public string Name => "Coal Ore";
public bool IsOpaque => true;
public bool IsSolid => true;
public TileCoord GetTextureTile(BlockFace face) => new(0, 0); // placeholder
}

View File

@@ -0,0 +1,10 @@
namespace VoxelEngine.World.Blocks;
public sealed class DiamondOreBlock : IBlock
{
public ushort Id => 10;
public string Name => "Diamond Ore";
public bool IsOpaque => true;
public bool IsSolid => true;
public TileCoord GetTextureTile(BlockFace face) => new(0, 0); // placeholder
}

View File

@@ -0,0 +1,10 @@
namespace VoxelEngine.World.Blocks;
public sealed class DirtBlock : IBlock
{
public ushort Id => 2;
public string Name => "Dirt";
public bool IsOpaque => true;
public bool IsSolid => true;
public TileCoord GetTextureTile(BlockFace face) => new(0, 0);
}

View File

@@ -0,0 +1,10 @@
namespace VoxelEngine.World.Blocks;
public sealed class GoldOreBlock : IBlock
{
public ushort Id => 9;
public string Name => "Gold Ore";
public bool IsOpaque => true;
public bool IsSolid => true;
public TileCoord GetTextureTile(BlockFace face) => new(0, 0); // placeholder
}

View File

@@ -0,0 +1,16 @@
namespace VoxelEngine.World.Blocks;
public sealed class GrassBlock : IBlock
{
public ushort Id => 3;
public string Name => "Grass";
public bool IsOpaque => true;
public bool IsSolid => true;
public TileCoord GetTextureTile(BlockFace face) => face switch
{
BlockFace.Top => new TileCoord(0, 1), // grass top
BlockFace.Bottom => new TileCoord(0, 0), // dirt
_ => new TileCoord(1, 1) // grass side
};
}

View File

@@ -0,0 +1,10 @@
namespace VoxelEngine.World.Blocks;
public sealed class IronOreBlock : IBlock
{
public ushort Id => 8;
public string Name => "Iron Ore";
public bool IsOpaque => true;
public bool IsSolid => true;
public TileCoord GetTextureTile(BlockFace face) => new(0, 0); // placeholder
}

View File

@@ -0,0 +1,10 @@
namespace VoxelEngine.World.Blocks;
public class SandBlock : IBlock
{
public ushort Id => 4;
public string Name => "Sand";
public bool IsOpaque => true;
public bool IsSolid => true;
public TileCoord GetTextureTile(BlockFace face) => new(2, 1);
}

View File

@@ -0,0 +1,16 @@
namespace VoxelEngine.World.Blocks;
public class SnowBlock : IBlock
{
public ushort Id => 5;
public string Name => "Snow Block";
public bool IsOpaque => true;
public bool IsSolid => true;
public TileCoord GetTextureTile(BlockFace face) => face switch
{
BlockFace.Top => new TileCoord(2, 0),
BlockFace.Bottom => new TileCoord(0, 0),
_ => new TileCoord(3, 0)
};
}

View File

@@ -0,0 +1,10 @@
namespace VoxelEngine.World.Blocks;
public sealed class StoneBlock : IBlock
{
public ushort Id => 1;
public string Name => "Stone";
public bool IsOpaque => true;
public bool IsSolid => true;
public TileCoord GetTextureTile(BlockFace face) => new(1, 0);
}

View File

@@ -0,0 +1,10 @@
namespace VoxelEngine.World.Blocks;
public class WaterBlock : IBlock
{
public ushort Id => 6;
public string Name => "Water";
public bool IsOpaque => true;
public bool IsSolid => false;
public TileCoord GetTextureTile(BlockFace face) => new(3, 1);
}