29 lines
782 B
JavaScript
29 lines
782 B
JavaScript
|
"use strict";
|
||
|
|
||
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
||
|
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.createRng = createRng;
|
||
|
|
||
|
var _seedrandom = _interopRequireDefault(require("seedrandom"));
|
||
|
|
||
|
var singletonRandom = /* #__PURE__ */(0, _seedrandom.default)(Date.now());
|
||
|
|
||
|
function createRng(randomSeed) {
|
||
|
var random; // create a new random generator with given seed
|
||
|
|
||
|
function setSeed(seed) {
|
||
|
random = seed === null ? singletonRandom : (0, _seedrandom.default)(String(seed));
|
||
|
} // initialize a seeded pseudo random number generator with config's random seed
|
||
|
|
||
|
|
||
|
setSeed(randomSeed); // wrapper function so the rng can be updated via generator
|
||
|
|
||
|
function rng() {
|
||
|
return random();
|
||
|
}
|
||
|
|
||
|
return rng;
|
||
|
}
|