cubing 0.30.0 → 0.31.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 (89) hide show
  1. package/dist/esm/alg/index.js +3 -1
  2. package/dist/esm/bluetooth/index.js +5 -5
  3. package/dist/esm/bluetooth/index.js.map +2 -2
  4. package/dist/esm/{chunk-KOAJIBEX.js → chunk-52L7V4XF.js} +32 -27
  5. package/dist/esm/chunk-52L7V4XF.js.map +7 -0
  6. package/dist/esm/{chunk-4QZRHN6S.js → chunk-55WSHQFP.js} +6 -8
  7. package/dist/esm/{chunk-4QZRHN6S.js.map → chunk-55WSHQFP.js.map} +2 -2
  8. package/dist/esm/{chunk-5OQ34D3X.js → chunk-A3PA5E45.js} +4 -4
  9. package/dist/esm/{chunk-5OQ34D3X.js.map → chunk-A3PA5E45.js.map} +2 -2
  10. package/dist/esm/{chunk-C6KMV2PL.js → chunk-G6MFOXW4.js} +10 -11
  11. package/dist/esm/chunk-G6MFOXW4.js.map +7 -0
  12. package/dist/esm/{chunk-6FB2XWAK.js → chunk-JCIUBLD5.js} +138 -183
  13. package/dist/esm/chunk-JCIUBLD5.js.map +7 -0
  14. package/dist/esm/{chunk-RI2DAEY6.js → chunk-JW5R6EBK.js} +2 -2
  15. package/dist/esm/{chunk-RI2DAEY6.js.map → chunk-JW5R6EBK.js.map} +0 -0
  16. package/dist/esm/{chunk-GQBRF4EM.js → chunk-MHP4YJE7.js} +7 -9
  17. package/dist/esm/chunk-MHP4YJE7.js.map +7 -0
  18. package/dist/esm/{chunk-ZQT3QSWD.js → chunk-PVI43RDV.js} +16 -13
  19. package/dist/esm/chunk-PVI43RDV.js.map +7 -0
  20. package/dist/esm/{chunk-35OK6TQ4.js → chunk-VTO7WPWK.js} +28 -19
  21. package/dist/esm/chunk-VTO7WPWK.js.map +7 -0
  22. package/dist/esm/{chunk-VIUWS2PX.js → chunk-XNPPG3BV.js} +3 -3
  23. package/dist/esm/chunk-XNPPG3BV.js.map +7 -0
  24. package/dist/esm/kpuzzle/index.js +2 -2
  25. package/dist/esm/notation/index.js +2 -2
  26. package/dist/esm/protocol/index.js +4 -4
  27. package/dist/esm/puzzle-geometry/index.js +6 -18
  28. package/dist/esm/puzzle-geometry/index.js.map +2 -2
  29. package/dist/esm/puzzles/index.js +4 -4
  30. package/dist/esm/scramble/index.js +2 -2
  31. package/dist/esm/search/index.js +6 -6
  32. package/dist/esm/{search-dynamic-sgs-side-events-XNTCWRI4.js → search-dynamic-sgs-side-events-UIAYYZRR.js} +6 -6
  33. package/dist/esm/{search-dynamic-sgs-side-events-XNTCWRI4.js.map → search-dynamic-sgs-side-events-UIAYYZRR.js.map} +0 -0
  34. package/dist/esm/{search-dynamic-sgs-unofficial-5KMZ747E.js → search-dynamic-sgs-unofficial-7XRXANEX.js} +6 -6
  35. package/dist/esm/{search-dynamic-sgs-unofficial-5KMZ747E.js.map → search-dynamic-sgs-unofficial-7XRXANEX.js.map} +0 -0
  36. package/dist/esm/{search-dynamic-solve-3x3x3-TSXPWENP.js → search-dynamic-solve-3x3x3-DDVSUP2C.js} +275 -290
  37. package/dist/esm/search-dynamic-solve-3x3x3-DDVSUP2C.js.map +7 -0
  38. package/dist/esm/{search-dynamic-solve-4x4x4-FKQ2JWK2.js → search-dynamic-solve-4x4x4-K5LUSS2B.js} +6 -6
  39. package/dist/esm/{search-dynamic-solve-4x4x4-FKQ2JWK2.js.map → search-dynamic-solve-4x4x4-K5LUSS2B.js.map} +0 -0
  40. package/dist/esm/{search-dynamic-solve-fto-GPLW7S5F.js → search-dynamic-solve-fto-MA4X6JEE.js} +6 -16
  41. package/dist/esm/search-dynamic-solve-fto-MA4X6JEE.js.map +7 -0
  42. package/dist/esm/{search-dynamic-solve-kilominx-HB2QFUGF.js → search-dynamic-solve-kilominx-XDOKK3ZV.js} +2 -2
  43. package/dist/esm/search-dynamic-solve-kilominx-XDOKK3ZV.js.map +7 -0
  44. package/dist/esm/{search-dynamic-solve-master_tetraminx-LR3LJI7O.js → search-dynamic-solve-master_tetraminx-YKINTRUU.js} +4 -10
  45. package/dist/esm/search-dynamic-solve-master_tetraminx-YKINTRUU.js.map +7 -0
  46. package/dist/esm/{search-worker-inside-generated-string-5HKZNHKK.js → search-worker-inside-generated-string-LBOAERDX.js} +28 -28
  47. package/dist/esm/search-worker-inside-generated-string-LBOAERDX.js.map +7 -0
  48. package/dist/esm/{search-worker-js-entry-PDXEE46R.js → search-worker-js-entry-4MMPUMST.js} +30 -36
  49. package/dist/esm/{search-worker-js-entry-PDXEE46R.js.map → search-worker-js-entry-4MMPUMST.js.map} +2 -2
  50. package/dist/esm/{search-worker-ts-entry-UV2RY2EY.js → search-worker-ts-entry-LBKZYRBU.js} +2 -2
  51. package/dist/esm/{search-worker-ts-entry-UV2RY2EY.js.map → search-worker-ts-entry-LBKZYRBU.js.map} +0 -0
  52. package/dist/esm/stream/index.js +1 -1
  53. package/dist/esm/stream/index.js.map +2 -2
  54. package/dist/esm/twisty/index.js +381 -250
  55. package/dist/esm/twisty/index.js.map +4 -4
  56. package/dist/esm/{twisty-dynamic-3d-GPF6TW32.js → twisty-dynamic-3d-TFI45NMX.js} +125 -106
  57. package/dist/esm/twisty-dynamic-3d-TFI45NMX.js.map +7 -0
  58. package/dist/types/{Alg-1c8c3757.d.ts → Alg-d3ac9660.d.ts} +53 -4
  59. package/dist/types/{KState-7c9e40f4.d.ts → KState-0a9388d0.d.ts} +1 -1
  60. package/dist/types/{TwizzleLink-3f8a01d2.d.ts → TwizzleLink-79b17516.d.ts} +63 -41
  61. package/dist/types/alg/index.d.ts +9 -6
  62. package/dist/types/bluetooth/index.d.ts +4 -4
  63. package/dist/types/{bluetooth-puzzle-a64e9756.d.ts → bluetooth-puzzle-83ade5b5.d.ts} +2 -2
  64. package/dist/types/kpuzzle/index.d.ts +2 -2
  65. package/dist/types/notation/index.d.ts +1 -1
  66. package/dist/types/{outside-b62aa614.d.ts → outside-6a613add.d.ts} +2 -2
  67. package/dist/types/{parseAlg-d5fbee87.d.ts → parseAlg-3bb4dddb.d.ts} +1 -1
  68. package/dist/types/protocol/index.d.ts +2 -2
  69. package/dist/types/puzzle-geometry/index.d.ts +3 -3
  70. package/dist/types/puzzles/index.d.ts +5 -5
  71. package/dist/types/scramble/index.d.ts +3 -3
  72. package/dist/types/search/index.d.ts +3 -3
  73. package/dist/types/stream/index.d.ts +3 -3
  74. package/dist/types/twisty/index.d.ts +6 -6
  75. package/package.json +11 -5
  76. package/dist/esm/.DS_Store +0 -0
  77. package/dist/esm/chunk-35OK6TQ4.js.map +0 -7
  78. package/dist/esm/chunk-6FB2XWAK.js.map +0 -7
  79. package/dist/esm/chunk-C6KMV2PL.js.map +0 -7
  80. package/dist/esm/chunk-GQBRF4EM.js.map +0 -7
  81. package/dist/esm/chunk-KOAJIBEX.js.map +0 -7
  82. package/dist/esm/chunk-VIUWS2PX.js.map +0 -7
  83. package/dist/esm/chunk-ZQT3QSWD.js.map +0 -7
  84. package/dist/esm/search-dynamic-solve-3x3x3-TSXPWENP.js.map +0 -7
  85. package/dist/esm/search-dynamic-solve-fto-GPLW7S5F.js.map +0 -7
  86. package/dist/esm/search-dynamic-solve-kilominx-HB2QFUGF.js.map +0 -7
  87. package/dist/esm/search-dynamic-solve-master_tetraminx-LR3LJI7O.js.map +0 -7
  88. package/dist/esm/search-worker-inside-generated-string-5HKZNHKK.js.map +0 -7
  89. package/dist/esm/twisty-dynamic-3d-GPF6TW32.js.map +0 -7
