sonolus-next-rush-engine 1.0.7 → 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 +2 -38
- 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_HIDDEN_POP_NOTE_SPEED = 10;
|
|
91
|
-
const LEGACY_MIN_HIDDEN_POP_WINDOW = 1 / 30;
|
|
92
90
|
class ExtData {
|
|
93
91
|
constructor(entities) {
|
|
94
92
|
this.byArch = new Map();
|
|
@@ -157,9 +155,6 @@ function unlerp(a, b, x) {
|
|
|
157
155
|
function clamp01(x) {
|
|
158
156
|
return Math.min(1, Math.max(0, x));
|
|
159
157
|
}
|
|
160
|
-
function legacyNoteDuration(noteSpeed) {
|
|
161
|
-
return lerp(0.35, 4, unlerp(12, 1, noteSpeed) ** 1.31);
|
|
162
|
-
}
|
|
163
158
|
function applyEase(type, x) {
|
|
164
159
|
const t = clamp01(x);
|
|
165
160
|
switch (type) {
|
|
@@ -339,28 +334,6 @@ export const extendedToLevelData = (data, offset = 0) => {
|
|
|
339
334
|
}
|
|
340
335
|
return scaledTime;
|
|
341
336
|
}
|
|
342
|
-
function createHideUntilTimescaleGroup(showBeat) {
|
|
343
|
-
const group = new EntityBuilder('#TIMESCALE_GROUP');
|
|
344
|
-
const hide = new EntityBuilder('#TIMESCALE_CHANGE');
|
|
345
|
-
const show = new EntityBuilder('#TIMESCALE_CHANGE');
|
|
346
|
-
const hideBeat = Math.min(0, showBeat - 1e-6);
|
|
347
|
-
hide.set('#BEAT', hideBeat);
|
|
348
|
-
hide.set('#TIMESCALE', 1);
|
|
349
|
-
hide.set('#TIMESCALE_SKIP', 0);
|
|
350
|
-
hide.set('#TIMESCALE_GROUP', group);
|
|
351
|
-
hide.set('#TIMESCALE_EASE', 0);
|
|
352
|
-
hide.set('hideNotes', 1);
|
|
353
|
-
hide.set('next', show);
|
|
354
|
-
show.set('#BEAT', showBeat);
|
|
355
|
-
show.set('#TIMESCALE', 1);
|
|
356
|
-
show.set('#TIMESCALE_SKIP', 0);
|
|
357
|
-
show.set('#TIMESCALE_GROUP', group);
|
|
358
|
-
show.set('#TIMESCALE_EASE', 0);
|
|
359
|
-
show.set('hideNotes', 0);
|
|
360
|
-
group.set('first', hide);
|
|
361
|
-
finalEntities.push(group, hide, show);
|
|
362
|
-
return group;
|
|
363
|
-
}
|
|
364
337
|
const notesByIndex = new Map();
|
|
365
338
|
const notesByName = new Map();
|
|
366
339
|
const connectorsByIndex = new Map();
|
|
@@ -472,12 +445,6 @@ export const extendedToLevelData = (data, offset = 0) => {
|
|
|
472
445
|
return false;
|
|
473
446
|
return getNum(tailOriginal, '#BEAT') < getNum(headOriginal, '#BEAT') - 1e-6;
|
|
474
447
|
}
|
|
475
|
-
function getLegacyHiddenPopWindow(headOriginal, tailOriginal) {
|
|
476
|
-
const headTime = beatToTime(getNum(headOriginal, '#BEAT'));
|
|
477
|
-
const tailTime = beatToTime(getNum(tailOriginal, '#BEAT'));
|
|
478
|
-
const noteDuration = legacyNoteDuration(LEGACY_HIDDEN_POP_NOTE_SPEED);
|
|
479
|
-
return Math.max(LEGACY_MIN_HIDDEN_POP_WINDOW, noteDuration - (headTime - tailTime));
|
|
480
|
-
}
|
|
481
448
|
for (const { idx, e } of ext.connectors) {
|
|
482
449
|
const startRef = getField(e, 'start');
|
|
483
450
|
const headRef = getField(e, 'head');
|
|
@@ -525,16 +492,13 @@ export const extendedToLevelData = (data, offset = 0) => {
|
|
|
525
492
|
const segmentEase = splitAnchors.length > 0 ? EaseType.LINEAR : ease;
|
|
526
493
|
const segmentNotes = [head, ...splitAnchors, tail];
|
|
527
494
|
if (reverseHiddenPopConnector && rawHeadOriginal && tailOriginal) {
|
|
528
|
-
const
|
|
529
|
-
const showTime = beatToTime(getNum(tailOriginal, '#BEAT')) - popWindow;
|
|
530
|
-
const showBeat = timeToBeat(showTime);
|
|
531
|
-
const gateTsg = createHideUntilTimescaleGroup(showBeat);
|
|
532
|
-
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);
|
|
533
496
|
const connector = new EntityBuilder('Connector');
|
|
534
497
|
connector.set('head', head);
|
|
535
498
|
connector.set('tail', tail);
|
|
536
499
|
connector.set('segmentHead', segmentHead);
|
|
537
500
|
connector.set('segmentTail', tail);
|
|
501
|
+
connector.set('legacyHiddenPop', 1);
|
|
538
502
|
if (hasActiveSlide) {
|
|
539
503
|
connector.set('activeHead', activeHead);
|
|
540
504
|
connector.set('activeTail', activeTail);
|
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,
|