using System; using System.Diagnostics.Contracts; namespace RobloxFiles.DataTypes { public class NumberRange { public readonly float Min; public readonly float Max; public override string ToString() => $"{Min} {Max}"; public NumberRange(float num) { Min = num; Max = num; } public NumberRange(float min = 0, float max = 0) { Contract.Requires(max - min >= 0, "Max must be greater than min."); Contract.EndContractBlock(); Min = min; Max = max; } internal NumberRange(Attribute attr) : this(attr.readFloat(), attr.readFloat()) { } public override int GetHashCode() { return Min.GetHashCode() ^ Max.GetHashCode(); } public override bool Equals(object obj) { if (!(obj is NumberRange)) return false; var other = obj as NumberRange; if (!Min.Equals(other.Min)) return false; if (!Max.Equals(other.Max)) return false; return true; } } }