arcanumcube 0.1.2 → 0.1.4

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.
@@ -662,7 +662,9 @@ function getStickerPermutationGroup(position, position2, twists, reverse = false
662
662
 
663
663
  // src/skins.ts
664
664
  import * as THREE from "three";
665
- function createDefaultLogoTexture() {
665
+ var DefaultLogoTextures;
666
+ function loadDefaultLogoTexture() {
667
+ if (DefaultLogoTextures) return DefaultLogoTextures;
666
668
  const image = document.createElementNS("http://www.w3.org/1999/xhtml", "img");
667
669
  image.src = DefaultLogo;
668
670
  const texture = new THREE.Texture(image);
@@ -690,7 +692,7 @@ var standardSkin = {
690
692
  cube: {
691
693
  material: () => {
692
694
  return new THREE.MeshStandardMaterial({
693
- color: 1118481,
695
+ color: 3092271,
694
696
  metalness: 0.8,
695
697
  roughness: 0.4
696
698
  });
@@ -726,10 +728,6 @@ var standardSkin = {
726
728
  ];
727
729
  const col = ColorList[color];
728
730
  let texture = void 0;
729
- if (x === SIDE_MIDDLE && y === SIDE_MAX && z === SIDE_MIDDLE) {
730
- texture = createDefaultLogoTexture();
731
- texture.flipY = false;
732
- }
733
731
  const mat = new THREE.MeshStandardMaterial({
734
732
  color: col,
735
733
  metalness: 0.4,
@@ -806,10 +804,6 @@ var metalicSkin = {
806
804
  ];
807
805
  const col = ColorList[color];
808
806
  let texture = void 0;
809
- if (x === SIDE_MIDDLE && y === SIDE_MAX && z === SIDE_MIDDLE) {
810
- texture = createDefaultLogoTexture();
811
- texture.flipY = false;
812
- }
813
807
  const mat = new THREE.MeshStandardMaterial({
814
808
  color: col,
815
809
  metalness: 0.7,
@@ -883,10 +877,6 @@ var goldSkin = {
883
877
  ];
884
878
  const col = ColorList[color];
885
879
  let texture = void 0;
886
- if (x === SIDE_MIDDLE && y === SIDE_MAX && z === SIDE_MIDDLE) {
887
- texture = createDefaultLogoTexture();
888
- texture.flipY = false;
889
- }
890
880
  const mat = new THREE.MeshStandardMaterial({
891
881
  color: col,
892
882
  metalness: 1,
@@ -960,10 +950,6 @@ var acrylicSkin = {
960
950
  ];
961
951
  const col = ColorList[color];
962
952
  let texture = void 0;
963
- if (x === SIDE_MIDDLE && y === SIDE_MAX && z === SIDE_MIDDLE) {
964
- texture = createDefaultLogoTexture();
965
- texture.flipY = false;
966
- }
967
953
  const mat = new THREE.MeshStandardMaterial({
968
954
  color: col,
969
955
  metalness: 1,
@@ -1038,10 +1024,6 @@ var crystalSkin = {
1038
1024
  ];
1039
1025
  const col = ColorList[color];
1040
1026
  let texture = void 0;
1041
- if (x === SIDE_MIDDLE && y === SIDE_MAX && z === SIDE_MIDDLE) {
1042
- texture = createDefaultLogoTexture();
1043
- texture.flipY = false;
1044
- }
1045
1027
  const mat = new THREE.MeshBasicMaterial({
1046
1028
  color: col,
1047
1029
  refractionRatio: 0.75,
@@ -1085,7 +1067,838 @@ var DefaultLogo = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABAAAAAQACAIAAAD
1085
1067
  import * as THREE3 from "three";
1086
1068
  import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader.js";
1087
1069
  import * as BufferGeometryUtils from "three/examples/jsm/utils/BufferGeometryUtils.js";
1088
- import * as TWEEN from "@tweenjs/tween.js";
1070
+
1071
+ // node_modules/@tweenjs/tween.js/dist/tween.esm.js
1072
+ var Easing = Object.freeze({
1073
+ Linear: Object.freeze({
1074
+ None: function(amount) {
1075
+ return amount;
1076
+ },
1077
+ In: function(amount) {
1078
+ return amount;
1079
+ },
1080
+ Out: function(amount) {
1081
+ return amount;
1082
+ },
1083
+ InOut: function(amount) {
1084
+ return amount;
1085
+ }
1086
+ }),
1087
+ Quadratic: Object.freeze({
1088
+ In: function(amount) {
1089
+ return amount * amount;
1090
+ },
1091
+ Out: function(amount) {
1092
+ return amount * (2 - amount);
1093
+ },
1094
+ InOut: function(amount) {
1095
+ if ((amount *= 2) < 1) {
1096
+ return 0.5 * amount * amount;
1097
+ }
1098
+ return -0.5 * (--amount * (amount - 2) - 1);
1099
+ }
1100
+ }),
1101
+ Cubic: Object.freeze({
1102
+ In: function(amount) {
1103
+ return amount * amount * amount;
1104
+ },
1105
+ Out: function(amount) {
1106
+ return --amount * amount * amount + 1;
1107
+ },
1108
+ InOut: function(amount) {
1109
+ if ((amount *= 2) < 1) {
1110
+ return 0.5 * amount * amount * amount;
1111
+ }
1112
+ return 0.5 * ((amount -= 2) * amount * amount + 2);
1113
+ }
1114
+ }),
1115
+ Quartic: Object.freeze({
1116
+ In: function(amount) {
1117
+ return amount * amount * amount * amount;
1118
+ },
1119
+ Out: function(amount) {
1120
+ return 1 - --amount * amount * amount * amount;
1121
+ },
1122
+ InOut: function(amount) {
1123
+ if ((amount *= 2) < 1) {
1124
+ return 0.5 * amount * amount * amount * amount;
1125
+ }
1126
+ return -0.5 * ((amount -= 2) * amount * amount * amount - 2);
1127
+ }
1128
+ }),
1129
+ Quintic: Object.freeze({
1130
+ In: function(amount) {
1131
+ return amount * amount * amount * amount * amount;
1132
+ },
1133
+ Out: function(amount) {
1134
+ return --amount * amount * amount * amount * amount + 1;
1135
+ },
1136
+ InOut: function(amount) {
1137
+ if ((amount *= 2) < 1) {
1138
+ return 0.5 * amount * amount * amount * amount * amount;
1139
+ }
1140
+ return 0.5 * ((amount -= 2) * amount * amount * amount * amount + 2);
1141
+ }
1142
+ }),
1143
+ Sinusoidal: Object.freeze({
1144
+ In: function(amount) {
1145
+ return 1 - Math.sin((1 - amount) * Math.PI / 2);
1146
+ },
1147
+ Out: function(amount) {
1148
+ return Math.sin(amount * Math.PI / 2);
1149
+ },
1150
+ InOut: function(amount) {
1151
+ return 0.5 * (1 - Math.sin(Math.PI * (0.5 - amount)));
1152
+ }
1153
+ }),
1154
+ Exponential: Object.freeze({
1155
+ In: function(amount) {
1156
+ return amount === 0 ? 0 : Math.pow(1024, amount - 1);
1157
+ },
1158
+ Out: function(amount) {
1159
+ return amount === 1 ? 1 : 1 - Math.pow(2, -10 * amount);
1160
+ },
1161
+ InOut: function(amount) {
1162
+ if (amount === 0) {
1163
+ return 0;
1164
+ }
1165
+ if (amount === 1) {
1166
+ return 1;
1167
+ }
1168
+ if ((amount *= 2) < 1) {
1169
+ return 0.5 * Math.pow(1024, amount - 1);
1170
+ }
1171
+ return 0.5 * (-Math.pow(2, -10 * (amount - 1)) + 2);
1172
+ }
1173
+ }),
1174
+ Circular: Object.freeze({
1175
+ In: function(amount) {
1176
+ return 1 - Math.sqrt(1 - amount * amount);
1177
+ },
1178
+ Out: function(amount) {
1179
+ return Math.sqrt(1 - --amount * amount);
1180
+ },
1181
+ InOut: function(amount) {
1182
+ if ((amount *= 2) < 1) {
1183
+ return -0.5 * (Math.sqrt(1 - amount * amount) - 1);
1184
+ }
1185
+ return 0.5 * (Math.sqrt(1 - (amount -= 2) * amount) + 1);
1186
+ }
1187
+ }),
1188
+ Elastic: Object.freeze({
1189
+ In: function(amount) {
1190
+ if (amount === 0) {
1191
+ return 0;
1192
+ }
1193
+ if (amount === 1) {
1194
+ return 1;
1195
+ }
1196
+ return -Math.pow(2, 10 * (amount - 1)) * Math.sin((amount - 1.1) * 5 * Math.PI);
1197
+ },
1198
+ Out: function(amount) {
1199
+ if (amount === 0) {
1200
+ return 0;
1201
+ }
1202
+ if (amount === 1) {
1203
+ return 1;
1204
+ }
1205
+ return Math.pow(2, -10 * amount) * Math.sin((amount - 0.1) * 5 * Math.PI) + 1;
1206
+ },
1207
+ InOut: function(amount) {
1208
+ if (amount === 0) {
1209
+ return 0;
1210
+ }
1211
+ if (amount === 1) {
1212
+ return 1;
1213
+ }
1214
+ amount *= 2;
1215
+ if (amount < 1) {
1216
+ return -0.5 * Math.pow(2, 10 * (amount - 1)) * Math.sin((amount - 1.1) * 5 * Math.PI);
1217
+ }
1218
+ return 0.5 * Math.pow(2, -10 * (amount - 1)) * Math.sin((amount - 1.1) * 5 * Math.PI) + 1;
1219
+ }
1220
+ }),
1221
+ Back: Object.freeze({
1222
+ In: function(amount) {
1223
+ var s = 1.70158;
1224
+ return amount === 1 ? 1 : amount * amount * ((s + 1) * amount - s);
1225
+ },
1226
+ Out: function(amount) {
1227
+ var s = 1.70158;
1228
+ return amount === 0 ? 0 : --amount * amount * ((s + 1) * amount + s) + 1;
1229
+ },
1230
+ InOut: function(amount) {
1231
+ var s = 1.70158 * 1.525;
1232
+ if ((amount *= 2) < 1) {
1233
+ return 0.5 * (amount * amount * ((s + 1) * amount - s));
1234
+ }
1235
+ return 0.5 * ((amount -= 2) * amount * ((s + 1) * amount + s) + 2);
1236
+ }
1237
+ }),
1238
+ Bounce: Object.freeze({
1239
+ In: function(amount) {
1240
+ return 1 - Easing.Bounce.Out(1 - amount);
1241
+ },
1242
+ Out: function(amount) {
1243
+ if (amount < 1 / 2.75) {
1244
+ return 7.5625 * amount * amount;
1245
+ } else if (amount < 2 / 2.75) {
1246
+ return 7.5625 * (amount -= 1.5 / 2.75) * amount + 0.75;
1247
+ } else if (amount < 2.5 / 2.75) {
1248
+ return 7.5625 * (amount -= 2.25 / 2.75) * amount + 0.9375;
1249
+ } else {
1250
+ return 7.5625 * (amount -= 2.625 / 2.75) * amount + 0.984375;
1251
+ }
1252
+ },
1253
+ InOut: function(amount) {
1254
+ if (amount < 0.5) {
1255
+ return Easing.Bounce.In(amount * 2) * 0.5;
1256
+ }
1257
+ return Easing.Bounce.Out(amount * 2 - 1) * 0.5 + 0.5;
1258
+ }
1259
+ }),
1260
+ generatePow: function(power) {
1261
+ if (power === void 0) {
1262
+ power = 4;
1263
+ }
1264
+ power = power < Number.EPSILON ? Number.EPSILON : power;
1265
+ power = power > 1e4 ? 1e4 : power;
1266
+ return {
1267
+ In: function(amount) {
1268
+ return Math.pow(amount, power);
1269
+ },
1270
+ Out: function(amount) {
1271
+ return 1 - Math.pow(1 - amount, power);
1272
+ },
1273
+ InOut: function(amount) {
1274
+ if (amount < 0.5) {
1275
+ return Math.pow(amount * 2, power) / 2;
1276
+ }
1277
+ return (1 - Math.pow(2 - amount * 2, power)) / 2 + 0.5;
1278
+ }
1279
+ };
1280
+ }
1281
+ });
1282
+ var now = function() {
1283
+ return performance.now();
1284
+ };
1285
+ var Group = (
1286
+ /** @class */
1287
+ function() {
1288
+ function Group3() {
1289
+ var tweens = [];
1290
+ for (var _i = 0; _i < arguments.length; _i++) {
1291
+ tweens[_i] = arguments[_i];
1292
+ }
1293
+ this._tweens = {};
1294
+ this._tweensAddedDuringUpdate = {};
1295
+ this.add.apply(this, tweens);
1296
+ }
1297
+ Group3.prototype.getAll = function() {
1298
+ var _this = this;
1299
+ return Object.keys(this._tweens).map(function(tweenId) {
1300
+ return _this._tweens[tweenId];
1301
+ });
1302
+ };
1303
+ Group3.prototype.removeAll = function() {
1304
+ this._tweens = {};
1305
+ };
1306
+ Group3.prototype.add = function() {
1307
+ var _a;
1308
+ var tweens = [];
1309
+ for (var _i = 0; _i < arguments.length; _i++) {
1310
+ tweens[_i] = arguments[_i];
1311
+ }
1312
+ for (var _b = 0, tweens_1 = tweens; _b < tweens_1.length; _b++) {
1313
+ var tween = tweens_1[_b];
1314
+ (_a = tween._group) === null || _a === void 0 ? void 0 : _a.remove(tween);
1315
+ tween._group = this;
1316
+ this._tweens[tween.getId()] = tween;
1317
+ this._tweensAddedDuringUpdate[tween.getId()] = tween;
1318
+ }
1319
+ };
1320
+ Group3.prototype.remove = function() {
1321
+ var tweens = [];
1322
+ for (var _i = 0; _i < arguments.length; _i++) {
1323
+ tweens[_i] = arguments[_i];
1324
+ }
1325
+ for (var _a = 0, tweens_2 = tweens; _a < tweens_2.length; _a++) {
1326
+ var tween = tweens_2[_a];
1327
+ tween._group = void 0;
1328
+ delete this._tweens[tween.getId()];
1329
+ delete this._tweensAddedDuringUpdate[tween.getId()];
1330
+ }
1331
+ };
1332
+ Group3.prototype.allStopped = function() {
1333
+ return this.getAll().every(function(tween) {
1334
+ return !tween.isPlaying();
1335
+ });
1336
+ };
1337
+ Group3.prototype.update = function(time, preserve) {
1338
+ if (time === void 0) {
1339
+ time = now();
1340
+ }
1341
+ if (preserve === void 0) {
1342
+ preserve = true;
1343
+ }
1344
+ var tweenIds = Object.keys(this._tweens);
1345
+ if (tweenIds.length === 0)
1346
+ return;
1347
+ while (tweenIds.length > 0) {
1348
+ this._tweensAddedDuringUpdate = {};
1349
+ for (var i = 0; i < tweenIds.length; i++) {
1350
+ var tween = this._tweens[tweenIds[i]];
1351
+ var autoStart = !preserve;
1352
+ if (tween && tween.update(time, autoStart) === false && !preserve)
1353
+ this.remove(tween);
1354
+ }
1355
+ tweenIds = Object.keys(this._tweensAddedDuringUpdate);
1356
+ }
1357
+ };
1358
+ return Group3;
1359
+ }()
1360
+ );
1361
+ var Interpolation = {
1362
+ Linear: function(v, k) {
1363
+ var m = v.length - 1;
1364
+ var f = m * k;
1365
+ var i = Math.floor(f);
1366
+ var fn = Interpolation.Utils.Linear;
1367
+ if (k < 0) {
1368
+ return fn(v[0], v[1], f);
1369
+ }
1370
+ if (k > 1) {
1371
+ return fn(v[m], v[m - 1], m - f);
1372
+ }
1373
+ return fn(v[i], v[i + 1 > m ? m : i + 1], f - i);
1374
+ },
1375
+ Bezier: function(v, k) {
1376
+ var b = 0;
1377
+ var n = v.length - 1;
1378
+ var pw = Math.pow;
1379
+ var bn = Interpolation.Utils.Bernstein;
1380
+ for (var i = 0; i <= n; i++) {
1381
+ b += pw(1 - k, n - i) * pw(k, i) * v[i] * bn(n, i);
1382
+ }
1383
+ return b;
1384
+ },
1385
+ CatmullRom: function(v, k) {
1386
+ var m = v.length - 1;
1387
+ var f = m * k;
1388
+ var i = Math.floor(f);
1389
+ var fn = Interpolation.Utils.CatmullRom;
1390
+ if (v[0] === v[m]) {
1391
+ if (k < 0) {
1392
+ i = Math.floor(f = m * (1 + k));
1393
+ }
1394
+ return fn(v[(i - 1 + m) % m], v[i], v[(i + 1) % m], v[(i + 2) % m], f - i);
1395
+ } else {
1396
+ if (k < 0) {
1397
+ return v[0] - (fn(v[0], v[0], v[1], v[1], -f) - v[0]);
1398
+ }
1399
+ if (k > 1) {
1400
+ return v[m] - (fn(v[m], v[m], v[m - 1], v[m - 1], f - m) - v[m]);
1401
+ }
1402
+ return fn(v[i ? i - 1 : 0], v[i], v[m < i + 1 ? m : i + 1], v[m < i + 2 ? m : i + 2], f - i);
1403
+ }
1404
+ },
1405
+ Utils: {
1406
+ Linear: function(p0, p1, t) {
1407
+ return (p1 - p0) * t + p0;
1408
+ },
1409
+ Bernstein: function(n, i) {
1410
+ var fc = Interpolation.Utils.Factorial;
1411
+ return fc(n) / fc(i) / fc(n - i);
1412
+ },
1413
+ Factorial: /* @__PURE__ */ function() {
1414
+ var a = [1];
1415
+ return function(n) {
1416
+ var s = 1;
1417
+ if (a[n]) {
1418
+ return a[n];
1419
+ }
1420
+ for (var i = n; i > 1; i--) {
1421
+ s *= i;
1422
+ }
1423
+ a[n] = s;
1424
+ return s;
1425
+ };
1426
+ }(),
1427
+ CatmullRom: function(p0, p1, p2, p3, t) {
1428
+ var v0 = (p2 - p0) * 0.5;
1429
+ var v1 = (p3 - p1) * 0.5;
1430
+ var t2 = t * t;
1431
+ var t3 = t * t2;
1432
+ return (2 * p1 - 2 * p2 + v0 + v1) * t3 + (-3 * p1 + 3 * p2 - 2 * v0 - v1) * t2 + v0 * t + p1;
1433
+ }
1434
+ }
1435
+ };
1436
+ var Sequence = (
1437
+ /** @class */
1438
+ function() {
1439
+ function Sequence2() {
1440
+ }
1441
+ Sequence2.nextId = function() {
1442
+ return Sequence2._nextId++;
1443
+ };
1444
+ Sequence2._nextId = 0;
1445
+ return Sequence2;
1446
+ }()
1447
+ );
1448
+ var mainGroup = new Group();
1449
+ var Tween = (
1450
+ /** @class */
1451
+ function() {
1452
+ function Tween2(object, group) {
1453
+ this._isPaused = false;
1454
+ this._pauseStart = 0;
1455
+ this._valuesStart = {};
1456
+ this._valuesEnd = {};
1457
+ this._valuesStartRepeat = {};
1458
+ this._duration = 1e3;
1459
+ this._isDynamic = false;
1460
+ this._initialRepeat = 0;
1461
+ this._repeat = 0;
1462
+ this._yoyo = false;
1463
+ this._isPlaying = false;
1464
+ this._reversed = false;
1465
+ this._delayTime = 0;
1466
+ this._startTime = 0;
1467
+ this._easingFunction = Easing.Linear.None;
1468
+ this._interpolationFunction = Interpolation.Linear;
1469
+ this._chainedTweens = [];
1470
+ this._onStartCallbackFired = false;
1471
+ this._onEveryStartCallbackFired = false;
1472
+ this._id = Sequence.nextId();
1473
+ this._isChainStopped = false;
1474
+ this._propertiesAreSetUp = false;
1475
+ this._goToEnd = false;
1476
+ this._object = object;
1477
+ if (typeof group === "object") {
1478
+ this._group = group;
1479
+ group.add(this);
1480
+ } else if (group === true) {
1481
+ this._group = mainGroup;
1482
+ mainGroup.add(this);
1483
+ }
1484
+ }
1485
+ Tween2.prototype.getId = function() {
1486
+ return this._id;
1487
+ };
1488
+ Tween2.prototype.isPlaying = function() {
1489
+ return this._isPlaying;
1490
+ };
1491
+ Tween2.prototype.isPaused = function() {
1492
+ return this._isPaused;
1493
+ };
1494
+ Tween2.prototype.getDuration = function() {
1495
+ return this._duration;
1496
+ };
1497
+ Tween2.prototype.to = function(target, duration) {
1498
+ if (duration === void 0) {
1499
+ duration = 1e3;
1500
+ }
1501
+ if (this._isPlaying)
1502
+ throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");
1503
+ this._valuesEnd = target;
1504
+ this._propertiesAreSetUp = false;
1505
+ this._duration = duration < 0 ? 0 : duration;
1506
+ return this;
1507
+ };
1508
+ Tween2.prototype.duration = function(duration) {
1509
+ if (duration === void 0) {
1510
+ duration = 1e3;
1511
+ }
1512
+ this._duration = duration < 0 ? 0 : duration;
1513
+ return this;
1514
+ };
1515
+ Tween2.prototype.dynamic = function(dynamic) {
1516
+ if (dynamic === void 0) {
1517
+ dynamic = false;
1518
+ }
1519
+ this._isDynamic = dynamic;
1520
+ return this;
1521
+ };
1522
+ Tween2.prototype.start = function(time, overrideStartingValues) {
1523
+ if (time === void 0) {
1524
+ time = now();
1525
+ }
1526
+ if (overrideStartingValues === void 0) {
1527
+ overrideStartingValues = false;
1528
+ }
1529
+ if (this._isPlaying) {
1530
+ return this;
1531
+ }
1532
+ this._repeat = this._initialRepeat;
1533
+ if (this._reversed) {
1534
+ this._reversed = false;
1535
+ for (var property in this._valuesStartRepeat) {
1536
+ this._swapEndStartRepeatValues(property);
1537
+ this._valuesStart[property] = this._valuesStartRepeat[property];
1538
+ }
1539
+ }
1540
+ this._isPlaying = true;
1541
+ this._isPaused = false;
1542
+ this._onStartCallbackFired = false;
1543
+ this._onEveryStartCallbackFired = false;
1544
+ this._isChainStopped = false;
1545
+ this._startTime = time;
1546
+ this._startTime += this._delayTime;
1547
+ if (!this._propertiesAreSetUp || overrideStartingValues) {
1548
+ this._propertiesAreSetUp = true;
1549
+ if (!this._isDynamic) {
1550
+ var tmp = {};
1551
+ for (var prop in this._valuesEnd)
1552
+ tmp[prop] = this._valuesEnd[prop];
1553
+ this._valuesEnd = tmp;
1554
+ }
1555
+ this._setupProperties(this._object, this._valuesStart, this._valuesEnd, this._valuesStartRepeat, overrideStartingValues);
1556
+ }
1557
+ return this;
1558
+ };
1559
+ Tween2.prototype.startFromCurrentValues = function(time) {
1560
+ return this.start(time, true);
1561
+ };
1562
+ Tween2.prototype._setupProperties = function(_object, _valuesStart, _valuesEnd, _valuesStartRepeat, overrideStartingValues) {
1563
+ for (var property in _valuesEnd) {
1564
+ var startValue = _object[property];
1565
+ var startValueIsArray = Array.isArray(startValue);
1566
+ var propType = startValueIsArray ? "array" : typeof startValue;
1567
+ var isInterpolationList = !startValueIsArray && Array.isArray(_valuesEnd[property]);
1568
+ if (propType === "undefined" || propType === "function") {
1569
+ continue;
1570
+ }
1571
+ if (isInterpolationList) {
1572
+ var endValues = _valuesEnd[property];
1573
+ if (endValues.length === 0) {
1574
+ continue;
1575
+ }
1576
+ var temp = [startValue];
1577
+ for (var i = 0, l = endValues.length; i < l; i += 1) {
1578
+ var value = this._handleRelativeValue(startValue, endValues[i]);
1579
+ if (isNaN(value)) {
1580
+ isInterpolationList = false;
1581
+ console.warn("Found invalid interpolation list. Skipping.");
1582
+ break;
1583
+ }
1584
+ temp.push(value);
1585
+ }
1586
+ if (isInterpolationList) {
1587
+ _valuesEnd[property] = temp;
1588
+ }
1589
+ }
1590
+ if ((propType === "object" || startValueIsArray) && startValue && !isInterpolationList) {
1591
+ _valuesStart[property] = startValueIsArray ? [] : {};
1592
+ var nestedObject = startValue;
1593
+ for (var prop in nestedObject) {
1594
+ _valuesStart[property][prop] = nestedObject[prop];
1595
+ }
1596
+ _valuesStartRepeat[property] = startValueIsArray ? [] : {};
1597
+ var endValues = _valuesEnd[property];
1598
+ if (!this._isDynamic) {
1599
+ var tmp = {};
1600
+ for (var prop in endValues)
1601
+ tmp[prop] = endValues[prop];
1602
+ _valuesEnd[property] = endValues = tmp;
1603
+ }
1604
+ this._setupProperties(nestedObject, _valuesStart[property], endValues, _valuesStartRepeat[property], overrideStartingValues);
1605
+ } else {
1606
+ if (typeof _valuesStart[property] === "undefined" || overrideStartingValues) {
1607
+ _valuesStart[property] = startValue;
1608
+ }
1609
+ if (!startValueIsArray) {
1610
+ _valuesStart[property] *= 1;
1611
+ }
1612
+ if (isInterpolationList) {
1613
+ _valuesStartRepeat[property] = _valuesEnd[property].slice().reverse();
1614
+ } else {
1615
+ _valuesStartRepeat[property] = _valuesStart[property] || 0;
1616
+ }
1617
+ }
1618
+ }
1619
+ };
1620
+ Tween2.prototype.stop = function() {
1621
+ if (!this._isChainStopped) {
1622
+ this._isChainStopped = true;
1623
+ this.stopChainedTweens();
1624
+ }
1625
+ if (!this._isPlaying) {
1626
+ return this;
1627
+ }
1628
+ this._isPlaying = false;
1629
+ this._isPaused = false;
1630
+ if (this._onStopCallback) {
1631
+ this._onStopCallback(this._object);
1632
+ }
1633
+ return this;
1634
+ };
1635
+ Tween2.prototype.end = function() {
1636
+ this._goToEnd = true;
1637
+ this.update(this._startTime + this._duration);
1638
+ return this;
1639
+ };
1640
+ Tween2.prototype.pause = function(time) {
1641
+ if (time === void 0) {
1642
+ time = now();
1643
+ }
1644
+ if (this._isPaused || !this._isPlaying) {
1645
+ return this;
1646
+ }
1647
+ this._isPaused = true;
1648
+ this._pauseStart = time;
1649
+ return this;
1650
+ };
1651
+ Tween2.prototype.resume = function(time) {
1652
+ if (time === void 0) {
1653
+ time = now();
1654
+ }
1655
+ if (!this._isPaused || !this._isPlaying) {
1656
+ return this;
1657
+ }
1658
+ this._isPaused = false;
1659
+ this._startTime += time - this._pauseStart;
1660
+ this._pauseStart = 0;
1661
+ return this;
1662
+ };
1663
+ Tween2.prototype.stopChainedTweens = function() {
1664
+ for (var i = 0, numChainedTweens = this._chainedTweens.length; i < numChainedTweens; i++) {
1665
+ this._chainedTweens[i].stop();
1666
+ }
1667
+ return this;
1668
+ };
1669
+ Tween2.prototype.group = function(group) {
1670
+ if (!group) {
1671
+ console.warn("tween.group() without args has been removed, use group.add(tween) instead.");
1672
+ return this;
1673
+ }
1674
+ group.add(this);
1675
+ return this;
1676
+ };
1677
+ Tween2.prototype.remove = function() {
1678
+ var _a;
1679
+ (_a = this._group) === null || _a === void 0 ? void 0 : _a.remove(this);
1680
+ return this;
1681
+ };
1682
+ Tween2.prototype.delay = function(amount) {
1683
+ if (amount === void 0) {
1684
+ amount = 0;
1685
+ }
1686
+ this._delayTime = amount;
1687
+ return this;
1688
+ };
1689
+ Tween2.prototype.repeat = function(times) {
1690
+ if (times === void 0) {
1691
+ times = 0;
1692
+ }
1693
+ this._initialRepeat = times;
1694
+ this._repeat = times;
1695
+ return this;
1696
+ };
1697
+ Tween2.prototype.repeatDelay = function(amount) {
1698
+ this._repeatDelayTime = amount;
1699
+ return this;
1700
+ };
1701
+ Tween2.prototype.yoyo = function(yoyo) {
1702
+ if (yoyo === void 0) {
1703
+ yoyo = false;
1704
+ }
1705
+ this._yoyo = yoyo;
1706
+ return this;
1707
+ };
1708
+ Tween2.prototype.easing = function(easingFunction) {
1709
+ if (easingFunction === void 0) {
1710
+ easingFunction = Easing.Linear.None;
1711
+ }
1712
+ this._easingFunction = easingFunction;
1713
+ return this;
1714
+ };
1715
+ Tween2.prototype.interpolation = function(interpolationFunction) {
1716
+ if (interpolationFunction === void 0) {
1717
+ interpolationFunction = Interpolation.Linear;
1718
+ }
1719
+ this._interpolationFunction = interpolationFunction;
1720
+ return this;
1721
+ };
1722
+ Tween2.prototype.chain = function() {
1723
+ var tweens = [];
1724
+ for (var _i = 0; _i < arguments.length; _i++) {
1725
+ tweens[_i] = arguments[_i];
1726
+ }
1727
+ this._chainedTweens = tweens;
1728
+ return this;
1729
+ };
1730
+ Tween2.prototype.onStart = function(callback) {
1731
+ this._onStartCallback = callback;
1732
+ return this;
1733
+ };
1734
+ Tween2.prototype.onEveryStart = function(callback) {
1735
+ this._onEveryStartCallback = callback;
1736
+ return this;
1737
+ };
1738
+ Tween2.prototype.onUpdate = function(callback) {
1739
+ this._onUpdateCallback = callback;
1740
+ return this;
1741
+ };
1742
+ Tween2.prototype.onRepeat = function(callback) {
1743
+ this._onRepeatCallback = callback;
1744
+ return this;
1745
+ };
1746
+ Tween2.prototype.onComplete = function(callback) {
1747
+ this._onCompleteCallback = callback;
1748
+ return this;
1749
+ };
1750
+ Tween2.prototype.onStop = function(callback) {
1751
+ this._onStopCallback = callback;
1752
+ return this;
1753
+ };
1754
+ Tween2.prototype.update = function(time, autoStart) {
1755
+ var _this = this;
1756
+ var _a;
1757
+ if (time === void 0) {
1758
+ time = now();
1759
+ }
1760
+ if (autoStart === void 0) {
1761
+ autoStart = Tween2.autoStartOnUpdate;
1762
+ }
1763
+ if (this._isPaused)
1764
+ return true;
1765
+ var property;
1766
+ if (!this._goToEnd && !this._isPlaying) {
1767
+ if (autoStart)
1768
+ this.start(time, true);
1769
+ else
1770
+ return false;
1771
+ }
1772
+ this._goToEnd = false;
1773
+ if (time < this._startTime) {
1774
+ return true;
1775
+ }
1776
+ if (this._onStartCallbackFired === false) {
1777
+ if (this._onStartCallback) {
1778
+ this._onStartCallback(this._object);
1779
+ }
1780
+ this._onStartCallbackFired = true;
1781
+ }
1782
+ if (this._onEveryStartCallbackFired === false) {
1783
+ if (this._onEveryStartCallback) {
1784
+ this._onEveryStartCallback(this._object);
1785
+ }
1786
+ this._onEveryStartCallbackFired = true;
1787
+ }
1788
+ var elapsedTime = time - this._startTime;
1789
+ var durationAndDelay = this._duration + ((_a = this._repeatDelayTime) !== null && _a !== void 0 ? _a : this._delayTime);
1790
+ var totalTime = this._duration + this._repeat * durationAndDelay;
1791
+ var calculateElapsedPortion = function() {
1792
+ if (_this._duration === 0)
1793
+ return 1;
1794
+ if (elapsedTime > totalTime) {
1795
+ return 1;
1796
+ }
1797
+ var timesRepeated = Math.trunc(elapsedTime / durationAndDelay);
1798
+ var timeIntoCurrentRepeat = elapsedTime - timesRepeated * durationAndDelay;
1799
+ var portion = Math.min(timeIntoCurrentRepeat / _this._duration, 1);
1800
+ if (portion === 0 && elapsedTime === _this._duration) {
1801
+ return 1;
1802
+ }
1803
+ return portion;
1804
+ };
1805
+ var elapsed = calculateElapsedPortion();
1806
+ var value = this._easingFunction(elapsed);
1807
+ this._updateProperties(this._object, this._valuesStart, this._valuesEnd, value);
1808
+ if (this._onUpdateCallback) {
1809
+ this._onUpdateCallback(this._object, elapsed);
1810
+ }
1811
+ if (this._duration === 0 || elapsedTime >= this._duration) {
1812
+ if (this._repeat > 0) {
1813
+ var completeCount = Math.min(Math.trunc((elapsedTime - this._duration) / durationAndDelay) + 1, this._repeat);
1814
+ if (isFinite(this._repeat)) {
1815
+ this._repeat -= completeCount;
1816
+ }
1817
+ for (property in this._valuesStartRepeat) {
1818
+ if (!this._yoyo && typeof this._valuesEnd[property] === "string") {
1819
+ this._valuesStartRepeat[property] = // eslint-disable-next-line
1820
+ // @ts-ignore FIXME?
1821
+ this._valuesStartRepeat[property] + parseFloat(this._valuesEnd[property]);
1822
+ }
1823
+ if (this._yoyo) {
1824
+ this._swapEndStartRepeatValues(property);
1825
+ }
1826
+ this._valuesStart[property] = this._valuesStartRepeat[property];
1827
+ }
1828
+ if (this._yoyo) {
1829
+ this._reversed = !this._reversed;
1830
+ }
1831
+ this._startTime += durationAndDelay * completeCount;
1832
+ if (this._onRepeatCallback) {
1833
+ this._onRepeatCallback(this._object);
1834
+ }
1835
+ this._onEveryStartCallbackFired = false;
1836
+ return true;
1837
+ } else {
1838
+ if (this._onCompleteCallback) {
1839
+ this._onCompleteCallback(this._object);
1840
+ }
1841
+ for (var i = 0, numChainedTweens = this._chainedTweens.length; i < numChainedTweens; i++) {
1842
+ this._chainedTweens[i].start(this._startTime + this._duration, false);
1843
+ }
1844
+ this._isPlaying = false;
1845
+ return false;
1846
+ }
1847
+ }
1848
+ return true;
1849
+ };
1850
+ Tween2.prototype._updateProperties = function(_object, _valuesStart, _valuesEnd, value) {
1851
+ for (var property in _valuesEnd) {
1852
+ if (_valuesStart[property] === void 0) {
1853
+ continue;
1854
+ }
1855
+ var start = _valuesStart[property] || 0;
1856
+ var end = _valuesEnd[property];
1857
+ var startIsArray = Array.isArray(_object[property]);
1858
+ var endIsArray = Array.isArray(end);
1859
+ var isInterpolationList = !startIsArray && endIsArray;
1860
+ if (isInterpolationList) {
1861
+ _object[property] = this._interpolationFunction(end, value);
1862
+ } else if (typeof end === "object" && end) {
1863
+ this._updateProperties(_object[property], start, end, value);
1864
+ } else {
1865
+ end = this._handleRelativeValue(start, end);
1866
+ if (typeof end === "number") {
1867
+ _object[property] = start + (end - start) * value;
1868
+ }
1869
+ }
1870
+ }
1871
+ };
1872
+ Tween2.prototype._handleRelativeValue = function(start, end) {
1873
+ if (typeof end !== "string") {
1874
+ return end;
1875
+ }
1876
+ if (end.charAt(0) === "+" || end.charAt(0) === "-") {
1877
+ return start + parseFloat(end);
1878
+ }
1879
+ return parseFloat(end);
1880
+ };
1881
+ Tween2.prototype._swapEndStartRepeatValues = function(property) {
1882
+ var tmp = this._valuesStartRepeat[property];
1883
+ var endValue = this._valuesEnd[property];
1884
+ if (typeof endValue === "string") {
1885
+ this._valuesStartRepeat[property] = this._valuesStartRepeat[property] + parseFloat(endValue);
1886
+ } else {
1887
+ this._valuesStartRepeat[property] = this._valuesEnd[property];
1888
+ }
1889
+ this._valuesEnd[property] = tmp;
1890
+ };
1891
+ Tween2.autoStartOnUpdate = false;
1892
+ return Tween2;
1893
+ }()
1894
+ );
1895
+ var nextId = Sequence.nextId;
1896
+ var TWEEN = mainGroup;
1897
+ var getAll = TWEEN.getAll.bind(TWEEN);
1898
+ var removeAll = TWEEN.removeAll.bind(TWEEN);
1899
+ var add = TWEEN.add.bind(TWEEN);
1900
+ var remove = TWEEN.remove.bind(TWEEN);
1901
+ var update = TWEEN.update.bind(TWEEN);
1089
1902
 
1090
1903
  // src/materials.ts
1091
1904
  import * as THREE2 from "three";
@@ -1347,10 +2160,12 @@ var WebGLArcanumCube = class extends ArcanumCube {
1347
2160
  _draggingTwist;
1348
2161
  /** max degree to cancel the dragging */
1349
2162
  _cancelDragDeg;
1350
- /** tween group */
1351
- _tweens;
2163
+ /** easing group */
2164
+ _easings;
1352
2165
  /** light at the center of cube */
1353
2166
  _coreLights;
2167
+ /** status of locking the twist */
2168
+ _lockTwist;
1354
2169
  constructor(options) {
1355
2170
  super(options);
1356
2171
  this._config = {
@@ -1362,7 +2177,6 @@ var WebGLArcanumCube = class extends ArcanumCube {
1362
2177
  gap: 0.01,
1363
2178
  enableShadow: false,
1364
2179
  skin: DefaultSkin,
1365
- autoReset: true,
1366
2180
  enableCoreLight: false,
1367
2181
  coreLightColor: 33023,
1368
2182
  coreLightIntensity: 30,
@@ -1375,8 +2189,9 @@ var WebGLArcanumCube = class extends ArcanumCube {
1375
2189
  this._cubeObjectList = [];
1376
2190
  this._cubeMap = {};
1377
2191
  this._cancelDragDeg = 15;
1378
- this._tweens = new TWEEN.Group();
2192
+ this._easings = new Group();
1379
2193
  this._coreLights = [];
2194
+ this._lockTwist = false;
1380
2195
  if (options) {
1381
2196
  Object.assign(this._config, options);
1382
2197
  }
@@ -1473,8 +2288,14 @@ var WebGLArcanumCube = class extends ArcanumCube {
1473
2288
  }
1474
2289
  await this.init();
1475
2290
  }
2291
+ lockTwist(flag) {
2292
+ this._lockTwist = flag;
2293
+ }
2294
+ isTwisting() {
2295
+ return this._easings.getAll().length > 0;
2296
+ }
1476
2297
  reset(duration = 1800) {
1477
- if (this._tweens.getAll().length > 0) return;
2298
+ if (this._lockTwist || this.isTwisting()) return;
1478
2299
  if (this._selectedCube) this.deselectCube();
1479
2300
  if (this._selectedSticker) this.deselectSticker();
1480
2301
  this._twistGroup = void 0;
@@ -1493,34 +2314,34 @@ var WebGLArcanumCube = class extends ArcanumCube {
1493
2314
  qa.push(cube.getGroup().quaternion.clone());
1494
2315
  });
1495
2316
  const params = { t: 0 };
1496
- const tweenExplode = new TWEEN.Tween(params).to({ t: 1 }, duration * 5 / 18).easing(TWEEN.Easing.Quartic.Out).onUpdate(() => {
2317
+ const easingExplode = new Tween(params).to({ t: 1 }, duration * 5 / 18).easing(Easing.Quartic.Out).onUpdate(() => {
1497
2318
  cubeList.forEach((cube) => {
1498
2319
  cube.stretch(stretchSize * params.t);
1499
2320
  });
1500
2321
  }).onComplete(() => {
1501
- this._tweens.remove(tweenExplode);
2322
+ this._easings.remove(easingExplode);
1502
2323
  });
1503
2324
  const params2 = { t: 0 };
1504
- const tweenReset = new TWEEN.Tween(params2).to({ t: 1 }, duration * 8 / 18).easing(TWEEN.Easing.Quartic.Out).onUpdate(() => {
2325
+ const easingReset = new Tween(params2).to({ t: 1 }, duration * 8 / 18).easing(Easing.Quartic.Out).onUpdate(() => {
1505
2326
  cubeList.forEach((cube, index) => {
1506
2327
  cube.getGroup().quaternion.slerpQuaternions(qa[index], qb, params2.t);
1507
2328
  });
1508
2329
  }).onComplete(() => {
1509
2330
  super.reset();
1510
- this._tweens.remove(tweenReset);
2331
+ this._easings.remove(easingReset);
1511
2332
  });
1512
2333
  const params3 = { t: 1 };
1513
- const tweenContract = new TWEEN.Tween(params3).to({ t: 0 }, duration * 5 / 18).easing(TWEEN.Easing.Quartic.Out).onUpdate(() => {
2334
+ const easingContract = new Tween(params3).to({ t: 0 }, duration * 5 / 18).easing(Easing.Quartic.Out).onUpdate(() => {
1514
2335
  cubeList.forEach((cube) => {
1515
2336
  cube.stretch(stretchSize * params3.t);
1516
2337
  });
1517
2338
  }).onComplete(() => {
1518
- this._tweens.remove(tweenContract);
2339
+ this._easings.remove(easingContract);
1519
2340
  });
1520
- tweenExplode.chain(tweenReset);
1521
- tweenReset.chain(tweenContract);
1522
- this._tweens.add(tweenExplode, tweenReset, tweenContract);
1523
- tweenExplode.start();
2341
+ easingExplode.chain(easingReset);
2342
+ easingReset.chain(easingContract);
2343
+ this._easings.add(easingExplode, easingReset, easingContract);
2344
+ easingExplode.start();
1524
2345
  }
1525
2346
  }
1526
2347
  selectedCube() {
@@ -1661,7 +2482,7 @@ var WebGLArcanumCube = class extends ArcanumCube {
1661
2482
  return twistGroup;
1662
2483
  }
1663
2484
  dragTwist(twist, rad) {
1664
- if (this._tweens.getAll().length > 0) return;
2485
+ if (this._lockTwist || this.isTwisting()) return;
1665
2486
  if (!this._draggingTwist || this._draggingTwist.twist != twist) {
1666
2487
  this._draggingTwist = {
1667
2488
  twist,
@@ -1676,30 +2497,30 @@ var WebGLArcanumCube = class extends ArcanumCube {
1676
2497
  this._draggingTwist.group.quaternion.copy(q);
1677
2498
  }
1678
2499
  dragTwistEnd() {
1679
- if (this._tweens.getAll().length > 0) return;
2500
+ if (this._lockTwist || this.isTwisting()) return;
1680
2501
  if (this._draggingTwist) {
1681
2502
  const deg = this._draggingTwist.rad * 180 / Math.PI;
1682
2503
  if (deg > this._cancelDragDeg) {
1683
- this.tweenTwist(this._draggingTwist.twist);
2504
+ this.easingTwist(this._draggingTwist.twist);
1684
2505
  } else {
1685
- this.tweenTwist(this._draggingTwist.twist, false, 100, true);
2506
+ this.easingTwist(this._draggingTwist.twist, false, 100, true);
1686
2507
  }
1687
2508
  }
1688
2509
  }
1689
2510
  // twist randomly several steps
1690
2511
  scramble(steps = 0, duration = 3e3) {
1691
2512
  const list = getRandomTwistList(steps);
1692
- this.tweenTwist(list, false, duration, false);
2513
+ this.easingTwist(list, false, duration, false);
1693
2514
  }
1694
2515
  undo(steps = 1, duration = 300) {
1695
2516
  const list = this.getUndoList(steps);
1696
- this.tweenTwist(list, true, duration, false);
2517
+ this.easingTwist(list, true, duration, false);
1697
2518
  }
1698
2519
  // twisting(複数回対応)
1699
- // durationを0にするとTweenなしとなる
1700
- tweenTwist(twist, reverse = false, duration = 500, cancel = false, options) {
1701
- if (this._tweens.getAll().length > 0) return;
1702
- if (options == null) options = this._config.twistOptions;
2520
+ // durationを0にするとEasingなしとなる
2521
+ easingTwist(twist, reverse = false, duration = 500, cancel = false, options) {
2522
+ if (this._lockTwist || this.isTwisting()) return;
2523
+ options = { ...this._config.twistOptions, ...options };
1703
2524
  if (duration === 0) {
1704
2525
  if (Array.isArray(twist)) {
1705
2526
  if (twist.length == 0) return;
@@ -1718,8 +2539,8 @@ var WebGLArcanumCube = class extends ArcanumCube {
1718
2539
  options?.onComplete && options.onComplete(this);
1719
2540
  return;
1720
2541
  }
1721
- let firstTween = void 0;
1722
- let tween = void 0;
2542
+ let firstEasing = void 0;
2543
+ let easing = void 0;
1723
2544
  if (Array.isArray(twist)) {
1724
2545
  if (twist.length == 0) return;
1725
2546
  const lap = duration / twist.length;
@@ -1731,22 +2552,22 @@ var WebGLArcanumCube = class extends ArcanumCube {
1731
2552
  if (ontwisted)
1732
2553
  opts.onTwisted = (self, twist2, n1, n2) => ontwisted(this, twist2, i + 1, len);
1733
2554
  if (i === len - 1 && options?.onComplete) opts.onComplete = options.onComplete;
1734
- const t = this._tweenTwist(c, reverse, lap, cancel, opts);
1735
- this._tweens.add(t);
1736
- if (!tween) {
1737
- firstTween = tween = t;
2555
+ const t = this._easingTwist(c, reverse, lap, cancel, opts);
2556
+ this._easings.add(t);
2557
+ if (!easing) {
2558
+ firstEasing = easing = t;
1738
2559
  } else {
1739
- tween.chain(t);
1740
- tween = t;
2560
+ easing.chain(t);
2561
+ easing = t;
1741
2562
  }
1742
2563
  }
1743
2564
  } else {
1744
- firstTween = this._tweenTwist(twist, reverse, duration, cancel, options);
1745
- this._tweens.add(firstTween);
2565
+ firstEasing = this._easingTwist(twist, reverse, duration, cancel, options);
2566
+ this._easings.add(firstEasing);
1746
2567
  }
1747
- if (firstTween) {
2568
+ if (firstEasing) {
1748
2569
  options?.onStart && options.onStart(this);
1749
- firstTween.start();
2570
+ firstEasing.start();
1750
2571
  }
1751
2572
  }
1752
2573
  // twist immediately
@@ -1766,8 +2587,8 @@ var WebGLArcanumCube = class extends ArcanumCube {
1766
2587
  this._twistGroup = void 0;
1767
2588
  super.twist(twist, reverse);
1768
2589
  }
1769
- // twist with tween
1770
- _tweenTwist(twist, reverse, duration, cancel, options = {}) {
2590
+ // twist with easing
2591
+ _easingTwist(twist, reverse, duration, cancel, options = {}) {
1771
2592
  let qa;
1772
2593
  if (this._draggingTwist) {
1773
2594
  this._twistGroup = this._draggingTwist.group;
@@ -1783,7 +2604,7 @@ var WebGLArcanumCube = class extends ArcanumCube {
1783
2604
  qb.setFromAxisAngle(new THREE3.Vector3(axis[0], axis[1], axis[2]), rad);
1784
2605
  }
1785
2606
  const params = { t: 0 };
1786
- const tween = new TWEEN.Tween(params).to({ t: 1 }, duration).easing(TWEEN.Easing.Quartic.Out).onUpdate(() => {
2607
+ const easing = new Tween(params).to({ t: 1 }, duration).easing(Easing.Quartic.Out).onUpdate(() => {
1787
2608
  if (!this._twistGroup) {
1788
2609
  this._twistGroup = this._reconstructGroups(twist);
1789
2610
  }
@@ -1803,15 +2624,17 @@ var WebGLArcanumCube = class extends ArcanumCube {
1803
2624
  if (!cancel) {
1804
2625
  super.twist(twist, reverse);
1805
2626
  }
1806
- this._tweens.remove(tween);
2627
+ this._easings.remove(easing);
1807
2628
  options.onTwisted && options.onTwisted(this, twist, 1, 1);
1808
2629
  options.onComplete && options.onComplete(this);
1809
- if (this._config.autoReset && this.isSolved()) this.reset(0);
2630
+ if (options.onSolved && this.isSolved()) {
2631
+ options.onSolved(this);
2632
+ }
1810
2633
  });
1811
- return tween;
2634
+ return easing;
1812
2635
  }
1813
- updateTweens() {
1814
- this._tweens.update();
2636
+ update() {
2637
+ this._easings.update();
1815
2638
  }
1816
2639
  // set color of core lights
1817
2640
  setCoreLightColor(color) {
@@ -1858,5 +2681,6 @@ export {
1858
2681
  getNextStickerColors,
1859
2682
  getRandomTwistList,
1860
2683
  getStickerIndex,
1861
- getStickerPermutationGroup
2684
+ getStickerPermutationGroup,
2685
+ loadDefaultLogoTexture
1862
2686
  };