cubing 0.42.1 → 0.43.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/README.md +1 -1
  2. package/dist/bin/order.js +22 -0
  3. package/dist/bin/order.js.map +7 -0
  4. package/dist/bin/puzzle-geometry-bin.js +284 -0
  5. package/dist/bin/puzzle-geometry-bin.js.map +7 -0
  6. package/dist/bin/scramble.js +124 -0
  7. package/dist/bin/scramble.js.map +7 -0
  8. package/dist/{cubing/KPattern-12e23b1f.d.ts → lib/cubing/KPattern-60960997.d.ts} +1 -1
  9. package/dist/{cubing/TwizzleLink-8eaf164c.d.ts → lib/cubing/TwizzleLink-3c302469.d.ts} +1 -1
  10. package/dist/{cubing → lib/cubing}/alg/index.js +1 -1
  11. package/dist/{cubing → lib/cubing}/bluetooth/index.d.ts +3 -3
  12. package/dist/{cubing → lib/cubing}/bluetooth/index.js +48 -45
  13. package/dist/{cubing → lib/cubing}/bluetooth/index.js.map +2 -2
  14. package/dist/{cubing/bluetooth-puzzle-91e73b7f.d.ts → lib/cubing/bluetooth-puzzle-c3224834.d.ts} +1 -1
  15. package/dist/{cubing/chunk-Y6TQYMMT.js → lib/cubing/chunks/chunk-2N56G6TG.js} +5 -5
  16. package/dist/{cubing/chunk-Y6TQYMMT.js.map → lib/cubing/chunks/chunk-2N56G6TG.js.map} +2 -2
  17. package/dist/{cubing/chunk-AU3TSTCA.js → lib/cubing/chunks/chunk-32CXD7UA.js} +31 -32
  18. package/dist/{cubing/chunk-AU3TSTCA.js.map → lib/cubing/chunks/chunk-32CXD7UA.js.map} +2 -2
  19. package/dist/{cubing/chunk-7QE2OVHX.js → lib/cubing/chunks/chunk-7GUL3OBQ.js} +1 -1
  20. package/dist/{cubing/chunk-7QE2OVHX.js.map → lib/cubing/chunks/chunk-7GUL3OBQ.js.map} +1 -1
  21. package/dist/{cubing/chunk-ULQMFOA2.js → lib/cubing/chunks/chunk-7X47IY3P.js} +15 -13
  22. package/dist/{cubing/chunk-ULQMFOA2.js.map → lib/cubing/chunks/chunk-7X47IY3P.js.map} +2 -2
  23. package/dist/{cubing/chunk-VSFPWTDH.js → lib/cubing/chunks/chunk-DYHU7CO7.js} +616 -34
  24. package/dist/lib/cubing/chunks/chunk-DYHU7CO7.js.map +7 -0
  25. package/dist/{cubing/chunk-QLTH326B.js → lib/cubing/chunks/chunk-KDMCYBSC.js} +2 -2
  26. package/dist/{cubing/chunk-QLTH326B.js.map → lib/cubing/chunks/chunk-KDMCYBSC.js.map} +1 -1
  27. package/dist/lib/cubing/chunks/chunk-NAPITA3L.js +1 -0
  28. package/dist/{cubing/chunk-3ON3T3OH.js → lib/cubing/chunks/chunk-NB6OOT2E.js} +3 -3
  29. package/dist/{cubing/chunk-3ON3T3OH.js.map → lib/cubing/chunks/chunk-NB6OOT2E.js.map} +1 -1
  30. package/dist/{cubing/chunk-6OUID4YZ.js → lib/cubing/chunks/chunk-NEAVVKH5.js} +2 -2
  31. package/dist/{cubing/chunk-6OUID4YZ.js.map → lib/cubing/chunks/chunk-NEAVVKH5.js.map} +1 -1
  32. package/dist/{cubing/chunk-OLH526Y4.js → lib/cubing/chunks/chunk-QF4HTZYW.js} +11 -10
  33. package/dist/lib/cubing/chunks/chunk-QF4HTZYW.js.map +7 -0
  34. package/dist/{cubing/chunk-KF2JGMZA.js → lib/cubing/chunks/chunk-RS62HLA5.js} +21 -19
  35. package/dist/{cubing/chunk-KF2JGMZA.js.map → lib/cubing/chunks/chunk-RS62HLA5.js.map} +2 -2
  36. package/dist/{cubing/chunk-ZYCJIZDN.js → lib/cubing/chunks/chunk-VL22SFND.js} +1 -1
  37. package/dist/{cubing/chunk-ZYCJIZDN.js.map → lib/cubing/chunks/chunk-VL22SFND.js.map} +1 -1
  38. package/dist/{cubing/chunk-FCRM3RQU.js → lib/cubing/chunks/chunk-Z2CCB3XX.js} +61 -76
  39. package/dist/{cubing/chunk-FCRM3RQU.js.map → lib/cubing/chunks/chunk-Z2CCB3XX.js.map} +2 -2
  40. package/dist/{cubing/chunk-YEOYXOGB.js → lib/cubing/chunks/chunk-ZUPLJQAD.js} +3 -3
  41. package/dist/{cubing/chunk-YEOYXOGB.js.map → lib/cubing/chunks/chunk-ZUPLJQAD.js.map} +1 -1
  42. package/dist/lib/cubing/chunks/inside-7XZ5YPBP.js +16 -0
  43. package/dist/{cubing/inside-AZHBOSXQ.js.map → lib/cubing/chunks/inside-7XZ5YPBP.js.map} +2 -2
  44. package/dist/{cubing/puzzles-dynamic-3x3x3-JFZVE27C.js → lib/cubing/chunks/puzzles-dynamic-3x3x3-NSCZM77Q.js} +1 -1
  45. package/dist/{cubing/puzzles-dynamic-3x3x3-JFZVE27C.js.map → lib/cubing/chunks/puzzles-dynamic-3x3x3-NSCZM77Q.js.map} +1 -1
  46. package/dist/{cubing/puzzles-dynamic-4x4x4-DT42HVIY.js → lib/cubing/chunks/puzzles-dynamic-4x4x4-REUXFQJ4.js} +1 -1
  47. package/dist/{cubing/puzzles-dynamic-4x4x4-DT42HVIY.js.map → lib/cubing/chunks/puzzles-dynamic-4x4x4-REUXFQJ4.js.map} +1 -1
  48. package/dist/{cubing/puzzles-dynamic-megaminx-QQYC32WM.js → lib/cubing/chunks/puzzles-dynamic-megaminx-2LVHIDL4.js} +1 -1
  49. package/dist/{cubing/puzzles-dynamic-megaminx-QQYC32WM.js.map → lib/cubing/chunks/puzzles-dynamic-megaminx-2LVHIDL4.js.map} +1 -1
  50. package/dist/{cubing/puzzles-dynamic-side-events-42Q52YAB.js → lib/cubing/chunks/puzzles-dynamic-side-events-HEMWSAMQ.js} +11 -329
  51. package/dist/lib/cubing/chunks/puzzles-dynamic-side-events-HEMWSAMQ.js.map +7 -0
  52. package/dist/{cubing/puzzles-dynamic-unofficial-PCHNKY4Y.js → lib/cubing/chunks/puzzles-dynamic-unofficial-RETSTRRW.js} +1 -1
  53. package/dist/{cubing/puzzles-dynamic-unofficial-PCHNKY4Y.js.map → lib/cubing/chunks/puzzles-dynamic-unofficial-RETSTRRW.js.map} +1 -1
  54. package/dist/{cubing/search-dynamic-sgs-side-events-5U7NX34Z.js → lib/cubing/chunks/search-dynamic-sgs-side-events-67TCU227.js} +14 -14
  55. package/dist/{cubing/search-dynamic-sgs-side-events-5U7NX34Z.js.map → lib/cubing/chunks/search-dynamic-sgs-side-events-67TCU227.js.map} +2 -2
  56. package/dist/{cubing/search-dynamic-sgs-unofficial-YA6LSNFG.js → lib/cubing/chunks/search-dynamic-sgs-unofficial-OUTZD5Y2.js} +7 -7
  57. package/dist/{cubing/search-dynamic-sgs-unofficial-YA6LSNFG.js.map → lib/cubing/chunks/search-dynamic-sgs-unofficial-OUTZD5Y2.js.map} +2 -2
  58. package/dist/{cubing/search-dynamic-solve-3x3x3-HM7RKVEM.js → lib/cubing/chunks/search-dynamic-solve-3x3x3-5UOUZX2V.js} +1 -1
  59. package/dist/{cubing/search-dynamic-solve-3x3x3-HM7RKVEM.js.map → lib/cubing/chunks/search-dynamic-solve-3x3x3-5UOUZX2V.js.map} +1 -1
  60. package/dist/{cubing/search-dynamic-solve-4x4x4-Z26CIIGT.js → lib/cubing/chunks/search-dynamic-solve-4x4x4-7NWGTCEG.js} +12 -9
  61. package/dist/lib/cubing/chunks/search-dynamic-solve-4x4x4-7NWGTCEG.js.map +7 -0
  62. package/dist/{cubing/search-dynamic-solve-fto-GGEYM3K6.js → lib/cubing/chunks/search-dynamic-solve-fto-EY5ZVAGO.js} +1 -1
  63. package/dist/{cubing/search-dynamic-solve-fto-GGEYM3K6.js.map → lib/cubing/chunks/search-dynamic-solve-fto-EY5ZVAGO.js.map} +1 -1
  64. package/dist/{cubing/search-dynamic-solve-kilominx-VUT2DIRQ.js → lib/cubing/chunks/search-dynamic-solve-kilominx-WREDL6AE.js} +2 -2
  65. package/dist/{cubing/search-dynamic-solve-kilominx-VUT2DIRQ.js.map → lib/cubing/chunks/search-dynamic-solve-kilominx-WREDL6AE.js.map} +1 -1
  66. package/dist/{cubing/search-dynamic-solve-master_tetraminx-WJWLROFP.js → lib/cubing/chunks/search-dynamic-solve-master_tetraminx-3D4MBF3V.js} +1 -1
  67. package/dist/{cubing/search-dynamic-solve-master_tetraminx-WJWLROFP.js.map → lib/cubing/chunks/search-dynamic-solve-master_tetraminx-3D4MBF3V.js.map} +1 -1
  68. package/dist/{cubing/search-dynamic-solve-sq1-TO7UHE6Y.js → lib/cubing/chunks/search-dynamic-solve-sq1-INOYNRSJ.js} +1 -1
  69. package/dist/{cubing/search-dynamic-solve-sq1-TO7UHE6Y.js.map → lib/cubing/chunks/search-dynamic-solve-sq1-INOYNRSJ.js.map} +1 -1
  70. package/dist/{cubing → lib/cubing/chunks}/search-worker-entry.js +4 -4
  71. package/dist/{cubing → lib/cubing/chunks}/search-worker-entry.js.map +1 -1
  72. package/dist/{cubing/twisty-dynamic-3d-NTZMGNOB.js → lib/cubing/chunks/twisty-dynamic-3d-EKFIEPIM.js} +78 -37
  73. package/dist/{cubing/twisty-dynamic-3d-NTZMGNOB.js.map → lib/cubing/chunks/twisty-dynamic-3d-EKFIEPIM.js.map} +2 -2
  74. package/dist/{cubing/twsearch-BDAXZGZU-SJCPOVWW.js → lib/cubing/chunks/twsearch-BDAXZGZU-Q2YC2EQ6.js} +1 -1
  75. package/dist/{cubing/twsearch-BDAXZGZU-SJCPOVWW.js.map → lib/cubing/chunks/twsearch-BDAXZGZU-Q2YC2EQ6.js.map} +1 -1
  76. package/dist/{cubing/twsearch-INIYLWAM.js → lib/cubing/chunks/twsearch-SLVE4NQH.js} +3 -3
  77. package/dist/{cubing/twsearch-INIYLWAM.js.map → lib/cubing/chunks/twsearch-SLVE4NQH.js.map} +1 -1
  78. package/dist/{cubing → lib/cubing}/kpuzzle/index.d.ts +1 -1
  79. package/dist/{cubing → lib/cubing}/kpuzzle/index.js +2 -2
  80. package/dist/{cubing → lib/cubing}/notation/index.d.ts +2 -2
  81. package/dist/{cubing → lib/cubing}/notation/index.js +4 -4
  82. package/dist/{cubing/outside-deaac55d.d.ts → lib/cubing/outside-2f424d30.d.ts} +1 -1
  83. package/dist/{cubing → lib/cubing}/protocol/index.d.ts +1 -1
  84. package/dist/{cubing → lib/cubing}/protocol/index.js +4 -4
  85. package/dist/lib/cubing/puzzle-geometry/index.d.ts +7 -0
  86. package/dist/{cubing → lib/cubing}/puzzle-geometry/index.js +142 -62
  87. package/dist/lib/cubing/puzzle-geometry/index.js.map +7 -0
  88. package/dist/{cubing → lib/cubing}/puzzles/index.d.ts +3 -3
  89. package/dist/{cubing → lib/cubing}/puzzles/index.js +4 -4
  90. package/dist/lib/cubing/scramble/index.d.ts +3 -0
  91. package/dist/lib/cubing/scramble/index.js +16 -0
  92. package/dist/{cubing → lib/cubing}/search/index.d.ts +2 -2
  93. package/dist/{cubing → lib/cubing}/search/index.js +9 -10
  94. package/dist/lib/cubing/search/index.js.map +7 -0
  95. package/dist/{cubing → lib/cubing}/stream/index.d.ts +2 -2
  96. package/dist/{cubing → lib/cubing}/stream/index.js +4 -1
  97. package/dist/{cubing → lib/cubing}/stream/index.js.map +2 -2
  98. package/dist/{cubing → lib/cubing}/twisty/index.d.ts +3 -3
  99. package/dist/{cubing → lib/cubing}/twisty/index.js +310 -313
  100. package/dist/{cubing → lib/cubing}/twisty/index.js.map +3 -3
  101. package/package.json +40 -41
  102. package/dist/cubing/chunk-E4S4UDA6.js +0 -615
  103. package/dist/cubing/chunk-E4S4UDA6.js.map +0 -7
  104. package/dist/cubing/chunk-OLH526Y4.js.map +0 -7
  105. package/dist/cubing/chunk-VSFPWTDH.js.map +0 -7
  106. package/dist/cubing/inside-AZHBOSXQ.js +0 -17
  107. package/dist/cubing/puzzle-geometry/index.d.ts +0 -7
  108. package/dist/cubing/puzzle-geometry/index.js.map +0 -7
  109. package/dist/cubing/puzzles-dynamic-side-events-42Q52YAB.js.map +0 -7
  110. package/dist/cubing/scramble/index.d.ts +0 -3
  111. package/dist/cubing/scramble/index.js +0 -16
  112. package/dist/cubing/search-dynamic-solve-4x4x4-Z26CIIGT.js.map +0 -7
  113. package/src/README.md +0 -10
  114. /package/dist/{cubing → lib/cubing}/Alg-c6770822.d.ts +0 -0
  115. /package/dist/{cubing → lib/cubing}/alg/index.d.ts +0 -0
  116. /package/dist/{cubing → lib/cubing}/alg/index.js.map +0 -0
  117. /package/dist/{cubing/kpuzzle/index.js.map → lib/cubing/chunks/chunk-NAPITA3L.js.map} +0 -0
  118. /package/dist/{cubing/notation → lib/cubing/kpuzzle}/index.js.map +0 -0
  119. /package/dist/{cubing/protocol → lib/cubing/notation}/index.js.map +0 -0
  120. /package/dist/{cubing → lib/cubing}/parseAlg-d2c83795.d.ts +0 -0
  121. /package/dist/{cubing/puzzles → lib/cubing/protocol}/index.js.map +0 -0
  122. /package/dist/{cubing/scramble → lib/cubing/puzzles}/index.js.map +0 -0
  123. /package/dist/{cubing/search → lib/cubing/scramble}/index.js.map +0 -0
