sonolus-next-rush-engine 1.0.6 → 1.0.7
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/extended/convert.js +22 -9
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/extended/convert.js
CHANGED
|
@@ -87,7 +87,7 @@ const guideKindMapping = {
|
|
|
87
87
|
6: ConnectorKind.GUIDE_CYAN,
|
|
88
88
|
7: ConnectorKind.GUIDE_BLACK,
|
|
89
89
|
};
|
|
90
|
-
const
|
|
90
|
+
const LEGACY_HIDDEN_POP_NOTE_SPEED = 10;
|
|
91
91
|
const LEGACY_MIN_HIDDEN_POP_WINDOW = 1 / 30;
|
|
92
92
|
class ExtData {
|
|
93
93
|
constructor(entities) {
|
|
@@ -157,6 +157,9 @@ function unlerp(a, b, x) {
|
|
|
157
157
|
function clamp01(x) {
|
|
158
158
|
return Math.min(1, Math.max(0, x));
|
|
159
159
|
}
|
|
160
|
+
function legacyNoteDuration(noteSpeed) {
|
|
161
|
+
return lerp(0.35, 4, unlerp(12, 1, noteSpeed) ** 1.31);
|
|
162
|
+
}
|
|
160
163
|
function applyEase(type, x) {
|
|
161
164
|
const t = clamp01(x);
|
|
162
165
|
switch (type) {
|
|
@@ -472,7 +475,8 @@ export const extendedToLevelData = (data, offset = 0) => {
|
|
|
472
475
|
function getLegacyHiddenPopWindow(headOriginal, tailOriginal) {
|
|
473
476
|
const headTime = beatToTime(getNum(headOriginal, '#BEAT'));
|
|
474
477
|
const tailTime = beatToTime(getNum(tailOriginal, '#BEAT'));
|
|
475
|
-
|
|
478
|
+
const noteDuration = legacyNoteDuration(LEGACY_HIDDEN_POP_NOTE_SPEED);
|
|
479
|
+
return Math.max(LEGACY_MIN_HIDDEN_POP_WINDOW, noteDuration - (headTime - tailTime));
|
|
476
480
|
}
|
|
477
481
|
for (const { idx, e } of ext.connectors) {
|
|
478
482
|
const startRef = getField(e, 'start');
|
|
@@ -514,6 +518,7 @@ export const extendedToLevelData = (data, offset = 0) => {
|
|
|
514
518
|
const ease = easeTypeMapping[getNum(e, 'ease')] ?? EaseType.LINEAR;
|
|
515
519
|
const tsg = headOriginal ? getTSG(getField(headOriginal, 'timeScaleGroup')) : undefined;
|
|
516
520
|
const reverseHiddenPopConnector = isReverseHiddenPopConnector(rawHeadOriginal, tailOriginal);
|
|
521
|
+
const hasActiveSlide = !reverseHiddenPopConnector;
|
|
517
522
|
const splitAnchors = headOriginal && tailOriginal && !reverseHiddenPopConnector
|
|
518
523
|
? getConnectorSplitAnchors(headOriginal, tailOriginal, tsg, kind, ease)
|
|
519
524
|
: [];
|
|
@@ -530,8 +535,10 @@ export const extendedToLevelData = (data, offset = 0) => {
|
|
|
530
535
|
connector.set('tail', tail);
|
|
531
536
|
connector.set('segmentHead', segmentHead);
|
|
532
537
|
connector.set('segmentTail', tail);
|
|
533
|
-
|
|
534
|
-
|
|
538
|
+
if (hasActiveSlide) {
|
|
539
|
+
connector.set('activeHead', activeHead);
|
|
540
|
+
connector.set('activeTail', activeTail);
|
|
541
|
+
}
|
|
535
542
|
finalEntities.push(connector);
|
|
536
543
|
}
|
|
537
544
|
else {
|
|
@@ -543,16 +550,20 @@ export const extendedToLevelData = (data, offset = 0) => {
|
|
|
543
550
|
connector.set('tail', segmentTail);
|
|
544
551
|
connector.set('segmentHead', segmentHead);
|
|
545
552
|
connector.set('segmentTail', segmentTail);
|
|
546
|
-
|
|
547
|
-
|
|
553
|
+
if (hasActiveSlide) {
|
|
554
|
+
connector.set('activeHead', activeHead);
|
|
555
|
+
connector.set('activeTail', activeTail);
|
|
556
|
+
}
|
|
548
557
|
finalEntities.push(connector);
|
|
549
558
|
}
|
|
550
559
|
}
|
|
551
560
|
const connectorLink = new EntityBuilder('Connector');
|
|
552
561
|
connectorLink.set('head', head);
|
|
553
562
|
connectorLink.set('tail', tail);
|
|
554
|
-
|
|
555
|
-
|
|
563
|
+
if (hasActiveSlide) {
|
|
564
|
+
connectorLink.set('activeHead', activeHead);
|
|
565
|
+
connectorLink.set('activeTail', activeTail);
|
|
566
|
+
}
|
|
556
567
|
for (const segmentHead of segmentNotes.slice(0, -1)) {
|
|
557
568
|
segmentHead.set('connectorEase', segmentEase);
|
|
558
569
|
segmentHead.set('segmentKind', kind);
|
|
@@ -560,7 +571,9 @@ export const extendedToLevelData = (data, offset = 0) => {
|
|
|
560
571
|
}
|
|
561
572
|
tail.set('segmentKind', kind);
|
|
562
573
|
tail.set('segmentAlpha', 1);
|
|
563
|
-
|
|
574
|
+
if (hasActiveSlide) {
|
|
575
|
+
activeHead.set('segmentKind', kind);
|
|
576
|
+
}
|
|
564
577
|
connectorsByIndex.set(idx, connectorLink);
|
|
565
578
|
if (e.name)
|
|
566
579
|
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.7";
|
|
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.7';
|
|
69
69
|
export const databaseEngineItem = {
|
|
70
70
|
name: 'next-rush',
|
|
71
71
|
version: 13,
|