using DatReaderWriter.Enums; using System; namespace AcDream.Content; // MP1a (2026-07-05): lifted verbatim out of TextureAtlasManager (GL class) // so the GL-free mesh-extraction path (MeshExtractor / ObjectMeshData) can // reference the atlas dedup key without a Silk.NET dependency. Field set, // equality semantics, and hash behavior are UNCHANGED. public struct TextureKey : IEquatable { public uint SurfaceId; public uint PaletteId; public StipplingType Stippling; public bool IsSolid; public bool Equals(TextureKey other) { return SurfaceId == other.SurfaceId && PaletteId == other.PaletteId && Stippling == other.Stippling && IsSolid == other.IsSolid; } public override bool Equals(object? obj) { return obj is TextureKey other && Equals(other); } public override int GetHashCode() { return HashCode.Combine(SurfaceId, PaletteId, Stippling, IsSolid); } }