@@ -818,4 +818,4 @@ function getRandomSquare1ScrambleString() {
818
818
  export {
819
819
  getRandomSquare1ScrambleString
820
820
  };
821
- //# sourceMappingURL=search-dynamic-solve-sq1-TO7UHE6Y.js.map
821
+ //# sourceMappingURL=search-dynamic-solve-sq1-INOYNRSJ.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/cubing/vendor/gpl/cs0x7f/sq12phase/sq1-solver.js"],
3
+ "sources": ["../../../../src/cubing/vendor/gpl/cs0x7f/sq12phase/sq1-solver.js"],
4
4
  "sourcesContent": ["/*\n\nscramble_sq1.js\n\nSquare-1 Solver / Scramble Generator in JavaScript.\n\nCode by by Shuang Chen.\nCompiled to JavaScript using GWT.\n\n*/\n\nimport { randomUIntBelow } from \"random-uint-below\";\n\nfunction FullCube_copy(obj, c) {\n obj.ul = c.ul;\n obj.ur = c.ur;\n obj.dl = c.dl;\n obj.dr = c.dr;\n obj.ml = c.ml;\n}\n\nfunction FullCube_doMove(obj, move) {\n var temp;\n move <<= 2;\n if (move > 24) {\n move = 48 - move;\n temp = obj.ul;\n obj.ul = ((~~obj.ul >> move) | (obj.ur << (24 - move))) & 16777215;\n obj.ur = ((~~obj.ur >> move) | (temp << (24 - move))) & 16777215;\n } else if (move > 0) {\n temp = obj.ul;\n obj.ul = ((obj.ul << move) | (~~obj.ur >> (24 - move))) & 16777215;\n obj.ur = ((obj.ur << move) | (~~temp >> (24 - move))) & 16777215;\n } else if (move === 0) {\n temp = obj.ur;\n obj.ur = obj.dl;\n obj.dl = temp;\n obj.ml = 1 - obj.ml;\n } else if (move >= -24) {\n move = -move;\n temp = obj.dl;\n obj.dl = ((obj.dl << move) | (~~obj.dr >> (24 - move))) & 16777215;\n obj.dr = ((obj.dr << move) | (~~temp >> (24 - move))) & 16777215;\n } else if (move < -24) {\n move = 48 + move;\n temp = obj.dl;\n obj.dl = ((~~obj.dl >> move) | (obj.dr << (24 - move))) & 16777215;\n obj.dr = ((~~obj.dr >> move) | (temp << (24 - move))) & 16777215;\n }\n}\n\nfunction FullCube_getParity(obj) {\n var a;\n var b;\n var cnt;\n var i;\n var p;\n cnt = 0;\n obj.arr[0] = FullCube_pieceAt(obj, 0);\n for (i = 1; i < 24; ++i) {\n FullCube_pieceAt(obj, i) !== obj.arr[cnt] &&\n (obj.arr[++cnt] = FullCube_pieceAt(obj, i));\n }\n p = 0;\n for (a = 0; a < 16; ++a) {\n for (b = a + 1; b < 16; ++b) {\n obj.arr[a] > obj.arr[b] && (p ^= 1);\n }\n }\n return p;\n}\n\nfunction FullCube_getShapeIdx(obj) {\n var dlx;\n var drx;\n var ulx;\n var urx;\n urx = obj.ur & 1118481;\n urx |= ~~urx >> 3;\n urx |= ~~urx >> 6;\n urx = (urx & 15) | ((~~urx >> 12) & 48);\n ulx = obj.ul & 1118481;\n ulx |= ~~ulx >> 3;\n ulx |= ~~ulx >> 6;\n ulx = (ulx & 15) | ((~~ulx >> 12) & 48);\n drx = obj.dr & 1118481;\n drx |= ~~drx >> 3;\n drx |= ~~drx >> 6;\n drx = (drx & 15) | ((~~drx >> 12) & 48);\n dlx = obj.dl & 1118481;\n dlx |= ~~dlx >> 3;\n dlx |= ~~dlx >> 6;\n dlx = (dlx & 15) | ((~~dlx >> 12) & 48);\n return Shape_getShape2Idx(\n (FullCube_getParity(obj) << 24) |\n (ulx << 18) |\n (urx << 12) |\n (dlx << 6) |\n drx,\n );\n}\n\nfunction FullCube_getSquare(obj, sq) {\n var a;\n var b;\n for (a = 0; a < 8; ++a) {\n obj.prm[a] = ~~((~~FullCube_pieceAt(obj, a * 3 + 1) >> 1) << 24) >> 24;\n }\n sq.cornperm = get8Perm(obj.prm);\n sq.topEdgeFirst = FullCube_pieceAt(obj, 0) === FullCube_pieceAt(obj, 1);\n a = sq.topEdgeFirst ? 2 : 0;\n for (b = 0; b < 4; a += 3, ++b) {\n obj.prm[b] = ~~((~~FullCube_pieceAt(obj, a) >> 1) << 24) >> 24;\n }\n sq.botEdgeFirst = FullCube_pieceAt(obj, 12) === FullCube_pieceAt(obj, 13);\n a = sq.botEdgeFirst ? 14 : 12;\n for (; b < 8; a += 3, ++b) {\n obj.prm[b] = ~~((~~FullCube_pieceAt(obj, a) >> 1) << 24) >> 24;\n }\n sq.edgeperm = get8Perm(obj.prm);\n sq.ml = obj.ml;\n}\n\nfunction FullCube_pieceAt(obj, idx) {\n var ret;\n idx < 6\n ? (ret = ~~obj.ul >> ((5 - idx) << 2))\n : idx < 12\n ? (ret = ~~obj.ur >> ((11 - idx) << 2))\n : idx < 18\n ? (ret = ~~obj.dl >> ((17 - idx) << 2))\n : (ret = ~~obj.dr >> ((23 - idx) << 2));\n return ~~((ret & 15) << 24) >> 24;\n}\n\nfunction FullCube_setPiece(obj, idx, value) {\n if (idx < 6) {\n obj.ul &= ~(0xf << ((5 - idx) << 2));\n obj.ul |= value << ((5 - idx) << 2);\n } else if (idx < 12) {\n obj.ur &= ~(0xf << ((11 - idx) << 2));\n obj.ur |= value << ((11 - idx) << 2);\n } else if (idx < 18) {\n obj.dl &= ~(0xf << ((17 - idx) << 2));\n obj.dl |= value << ((17 - idx) << 2);\n } else {\n obj.dr &= ~(0xf << ((23 - idx) << 2));\n obj.dr |= value << ((23 - idx) << 2);\n }\n}\n\nfunction FullCube_FullCube__Ljava_lang_String_2V() {\n this.arr = [];\n this.prm = [];\n}\n\nfunction FullCube_randomCube() {\n var f;\n var i;\n var shape;\n var edge;\n var corner;\n var n_edge;\n var n_corner;\n var rnd;\n var m;\n f = new FullCube_FullCube__Ljava_lang_String_2V();\n shape = Shape_ShapeIdx[randomUIntBelow(3678)];\n corner = (0x01234567 << 1) | 0x11111111;\n edge = 0x01234567 << 1;\n n_corner = n_edge = 8;\n for (i = 0; i < 24; i++) {\n if (((shape >> i) & 1) === 0) {\n //edge\n rnd = randomUIntBelow(n_edge) << 2;\n FullCube_setPiece(f, 23 - i, (edge >> rnd) & 0xf);\n m = (1 << rnd) - 1;\n edge = (edge & m) + ((edge >> 4) & ~m);\n --n_edge;\n } else {\n //corner\n rnd = randomUIntBelow(n_corner) << 2;\n FullCube_setPiece(f, 23 - i, (corner >> rnd) & 0xf);\n FullCube_setPiece(f, 22 - i, (corner >> rnd) & 0xf);\n m = (1 << rnd) - 1;\n corner = (corner & m) + ((corner >> 4) & ~m);\n --n_corner;\n ++i;\n }\n }\n f.ml = randomUIntBelow(2);\n //\tconsole.log(f);\n return f;\n}\n\nfunction FullCube() {}\n\nlet _ = (FullCube_FullCube__Ljava_lang_String_2V.prototype =\n FullCube.prototype);\n_.dl = 10062778;\n_.dr = 14536702;\n_.ml = 0;\n_.ul = 70195;\n_.ur = 4544119;\nfunction Search_init2(obj) {\n var corner;\n var edge;\n var i;\n var j;\n var ml;\n var prun;\n FullCube_copy(obj.Search_d, obj.Search_c);\n for (i = 0; i < obj.Search_length1; ++i) {\n FullCube_doMove(obj.Search_d, obj.Search_move[i]);\n }\n FullCube_getSquare(obj.Search_d, obj.Search_sq);\n edge = obj.Search_sq.edgeperm;\n corner = obj.Search_sq.cornperm;\n ml = obj.Search_sq.ml;\n prun = Math.max(\n SquarePrun[(obj.Search_sq.edgeperm << 1) | ml],\n SquarePrun[(obj.Search_sq.cornperm << 1) | ml],\n );\n for (i = prun; i < obj.Search_maxlen2; ++i) {\n if (\n Search_phase2(\n obj,\n edge,\n corner,\n obj.Search_sq.topEdgeFirst,\n obj.Search_sq.botEdgeFirst,\n ml,\n i,\n obj.Search_length1,\n 0,\n )\n ) {\n for (j = 0; j < i; ++j) {\n FullCube_doMove(obj.Search_d, obj.Search_move[obj.Search_length1 + j]);\n //console.log(obj.Search_move[obj.Search_length1 + j]);\n }\n //console.log(obj.Search_d);\n //console.log(obj.Search_move);\n obj.Search_sol_string = Search_move2string(obj, i + obj.Search_length1);\n return true;\n }\n }\n return false;\n}\n\nfunction Search_move2string(obj, len) {\n var s = \"\";\n var top = 0;\n var bottom = 0;\n for (var i = len - 1; i >= 0; i--) {\n var val = obj.Search_move[i];\n //console.log(val);\n if (val > 0) {\n val = 12 - val;\n top = val > 6 ? val - 12 : val;\n } else if (val < 0) {\n val = 12 + val;\n bottom = val > 6 ? val - 12 : val;\n } else {\n if (top === 0 && bottom === 0) {\n s += \" / \";\n } else {\n s += `(${top}, ${bottom}) / `;\n }\n top = bottom = 0;\n }\n }\n if (top !== 0 || bottom !== 0) {\n s += `(${top}, ${bottom})`;\n }\n return s; // + \" (\" + len + \"t)\";\n}\n\nfunction Search_phase1(obj, shape, prunvalue, maxl, depth, lm) {\n var m;\n var prunx;\n var shapex;\n if (prunvalue === 0 && maxl < 4) {\n return maxl === 0 && Search_init2(obj);\n }\n if (lm !== 0) {\n shapex = Shape_TwistMove[shape];\n prunx = ShapePrun[shapex];\n if (prunx < maxl) {\n obj.Search_move[depth] = 0;\n if (Search_phase1(obj, shapex, prunx, maxl - 1, depth + 1, 0)) {\n return true;\n }\n }\n }\n shapex = shape;\n if (lm <= 0) {\n m = 0;\n for (;;) {\n m += Shape_TopMove[shapex];\n shapex = ~~m >> 4;\n m &= 15;\n if (m >= 12) {\n break;\n }\n prunx = ShapePrun[shapex];\n if (prunx > maxl) {\n break;\n } else if (prunx < maxl) {\n obj.Search_move[depth] = m;\n if (Search_phase1(obj, shapex, prunx, maxl - 1, depth + 1, 1)) {\n return true;\n }\n }\n }\n }\n shapex = shape;\n if (lm <= 1) {\n m = 0;\n for (;;) {\n m += Shape_BottomMove[shapex];\n shapex = ~~m >> 4;\n m &= 15;\n if (m >= 6) {\n break;\n }\n prunx = ShapePrun[shapex];\n if (prunx > maxl) {\n break;\n } else if (prunx < maxl) {\n obj.Search_move[depth] = -m;\n if (Search_phase1(obj, shapex, prunx, maxl - 1, depth + 1, 2)) {\n return true;\n }\n }\n }\n }\n return false;\n}\n\nfunction Search_phase2(\n obj,\n edge,\n corner,\n topEdgeFirst,\n botEdgeFirst,\n ml,\n maxl,\n depth,\n lm,\n) {\n var botEdgeFirstx;\n var cornerx;\n var edgex;\n var m;\n var prun1;\n var prun2;\n var topEdgeFirstx;\n if (maxl === 0 && !topEdgeFirst && botEdgeFirst) {\n return true;\n }\n if (lm !== 0 && topEdgeFirst === botEdgeFirst) {\n edgex = Square_TwistMove[edge];\n cornerx = Square_TwistMove[corner];\n if (\n SquarePrun[(edgex << 1) | (1 - ml)] < maxl &&\n SquarePrun[(cornerx << 1) | (1 - ml)] < maxl\n ) {\n obj.Search_move[depth] = 0;\n if (\n Search_phase2(\n obj,\n edgex,\n cornerx,\n topEdgeFirst,\n botEdgeFirst,\n 1 - ml,\n maxl - 1,\n depth + 1,\n 0,\n )\n ) {\n return true;\n }\n }\n }\n if (lm <= 0) {\n topEdgeFirstx = !topEdgeFirst;\n edgex = topEdgeFirstx ? Square_TopMove[edge] : edge;\n cornerx = topEdgeFirstx ? corner : Square_TopMove[corner];\n m = topEdgeFirstx ? 1 : 2;\n prun1 = SquarePrun[(edgex << 1) | ml];\n prun2 = SquarePrun[(cornerx << 1) | ml];\n while (m < 12 && prun1 <= maxl && prun1 <= maxl) {\n if (prun1 < maxl && prun2 < maxl) {\n obj.Search_move[depth] = m;\n if (\n Search_phase2(\n obj,\n edgex,\n cornerx,\n topEdgeFirstx,\n botEdgeFirst,\n ml,\n maxl - 1,\n depth + 1,\n 1,\n )\n ) {\n return true;\n }\n }\n topEdgeFirstx = !topEdgeFirstx;\n if (topEdgeFirstx) {\n edgex = Square_TopMove[edgex];\n prun1 = SquarePrun[(edgex << 1) | ml];\n m += 1;\n } else {\n cornerx = Square_TopMove[cornerx];\n prun2 = SquarePrun[(cornerx << 1) | ml];\n m += 2;\n }\n }\n }\n if (lm <= 1) {\n botEdgeFirstx = !botEdgeFirst;\n edgex = botEdgeFirstx ? Square_BottomMove[edge] : edge;\n cornerx = botEdgeFirstx ? corner : Square_BottomMove[corner];\n m = botEdgeFirstx ? 1 : 2;\n prun1 = SquarePrun[(edgex << 1) | ml];\n prun2 = SquarePrun[(cornerx << 1) | ml];\n while (m < (maxl > 3 ? 6 : 12) && prun1 <= maxl && prun1 <= maxl) {\n if (prun1 < maxl && prun2 < maxl) {\n obj.Search_move[depth] = -m;\n if (\n Search_phase2(\n obj,\n edgex,\n cornerx,\n topEdgeFirst,\n botEdgeFirstx,\n ml,\n maxl - 1,\n depth + 1,\n 2,\n )\n ) {\n return true;\n }\n }\n botEdgeFirstx = !botEdgeFirstx;\n if (botEdgeFirstx) {\n edgex = Square_BottomMove[edgex];\n prun1 = SquarePrun[(edgex << 1) | ml];\n m += 1;\n } else {\n cornerx = Square_BottomMove[cornerx];\n prun2 = SquarePrun[(cornerx << 1) | ml];\n m += 2;\n }\n }\n }\n return false;\n}\n\nfunction Search_solution(obj, c) {\n var shape;\n obj.Search_c = c;\n shape = FullCube_getShapeIdx(c);\n //console.log(shape);\n for (\n obj.Search_length1 = ShapePrun[shape];\n obj.Search_length1 < 100;\n ++obj.Search_length1\n ) {\n //console.log(obj.Search_length1);\n obj.Search_maxlen2 = Math.min(31 - obj.Search_length1, 17);\n if (\n Search_phase1(obj, shape, ShapePrun[shape], obj.Search_length1, 0, -1)\n ) {\n break;\n }\n }\n return obj.Search_sol_string;\n}\n\nfunction Search_Search() {\n this.Search_move = [];\n this.Search_d = new FullCube_FullCube__Ljava_lang_String_2V();\n this.Search_sq = new Square_Square();\n}\n\nfunction Search() {}\n\n_ = Search_Search.prototype = Search.prototype;\n_.Search_c = null;\n_.Search_length1 = 0;\n_.Search_maxlen2 = 0;\n_.Search_sol_string = null;\nlet Shape_$clinit_ran = false;\nfunction Shape_$clinit() {\n if (Shape_$clinit_ran) {\n return;\n }\n Shape_$clinit_ran = true;\n Shape_halflayer = [0, 3, 6, 12, 15, 24, 27, 30, 48, 51, 54, 60, 63];\n Shape_ShapeIdx = [];\n ShapePrun = [];\n Shape_TopMove = [];\n Shape_BottomMove = [];\n Shape_TwistMove = [];\n Shape_init();\n}\n\nfunction Shape_bottomMove(obj) {\n var move;\n var moveParity;\n move = 0;\n moveParity = 0;\n do {\n if ((obj.bottom & 2048) === 0) {\n move += 1;\n obj.bottom = obj.bottom << 1;\n } else {\n move += 2;\n obj.bottom = (obj.bottom << 2) ^ 12291;\n }\n moveParity = 1 - moveParity;\n } while ((bitCount(obj.bottom & 63) & 1) !== 0);\n (bitCount(obj.bottom) & 2) === 0 && (obj.Shape_parity ^= moveParity);\n return move;\n}\n\nfunction Shape_getIdx(obj) {\n var ret;\n ret =\n (binarySearch(Shape_ShapeIdx, (obj.top << 12) | obj.bottom) << 1) |\n obj.Shape_parity;\n return ret;\n}\n\nfunction Shape_setIdx(obj, idx) {\n obj.Shape_parity = idx & 1;\n obj.top = Shape_ShapeIdx[~~idx >> 1];\n obj.bottom = obj.top & 4095;\n obj.top >>= 12;\n}\n\nfunction Shape_topMove(obj) {\n var move;\n var moveParity;\n move = 0;\n moveParity = 0;\n do {\n if ((obj.top & 2048) === 0) {\n move += 1;\n obj.top = obj.top << 1;\n } else {\n move += 2;\n obj.top = (obj.top << 2) ^ 12291;\n }\n moveParity = 1 - moveParity;\n } while ((bitCount(obj.top & 63) & 1) !== 0);\n (bitCount(obj.top) & 2) === 0 && (obj.Shape_parity ^= moveParity);\n return move;\n}\n\nfunction Shape_Shape() {}\n\nfunction Shape_getShape2Idx(shp) {\n var ret;\n ret = (binarySearch(Shape_ShapeIdx, shp & 16777215) << 1) | (~~shp >> 24);\n return ret;\n}\n\nfunction Shape_init() {\n var count;\n var depth;\n var dl;\n var done;\n var done0;\n var dr;\n var i;\n var idx;\n var m;\n var s;\n var ul;\n var ur;\n var value;\n var p1;\n var p3;\n var temp;\n count = 0;\n for (i = 0; i < 28561; ++i) {\n dr = Shape_halflayer[i % 13];\n dl = Shape_halflayer[~~(i / 13) % 13];\n ur = Shape_halflayer[~~(~~(i / 13) / 13) % 13];\n ul = Shape_halflayer[~~(~~(~~(i / 13) / 13) / 13)];\n value = (ul << 18) | (ur << 12) | (dl << 6) | dr;\n bitCount(value) === 16 && (Shape_ShapeIdx[count++] = value);\n }\n s = new Shape_Shape();\n for (i = 0; i < 7356; ++i) {\n Shape_setIdx(s, i);\n Shape_TopMove[i] = Shape_topMove(s);\n Shape_TopMove[i] |= Shape_getIdx(s) << 4;\n Shape_setIdx(s, i);\n Shape_BottomMove[i] = Shape_bottomMove(s);\n Shape_BottomMove[i] |= Shape_getIdx(s) << 4;\n Shape_setIdx(s, i);\n temp = s.top & 63;\n p1 = bitCount(temp);\n p3 = bitCount(s.bottom & 4032);\n s.Shape_parity ^= 1 & (~~(p1 & p3) >> 1);\n s.top = (s.top & 4032) | ((~~s.bottom >> 6) & 63);\n s.bottom = (s.bottom & 63) | (temp << 6);\n Shape_TwistMove[i] = Shape_getIdx(s);\n }\n for (i = 0; i < 7536; ++i) {\n ShapePrun[i] = -1;\n }\n ShapePrun[Shape_getShape2Idx(14378715)] = 0;\n ShapePrun[Shape_getShape2Idx(31157686)] = 0;\n ShapePrun[Shape_getShape2Idx(23967451)] = 0;\n ShapePrun[Shape_getShape2Idx(7191990)] = 0;\n done = 4;\n done0 = 0;\n depth = -1;\n while (done !== done0) {\n done0 = done;\n ++depth;\n for (i = 0; i < 7536; ++i) {\n if (ShapePrun[i] === depth) {\n m = 0;\n idx = i;\n do {\n idx = Shape_TopMove[idx];\n m += idx & 15;\n idx >>= 4;\n if (ShapePrun[idx] === -1) {\n ++done;\n ShapePrun[idx] = depth + 1;\n }\n } while (m !== 12);\n m = 0;\n idx = i;\n do {\n idx = Shape_BottomMove[idx];\n m += idx & 15;\n idx >>= 4;\n if (ShapePrun[idx] === -1) {\n ++done;\n ShapePrun[idx] = depth + 1;\n }\n } while (m !== 12);\n idx = Shape_TwistMove[i];\n if (ShapePrun[idx] === -1) {\n ++done;\n ShapePrun[idx] = depth + 1;\n }\n }\n }\n }\n}\n\nfunction Shape() {}\n\n_ = Shape_Shape.prototype = Shape.prototype;\n_.bottom = 0;\n_.Shape_parity = 0;\n_.top = 0;\nvar Shape_BottomMove;\nvar Shape_ShapeIdx;\nvar ShapePrun;\nvar Shape_TopMove;\nvar Shape_TwistMove;\nvar Shape_halflayer;\nlet Square_$clinit_ran = false;\nfunction Square_$clinit() {\n if (Square_$clinit_ran) {\n return;\n }\n Square_$clinit_ran = true;\n SquarePrun = [];\n Square_TwistMove = [];\n Square_TopMove = [];\n Square_BottomMove = [];\n fact = [1, 1, 2, 6, 24, 120, 720, 5040];\n Cnk = [];\n for (var i = 0; i < 12; ++i) {\n Cnk[i] = [];\n }\n Square_init();\n}\n\nfunction Square_Square() {}\n\nfunction get8Perm(arr) {\n var i;\n var idx;\n var v;\n var val;\n idx = 0;\n val = 1985229328;\n for (i = 0; i < 7; ++i) {\n v = arr[i] << 2;\n idx = (8 - i) * idx + ((~~val >> v) & 7);\n val -= 286331152 << v;\n }\n return idx & 65535;\n}\n\nfunction Square_init() {\n var check;\n var depth;\n var done;\n var find;\n var i;\n var idx;\n var idxx;\n var inv;\n var j;\n var m;\n var ml;\n var pos;\n var temp;\n for (i = 0; i < 12; ++i) {\n Cnk[i][0] = 1;\n Cnk[i][i] = 1;\n for (j = 1; j < i; ++j) {\n Cnk[i][j] = Cnk[i - 1][j - 1] + Cnk[i - 1][j];\n }\n }\n pos = [];\n for (i = 0; i < 40320; ++i) {\n set8Perm(pos, i);\n temp = pos[2];\n pos[2] = pos[4];\n pos[4] = temp;\n temp = pos[3];\n pos[3] = pos[5];\n pos[5] = temp;\n Square_TwistMove[i] = get8Perm(pos);\n set8Perm(pos, i);\n temp = pos[0];\n pos[0] = pos[1];\n pos[1] = pos[2];\n pos[2] = pos[3];\n pos[3] = temp;\n Square_TopMove[i] = get8Perm(pos);\n set8Perm(pos, i);\n temp = pos[4];\n pos[4] = pos[5];\n pos[5] = pos[6];\n pos[6] = pos[7];\n pos[7] = temp;\n Square_BottomMove[i] = get8Perm(pos);\n }\n for (i = 0; i < 80640; ++i) {\n SquarePrun[i] = -1;\n }\n SquarePrun[0] = 0;\n depth = 0;\n done = 1;\n while (done < 80640) {\n // console.log(done);\n inv = depth >= 11;\n find = inv ? -1 : depth;\n check = inv ? depth : -1;\n ++depth;\n OUT: for (i = 0; i < 80640; ++i) {\n if (SquarePrun[i] === find) {\n idx = ~~i >> 1;\n ml = i & 1;\n idxx = (Square_TwistMove[idx] << 1) | (1 - ml);\n if (SquarePrun[idxx] === check) {\n ++done;\n SquarePrun[inv ? i : idxx] = ~~(depth << 24) >> 24;\n if (inv) {\n continue OUT;\n }\n }\n idxx = idx;\n for (m = 0; m < 4; ++m) {\n idxx = Square_TopMove[idxx];\n if (SquarePrun[(idxx << 1) | ml] === check) {\n ++done;\n SquarePrun[inv ? i : (idxx << 1) | ml] = ~~(depth << 24) >> 24;\n if (inv) {\n continue OUT;\n }\n }\n }\n for (m = 0; m < 4; ++m) {\n idxx = Square_BottomMove[idxx];\n if (SquarePrun[(idxx << 1) | ml] === check) {\n ++done;\n SquarePrun[inv ? i : (idxx << 1) | ml] = ~~(depth << 24) >> 24;\n if (inv) {\n continue OUT;\n }\n }\n }\n }\n }\n }\n}\n\nfunction set8Perm(arr, idx) {\n var i;\n var m;\n var p;\n var v;\n var val;\n val = 1985229328;\n for (i = 0; i < 7; ++i) {\n p = fact[7 - i];\n v = ~~(idx / p);\n idx -= v * p;\n v <<= 2;\n arr[i] = ~~(((~~val >> v) & 7) << 24) >> 24;\n m = (1 << v) - 1;\n val = (val & m) + ((~~val >> 4) & ~m);\n }\n arr[7] = ~~(val << 24) >> 24;\n}\n\nfunction Square() {}\n\n_ = Square_Square.prototype = Square.prototype;\n_.botEdgeFirst = false;\n_.cornperm = 0;\n_.edgeperm = 0;\n_.ml = 0;\n_.topEdgeFirst = false;\nvar Square_BottomMove;\nvar Cnk;\nvar SquarePrun;\nvar Square_TopMove;\nvar Square_TwistMove;\nvar fact;\n\nfunction bitCount(x) {\n x -= (~~x >> 1) & 1431655765;\n x = ((~~x >> 2) & 858993459) + (x & 858993459);\n x = ((~~x >> 4) + x) & 252645135;\n x += ~~x >> 8;\n x += ~~x >> 16;\n return x & 63;\n}\n\nfunction binarySearch(sortedArray, key) {\n var high;\n var low;\n var mid;\n var midVal;\n low = 0;\n high = sortedArray.length - 1;\n while (low <= high) {\n mid = low + (~~(high - low) >> 1);\n midVal = sortedArray[mid];\n if (midVal < key) {\n low = mid + 1;\n } else if (midVal > key) {\n high = mid - 1;\n } else {\n return mid;\n }\n }\n return -low - 1;\n}\n\n/*\n * Some helper functions.\n */\n\nvar square1Solver_initialized = false;\n\nvar square1SolverInitialize = function (doneCallback, _, statusCallback) {\n if (!square1Solver_initialized) {\n Shape_$clinit();\n Square_$clinit();\n }\n\n if (statusCallback) {\n statusCallback(\"Done initializing Square-1.\");\n }\n\n square1Solver_initialized = true;\n if (doneCallback != null) {\n doneCallback();\n }\n};\n\nvar square1SolverGetRandomPosition = function () {\n if (!square1Solver_initialized) {\n square1SolverInitialize();\n }\n return FullCube_randomCube();\n};\n\nvar square1SolverGenerate = function (pattern) {\n var search_search = new Search_Search(); // Can this be factored out?\n return Search_solution(search_search, pattern);\n};\n\nvar square1SolverGetRandomScramble = function () {\n var randomPattern = square1SolverGetRandomPosition();\n var scrambleString = square1SolverGenerate(randomPattern);\n\n return {\n pattern: randomPattern,\n scramble_string: scrambleString,\n };\n};\n\nexport function getRandomSquare1ScrambleString() {\n return square1SolverGetRandomScramble().scramble_string;\n}\n"],
5
5
  "mappings": "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",
6
6
  "names": ["_"]
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  nodeEndpointPort
3
- } from "./chunk-6OUID4YZ.js";
3
+ } from "./chunk-NEAVVKH5.js";
4
4
  import {
5
5
  exposeAPI
6
- } from "./chunk-7QE2OVHX.js";
7
- import "./chunk-ZYCJIZDN.js";
6
+ } from "./chunk-7GUL3OBQ.js";
7
+ import "./chunk-VL22SFND.js";
8
8
 
