sonolus-next-rush-plus-engine 1.7.16 → 1.7.17

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.
Binary file
Binary file
Binary file
@@ -0,0 +1,3 @@
1
+ import { LevelData } from '@sonolus/core';
2
+ /** Check if it is chcy Level Data */
3
+ export declare function isExtendedLevelData(data: unknown): data is LevelData;
@@ -0,0 +1,8 @@
1
+ /** Check if it is chcy Level Data */
2
+ export function isExtendedLevelData(data) {
3
+ return (typeof data === 'object' &&
4
+ data !== null &&
5
+ 'entities' in data &&
6
+ Array.isArray(data.entities) &&
7
+ data.entities.some((e) => e.archetype === 'TimeScaleGroup'));
8
+ }
@@ -9,8 +9,4 @@ export type ExtendedEntityData = {
9
9
  name?: string;
10
10
  data: ExtendedEntityDataField[];
11
11
  };
12
- export type ExtendedLevelData = {
13
- bgmOffset: number;
14
- entities: ExtendedEntityData[];
15
- };
16
- export declare const extendedToLevelData: (data: ExtendedLevelData, offset?: number) => LevelData | undefined;
12
+ export declare const extendedToLevelData: (data: LevelData, offset?: number) => LevelData | undefined;
package/dist/index.d.ts CHANGED
@@ -4,11 +4,11 @@ import { ucmmwsToLevelData } from './mmw/convert.js';
4
4
  import { susToUSC } from './sus/convert.js';
5
5
  import { uscToLevelData } from './usc/convert.js';
6
6
  import { USC } from './usc/index.js';
7
- import { extendedToLevelData, type ExtendedEntityData, type ExtendedLevelData, type ExtendedEntityDataField } from './extended/convert.js';
8
- export { susToUSC, mmwsToUSC, uscToLevelData, ucmmwsToLevelData, extendedToLevelData, type ExtendedEntityData, type ExtendedLevelData, type ExtendedEntityDataField, };
7
+ import { extendedToLevelData, type ExtendedEntityData, type ExtendedEntityDataField } from './extended/convert.js';
8
+ export { susToUSC, mmwsToUSC, uscToLevelData, ucmmwsToLevelData, extendedToLevelData, type ExtendedEntityData, type ExtendedEntityDataField, };
9
9
  export * from './usc/index.js';
10
10
  export declare const convertToLevelData: (input: string | Uint8Array | USC | LevelData, offset?: number) => LevelData;
11
- export declare const version = "1.7.16";
11
+ export declare const version = "1.7.17";
12
12
  export declare const databaseEngineItem: {
13
13
  readonly name: "next-rush-plus";
14
14
  readonly version: 13;
package/dist/index.js CHANGED
@@ -6,11 +6,17 @@ import { uscToLevelData } from './usc/convert.js';
6
6
  import { isUSC } from './usc/analyze.js';
7
7
  import { isLevelData } from './LevelData/analyze.js';
8
8
  import { isPJSK } from './pjsk/analyze.js';
9
+ import { isExtendedLevelData } from './extended/analyze.js';
9
10
  import { pjskToUSC } from './pjsk/convert.js';
10
11
  import { extendedToLevelData, } from './extended/convert.js';
11
12
  export { susToUSC, mmwsToUSC, uscToLevelData, ucmmwsToLevelData, extendedToLevelData, };
12
13
  export * from './usc/index.js';
13
14
  export const convertToLevelData = (input, offset = 0) => {
15
+ if (isExtendedLevelData(input)) {
16
+ const converted = extendedToLevelData(input, offset);
17
+ if (converted)
18
+ return converted;
19
+ }
14
20
  if (isLevelData(input)) {
15
21
  return input;
16
22
  }
@@ -37,6 +43,11 @@ export const convertToLevelData = (input, offset = 0) => {
37
43
  else if (typeof input === 'string') {
38
44
  try {
39
45
  const parsed = JSON.parse(input);
46
+ if (isExtendedLevelData(parsed)) {
47
+ const converted = extendedToLevelData(parsed, offset);
48
+ if (converted)
49
+ return converted;
50
+ }
40
51
  if (isLevelData(parsed)) {
41
52
  return parsed;
42
53
  }
@@ -60,7 +71,7 @@ export const convertToLevelData = (input, offset = 0) => {
60
71
  }
61
72
  return uscToLevelData(usc, offset, true, true);
62
73
  };
63
- export const version = '1.7.16';
74
+ export const version = '1.7.17';
64
75
  export const databaseEngineItem = {
65
76
  name: 'next-rush-plus',
66
77
  version: 13,
@@ -348,9 +348,11 @@ export const uscToLevelData = (usc, offset = 0, smoothGuideFade = false, useGuid
348
348
  conn.data['segmentTail'] = prevJointIntermediate;
349
349
  }
350
350
  }
351
- for (const connectorIntermediate of connectors) {
352
- connectorIntermediate.data['activeHead'] = headNoteIntermediate;
353
- connectorIntermediate.data['activeTail'] = prevJointIntermediate;
351
+ if (slideNote.type === 'slide') {
352
+ for (const connectorIntermediate of connectors) {
353
+ connectorIntermediate.data['activeHead'] = headNoteIntermediate;
354
+ connectorIntermediate.data['activeTail'] = prevJointIntermediate;
355
+ }
354
356
  }
355
357
  }
356
358
  for (const guideNote of guideNotes) {
@@ -406,8 +408,6 @@ export const uscToLevelData = (usc, offset = 0, smoothGuideFade = false, useGuid
406
408
  for (const connectorIntermediate of guideConnectors) {
407
409
  connectorIntermediate.data['segmentHead'] = headMidpointIntermediate;
408
410
  connectorIntermediate.data['segmentTail'] = prevMidpointIntermediate;
409
- connectorIntermediate.data['activeHead'] = headMidpointIntermediate;
410
- connectorIntermediate.data['activeTail'] = prevMidpointIntermediate;
411
411
  }
412
412
  if (!smoothGuideFade) {
413
413
  switch (guideNote.fade) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sonolus-next-rush-plus-engine",
3
- "version": "1.7.16",
3
+ "version": "1.7.17",
4
4
  "description": "A new Project Sekai inspired engine for Sonolus",
5
5
  "author": "Hyeon2",
6
6
  "repository": {