using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using StardewValley;
namespace Revitalize.Framework.Utilities
{
///
/// A class for dealing with integer value ranges.
///
public class IntRange
{
///
/// The min value for the range.
///
public int min;
///
/// The max value for the range.
///
public int max;
public IntRange()
{
}
///
/// Constructor.
///
/// The single value to be tested on for min and max. Note that this will fail every test except for ContainsInclusive.
public IntRange(int SingleValue)
{
this.min = this.max = SingleValue;
}
///
/// Constructor.
///
/// The min value.
/// The max value.
public IntRange(int Min, int Max)
{
this.min = Min;
this.max = Max;
}
///
/// Checks to see if the value is inside the range.
///
///
///
public bool ContainsInclusive(int value)
{
if (value >= this.min && value <= this.max) return true;
else return false;
}
///
/// Checks to see if the value is greater/equal than the min but less than the max.
///
///
///
public bool ContainsExclusiveCeil(int value)
{
if (value >= this.min && value < this.max) return true;
else return false;
}
///
/// Checks to see if the value is greater than the min and less/equal to the max.
///
///
///
public bool ContainsExclusiveFloor(int value)
{
if (value >= this.min && value < this.max) return true;
else return false;
}
///
/// Checks to see if the value is inside of the range but not equal to min or max.
///
///
///
public bool ContainsExclusive(int value)
{
if (value > this.min && value < this.max) return true;
else return false;
}
///
/// Returns an int value within the range of min and max inclusive.
///
///
public int getRandomInclusive()
{
int number = Game1.random.Next(this.min, this.max + 1);
return number;
}
///
/// Returns an int value within the range of min and max exclusive.
///
///
public int getRandomExclusive()
{
int number = Game1.random.Next(this.min, this.max);
return number;
}
}
}