update forge
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 27s
Create tag and build when new code gets to main / Export (push) Successful in 7m25s

This commit is contained in:
2026-05-17 00:06:44 +02:00
parent 8b54f00814
commit e09714cf83
473 changed files with 13577 additions and 767 deletions

View File

@@ -18,7 +18,7 @@ public class ForgeRandom : IRandom, IDisposable
public void NextBytes(byte[] buffer)
{
for (var i = 0; i < buffer.Length; i++)
for (int i = 0; i < buffer.Length; i++)
{
buffer[i] = (byte)_randomNumberGenerator.RandiRange(0, 255);
}
@@ -26,13 +26,25 @@ public class ForgeRandom : IRandom, IDisposable
public void NextBytes(Span<byte> buffer)
{
for (var i = 0; i < buffer.Length; i++)
for (int i = 0; i < buffer.Length; i++)
{
buffer[i] = (byte)_randomNumberGenerator.RandiRange(0, 255);
}
}
public double NextDouble()
{
double value;
do
{
value = _randomNumberGenerator.Randf();
}
while (value >= 1.0d);
return value;
}
public double NextDoubleInclusive()
{
return _randomNumberGenerator.Randf();
}
@@ -52,12 +64,17 @@ public class ForgeRandom : IRandom, IDisposable
return _randomNumberGenerator.RandiRange(minValue, maxValue - 1);
}
public int NextIntInclusive(int minValue, int maxValue)
{
return _randomNumberGenerator.RandiRange(minValue, maxValue);
}
public long NextInt64()
{
unchecked
{
var high = _randomNumberGenerator.Randi();
var low = _randomNumberGenerator.Randi();
uint high = _randomNumberGenerator.Randi();
uint low = _randomNumberGenerator.Randi();
return ((long)high << 32) | low;
}
}
@@ -74,13 +91,47 @@ public class ForgeRandom : IRandom, IDisposable
throw new ArgumentOutOfRangeException(nameof(minValue), "minValue must be less than maxValue.");
}
var range = (ulong)(maxValue - minValue);
var rand = (ulong)NextInt64();
ulong range = (ulong)(maxValue - minValue);
ulong rand = (ulong)NextInt64();
return (long)(rand % range) + minValue;
}
public long NextInt64Inclusive(long minValue, long maxValue)
{
if (minValue > maxValue)
{
throw new ArgumentOutOfRangeException(nameof(minValue), "minValue must be less than or equal to maxValue.");
}
if (minValue == maxValue)
{
return minValue;
}
if (maxValue == long.MaxValue)
{
ulong inclusiveRange = (ulong)(maxValue - minValue) + 1UL;
ulong rand = (ulong)NextInt64();
return (long)(rand % inclusiveRange) + minValue;
}
return NextInt64(minValue, maxValue + 1);
}
public float NextSingle()
{
float value;
do
{
value = _randomNumberGenerator.Randf();
}
while (value >= 1.0f);
return value;
}
public float NextSingleInclusive()
{
return _randomNumberGenerator.Randf();
}