9
9
  // src/cubing/search/worker-workarounds/search-worker-entry.js
10
10
  if (exposeAPI.expose) {
11
11
  (async () => {
12
- await import("./inside-AZHBOSXQ.js");
12
+ await import("./inside-7XZ5YPBP.js");
13
13
  const messagePort = globalThis.postMessage ? globalThis : await nodeEndpointPort();
14
14
  messagePort.postMessage("comlink-exposed");
15
15
  })();
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/cubing/search/worker-workarounds/search-worker-entry.js"],
3
+ "sources": ["../../../../src/cubing/search/worker-workarounds/search-worker-entry.js"],
4
4
  "sourcesContent": ["import { nodeEndpointPort } from \"../../vendor/apache/comlink-everywhere/inside/index\";\nimport { exposeAPI } from \"./worker-guard\";\n\nif (exposeAPI.expose) {\n (async () => {\n await import(\"../inside\");\n\n // Workaround for `node`\n const messagePort = globalThis.postMessage\n ? globalThis\n : await nodeEndpointPort();\n messagePort.postMessage(\"comlink-exposed\"); // TODO: remove this\n })();\n}\n\n// Workaround for `esbuild`: https://github.com/evanw/esbuild/issues/312#issuecomment-1092195778\nexport const WORKER_ENTRY_FILE_URL = import.meta.url;\n"],
5
5
  "mappings": ";;;;;;;;;AAGA,IAAI,UAAU,QAAQ;AACpB,GAAC,YAAY;AACX,UAAM,OAAO,sBAAW;AAGxB,UAAM,cAAc,WAAW,cAC3B,aACA,MAAM,iBAAiB;AAC3B,gBAAY,YAAY,iBAAiB;AAAA,EAC3C,GAAG;AACL;AAGO,IAAM,wBAAwB,YAAY;",
6
6
  "names": []
@@ -3,17 +3,17 @@ import {
3
3
  THREEJS,
4
4
  haveStartedSharingRenderers,
5
5
  hintFaceletStyles
6
- } from "./chunk-FCRM3RQU.js";
6
+ } from "./chunk-Z2CCB3XX.js";
7
7
  import {
8
8
  cube3x3x3
9
- } from "./chunk-AU3TSTCA.js";
9
+ } from "./chunk-32CXD7UA.js";
10
10
  import {
11
11
  getFaceletStickeringMask
12
- } from "./chunk-KF2JGMZA.js";
13
- import "./chunk-OLH526Y4.js";
12
+ } from "./chunk-RS62HLA5.js";
13
+ import "./chunk-QF4HTZYW.js";
14
14
  import {
15
15
  Move
16
- } from "./chunk-ULQMFOA2.js";
16
+ } from "./chunk-7X47IY3P.js";
17
17
 
