sonolus-next-rush-engine 1.0.6 → 1.0.8
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.
- package/dist/EnginePlayData +0 -0
- package/dist/EngineWatchData +0 -0
- package/dist/extended/convert.js +18 -41
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/EnginePlayData
CHANGED
|
Binary file
|
package/dist/EngineWatchData
CHANGED
|
Binary file
|
package/dist/extended/convert.js
CHANGED
|
@@ -87,8 +87,6 @@ const guideKindMapping = {
|
|
|
87
87
|
6: ConnectorKind.GUIDE_CYAN,
|
|
88
88
|
7: ConnectorKind.GUIDE_BLACK,
|
|
89
89
|
};
|
|
90
|
-
const LEGACY_DEFAULT_NOTE_DURATION = 2;
|
|
91
|
-
const LEGACY_MIN_HIDDEN_POP_WINDOW = 1 / 30;
|
|
92
90
|
class ExtData {
|
|
93
91
|
constructor(entities) {
|
|
94
92
|
this.byArch = new Map();
|
|
@@ -336,28 +334,6 @@ export const extendedToLevelData = (data, offset = 0) => {
|
|
|
336
334
|
}
|
|
337
335
|
return scaledTime;
|
|
338
336
|
}
|
|
339
|
-
function createHideUntilTimescaleGroup(showBeat) {
|
|
340
|
-
const group = new EntityBuilder('#TIMESCALE_GROUP');
|
|
341
|
-
const hide = new EntityBuilder('#TIMESCALE_CHANGE');
|
|
342
|
-
const show = new EntityBuilder('#TIMESCALE_CHANGE');
|
|
343
|
-
const hideBeat = Math.min(0, showBeat - 1e-6);
|
|
344
|
-
hide.set('#BEAT', hideBeat);
|
|
345
|
-
hide.set('#TIMESCALE', 1);
|
|
346
|
-
hide.set('#TIMESCALE_SKIP', 0);
|
|
347
|
-
hide.set('#TIMESCALE_GROUP', group);
|
|
348
|
-
hide.set('#TIMESCALE_EASE', 0);
|
|
349
|
-
hide.set('hideNotes', 1);
|
|
350
|
-
hide.set('next', show);
|
|
351
|
-
show.set('#BEAT', showBeat);
|
|
352
|
-
show.set('#TIMESCALE', 1);
|
|
353
|
-
show.set('#TIMESCALE_SKIP', 0);
|
|
354
|
-
show.set('#TIMESCALE_GROUP', group);
|
|
355
|
-
show.set('#TIMESCALE_EASE', 0);
|
|
356
|
-
show.set('hideNotes', 0);
|
|
357
|
-
group.set('first', hide);
|
|
358
|
-
finalEntities.push(group, hide, show);
|
|
359
|
-
return group;
|
|
360
|
-
}
|
|
361
337
|
const notesByIndex = new Map();
|
|
362
338
|
const notesByName = new Map();
|
|
363
339
|
const connectorsByIndex = new Map();
|
|
@@ -469,11 +445,6 @@ export const extendedToLevelData = (data, offset = 0) => {
|
|
|
469
445
|
return false;
|
|
470
446
|
return getNum(tailOriginal, '#BEAT') < getNum(headOriginal, '#BEAT') - 1e-6;
|
|
471
447
|
}
|
|
472
|
-
function getLegacyHiddenPopWindow(headOriginal, tailOriginal) {
|
|
473
|
-
const headTime = beatToTime(getNum(headOriginal, '#BEAT'));
|
|
474
|
-
const tailTime = beatToTime(getNum(tailOriginal, '#BEAT'));
|
|
475
|
-
return Math.max(LEGACY_MIN_HIDDEN_POP_WINDOW, LEGACY_DEFAULT_NOTE_DURATION - (headTime - tailTime));
|
|
476
|
-
}
|
|
477
448
|
for (const { idx, e } of ext.connectors) {
|
|
478
449
|
const startRef = getField(e, 'start');
|
|
479
450
|
const headRef = getField(e, 'head');
|
|
@@ -514,24 +485,24 @@ export const extendedToLevelData = (data, offset = 0) => {
|
|
|
514
485
|
const ease = easeTypeMapping[getNum(e, 'ease')] ?? EaseType.LINEAR;
|
|
515
486
|
const tsg = headOriginal ? getTSG(getField(headOriginal, 'timeScaleGroup')) : undefined;
|
|
516
487
|
const reverseHiddenPopConnector = isReverseHiddenPopConnector(rawHeadOriginal, tailOriginal);
|
|
488
|
+
const hasActiveSlide = !reverseHiddenPopConnector;
|
|
517
489
|
const splitAnchors = headOriginal && tailOriginal && !reverseHiddenPopConnector
|
|
518
490
|
? getConnectorSplitAnchors(headOriginal, tailOriginal, tsg, kind, ease)
|
|
519
491
|
: [];
|
|
520
492
|
const segmentEase = splitAnchors.length > 0 ? EaseType.LINEAR : ease;
|
|
521
493
|
const segmentNotes = [head, ...splitAnchors, tail];
|
|
522
494
|
if (reverseHiddenPopConnector && rawHeadOriginal && tailOriginal) {
|
|
523
|
-
const
|
|
524
|
-
const showTime = beatToTime(getNum(tailOriginal, '#BEAT')) - popWindow;
|
|
525
|
-
const showBeat = timeToBeat(showTime);
|
|
526
|
-
const gateTsg = createHideUntilTimescaleGroup(showBeat);
|
|
527
|
-
const segmentHead = createConnectorAnchor(getNum(rawHeadOriginal, '#BEAT'), getNum(rawHeadOriginal, 'lane'), getNum(rawHeadOriginal, 'size'), gateTsg, kind);
|
|
495
|
+
const segmentHead = createConnectorAnchor(getNum(rawHeadOriginal, '#BEAT'), getNum(rawHeadOriginal, 'lane'), getNum(rawHeadOriginal, 'size'), getTSG(getField(rawHeadOriginal, 'timeScaleGroup')) ?? tsg, kind);
|
|
528
496
|
const connector = new EntityBuilder('Connector');
|
|
529
497
|
connector.set('head', head);
|
|
530
498
|
connector.set('tail', tail);
|
|
531
499
|
connector.set('segmentHead', segmentHead);
|
|
532
500
|
connector.set('segmentTail', tail);
|
|
533
|
-
connector.set('
|
|
534
|
-
|
|
501
|
+
connector.set('legacyHiddenPop', 1);
|
|
502
|
+
if (hasActiveSlide) {
|
|
503
|
+
connector.set('activeHead', activeHead);
|
|
504
|
+
connector.set('activeTail', activeTail);
|
|
505
|
+
}
|
|
535
506
|
finalEntities.push(connector);
|
|
536
507
|
}
|
|
537
508
|
else {
|
|
@@ -543,16 +514,20 @@ export const extendedToLevelData = (data, offset = 0) => {
|
|
|
543
514
|
connector.set('tail', segmentTail);
|
|
544
515
|
connector.set('segmentHead', segmentHead);
|
|
545
516
|
connector.set('segmentTail', segmentTail);
|
|
546
|
-
|
|
547
|
-
|
|
517
|
+
if (hasActiveSlide) {
|
|
518
|
+
connector.set('activeHead', activeHead);
|
|
519
|
+
connector.set('activeTail', activeTail);
|
|
520
|
+
}
|
|
548
521
|
finalEntities.push(connector);
|
|
549
522
|
}
|
|
550
523
|
}
|
|
551
524
|
const connectorLink = new EntityBuilder('Connector');
|
|
552
525
|
connectorLink.set('head', head);
|
|
553
526
|
connectorLink.set('tail', tail);
|
|
554
|
-
|
|
555
|
-
|
|
527
|
+
if (hasActiveSlide) {
|
|
528
|
+
connectorLink.set('activeHead', activeHead);
|
|
529
|
+
connectorLink.set('activeTail', activeTail);
|
|
530
|
+
}
|
|
556
531
|
for (const segmentHead of segmentNotes.slice(0, -1)) {
|
|
557
532
|
segmentHead.set('connectorEase', segmentEase);
|
|
558
533
|
segmentHead.set('segmentKind', kind);
|
|
@@ -560,7 +535,9 @@ export const extendedToLevelData = (data, offset = 0) => {
|
|
|
560
535
|
}
|
|
561
536
|
tail.set('segmentKind', kind);
|
|
562
537
|
tail.set('segmentAlpha', 1);
|
|
563
|
-
|
|
538
|
+
if (hasActiveSlide) {
|
|
539
|
+
activeHead.set('segmentKind', kind);
|
|
540
|
+
}
|
|
564
541
|
connectorsByIndex.set(idx, connectorLink);
|
|
565
542
|
if (e.name)
|
|
566
543
|
connectorsByName.set(e.name, connectorLink);
|
package/dist/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { USC } from './usc/index.js';
|
|
|
7
7
|
export * from './usc/index.js';
|
|
8
8
|
export { type ExtendedEntityData, type ExtendedEntityDataField, extendedToLevelData, mmwsToUSC, susToUSC, ucmmwsToLevelData, uscToLevelData, };
|
|
9
9
|
export declare const convertToLevelData: (input: string | Uint8Array | USC | LevelData, offset?: number) => LevelData;
|
|
10
|
-
export declare const version = "1.0.
|
|
10
|
+
export declare const version = "1.0.8";
|
|
11
11
|
export declare const databaseEngineItem: {
|
|
12
12
|
readonly name: "next-rush";
|
|
13
13
|
readonly version: 13;
|
package/dist/index.js
CHANGED
|
@@ -65,7 +65,7 @@ export const convertToLevelData = (input, offset = 0) => {
|
|
|
65
65
|
}
|
|
66
66
|
return uscToLevelData(usc, offset, true, true);
|
|
67
67
|
};
|
|
68
|
-
export const version = '1.0.
|
|
68
|
+
export const version = '1.0.8';
|
|
69
69
|
export const databaseEngineItem = {
|
|
70
70
|
name: 'next-rush',
|
|
71
71
|
version: 13,
|