|
|
| class Utils { |
| |
| |
| |
| static mod(a: number, n: number): number { |
| return ((a % n) + n) % n; |
| } |
| |
| |
| |
| |
| static randomInt(maxOrMin: number, max?: number): number { |
| return (max) |
| ? maxOrMin + Math.floor(Math.random() * (max - maxOrMin)) |
| : Math.floor(Math.random() * maxOrMin); |
| } |
| static randomFloat(maxOrMin: number, max?: number): number { |
| return (max) |
| ? maxOrMin + (Math.random() * (max - maxOrMin)) |
| : Math.random() * maxOrMin; |
| } |
| |
| |
| |
| |
| static clamp(val: number, min: number, max: number): number { |
| return Math.min(Math.max(min, val), max); |
| } |
| |
| |
| |
| |
| |
| static delay(ms: number) { |
| return new Promise((resolve, reject) => { |
| setTimeout(() => resolve(), ms); |
| }); |
| } |
| |
| |
| |
| |
| static wait(duration: number, range: number = 0) { |
| return this.delay( |
| duration * 1_000 |
| - range * 1_000 / 2 |
| + this.randomInt(range * 1_000) |
| ); |
| } |
| } |
|
|