namespace Zinnia.Data.Type { using System; using UnityEngine; using Zinnia.Extension; /// /// Specifies a valid range between a lower and upper float value limit. /// [Serializable] public struct IntRange { /// /// The inclusive minimum value of the range. /// [Tooltip("The inclusive minimum value of the range.")] public int minimum; /// /// The inclusive maximum value of the range. /// [Tooltip("The inclusive maximum value of the range.")] public int maximum; /// /// Shorthand for writing IntRange(int.MinValue, int.MaxValue). /// public static readonly IntRange MinMax = new IntRange(int.MinValue, int.MaxValue); /// /// Constructs a new range with the given minimum and maximum values. /// /// The minimum value for the range. /// The maximum value for the range. public IntRange(int minimum, int maximum) { this.minimum = minimum; this.maximum = maximum; } /// /// Constructs a new range from a given . /// /// The range data. public IntRange(FloatRange range) { minimum = (int)range.minimum; maximum = (int)range.maximum; } /// /// Constructs a new range from a given using the value as the minimum value and the value as the maximum value. /// /// The range data. public IntRange(Vector2 range) { minimum = (int)range.x; maximum = (int)range.y; } /// public override string ToString() { string[] titles = new string[] { "minimum", "maximum" }; object[] values = new object[] { minimum, maximum }; return StringExtensions.FormatForToString(titles, values); } /// /// Determines if the given value is contained within the set range. /// /// The value to check for. /// if the value is found within the range. public bool Contains(int value) { return value >= minimum && value <= maximum; } /// /// Converts to a /// /// The converted value. public Vector2 ToVector2() { return new Vector2(minimum, maximum); } } }