I found an RNG online and tried to implement it in blockland like so:
function pn_get(%x, %y) {
%n = %x + %y * 57;
%n = mPow(%n << 13, %n);
return 1.0 - ((%n * (%n * %n * 15731 + 789221) + 1376312589) & 2147483647) / 1073741824;
}
It always returns -0.282541.
If %y is negative it returns -0.281791.
(2147483647 was previously 7fffffff but blockland hates hex in expressions and would return a syntax error.)
Any idea why it does this?