sonolus-next-rush-engine 1.0.2 → 1.0.3
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 +20 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/extended/convert.js
CHANGED
|
@@ -143,6 +143,9 @@ function getNum(e, name, def = 0) {
|
|
|
143
143
|
const val = getField(e, name);
|
|
144
144
|
return typeof val === 'number' ? val : def;
|
|
145
145
|
}
|
|
146
|
+
function nearlyEqual(a, b) {
|
|
147
|
+
return Math.abs(a - b) < 1e-6;
|
|
148
|
+
}
|
|
146
149
|
function resolveOriginal(ext, ref) {
|
|
147
150
|
if (typeof ref === 'number')
|
|
148
151
|
return ext.get(ref);
|
|
@@ -234,12 +237,28 @@ export const extendedToLevelData = (data, offset = 0) => {
|
|
|
234
237
|
return notesByName.get(ref);
|
|
235
238
|
return undefined;
|
|
236
239
|
}
|
|
240
|
+
function shouldUseStartAsHead(startRef, headRef) {
|
|
241
|
+
if (startRef === headRef)
|
|
242
|
+
return false;
|
|
243
|
+
const start = resolveOriginal(ext, startRef);
|
|
244
|
+
const head = resolveOriginal(ext, headRef);
|
|
245
|
+
if (!start || !head)
|
|
246
|
+
return false;
|
|
247
|
+
if (head.archetype !== 'HiddenSlideStartNote')
|
|
248
|
+
return false;
|
|
249
|
+
if (!['NormalSlideStartNote', 'CriticalSlideStartNote'].includes(start.archetype))
|
|
250
|
+
return false;
|
|
251
|
+
return (nearlyEqual(getNum(start, '#BEAT'), getNum(head, '#BEAT')) &&
|
|
252
|
+
nearlyEqual(getNum(start, 'lane'), getNum(head, 'lane')) &&
|
|
253
|
+
nearlyEqual(getNum(start, 'size'), getNum(head, 'size')));
|
|
254
|
+
}
|
|
237
255
|
for (const { idx, e } of ext.connectors) {
|
|
238
256
|
const startRef = getField(e, 'start');
|
|
239
257
|
const headRef = getField(e, 'head');
|
|
240
|
-
const
|
|
258
|
+
const rawHead = getNote(headRef);
|
|
241
259
|
const tail = getNote(getField(e, 'tail'));
|
|
242
260
|
const segmentHead = getNote(startRef);
|
|
261
|
+
const head = shouldUseStartAsHead(startRef, headRef) ? segmentHead : rawHead;
|
|
243
262
|
const endRef = getField(e, 'end');
|
|
244
263
|
let segmentTail = getNote(endRef);
|
|
245
264
|
if (!segmentTail) {
|
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.3";
|
|
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.3';
|
|
69
69
|
export const databaseEngineItem = {
|
|
70
70
|
name: 'next-rush',
|
|
71
71
|
version: 13,
|