1
0
Fork 0
mirror of https://github.com/Ellpeck/MLEM.git synced 2024-11-01 05:10:50 +01:00
MLEM/MLEM.Extended/Extensions/RandomExtensions.cs

43 lines
No EOL
1.8 KiB
C#

using System;
using Microsoft.Xna.Framework;
using MonoGame.Extended;
namespace MLEM.Extended.Extensions {
/// <summary>
/// A set of extension methods for dealing with <see cref="Random"/>
/// </summary>
public static class RandomExtensions {
/// <summary>
/// Returns a random number in the given range.
/// </summary>
/// <param name="random">The random to use for generation</param>
/// <param name="range">The range in which numbers will be generated</param>
/// <returns>A number in the given range</returns>
public static int Range(this Random random, Range<int> range) {
return random.Next(range.Min, range.Max);
}
/// <summary>
/// Returns a random number in the given range.
/// </summary>
/// <param name="random">The random to use for generation</param>
/// <param name="range">The range in which numbers will be generated</param>
/// <returns>A number in the given range</returns>
public static float Range(this Random random, Range<float> range) {
return random.NextSingle(range.Min, range.Max);
}
/// <summary>
/// Returns a random vector whose x and y values are in the given range.
/// </summary>
/// <param name="random">The random to use for generation</param>
/// <param name="min">The minimum value for each coordinate</param>
/// <param name="max">The maximum value for each coordinate</param>
/// <returns>A random vector in the given range</returns>
public static Vector2 NextVector2(this Random random, float min, float max) {
return new Vector2(random.NextSingle(min, max), random.NextSingle(min, max));
}
}
}