LunarInfantry/Assets/Core Extensions & Helpers/_Helpers/RandomIntHelper.cs
2026-01-02 01:31:54 -08:00

36 lines
1 KiB
C#
Executable file

using UnityEngine;
namespace Core.Extensions
{
public partial class Helper
{
static int[] randomIntTable;
static int randomIntIndex;
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
static void FillTable()
{
randomIntIndex = 0;
int length = 256;
randomIntTable = new int[length];
int seed = 3378;
System.Random r = new System.Random(seed);
for (int i = 0; i < length; i++)
{
randomIntTable[i] = r.Next(0, length);
}
}
public static int SeededRandomInt256 => GetRandomInt();
static int GetRandomInt()
{
if (randomIntTable == null)
{
FillTable();
}
if (randomIntIndex >= randomIntTable.Length)
{
randomIntIndex = 0;
}
return randomIntTable[randomIntIndex++];
}
}
}