Files
VoxelEngine/World/Blocks/IBlock.cs
2026-05-31 20:32:46 +02:00

22 lines
567 B
C#

namespace VoxelEngine.World.Blocks;
public interface IBlock
{
ushort Id { get; }
string Name { get; }
// Drives face culling: a face is emitted only if its neighbor is not opaque.
bool IsOpaque { get; }
// Reserved for future collision (not used in the baseline).
bool IsSolid { get; }
// Atlas tile coordinate for the given face.
TileCoord GetTextureTile(BlockFace face);
// Interaction hooks — capability present now, system built post-baseline.
void OnInteract() { }
void OnPlaced() { }
void OnBroken() { }
}