Files
tbd-station-14/Content.Shared/SharedArrayExtension.cs
Ygg01 75ea093d78 Fluid spread refactor (#11908)
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Fix undefined
2022-11-15 22:30:59 +11:00

29 lines
758 B
C#

using Robust.Shared.Random;
namespace Content.Shared;
public static class SharedArrayExtension
{
/// <summary>
/// Randomizes the array mutating it in the process
/// </summary>
/// <param name="array">array being randomized</param>
/// <param name="random">source of randomization</param>
/// <typeparam name="T">type of array element</typeparam>
public static void Shuffle<T>(this Span<T> array, IRobustRandom? random = null)
{
var n = array.Length;
if (n <= 1)
return;
IoCManager.Resolve(ref random);
while (n > 1)
{
n--;
var k = random.Next(n + 1);
(array[k], array[n]) =
(array[n], array[k]);
}
}
}