18
18
  // src/cubing/twisty/views/3D/puzzles/Cube3D.ts
19
19
  import {
@@ -104,6 +104,8 @@ var AxisInfo = class {
104
104
  invisible: invisibleMaterial
105
105
  };
106
106
  }
107
+ stickerMaterial;
108
+ hintStickerMaterial;
107
109
  };
108
110
  var axesInfo = [
109
111
  new AxisInfo(
@@ -238,6 +240,8 @@ var CubieDef = class {
238
240
  this.matrix.setPosition(firstPiecePosition[orbit]);
239
241
  this.matrix.premultiply(new Matrix4().makeRotationFromQuaternion(q));
240
242
  }
243
+ matrix;
244
+ stickerFaces;
241
245
  };
242
246
  function t(v, t4) {
243
247
  return new Quaternion().setFromAxisAngle(v, TAU * t4 / 4);
@@ -494,21 +498,6 @@ var Cube3D = class extends Object3D {
494
498
  super();
495
499
  this.kpuzzle = kpuzzle;
496
500
  this.scheduleRenderCallback = scheduleRenderCallback;
497
- this.pieces = {};
498
- // TODO: Keep track of option-based meshes better.
499
- this.experimentalHintStickerMeshes = [];
500
- this.experimentalFoundationMeshes = [];
501
- this.sprite = new Promise((resolve) => {
502
- this.setSpriteURL = (url) => {
503
- svgLoader.load(url, resolve);
504
- };
505
- });
506
- this.hintSprite = new Promise((resolve) => {
507
- this.setHintSpriteURL = (url) => {
508
- svgLoader.load(url, resolve);
509
- };
510
- });
511
- this.#sharedHintStickerGeometryCache = null;
512
501
  this.options = { ...cube3DOptionsDefaults };
513
502
  Object.assign(this.options, options);
514
503
  if (this.kpuzzle.name() !== "3x3x3") {
@@ -539,19 +528,37 @@ var Cube3D = class extends Object3D {
539
528
  this.experimentalSetFaceletScale(this.options.faceletScale);
540
529
  }
541
530
  }
531
+ kpuzzleFaceletInfo;
532
+ pieces = {};
533
+ options;
534
+ // TODO: Keep track of option-based meshes better.
535
+ experimentalHintStickerMeshes = [];
536
+ experimentalFoundationMeshes = [];
537
+ setSpriteURL;
538
+ sprite = new Promise((resolve) => {
539
+ this.setSpriteURL = (url) => {
540
+ svgLoader.load(url, resolve);
541
+ };
542
+ });
542
543
  // TODO: Don't overwrite the static function.
543
544
  // TODO: This doesn't work dynamically yet.
544
545
  setSprite(texture) {
545
546
  this.sprite = texture;
546
547
  }
548
+ setHintSpriteURL;
549
+ hintSprite = new Promise((resolve) => {
550
+ this.setHintSpriteURL = (url) => {
551
+ svgLoader.load(url, resolve);
552
+ };
553
+ });
547
554
  // TODO: Don't overwrite the static function.
548
555
  // TODO: This doesn't work dynamically yet.
549
556
  setHintSprite(texture) {
550
557
  this.hintSprite = texture;
551
558
  }
552
- #sharedHintStickerGeometryCache;
559
+ #sharedHintStickerGeometryCache = null;
553
560
  #sharedHintStickerGeometry() {
554
- return this.#sharedHintStickerGeometryCache ?? (this.#sharedHintStickerGeometryCache = newStickerGeometry());
561
+ return this.#sharedHintStickerGeometryCache ??= newStickerGeometry();
555
562
  }
556
563
  // TODO: Generalize this into an animation mechanism.
557
564
  #animateRaiseHintFacelets() {
@@ -980,6 +987,12 @@ var Filler = class {
980
987
  this.pos = 0;
981
988
  this.ipos = 0;
982
989
  }
990
+ pos;
991
+ ipos;
992
+ vertices;
993
+ colors;
994
+ uvs;
995
+ ind;
983
996
  add(pt, i, c) {
984
997
  this.vertices[this.pos] = pt[3 * i + 0];
985
998
  this.vertices[this.pos + 1] = pt[3 * i + 1];
@@ -1028,9 +1041,20 @@ var Filler = class {
1028
1041
  }
1029
1042
  };
1030
1043
  var StickerDef = class {
1044
+ origColor;
1045
+ origColorStickeringMask;
1046
+ faceColor;
1047
+ texturePtr = void 0;
1048
+ twistVal = -1;
1049
+ stickerStart;
1050
+ stickerEnd;
1051
+ hintStart;
1052
+ hintEnd;
1053
+ foundationStart;
1054
+ foundationEnd;
1055
+ isDup;
1056
+ faceNum;
1031
1057
  constructor(filler, stickerDat, trim, options) {
1032
- this.texturePtr = void 0;
1033
- this.twistVal = -1;
1034
1058
  this.isDup = !!stickerDat.isDup;
1035
1059
  this.faceNum = stickerDat.face;
1036
1060
  this.stickerStart = filler.ipos;
@@ -1200,6 +1224,8 @@ var StickerDef = class {
1200
1224
  }
1201
1225
  };
1202
1226
  var HitPlaneDef = class {
1227
+ cubie;
1228
+ geo;
1203
1229
  constructor(hitface, tm, stickerDat) {
1204
1230
  this.cubie = new Group2();
1205
1231
  const coords = hitface.coords;
@@ -1220,6 +1246,8 @@ var HitPlaneDef = class {
1220
1246
  }
1221
1247
  };
1222
1248
  var AxisInfo2 = class {
1249
+ axis;
1250
+ order;
1223
1251
  constructor(axisDat) {
1224
1252
  const vec = axisDat.coordinates;
1225
1253
  this.axis = new Vector32(vec[0], vec[1], vec[2]);
@@ -1236,12 +1264,6 @@ var PG3D = class extends Object3D2 {
1236
1264
  this.stickerDat = stickerDat;
1237
1265
  this.faceletScale = faceletScale;
1238
1266
  this.params = params;
1239
- this.stickerTargets = [];
1240
- this.controlTargets = [];
1241
- this.textured = false;
1242
- this.showHintStickers = false;
1243
- this.showFoundations = false;
1244
- this.#pendingStickeringUpdate = false;
1245
1267
  if (stickerDat.stickers.length === 0) {
1246
1268
  throw Error("Reuse of stickerdat from pg; please don't do that.");
1247
1269
  }
@@ -1360,7 +1382,28 @@ var PG3D = class extends Object3D2 {
1360
1382
  stickerDat.stickers = [];
1361
1383
  this.updateMaterialArrays();
1362
1384
  }
1363
- #pendingStickeringUpdate;
1385
+ stickers;
1386
+ axesInfo;
1387
+ stickerTargets = [];
1388
+ controlTargets = [];
1389
+ movingObj;
1390
+ filler;
1391
+ foundationBound;
1392
+ // before this: colored; after: black
1393
+ fixedGeo;
1394
+ lastPos;
1395
+ lastMoveTransformation;
1396
+ hintMaterial;
1397
+ stickerMaterial;
1398
+ materialArray1;
1399
+ materialArray2;
1400
+ textured = false;
1401
+ showHintStickers = false;
1402
+ showFoundations = false;
1403
+ hintMaterialDisposable;
1404
+ stickerMaterialDisposable;
1405
+ #pendingStickeringUpdate = false;
1406
+ isPG3DForTwisty3DPuzzleWrapper;
1364
1407
  dispose() {
1365
1408
  if (this.fixedGeo) {
1366
1409
  this.fixedGeo.dispose();
@@ -1741,11 +1784,9 @@ import * as T3I from "three";
1741
1784
 
1742
1785
  // src/cubing/twisty/views/3D/Twisty3DScene.ts
1743
1786
  var Twisty3DScene = class {
1744
- constructor() {
1745
- this.renderTargets = /* @__PURE__ */ new Set();
1746
- this.twisty3Ds = /* @__PURE__ */ new Set();
1747
- this.threeJSScene = (async () => new (await THREEJS).Scene())();
1748
- }
1787
+ renderTargets = /* @__PURE__ */ new Set();
1788
+ twisty3Ds = /* @__PURE__ */ new Set();
1789
+ threeJSScene = (async () => new (await THREEJS).Scene())();
1749
1790
  addRenderTarget(renderTarget) {
1750
1791
  this.renderTargets.add(renderTarget);
1751
1792
  }
@@ -1793,4 +1834,4 @@ export {
1793
1834
  cube3DShim,
1794
1835
  pg3dShim
1795
1836
  };
1796
- //# sourceMappingURL=twisty-dynamic-3d-NTZMGNOB.js.map
1837
+ //# sourceMappingURL=twisty-dynamic-3d-EKFIEPIM.js.map