@@ -1,29 +1,30 @@
1
1
  import {
2
2
  KPuzzle,
3
3
  KState
4
- } from "./chunk-GQBRF4EM.js";
4
+ } from "./chunk-MHP4YJE7.js";
5
5
  import {
6
6
  Alg
7
- } from "./chunk-ZQT3QSWD.js";
7
+ } from "./chunk-PVI43RDV.js";
8
8
 
9
- // src/cubing/puzzles/stickerings/appearance.ts
10
- function getFaceletAppearance(appearance, orbitName, pieceIdx, faceletIdx, hint) {
11
- const orbitAppearance = appearance.orbits[orbitName];
12
- const pieceAppearance = orbitAppearance.pieces[pieceIdx];
13
- if (pieceAppearance === null) {
9
+ // src/cubing/puzzles/stickerings/mask.ts
10
+ function getFaceletStickeringMask(stickeringMask, orbitName, pieceIdx, faceletIdx, hint) {
11
+ const orbitStickeringMask = stickeringMask.orbits[orbitName];
12
+ const pieceStickeringMask = orbitStickeringMask.pieces[pieceIdx];
13
+ if (pieceStickeringMask === null) {
14
14
  return regular;
15
15
  }
16
- const faceletAppearance = pieceAppearance.facelets[faceletIdx];
17
- if (faceletAppearance === null) {
16
+ const faceletStickeringMask = pieceStickeringMask.facelets?.[faceletIdx];
17
+ if (faceletStickeringMask === null) {
18
18
  return regular;
19
19
  }
20
- if (typeof faceletAppearance === "string") {
21
- return faceletAppearance;
20
+ if (typeof faceletStickeringMask === "string") {
21
+ return faceletStickeringMask;
22
22
  }
23
23
  if (hint) {
24
- return faceletAppearance.hintAppearance ?? faceletAppearance.appearance;
24
+ return faceletStickeringMask.hintMask ?? faceletStickeringMask.mask;
25
25
  }
26
- return faceletAppearance.appearance;
26
+ console.log(faceletStickeringMask);
27
+ return faceletStickeringMask.mask;
27
28
  }
28
29
  var PieceAnnotation = class {
29
30
  constructor(kpuzzle, defaultValue) {
@@ -43,54 +44,37 @@ var ignored = "ignored";
43
44
  var oriented = "oriented";
44
45
  var invisible = "invisible";
45
46
  var dim = "dim";
46
- var r = {
47
- facelets: [regular, regular, regular, regular, regular]
48
- };
49
- var i = {
50
- facelets: [ignored, ignored, ignored, ignored, ignored]
51
- };
52
- var o = {
53
- facelets: [oriented, oriented, oriented, oriented, oriented]
54
- };
55
- var invisiblePiece = {
56
- facelets: [invisible, invisible, invisible, invisible]
57
- };
58
- var riiii = {
59
- facelets: [regular, ignored, ignored, ignored, ignored]
60
- };
61
- var drrrr = {
62
- facelets: [dim, regular, regular, regular, regular]
63
- };
64
- var d = {
65
- facelets: [dim, dim, dim, dim, dim]
66
- };
67
- var diiii = {
68
- facelets: [dim, ignored, ignored, ignored, ignored]
69
- };
70
- var oiiii = {
71
- facelets: [oriented, ignored, ignored, ignored, ignored]
72
- };
73
- function getPieceAppearance(pieceStickering) {
74
- switch (pieceStickering) {
75
- case "Regular" /* Regular */:
76
- return r;
77
- case "Dim" /* Dim */:
78
- return d;
79
- case "Ignored" /* Ignored */:
80
- return i;
81
- case "OrientationStickers" /* OrientationStickers */:
82
- return o;
83
- case "Invisible" /* Invisible */:
84
- return invisiblePiece;
85
- case "IgnoreNonPrimary" /* IgnoreNonPrimary */:
86
- return riiii;
87
- case "PermuteNonPrimary" /* PermuteNonPrimary */:
88
- return drrrr;
89
- case "Ignoriented" /* Ignoriented */:
90
- return diiii;
91
- case "OrientationWithoutPermutation" /* OrientationWithoutPermutation */:
92
- return oiiii;
47
+ var pieceStickerings = {
48
+ ["Regular" /* Regular */]: {
49
+ facelets: [regular, regular, regular, regular, regular]
50
+ },
51
+ ["Ignored" /* Ignored */]: {
52
+ facelets: [ignored, ignored, ignored, ignored, ignored]
53
+ },
54
+ ["OrientationStickers" /* OrientationStickers */]: {
55
+ facelets: [oriented, oriented, oriented, oriented, oriented]
56
+ },
57
+ ["IgnoreNonPrimary" /* IgnoreNonPrimary */]: {
58
+ facelets: [regular, ignored, ignored, ignored, ignored]
59
+ },
60
+ ["Invisible" /* Invisible */]: {
61
+ facelets: [invisible, invisible, invisible, invisible]
62
+ },
63
+ ["PermuteNonPrimary" /* PermuteNonPrimary */]: {
64
+ facelets: [dim, regular, regular, regular, regular]
65
+ },
66
+ ["Dim" /* Dim */]: {
67
+ facelets: [dim, dim, dim, dim, dim]
68
+ },
69
+ ["Ignoriented" /* Ignoriented */]: {
70
+ facelets: [dim, ignored, ignored, ignored, ignored]
71
+ },
72
+ ["OrientationWithoutPermutation" /* OrientationWithoutPermutation */]: {
73
+ facelets: [oriented, ignored, ignored, ignored, ignored]
93
74
  }
75
+ };
76
+ function getPieceStickeringMask(pieceStickering) {
77
+ return pieceStickerings[pieceStickering];
94
78
  }
95
79
  var PuzzleStickering = class extends PieceAnnotation {
96
80
  constructor(kpuzzle) {
@@ -98,27 +82,27 @@ var PuzzleStickering = class extends PieceAnnotation {
98
82
  }
99
83
  set(pieceSet, pieceStickering) {
100
84
  for (const [orbitName, pieces] of this.stickerings.entries()) {
101
- for (let i2 = 0; i2 < pieces.length; i2++) {
102
- if (pieceSet.stickerings.get(orbitName)[i2]) {
103
- pieces[i2] = pieceStickering;
85
+ for (let i = 0; i < pieces.length; i++) {
86
+ if (pieceSet.stickerings.get(orbitName)[i]) {
87
+ pieces[i] = pieceStickering;
104
88
  }
105
89
  }
106
90
  }
107
91
  return this;
108
92
  }
109
- toAppearance() {
110
- const appearance = { orbits: {} };
111
- for (const [orbitName, pieceStickerings] of this.stickerings.entries()) {
93
+ toStickeringMask() {
94
+ const stickeringMask = { orbits: {} };
95
+ for (const [orbitName, pieceStickerings2] of this.stickerings.entries()) {
112
96
  const pieces = [];
113
- const orbitAppearance = {
97
+ const orbitStickeringMask = {
114
98
  pieces
115
99
  };
116
- appearance.orbits[orbitName] = orbitAppearance;
117
- for (const pieceStickering of pieceStickerings) {
118
- pieces.push(getPieceAppearance(pieceStickering));
100
+ stickeringMask.orbits[orbitName] = orbitStickeringMask;
101
+ for (const pieceStickering of pieceStickerings2) {
102
+ pieces.push(getPieceStickeringMask(pieceStickering));
119
103
  }
120
104
  }
121
- return appearance;
105
+ return stickeringMask;
122
106
  }
123
107
  };
124
108
  var StickeringManager = class {
@@ -131,11 +115,11 @@ var StickeringManager = class {
131
115
  this.kpuzzle.definition.orbits
132
116
  )) {
133
117
  pieceLoop:
134
- for (let i2 = 0; i2 < orbitDef.numPieces; i2++) {
135
- newPieceSet.stickerings.get(orbitName)[i2] = true;
118
+ for (let i = 0; i < orbitDef.numPieces; i++) {
119
+ newPieceSet.stickerings.get(orbitName)[i] = true;
136
120
  for (const pieceSet of pieceSets) {
137
- if (!pieceSet.stickerings.get(orbitName)[i2]) {
138
- newPieceSet.stickerings.get(orbitName)[i2] = false;
121
+ if (!pieceSet.stickerings.get(orbitName)[i]) {
122
+ newPieceSet.stickerings.get(orbitName)[i] = false;
139
123
  continue pieceLoop;
140
124
  }
141
125
  }
@@ -149,11 +133,11 @@ var StickeringManager = class {
149
133
  this.kpuzzle.definition.orbits
150
134
  )) {
151
135
  pieceLoop:
152
- for (let i2 = 0; i2 < orbitDef.numPieces; i2++) {
153
- newPieceSet.stickerings.get(orbitName)[i2] = false;
136
+ for (let i = 0; i < orbitDef.numPieces; i++) {
137
+ newPieceSet.stickerings.get(orbitName)[i] = false;
154
138
  for (const pieceSet of pieceSets) {
155
- if (pieceSet.stickerings.get(orbitName)[i2]) {
156
- newPieceSet.stickerings.get(orbitName)[i2] = true;
139
+ if (pieceSet.stickerings.get(orbitName)[i]) {
140
+ newPieceSet.stickerings.get(orbitName)[i] = true;
157
141
  continue pieceLoop;
158
142
  }
159
143
  }
@@ -166,10 +150,10 @@ var StickeringManager = class {
166
150
  for (const [orbitName, orbitDef] of Object.entries(
167
151
  this.kpuzzle.definition.orbits
168
152
  )) {
169
- for (let i2 = 0; i2 < orbitDef.numPieces; i2++) {
170
- newPieceSet.stickerings.get(orbitName)[i2] = !pieceSet.stickerings.get(
153
+ for (let i = 0; i < orbitDef.numPieces; i++) {
154
+ newPieceSet.stickerings.get(orbitName)[i] = !pieceSet.stickerings.get(
171
155
  orbitName
172
- )[i2];
156
+ )[i];
173
157
  }
174
158
  }
175
159
  return newPieceSet;
@@ -183,9 +167,9 @@ var StickeringManager = class {
183
167
  for (const [orbitName, orbitDef] of Object.entries(
184
168
  this.kpuzzle.definition.orbits
185
169
  )) {
186
- for (let i2 = 0; i2 < orbitDef.numPieces; i2++) {
187
- if (transformation.transformationData[orbitName].permutation[i2] !== i2 || transformation.transformationData[orbitName].orientation[i2] !== 0) {
188
- newPieceSet.stickerings.get(orbitName)[i2] = true;
170
+ for (let i = 0; i < orbitDef.numPieces; i++) {
171
+ if (transformation.transformationData[orbitName].permutation[i] !== i || transformation.transformationData[orbitName].orientation[i] !== 0) {
172
+ newPieceSet.stickerings.get(orbitName)[i] = true;
189
173
  }
190
174
  }
191
175
  }
@@ -212,52 +196,6 @@ var StickeringManager = class {
212
196
  }
213
197
  };
214
198
 
215
- // src/cubing/puzzles/stickerings/puzzle-stickerings.ts
216
- var experimentalStickerings = {
217
- full: { groups: { "3x3x3": "Stickering" } },
218
- OLL: { groups: { "3x3x3": "Last Layer" } },
219
- PLL: { groups: { "3x3x3": "Last Layer" } },
220
- LL: { groups: { "3x3x3": "Last Layer" } },
221
- COLL: { groups: { "3x3x3": "Last Layer" } },
222
- OCLL: { groups: { "3x3x3": "Last Layer" } },
223
- CLL: { groups: { "3x3x3": "Last Layer" } },
224
- ELL: { groups: { "3x3x3": "Last Layer" } },
225
- ZBLL: { groups: { "3x3x3": "Last Layer" } },
226
- LS: { groups: { "3x3x3": "Last Slot" } },
227
- ELS: { groups: { "3x3x3": "Last Slot" } },
228
- CLS: { groups: { "3x3x3": "Last Slot" } },
229
- ZBLS: { groups: { "3x3x3": "Last Slot" } },
230
- VLS: { groups: { "3x3x3": "Last Slot" } },
231
- WVLS: { groups: { "3x3x3": "Last Slot" } },
232
- F2L: { groups: { "3x3x3": "CFOP (Fridrich)" } },
233
- Daisy: { groups: { "3x3x3": "CFOP (Fridrich)" } },
234
- Cross: { groups: { "3x3x3": "CFOP (Fridrich)" } },
235
- EO: { groups: { "3x3x3": "ZZ" } },
236
- EOline: { groups: { "3x3x3": "ZZ" } },
237
- EOcross: { groups: { "3x3x3": "ZZ" } },
238
- CMLL: { groups: { "3x3x3": "Roux" } },
239
- L10P: { groups: { "3x3x3": "Roux" } },
240
- L6E: { groups: { "3x3x3": "Roux" } },
241
- L6EO: { groups: { "3x3x3": "Roux" } },
242
- "2x2x2": { groups: { "3x3x3": "Petrus" } },
243
- "2x2x3": { groups: { "3x3x3": "Petrus" } },
244
- "Void Cube": { groups: { "3x3x3": "Miscellaneous" } },
245
- invisible: { groups: { "3x3x3": "Miscellaneous" } },
246
- picture: { groups: { "3x3x3": "Miscellaneous" } },
247
- "centers-only": { groups: { "3x3x3": "Miscellaneous" } },
248
- "experimental-centers-U": {},
249
- "experimental-centers-U-D": {},
250
- "experimental-centers-U-L-D": {},
251
- "experimental-centers-U-L-B-D": {},
252
- "experimental-centers": {},
253
- "experimental-fto-fc": { groups: { fto: "Bencisco" } },
254
- "experimental-fto-f2t": { groups: { fto: "Bencisco" } },
255
- "experimental-fto-sc": { groups: { fto: "Bencisco" } },
256
- "experimental-fto-l2c": { groups: { fto: "Bencisco" } },
257
- "experimental-fto-lbt": { groups: { fto: "Bencisco" } },
258
- "experimental-fto-l3t": { groups: { fto: "Bencisco" } }
259
- };
260
-
261
199
  // src/cubing/puzzles/implementations/dynamic/3x3x3/3x3x3.kpuzzle.json.ts
262
200
  var cube3x3x3KPuzzleDefinition = {
263
201
  name: "3x3x3",
@@ -535,56 +473,72 @@ var cube3x3x3KPuzzleDefinition = {
535
473
  }
536
474
  }
537
475
  };
538
- cube3x3x3KPuzzleDefinition.moves["Uw"] = cube3x3x3KPuzzleDefinition.moves["u"];
539
- cube3x3x3KPuzzleDefinition.moves["Lw"] = cube3x3x3KPuzzleDefinition.moves["l"];
540
- cube3x3x3KPuzzleDefinition.moves["Fw"] = cube3x3x3KPuzzleDefinition.moves["f"];
541
- cube3x3x3KPuzzleDefinition.moves["Rw"] = cube3x3x3KPuzzleDefinition.moves["r"];
542
- cube3x3x3KPuzzleDefinition.moves["Bw"] = cube3x3x3KPuzzleDefinition.moves["b"];
543
- cube3x3x3KPuzzleDefinition.moves["Dw"] = cube3x3x3KPuzzleDefinition.moves["d"];
544
- cube3x3x3KPuzzleDefinition.moves["Rv"] = cube3x3x3KPuzzleDefinition.moves["x"];
545
- cube3x3x3KPuzzleDefinition.moves["Uv"] = cube3x3x3KPuzzleDefinition.moves["y"];
546
- cube3x3x3KPuzzleDefinition.moves["Fv"] = cube3x3x3KPuzzleDefinition.moves["z"];
547
- cube3x3x3KPuzzleDefinition.moves["Lv"] = {
548
- EDGES: {
549
- permutation: [2, 10, 6, 11, 0, 8, 4, 9, 1, 3, 5, 7],
550
- orientation: [1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0]
551
- },
552
- CORNERS: {
553
- permutation: [1, 7, 6, 2, 0, 3, 5, 4],
554
- orientation: [2, 1, 2, 1, 1, 2, 1, 2]
555
- },
556
- CENTERS: {
557
- permutation: [4, 1, 0, 3, 5, 2],
558
- orientation: [2, 1, 0, 3, 2, 0]
559
- }
476
+ cube3x3x3KPuzzleDefinition.experimentalDerivedMoves = {
477
+ Uw: "u",
478
+ Lw: "l",
479
+ Fw: "f",
480
+ Rw: "r",
481
+ Bw: "b",
482
+ Dw: "d",
483
+ Uv: "y",
484
+ Lv: "x'",
485
+ Fv: "z",
486
+ Rv: "x",
487
+ Bv: "z'",
488
+ Dv: "y'",
489
+ "2U": "u U'",
490
+ "2L": "l L'",
491
+ "2F": "f F'",
492
+ "2R": "r R'",
493
+ "2B": "b B'",
494
+ "2D": "d D'"
560
495
  };
561
- cube3x3x3KPuzzleDefinition.moves["Dv"] = {
562
- EDGES: {
563
- permutation: [3, 0, 1, 2, 7, 4, 5, 6, 9, 11, 8, 10],
564
- orientation: [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1]
565
- },
566
- CORNERS: {
567
- permutation: [3, 0, 1, 2, 5, 6, 7, 4],
568
- orientation: [0, 0, 0, 0, 0, 0, 0, 0]
569
- },
570
- CENTERS: {
571
- permutation: [0, 4, 1, 2, 3, 5],
572
- orientation: [3, 0, 0, 0, 0, 1]
573
- }
574
- };
575
- cube3x3x3KPuzzleDefinition.moves["Bv"] = {
576
- EDGES: {
577
- permutation: [8, 5, 10, 1, 9, 7, 11, 3, 4, 0, 6, 2],
578
- orientation: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
579
- },
580
- CORNERS: {
581
- permutation: [4, 7, 1, 0, 5, 3, 2, 6],
582
- orientation: [1, 2, 1, 2, 2, 1, 2, 1]
583
- },
584
- CENTERS: {
585
- permutation: [3, 0, 2, 5, 4, 1],
586
- orientation: [3, 3, 3, 3, 1, 3]
587
- }
496
+
497
+ // src/cubing/puzzles/stickerings/puzzle-stickerings.ts
498
+ var experimentalStickerings = {
499
+ full: { groups: { "3x3x3": "Stickering" } },
500
+ OLL: { groups: { "3x3x3": "Last Layer" } },
501
+ PLL: { groups: { "3x3x3": "Last Layer" } },
502
+ LL: { groups: { "3x3x3": "Last Layer" } },
503
+ EOLL: { groups: { "3x3x3": "Last Layer" } },
504
+ COLL: { groups: { "3x3x3": "Last Layer" } },
505
+ OCLL: { groups: { "3x3x3": "Last Layer" } },
506
+ CLL: { groups: { "3x3x3": "Last Layer" } },
507
+ ELL: { groups: { "3x3x3": "Last Layer" } },
508
+ ZBLL: { groups: { "3x3x3": "Last Layer" } },
509
+ LS: { groups: { "3x3x3": "Last Slot" } },
510
+ ELS: { groups: { "3x3x3": "Last Slot" } },
511
+ CLS: { groups: { "3x3x3": "Last Slot" } },
512
+ ZBLS: { groups: { "3x3x3": "Last Slot" } },
513
+ VLS: { groups: { "3x3x3": "Last Slot" } },
514
+ WVLS: { groups: { "3x3x3": "Last Slot" } },
515
+ F2L: { groups: { "3x3x3": "CFOP (Fridrich)" } },
516
+ Daisy: { groups: { "3x3x3": "CFOP (Fridrich)" } },
517
+ Cross: { groups: { "3x3x3": "CFOP (Fridrich)" } },
518
+ EO: { groups: { "3x3x3": "ZZ" } },
519
+ EOline: { groups: { "3x3x3": "ZZ" } },
520
+ EOcross: { groups: { "3x3x3": "ZZ" } },
521
+ CMLL: { groups: { "3x3x3": "Roux" } },
522
+ L10P: { groups: { "3x3x3": "Roux" } },
523
+ L6E: { groups: { "3x3x3": "Roux" } },
524
+ L6EO: { groups: { "3x3x3": "Roux" } },
525
+ "2x2x2": { groups: { "3x3x3": "Petrus" } },
526
+ "2x2x3": { groups: { "3x3x3": "Petrus" } },
527
+ "Void Cube": { groups: { "3x3x3": "Miscellaneous" } },
528
+ invisible: { groups: { "3x3x3": "Miscellaneous" } },
529
+ picture: { groups: { "3x3x3": "Miscellaneous" } },
530
+ "centers-only": { groups: { "3x3x3": "Miscellaneous" } },
531
+ "experimental-centers-U": {},
532
+ "experimental-centers-U-D": {},
533
+ "experimental-centers-U-L-D": {},
534
+ "experimental-centers-U-L-B-D": {},
535
+ "experimental-centers": {},
536
+ "experimental-fto-fc": { groups: { fto: "Bencisco" } },
537
+ "experimental-fto-f2t": { groups: { fto: "Bencisco" } },
538
+ "experimental-fto-sc": { groups: { fto: "Bencisco" } },
539
+ "experimental-fto-l2c": { groups: { fto: "Bencisco" } },
540
+ "experimental-fto-lbt": { groups: { fto: "Bencisco" } },
541
+ "experimental-fto-l3t": { groups: { fto: "Bencisco" } }
588
542
  };
589
543
 
590
544
  // src/cubing/puzzles/customPGPuzzleLoader.ts
@@ -669,7 +623,7 @@ function puzzleOrientation3x3x3Cache() {
669
623
  const yAlg = new Alg("y");
670
624
  for (const uAlg of uAlgs) {
671
625
  let transformation = experimental3x3x3KPuzzle.algToTransformation(uAlg);
672
- for (let i2 = 0; i2 < 4; i2++) {
626
+ for (let i = 0; i < 4; i++) {
673
627
  transformation = transformation.applyAlg(yAlg);
674
628
  const [idxU, idxL] = puzzleOrientation3x3x3Idx(
675
629
  transformation.toKState()
@@ -704,7 +658,8 @@ function experimentalIs3x3x3Solved(state, options) {
704
658
  }
705
659
 
706
660
  export {
707
- getFaceletAppearance,
661
+ getFaceletStickeringMask,
662
+ getPieceStickeringMask,
708
663
  PuzzleStickering,
709
664
  StickeringManager,
710
665
  experimentalStickerings,
@@ -714,4 +669,4 @@ export {
714
669
  customPGPuzzleLoader,
715
670
  experimental3x3x3KPuzzle
716
671
  };
717
- //# sourceMappingURL=chunk-6FB2XWAK.js.map
672
+ //# sourceMappingURL=chunk-JCIUBLD5.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/cubing/puzzles/stickerings/mask.ts", "../../src/cubing/puzzles/implementations/dynamic/3x3x3/3x3x3.kpuzzle.json.ts", "../../src/cubing/puzzles/stickerings/puzzle-stickerings.ts", "../../src/cubing/puzzles/customPGPuzzleLoader.ts", "../../src/cubing/puzzles/cubing-private/index.ts", "../../src/cubing/puzzles/implementations/dynamic/3x3x3/puzzle-orientation.ts"],
4
+ "sourcesContent": ["// TODO: figure out where to house this permanently.\n\nimport type { Move } from \"../../alg\";\nimport type { KPuzzle } from \"../../kpuzzle\";\n\nexport type FaceletMeshStickeringMask =\n | \"regular\"\n | \"dim\"\n | \"oriented\"\n | \"ignored\"\n | \"invisible\";\n\nexport type FaceletStickeringMask = {\n mask: FaceletMeshStickeringMask;\n hintMask?: FaceletMeshStickeringMask;\n};\n\nexport type PieceStickeringMask = {\n // TODO: foundation?\n facelets: (FaceletMeshStickeringMask | FaceletStickeringMask | null)[];\n};\n\nexport type OrbitStickeringMask = {\n pieces: (PieceStickeringMask | null)[];\n};\n\nexport type StickeringMask = {\n specialBehaviour?: \"picture\"; // TODO: remove this\n name?: string; // TODO\n orbits: Record<string, OrbitStickeringMask>;\n};\n\nexport function getFaceletStickeringMask(\n stickeringMask: StickeringMask,\n orbitName: string,\n pieceIdx: number,\n faceletIdx: number,\n hint: boolean,\n): FaceletMeshStickeringMask {\n const orbitStickeringMask = stickeringMask.orbits[orbitName];\n const pieceStickeringMask: PieceStickeringMask | null =\n orbitStickeringMask.pieces[pieceIdx];\n if (pieceStickeringMask === null) {\n return regular;\n }\n const faceletStickeringMask:\n | FaceletMeshStickeringMask\n | FaceletStickeringMask\n | null = pieceStickeringMask.facelets?.[faceletIdx];\n if (faceletStickeringMask === null) {\n return regular;\n }\n if (typeof faceletStickeringMask === \"string\") {\n return faceletStickeringMask;\n }\n if (hint) {\n return faceletStickeringMask.hintMask ?? faceletStickeringMask.mask;\n }\n console.log(faceletStickeringMask);\n return faceletStickeringMask.mask;\n}\n\n// TODO: Revert this to a normal enum, or write a standard to codify the names?\nexport enum PieceStickering {\n Regular = \"Regular\",\n Dim = \"Dim\",\n Ignored = \"Ignored\",\n OrientationStickers = \"OrientationStickers\",\n Invisible = \"Invisible\",\n Ignoriented = \"Ignoriented\",\n IgnoreNonPrimary = \"IgnoreNonPrimary\",\n PermuteNonPrimary = \"PermuteNonPrimary\",\n OrientationWithoutPermutation = \"OrientationWithoutPermutation\",\n}\n\nexport class PieceAnnotation<T> {\n stickerings: Map<string, T[]> = new Map();\n constructor(kpuzzle: KPuzzle, defaultValue: T) {\n for (const [orbitName, orbitDef] of Object.entries(\n kpuzzle.definition.orbits,\n )) {\n this.stickerings.set(\n orbitName,\n new Array(orbitDef.numPieces).fill(defaultValue),\n );\n }\n }\n}\n\nconst regular = \"regular\";\nconst ignored = \"ignored\";\nconst oriented = \"oriented\";\nconst invisible = \"invisible\";\nconst dim = \"dim\";\n\nconst pieceStickerings: Record<string, PieceStickeringMask> = {\n // regular\n [PieceStickering.Regular]: {\n // r\n facelets: [regular, regular, regular, regular, regular],\n },\n\n // ignored\n [PieceStickering.Ignored]: {\n // i\n facelets: [ignored, ignored, ignored, ignored, ignored],\n },\n\n // oriented stickers\n [PieceStickering.OrientationStickers]: {\n // o\n facelets: [oriented, oriented, oriented, oriented, oriented],\n },\n\n // \"OLL\"\n [PieceStickering.IgnoreNonPrimary]: {\n // riiii\n facelets: [regular, ignored, ignored, ignored, ignored],\n },\n\n // invisible\n [PieceStickering.Invisible]: {\n // invisiblePiece\n facelets: [invisible, invisible, invisible, invisible], // TODO: 4th entry is for void cube. Should be handled properly for all stickerings.\n },\n\n // \"PLL\"\n [PieceStickering.PermuteNonPrimary]: {\n // drrrr\n facelets: [dim, regular, regular, regular, regular],\n },\n\n // ignored\n [PieceStickering.Dim]: {\n // d\n facelets: [dim, dim, dim, dim, dim],\n },\n\n // \"OLL\"\n [PieceStickering.Ignoriented]: {\n // diiii\n facelets: [dim, ignored, ignored, ignored, ignored],\n },\n [PieceStickering.OrientationWithoutPermutation]: {\n // oiiii\n facelets: [oriented, ignored, ignored, ignored, ignored],\n },\n};\n\nexport function getPieceStickeringMask(\n pieceStickering: PieceStickering,\n): PieceStickeringMask {\n return pieceStickerings[pieceStickering];\n}\n\nexport class PuzzleStickering extends PieceAnnotation<PieceStickering> {\n constructor(kpuzzle: KPuzzle) {\n super(kpuzzle, PieceStickering.Regular);\n }\n\n set(pieceSet: PieceSet, pieceStickering: PieceStickering): PuzzleStickering {\n for (const [orbitName, pieces] of this.stickerings.entries()) {\n for (let i = 0; i < pieces.length; i++) {\n if (pieceSet.stickerings.get(orbitName)![i]) {\n pieces[i] = pieceStickering;\n }\n }\n }\n return this;\n }\n\n toStickeringMask(): StickeringMask {\n const stickeringMask: StickeringMask = { orbits: {} };\n for (const [orbitName, pieceStickerings] of this.stickerings.entries()) {\n const pieces: PieceStickeringMask[] = [];\n const orbitStickeringMask: OrbitStickeringMask = {\n pieces,\n };\n stickeringMask.orbits[orbitName] = orbitStickeringMask;\n for (const pieceStickering of pieceStickerings) {\n pieces.push(getPieceStickeringMask(pieceStickering));\n }\n }\n return stickeringMask;\n }\n}\n\nexport type PieceSet = PieceAnnotation<boolean>;\n\nexport class StickeringManager {\n constructor(private kpuzzle: KPuzzle) {}\n\n and(pieceSets: PieceSet[]): PieceSet {\n const newPieceSet = new PieceAnnotation<boolean>(this.kpuzzle, false);\n for (const [orbitName, orbitDef] of Object.entries(\n this.kpuzzle.definition.orbits,\n )) {\n pieceLoop: for (let i = 0; i < orbitDef.numPieces; i++) {\n newPieceSet.stickerings.get(orbitName)![i] = true;\n for (const pieceSet of pieceSets) {\n if (!pieceSet.stickerings.get(orbitName)![i]) {\n newPieceSet.stickerings.get(orbitName)![i] = false;\n continue pieceLoop;\n }\n }\n }\n }\n return newPieceSet;\n }\n\n or(pieceSets: PieceSet[]): PieceSet {\n // TODO: unify impl with and?\n const newPieceSet = new PieceAnnotation<boolean>(this.kpuzzle, false);\n for (const [orbitName, orbitDef] of Object.entries(\n this.kpuzzle.definition.orbits,\n )) {\n pieceLoop: for (let i = 0; i < orbitDef.numPieces; i++) {\n newPieceSet.stickerings.get(orbitName)![i] = false;\n for (const pieceSet of pieceSets) {\n if (pieceSet.stickerings.get(orbitName)![i]) {\n newPieceSet.stickerings.get(orbitName)![i] = true;\n continue pieceLoop;\n }\n }\n }\n }\n return newPieceSet;\n }\n\n not(pieceSet: PieceSet): PieceSet {\n const newPieceSet = new PieceAnnotation<boolean>(this.kpuzzle, false);\n for (const [orbitName, orbitDef] of Object.entries(\n this.kpuzzle.definition.orbits,\n )) {\n for (let i = 0; i < orbitDef.numPieces; i++) {\n newPieceSet.stickerings.get(orbitName)![i] = !pieceSet.stickerings.get(\n orbitName,\n )![i];\n }\n }\n return newPieceSet;\n }\n\n all(): PieceSet {\n return this.and(this.moves([])); // TODO: are the degenerate cases for and/or the wrong way around\n }\n\n move(moveSource: Move | string): PieceSet {\n const transformation = this.kpuzzle.moveToTransformation(moveSource);\n const newPieceSet = new PieceAnnotation<boolean>(this.kpuzzle, false);\n for (const [orbitName, orbitDef] of Object.entries(\n this.kpuzzle.definition.orbits,\n )) {\n for (let i = 0; i < orbitDef.numPieces; i++) {\n if (\n transformation.transformationData[orbitName].permutation[i] !== i ||\n transformation.transformationData[orbitName].orientation[i] !== 0\n ) {\n newPieceSet.stickerings.get(orbitName)![i] = true;\n }\n }\n }\n return newPieceSet;\n }\n\n moves(moveSources: (Move | string)[]): PieceSet[] {\n return moveSources.map((moveSource) => this.move(moveSource));\n }\n\n orbits(orbitNames: string[]): PieceSet {\n const pieceSet = new PieceAnnotation<boolean>(this.kpuzzle, false);\n for (const orbitName of orbitNames) {\n pieceSet.stickerings.get(orbitName)!.fill(true);\n }\n return pieceSet;\n }\n\n orbitPrefix(orbitPrefix: string): PieceSet {\n const pieceSet = new PieceAnnotation<boolean>(this.kpuzzle, false);\n for (const orbitName in this.kpuzzle.definition.orbits) {\n if (orbitName.startsWith(orbitPrefix)) {\n pieceSet.stickerings.get(orbitName)!.fill(true);\n }\n }\n return pieceSet;\n }\n // trueCounts(pieceSet: PieceSet): Record<string, number> {\n // const counts: Record<string, number> = {};\n // for (const [orbitName, orbitDef] of Object.entries(this.def.orbits)) {\n // let count = 0;\n // for (let i = 0; i < orbitDef.numPieces; i++) {\n // if (pieceSet.stickerings.get(orbitName)![i]) {\n // count++;\n // }\n // }\n // counts[orbitName] = count;\n // }\n // return counts;\n // }\n}\n", "import type { KPuzzleDefinition } from \"../../../../kpuzzle\";\n\nexport const cube3x3x3KPuzzleDefinition: KPuzzleDefinition = {\n name: \"3x3x3\",\n orbits: {\n EDGES: { numPieces: 12, numOrientations: 2 },\n CORNERS: { numPieces: 8, numOrientations: 3 },\n CENTERS: { numPieces: 6, numOrientations: 4 },\n },\n startStateData: {\n EDGES: {\n pieces: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n CORNERS: {\n pieces: [0, 1, 2, 3, 4, 5, 6, 7],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0],\n },\n CENTERS: {\n pieces: [0, 1, 2, 3, 4, 5],\n orientation: [0, 0, 0, 0, 0, 0],\n },\n },\n moves: {\n U: {\n EDGES: {\n permutation: [1, 2, 3, 0, 4, 5, 6, 7, 8, 9, 10, 11],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n CORNERS: {\n permutation: [1, 2, 3, 0, 4, 5, 6, 7],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0],\n },\n CENTERS: {\n permutation: [0, 1, 2, 3, 4, 5],\n orientation: [1, 0, 0, 0, 0, 0],\n },\n },\n y: {\n EDGES: {\n permutation: [1, 2, 3, 0, 5, 6, 7, 4, 10, 8, 11, 9],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1],\n },\n CORNERS: {\n permutation: [1, 2, 3, 0, 7, 4, 5, 6],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0],\n },\n CENTERS: {\n permutation: [0, 2, 3, 4, 1, 5],\n orientation: [1, 0, 0, 0, 0, 3],\n },\n },\n x: {\n EDGES: {\n permutation: [4, 8, 0, 9, 6, 10, 2, 11, 5, 7, 1, 3],\n orientation: [1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0],\n },\n CORNERS: {\n permutation: [4, 0, 3, 5, 7, 6, 2, 1],\n orientation: [2, 1, 2, 1, 1, 2, 1, 2],\n },\n CENTERS: {\n permutation: [2, 1, 5, 3, 0, 4],\n orientation: [0, 3, 0, 1, 2, 2],\n },\n },\n L: {\n EDGES: {\n permutation: [0, 1, 2, 11, 4, 5, 6, 9, 8, 3, 10, 7],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n CORNERS: {\n permutation: [0, 1, 6, 2, 4, 3, 5, 7],\n orientation: [0, 0, 2, 1, 0, 2, 1, 0],\n },\n CENTERS: {\n permutation: [0, 1, 2, 3, 4, 5],\n orientation: [0, 1, 0, 0, 0, 0],\n },\n },\n F: {\n EDGES: {\n permutation: [9, 1, 2, 3, 8, 5, 6, 7, 0, 4, 10, 11],\n orientation: [1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0],\n },\n CORNERS: {\n permutation: [3, 1, 2, 5, 0, 4, 6, 7],\n orientation: [1, 0, 0, 2, 2, 1, 0, 0],\n },\n CENTERS: {\n permutation: [0, 1, 2, 3, 4, 5],\n orientation: [0, 0, 1, 0, 0, 0],\n },\n },\n R: {\n EDGES: {\n permutation: [0, 8, 2, 3, 4, 10, 6, 7, 5, 9, 1, 11],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n CORNERS: {\n permutation: [4, 0, 2, 3, 7, 5, 6, 1],\n orientation: [2, 1, 0, 0, 1, 0, 0, 2],\n },\n CENTERS: {\n permutation: [0, 1, 2, 3, 4, 5],\n orientation: [0, 0, 0, 1, 0, 0],\n },\n },\n B: {\n EDGES: {\n permutation: [0, 1, 10, 3, 4, 5, 11, 7, 8, 9, 6, 2],\n orientation: [0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1],\n },\n CORNERS: {\n permutation: [0, 7, 1, 3, 4, 5, 2, 6],\n orientation: [0, 2, 1, 0, 0, 0, 2, 1],\n },\n CENTERS: {\n permutation: [0, 1, 2, 3, 4, 5],\n orientation: [0, 0, 0, 0, 1, 0],\n },\n },\n D: {\n EDGES: {\n permutation: [0, 1, 2, 3, 7, 4, 5, 6, 8, 9, 10, 11],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n },\n CORNERS: {\n permutation: [0, 1, 2, 3, 5, 6, 7, 4],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0],\n },\n CENTERS: {\n permutation: [0, 1, 2, 3, 4, 5],\n orientation: [0, 0, 0, 0, 0, 1],\n },\n },\n z: {\n EDGES: {\n permutation: [9, 3, 11, 7, 8, 1, 10, 5, 0, 4, 2, 6],\n orientation: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],\n },\n CORNERS: {\n permutation: [3, 2, 6, 5, 0, 4, 7, 1],\n orientation: [1, 2, 1, 2, 2, 1, 2, 1],\n },\n CENTERS: {\n permutation: [1, 5, 2, 0, 4, 3],\n orientation: [1, 1, 1, 1, 3, 1],\n },\n },\n M: {\n EDGES: {\n permutation: [2, 1, 6, 3, 0, 5, 4, 7, 8, 9, 10, 11],\n orientation: [1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0],\n },\n CORNERS: {\n permutation: [0, 1, 2, 3, 4, 5, 6, 7],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0],\n },\n CENTERS: {\n permutation: [4, 1, 0, 3, 5, 2],\n orientation: [2, 0, 0, 0, 2, 0],\n },\n },\n E: {\n EDGES: {\n permutation: [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 8, 10],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1],\n },\n CORNERS: {\n permutation: [0, 1, 2, 3, 4, 5, 6, 7],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0],\n },\n CENTERS: {\n permutation: [0, 4, 1, 2, 3, 5],\n orientation: [0, 0, 0, 0, 0, 0],\n },\n },\n S: {\n EDGES: {\n permutation: [0, 3, 2, 7, 4, 1, 6, 5, 8, 9, 10, 11],\n orientation: [0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0],\n },\n CORNERS: {\n permutation: [0, 1, 2, 3, 4, 5, 6, 7],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0],\n },\n CENTERS: {\n permutation: [1, 5, 2, 0, 4, 3],\n orientation: [1, 1, 0, 1, 0, 1],\n },\n },\n u: {\n EDGES: {\n permutation: [1, 2, 3, 0, 4, 5, 6, 7, 10, 8, 11, 9],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1],\n },\n CORNERS: {\n permutation: [1, 2, 3, 0, 4, 5, 6, 7],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0],\n },\n CENTERS: {\n permutation: [0, 2, 3, 4, 1, 5],\n orientation: [1, 0, 0, 0, 0, 0],\n },\n },\n l: {\n EDGES: {\n permutation: [2, 1, 6, 11, 0, 5, 4, 9, 8, 3, 10, 7],\n orientation: [1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0],\n },\n CORNERS: {\n permutation: [0, 1, 6, 2, 4, 3, 5, 7],\n orientation: [0, 0, 2, 1, 0, 2, 1, 0],\n },\n CENTERS: {\n permutation: [4, 1, 0, 3, 5, 2],\n orientation: [2, 1, 0, 0, 2, 0],\n },\n },\n f: {\n EDGES: {\n permutation: [9, 3, 2, 7, 8, 1, 6, 5, 0, 4, 10, 11],\n orientation: [1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0],\n },\n CORNERS: {\n permutation: [3, 1, 2, 5, 0, 4, 6, 7],\n orientation: [1, 0, 0, 2, 2, 1, 0, 0],\n },\n CENTERS: {\n permutation: [1, 5, 2, 0, 4, 3],\n orientation: [1, 1, 1, 1, 0, 1],\n },\n },\n r: {\n EDGES: {\n permutation: [4, 8, 0, 3, 6, 10, 2, 7, 5, 9, 1, 11],\n orientation: [1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0],\n },\n CORNERS: {\n permutation: [4, 0, 2, 3, 7, 5, 6, 1],\n orientation: [2, 1, 0, 0, 1, 0, 0, 2],\n },\n CENTERS: {\n permutation: [2, 1, 5, 3, 0, 4],\n orientation: [0, 0, 0, 1, 2, 2],\n },\n },\n b: {\n EDGES: {\n permutation: [0, 5, 10, 1, 4, 7, 11, 3, 8, 9, 6, 2],\n orientation: [0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1],\n },\n CORNERS: {\n permutation: [0, 7, 1, 3, 4, 5, 2, 6],\n orientation: [0, 2, 1, 0, 0, 0, 2, 1],\n },\n CENTERS: {\n permutation: [3, 0, 2, 5, 4, 1],\n orientation: [3, 3, 0, 3, 1, 3],\n },\n },\n d: {\n EDGES: {\n permutation: [0, 1, 2, 3, 7, 4, 5, 6, 9, 11, 8, 10],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1],\n },\n CORNERS: {\n permutation: [0, 1, 2, 3, 5, 6, 7, 4],\n orientation: [0, 0, 0, 0, 0, 0, 0, 0],\n },\n CENTERS: {\n permutation: [0, 4, 1, 2, 3, 5],\n orientation: [0, 0, 0, 0, 0, 1],\n },\n },\n },\n};\n\ncube3x3x3KPuzzleDefinition.experimentalDerivedMoves = {\n Uw: \"u\",\n Lw: \"l\",\n Fw: \"f\",\n Rw: \"r\",\n Bw: \"b\",\n Dw: \"d\",\n\n Uv: \"y\",\n Lv: \"x'\",\n Fv: \"z\",\n Rv: \"x\",\n Bv: \"z'\",\n Dv: \"y'\",\n\n \"2U\": \"u U'\",\n \"2L\": \"l L'\",\n \"2F\": \"f F'\",\n \"2R\": \"r R'\",\n \"2B\": \"b B'\",\n \"2D\": \"d D'\",\n};\n", "import type { PuzzleID } from \"../../twisty\";\n\nexport const experimentalStickerings: Record<\n string,\n { groups?: Partial<Record<PuzzleID, string>> }\n> = {\n full: { groups: { \"3x3x3\": \"Stickering\" } }, // default\n OLL: { groups: { \"3x3x3\": \"Last Layer\" } },\n PLL: { groups: { \"3x3x3\": \"Last Layer\" } },\n LL: { groups: { \"3x3x3\": \"Last Layer\" } },\n EOLL: { groups: { \"3x3x3\": \"Last Layer\" } },\n COLL: { groups: { \"3x3x3\": \"Last Layer\" } },\n OCLL: { groups: { \"3x3x3\": \"Last Layer\" } },\n CLL: { groups: { \"3x3x3\": \"Last Layer\" } },\n ELL: { groups: { \"3x3x3\": \"Last Layer\" } },\n ZBLL: { groups: { \"3x3x3\": \"Last Layer\" } },\n LS: { groups: { \"3x3x3\": \"Last Slot\" } },\n ELS: { groups: { \"3x3x3\": \"Last Slot\" } },\n CLS: { groups: { \"3x3x3\": \"Last Slot\" } },\n ZBLS: { groups: { \"3x3x3\": \"Last Slot\" } },\n VLS: { groups: { \"3x3x3\": \"Last Slot\" } },\n WVLS: { groups: { \"3x3x3\": \"Last Slot\" } },\n F2L: { groups: { \"3x3x3\": \"CFOP (Fridrich)\" } },\n Daisy: { groups: { \"3x3x3\": \"CFOP (Fridrich)\" } },\n Cross: { groups: { \"3x3x3\": \"CFOP (Fridrich)\" } },\n EO: { groups: { \"3x3x3\": \"ZZ\" } },\n EOline: { groups: { \"3x3x3\": \"ZZ\" } },\n EOcross: { groups: { \"3x3x3\": \"ZZ\" } },\n CMLL: { groups: { \"3x3x3\": \"Roux\" } },\n L10P: { groups: { \"3x3x3\": \"Roux\" } },\n L6E: { groups: { \"3x3x3\": \"Roux\" } },\n L6EO: { groups: { \"3x3x3\": \"Roux\" } },\n \"2x2x2\": { groups: { \"3x3x3\": \"Petrus\" } },\n \"2x2x3\": { groups: { \"3x3x3\": \"Petrus\" } },\n \"Void Cube\": { groups: { \"3x3x3\": \"Miscellaneous\" } },\n invisible: { groups: { \"3x3x3\": \"Miscellaneous\" } },\n picture: { groups: { \"3x3x3\": \"Miscellaneous\" } },\n \"centers-only\": { groups: { \"3x3x3\": \"Miscellaneous\" } }, // TODO\n \"experimental-centers-U\": {},\n \"experimental-centers-U-D\": {},\n \"experimental-centers-U-L-D\": {},\n \"experimental-centers-U-L-B-D\": {},\n \"experimental-centers\": {},\n \"experimental-fto-fc\": { groups: { fto: \"Bencisco\" } },\n \"experimental-fto-f2t\": { groups: { fto: \"Bencisco\" } },\n \"experimental-fto-sc\": { groups: { fto: \"Bencisco\" } },\n \"experimental-fto-l2c\": { groups: { fto: \"Bencisco\" } },\n \"experimental-fto-lbt\": { groups: { fto: \"Bencisco\" } },\n \"experimental-fto-l3t\": { groups: { fto: \"Bencisco\" } },\n};\n", "import { KPuzzle, KPuzzleDefinition } from \"../kpuzzle\";\nimport type { PuzzleGeometry } from \"../puzzle-geometry\";\nimport type { PuzzleDescriptionString } from \"../puzzle-geometry/PGPuzzles\";\nimport type { PuzzleLoader } from \"./PuzzleLoader\";\n\n// TODO: modify this to handle TwistyPlayer options\nexport async function descAsyncGetPuzzleGeometry(\n desc: PuzzleDescriptionString,\n): Promise<PuzzleGeometry> {\n const puzzleGeometry = await import(\"../puzzle-geometry\");\n return puzzleGeometry.getPuzzleGeometryByDesc(desc, {\n allMoves: true,\n orientCenters: true,\n addRotations: true,\n });\n}\n\n// TODO: dedup with `cubing/puzzles`\nexport async function asyncGetKPuzzle(\n desc: PuzzleDescriptionString,\n): Promise<KPuzzle> {\n const pg = await descAsyncGetPuzzleGeometry(desc);\n const kpuzzleDefinition: KPuzzleDefinition = pg.getKPuzzleDefinition(true);\n kpuzzleDefinition.name = `description: ${desc}`;\n const puzzleGeometry = await import(\"../puzzle-geometry\");\n const pgNotation = new puzzleGeometry.ExperimentalPGNotation(\n pg,\n pg.getOrbitsDef(true),\n );\n return new KPuzzle(kpuzzleDefinition, {\n experimentalPGNotation: pgNotation,\n });\n}\n\n// TODO: Can we avoid relying on IDs to deduplicate work at higher levels?\nlet nextCustomID = 1;\n\nexport function customPGPuzzleLoader(\n desc: PuzzleDescriptionString,\n info?: {\n fullName?: string;\n inventedBy?: string[];\n inventionYear?: number;\n },\n): PuzzleLoader {\n const customID = nextCustomID++;\n let cachedKPuzzle: Promise<KPuzzle> | null = null;\n const puzzleLoader: PuzzleLoader = {\n id: `custom-${customID}`,\n fullName: info?.fullName ?? `Custom Puzzle (instance #${customID})`,\n kpuzzle: async () => {\n return (cachedKPuzzle ??= asyncGetKPuzzle(desc));\n },\n svg: async () => {\n const pg = await descAsyncGetPuzzleGeometry(desc);\n return pg.generatesvg();\n },\n pg: async () => {\n return descAsyncGetPuzzleGeometry(desc);\n },\n };\n if (info?.inventedBy) {\n puzzleLoader.inventedBy = info.inventedBy;\n }\n if (info?.inventionYear) {\n puzzleLoader.inventionYear = info.inventionYear;\n }\n return puzzleLoader;\n}\n", "import { KPuzzle } from \"../../kpuzzle\";\nimport {\n cube3x3x3KPuzzleDefinition as experimentalCube3x3x3KPuzzleDefinition,\n} from \"../implementations/dynamic/3x3x3/3x3x3.kpuzzle.json\";\nimport { experimentalIs3x3x3Solved } from \"../implementations/dynamic/3x3x3/puzzle-orientation\";\nexport { experimentalCube3x3x3KPuzzleDefinition };\n\n/** @deprecated */\nexport const experimental3x3x3KPuzzle = new KPuzzle(\n experimentalCube3x3x3KPuzzleDefinition,\n);\nexperimentalCube3x3x3KPuzzleDefinition.experimentalIsStateSolved =\n experimentalIs3x3x3Solved;\n\nexport {\n experimentalIs3x3x3Solved,\n normalize3x3x3Orientation as experimentalNormalize3x3x3Orientation,\n puzzleOrientation3x3x3Cache as experimentalPuzzleOrientation3x3x3Cache,\n puzzleOrientation3x3x3Idx as experimentalPuzzleOrientation3x3x3Idx,\n} from \"../implementations/dynamic/3x3x3/puzzle-orientation\";\nexport { experimentalStickerings } from \"../stickerings/puzzle-stickerings\";\n\nexport {\n customPGPuzzleLoader as experimentalCustomPGPuzzleLoader,\n} from \"../customPGPuzzleLoader\";\nexport {\n getFaceletStickeringMask as experimentalGetFaceletStickeringMask,\n} from \"../stickerings/mask\";\nexport type {\n PieceStickeringMask as ExperimentalPieceStickeringMask,\n FaceletMeshStickeringMask as ExperimentalFaceletMeshStickeringMask,\n StickeringMask as ExperimentalStickeringMask,\n} from \"../stickerings/mask\";\nexport {\n getPieceStickeringMask as experimentalGetPieceStickeringMask,\n PieceStickering as ExperimentalPieceStickering,\n} from \"../stickerings/mask\";\n", "import { Alg } from \"../../../../alg\";\nimport { KState, KTransformation } from \"../../../../kpuzzle\";\nimport { experimental3x3x3KPuzzle } from \"../../../cubing-private\";\n\nexport function puzzleOrientation3x3x3Idx(state: KState): [number, number] {\n const idxU = state.stateData[\"CENTERS\"].pieces[0];\n const idxD = state.stateData[\"CENTERS\"].pieces[5];\n const unadjustedIdxL = state.stateData[\"CENTERS\"].pieces[1];\n let idxL = unadjustedIdxL;\n if (idxU < unadjustedIdxL) {\n idxL--;\n }\n if (idxD < unadjustedIdxL) {\n idxL--;\n }\n return [idxU, idxL];\n}\n\nconst puzzleOrientationCacheRaw: KTransformation[][] = new Array(6)\n .fill(0)\n .map(() => {\n return new Array<KTransformation>(6);\n });\n\nconst puzzleOrientationCacheInitialized = false;\nexport function puzzleOrientation3x3x3Cache(): KTransformation[][] {\n if (!puzzleOrientationCacheInitialized) {\n // We use a new block to avoid keeping a reference to temporary vars.\n // kpuzzle todo\n {\n const uAlgs: Alg[] = [\"\", \"z\", \"x\", \"z'\", \"x'\", \"x2\"].map((s) =>\n Alg.fromString(s),\n );\n const yAlg = new Alg(\"y\");\n for (const uAlg of uAlgs) {\n let transformation = experimental3x3x3KPuzzle.algToTransformation(uAlg);\n for (let i = 0; i < 4; i++) {\n transformation = transformation.applyAlg(yAlg);\n const [idxU, idxL] = puzzleOrientation3x3x3Idx(\n transformation.toKState(),\n );\n puzzleOrientationCacheRaw[idxU][idxL] = transformation.invert();\n }\n }\n }\n }\n return puzzleOrientationCacheRaw;\n}\n\nexport function normalize3x3x3Orientation(state: KState): KState {\n const [idxU, idxL] = puzzleOrientation3x3x3Idx(state);\n const orientationTransformation = puzzleOrientation3x3x3Cache()[idxU][idxL];\n return state.applyTransformation(orientationTransformation);\n}\n\n// The `options` argument is required for now, because we haven't yet come up\n// with a general way to specify different kinds of solved for the same puzle.\nexport function experimentalIs3x3x3Solved(\n state: KState,\n options: {\n ignorePuzzleOrientation: boolean;\n ignoreCenterOrientation: boolean;\n },\n): boolean {\n if (options.ignorePuzzleOrientation) {\n state = normalize3x3x3Orientation(state);\n }\n if (options.ignoreCenterOrientation) {\n state = new KState(state.kpuzzle, {\n EDGES: state.stateData.EDGES,\n CORNERS: state.stateData.CORNERS,\n CENTERS: {\n pieces: state.stateData.CENTERS.pieces,\n orientation: new Array(6).fill(0),\n },\n });\n }\n return !!state.experimentalToTransformation()?.isIdentityTransformation(); // TODO: Compare to start state instead?\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["pieceStickerings"]
7
+ }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Alg
3
- } from "./chunk-ZQT3QSWD.js";
3
+ } from "./chunk-PVI43RDV.js";
4
4
 
5
5
  // src/cubing/search/inside/solve/parseSGS.ts
6
6
  function parseSGS(kpuzzle, sgs) {
@@ -85,4 +85,4 @@ function parseSGS(kpuzzle, sgs) {
85
85
  export {
86
86
  parseSGS
87
87
  };
88
- //# sourceMappingURL=chunk-RI2DAEY6.js.map
88
+ //# sourceMappingURL=chunk-JW5R6EBK.js.map
@@ -1,8 +1,9 @@
1
1
  import {
2
2
  Alg,
3
3
  Move,
4
- TraversalDownUp
5
- } from "./chunk-ZQT3QSWD.js";
4
+ TraversalDownUp,
5
+ functionFromTraversal
6
+ } from "./chunk-PVI43RDV.js";
6
7
 
7
8
  // src/cubing/kpuzzle/combine.ts
8
9
  function combineTransformationData(definition, transformationData1, transformationData2) {
@@ -454,9 +455,7 @@ var AlgToTransformationTraversal = class extends TraversalDownUp {
454
455
  traverseConjugate(conjugate, kpuzzle) {
455
456
  const aTransformation = this.traverseAlg(conjugate.A, kpuzzle);
456
457
  const bTransformation = this.traverseAlg(conjugate.B, kpuzzle);
457
- return aTransformation.applyTransformation(
458
- bTransformation
459
- ).applyTransformation(aTransformation.invert());
458
+ return aTransformation.applyTransformation(bTransformation).applyTransformation(aTransformation.invert());
460
459
  }
461
460
  traversePause(_, kpuzzle) {
462
461
  return kpuzzle.identityTransformation();
@@ -468,9 +467,8 @@ var AlgToTransformationTraversal = class extends TraversalDownUp {
468
467
  return kpuzzle.identityTransformation();
469
468
  }
470
469
  };
471
- var algToTransformationInstance = new AlgToTransformationTraversal();
472
- var algToTransformation = algToTransformationInstance.traverseAlg.bind(
473
- algToTransformationInstance
470
+ var algToTransformation = functionFromTraversal(
471
+ AlgToTransformationTraversal
474
472
  );
475
473
  function gcd(a, b) {
476
474
  if (b) {
@@ -589,4 +587,4 @@ export {
589
587
  KTransformation,
590
588
  KPuzzle
591
589
  };
592
- //# sourceMappingURL=chunk-GQBRF4EM.js.map
590
+ //# sourceMappingURL=chunk-MHP4YJE7.js.map