{"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"}