, .
- Random . , , f(seed, value), "" seed value, .
, value, , .
, , . x from to 0 3, :
int prop0 = RandomX.Generate(seed, 0x45F6C854, x0, y0);
int prop1 = RandomX.Generate(seed, 0x96F4DC41, x1, y1);
int prop9 = RandomX.Generate(seed, 0xFE840301, x9, y9);
, , . , , .
-
int prop0 = RandomX.Generate(globalSeed, objectSeed, propertySeed, from, to);
3 "" from.. to
Generate :
public static uint bitRotate(uint x)
{
const int bits = 16;
return (x << bits) | (x >> (32 - bits));
}
public static UInt32 Generate(int seed1, int seed2, int seed3)
{
UInt32 num = 1;
for (uint i = 0; i < 16; i++)
{
num = num * 119 + (uint)seed1;
num = bitRotate(num);
num = num * 541 + (uint)seed2;
num = bitRotate(num);
num = num * 809 + (uint)seed3;
num = bitRotate(num);
num = num * 673 + (uint)i;
num = bitRotate(num);
}
return num;
}
uint from.. to.