@haelp/teto
Version:
A typescript-based controllable TETR.IO client.
1 lines • 1.42 kB
Source Map (JSON)
{"version":3,"sources":["../../../../src/engine/queue/rng/classic.ts"],"sourcesContent":["import { RNG } from \"../../utils\";\nimport { Mino } from \"../types\";\n\nexport const classic = (seed: number) => {\n const TETROMINOS: Mino[] = [\n Mino.Z,\n Mino.L,\n Mino.O,\n Mino.S,\n Mino.I,\n Mino.J,\n Mino.T\n ];\n let lastGenerated: number | null = null;\n const gen = new RNG(seed);\n\n return () => {\n let index = Math.floor(gen.nextFloat() * (TETROMINOS.length + 1));\n\n if (index === lastGenerated || index >= TETROMINOS.length) {\n index = Math.floor(gen.nextFloat() * TETROMINOS.length);\n }\n\n lastGenerated = index;\n return [TETROMINOS[index]];\n };\n};\n"],"names":["RNG","Mino","classic","seed","TETROMINOS","Z","L","O","S","I","J","T","lastGenerated","gen","index","Math","floor","nextFloat","length"],"mappings":"AAAA,SAASA,GAAG,QAAQ,cAAc;AAClC,SAASC,IAAI,QAAQ,WAAW;AAEhC,OAAO,MAAMC,UAAU,CAACC;IACtB,MAAMC,aAAqB;QACzBH,KAAKI,CAAC;QACNJ,KAAKK,CAAC;QACNL,KAAKM,CAAC;QACNN,KAAKO,CAAC;QACNP,KAAKQ,CAAC;QACNR,KAAKS,CAAC;QACNT,KAAKU,CAAC;KACP;IACD,IAAIC,gBAA+B;IACnC,MAAMC,MAAM,IAAIb,IAAIG;IAEpB,OAAO;QACL,IAAIW,QAAQC,KAAKC,KAAK,CAACH,IAAII,SAAS,KAAMb,CAAAA,WAAWc,MAAM,GAAG,CAAA;QAE9D,IAAIJ,UAAUF,iBAAiBE,SAASV,WAAWc,MAAM,EAAE;YACzDJ,QAAQC,KAAKC,KAAK,CAACH,IAAII,SAAS,KAAKb,WAAWc,MAAM;QACxD;QAEAN,gBAAgBE;QAChB,OAAO;YAACV,UAAU,CAACU,MAAM;SAAC;IAC5B;AACF,EAAE"}