Skip to content

Kiln API / kiln / RngState

Class: RngState ​

Seeded, serializable PRNG (sfc32 seeded by splitmix32). The only randomness systems may use: res.mut(Rng).float(). Math.random breaks deterministic runs.

Constructors ​

Constructor ​

ts
new RngState(seed?): RngState;

Parameters ​

ParameterTypeDefault value
seednumber0

Returns ​

RngState

Properties ​

a ​

ts
a: number = 0;

b ​

ts
b: number = 0;

c ​

ts
c: number = 0;

d ​

ts
d: number = 0;

Methods ​

reseed() ​

ts
reseed(seed): void;

Parameters ​

ParameterType
seednumber

Returns ​

void


u32() ​

ts
u32(): number;

Uniform 32-bit unsigned integer.

Returns ​

number


float() ​

ts
float(min?, max?): number;

Float in [min, max). Defaults to [0, 1).

Parameters ​

ParameterTypeDefault value
minnumber0
maxnumber1

Returns ​

number


int() ​

ts
int(min, max): number;

Integer in [min, max], inclusive.

Parameters ​

ParameterType
minnumber
maxnumber

Returns ​

number


chance() ​

ts
chance(p): boolean;

True with probability p.

Parameters ​

ParameterType
pnumber

Returns ​

boolean


pick() ​

ts
pick<T>(items): T;

A random element of a non-empty array.

Type Parameters ​

Type Parameter
T

Parameters ​

ParameterType
itemsreadonly T[]

Returns ​

T


shuffle() ​

ts
shuffle<T>(items): T[];

Shuffles in place and returns the array.

Type Parameters ​

Type Parameter
T

Parameters ​

ParameterType
itemsT[]

Returns ​

T[]


toJSON() ​

ts
toJSON(): object;

Returns ​

object

a ​
ts
a: number;
b ​
ts
b: number;
c ​
ts
c: number;
d ​
ts
d: number;

restore() ​

ts
restore(s): void;

Restores state saved by toJSON (snapshots).

Parameters ​

ParameterType
s{ a: number; b: number; c: number; d: number; }
s.anumber
s.bnumber
s.cnumber
s.dnumber

Returns ​

void