sonolus-next-rush-engine 1.0.13 → 1.0.15

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.
@@ -384,27 +384,6 @@ export const extendedToLevelData = (data, offset = 0) => {
384
384
  nearlyEqual(getNum(start, 'lane'), getNum(head, 'lane')) &&
385
385
  nearlyEqual(getNum(start, 'size'), getNum(head, 'size')));
386
386
  }
387
- function findExistingConnectorSplitNote(beat, lane, size, tsg) {
388
- const splitTsg = tsg ?? defaultTsg;
389
- for (const { idx, e } of ext.notes) {
390
- const note = notesByIndex.get(idx);
391
- if (!note)
392
- continue;
393
- if (getField(e, 'attach') !== undefined)
394
- continue;
395
- if (!nearlyEqual(getNum(e, '#BEAT'), beat))
396
- continue;
397
- if (!nearlyEqual(getNum(e, 'lane'), lane))
398
- continue;
399
- if (!nearlyEqual(getNum(e, 'size'), size))
400
- continue;
401
- const noteTsg = getTSG(getField(e, 'timeScaleGroup')) ?? defaultTsg;
402
- if (noteTsg !== splitTsg)
403
- continue;
404
- return note;
405
- }
406
- return undefined;
407
- }
408
387
  function createConnectorAnchor(beat, lane, size, tsg, kind) {
409
388
  const anchor = new EntityBuilder('AnchorNote');
410
389
  anchor.set('#BEAT', beat);
@@ -466,8 +445,7 @@ export const extendedToLevelData = (data, offset = 0) => {
466
445
  const easedFrac = applyEase(ease, frac);
467
446
  const lane = lerp(headLane, tailLane, easedFrac);
468
447
  const size = lerp(headSize, tailSize, easedFrac);
469
- return (findExistingConnectorSplitNote(beat, lane, size, tsg) ??
470
- createConnectorAnchor(beat, lane, size, tsg, kind));
448
+ return createConnectorAnchor(beat, lane, size, tsg, kind);
471
449
  });
472
450
  }
473
451
  function isReverseHiddenPopConnector(headOriginal, tailOriginal) {
@@ -504,14 +482,21 @@ export const extendedToLevelData = (data, offset = 0) => {
504
482
  visit(tailRef);
505
483
  return ultimateTailRef;
506
484
  }
485
+ function setInferredActiveHead(note, activeHead) {
486
+ if (note === activeHead)
487
+ return;
488
+ if (note.refs.activeHead)
489
+ return;
490
+ note.set('activeHead', activeHead);
491
+ }
507
492
  for (const { idx, e } of ext.connectors) {
508
493
  const startRef = getField(e, 'start');
509
494
  const headRef = getField(e, 'head');
510
495
  const tailRef = getField(e, 'tail');
511
- const rawHead = getNote(headRef);
512
496
  const tail = getNote(tailRef);
513
497
  const rawHeadOriginal = resolveOriginal(ext, headRef);
514
498
  const tailOriginal = resolveOriginal(ext, tailRef);
499
+ const rawHead = getNote(headRef);
515
500
  const activeHead = getNote(startRef);
516
501
  const usesStartAsHead = shouldUseStartAsHead(startRef, headRef);
517
502
  const head = usesStartAsHead ? activeHead : rawHead;
@@ -579,6 +564,10 @@ export const extendedToLevelData = (data, offset = 0) => {
579
564
  tail.set('segmentKind', kind);
580
565
  tail.set('segmentAlpha', 1);
581
566
  activeHead.set('segmentKind', kind);
567
+ for (const segmentNote of segmentNotes) {
568
+ setInferredActiveHead(segmentNote, activeHead);
569
+ }
570
+ setInferredActiveHead(activeTail, activeHead);
582
571
  connectorsByIndex.set(idx, connectorLink);
583
572
  if (e.name)
584
573
  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.13";
10
+ export declare const version = "1.0.15";
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.13';
68
+ export const version = '1.0.15';
69
69
  export const databaseEngineItem = {
70
70
  name: 'next-rush',
71
71
  version: 13,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sonolus-next-rush-engine",
3
- "version": "1.0.13",
3
+ "version": "1.0.15",
4
4
  "description": "Perspective-lane rhythm game for Sonolus",
5
5
  "author": "Hyeon2",
6
6
  "repository": {