@rian8337/osu-droid-replay-analyzer 3.0.0-beta.3 → 3.0.0-beta.4

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/index.js CHANGED
@@ -29,6 +29,27 @@ function _interopNamespace(e) {
29
29
 
30
30
  var javaDeserialization__namespace = /*#__PURE__*/_interopNamespace(javaDeserialization);
31
31
 
32
+ /**
33
+ * Movement types of a cursor in an osu!droid replay.
34
+ *
35
+ * The cursor movement is represented as a player's action on the screen.
36
+ */
37
+ exports.movementType = void 0;
38
+ (function (movementType) {
39
+ /**
40
+ * The player places their finger on the screen.
41
+ */
42
+ movementType[movementType["DOWN"] = 0] = "DOWN";
43
+ /**
44
+ * The player drags their finger on the screen.
45
+ */
46
+ movementType[movementType["MOVE"] = 1] = "MOVE";
47
+ /**
48
+ * The player releases their finger from the screen.
49
+ */
50
+ movementType[movementType["UP"] = 2] = "UP";
51
+ })(exports.movementType || (exports.movementType = {}));
52
+
32
53
  /**
33
54
  * Represents a cursor's occurrence.
34
55
  */
@@ -52,21 +73,218 @@ class CursorOccurrence {
52
73
  }
53
74
  }
54
75
 
76
+ /**
77
+ * Represents a group of cursor occurrences representing a cursor instance's
78
+ * movement when a player places their finger on the screen.
79
+ */
80
+ class CursorOccurrenceGroup {
81
+ /**
82
+ * The cursor occurrence of movement type `movementType.DOWN`.
83
+ */
84
+ get down() {
85
+ return this._down;
86
+ }
87
+ /**
88
+ * The cursor occurrence of movement type `movementType.DOWN`.
89
+ */
90
+ set down(value) {
91
+ if (value.id !== exports.movementType.DOWN) {
92
+ throw new TypeError("Attempting to set the down cursor occurrence to one with different movement type.");
93
+ }
94
+ this._down = value;
95
+ }
96
+ /**
97
+ * The cursor occurrences of movement type `movementType.MOVE`.
98
+ */
99
+ get moves() {
100
+ return this._moves;
101
+ }
102
+ /**
103
+ * The cursor occurrence of movement type `movementType.UP`.
104
+ *
105
+ * May not exist, such as when the player holds their cursor until the end of a beatmap.
106
+ */
107
+ get up() {
108
+ return this._up;
109
+ }
110
+ /**
111
+ * The cursor occurrence of movement type `movementType.UP`.
112
+ *
113
+ * May not exist, such as when the player holds their cursor until the end of a beatmap.
114
+ */
115
+ set up(value) {
116
+ if (value && value.id !== exports.movementType.UP) {
117
+ throw new TypeError("Attempting to set the up cursor occurrence to one with different movement type.");
118
+ }
119
+ this._up = value;
120
+ }
121
+ /**
122
+ * The time at which this cursor occurrence group starts.
123
+ */
124
+ get startTime() {
125
+ return this._down.time;
126
+ }
127
+ /**
128
+ * The time at which this cursor occurrence group ends.
129
+ */
130
+ get endTime() {
131
+ if (this._up) {
132
+ return this._up.time;
133
+ }
134
+ return this._moves.at(-1)?.time ?? this._down.time;
135
+ }
136
+ /**
137
+ * All cursor occurrences in this group.
138
+ *
139
+ * This iterates all occurrences and as such should be used sparingly or stored locally.
140
+ */
141
+ get allOccurrences() {
142
+ const cursors = [this._down, ...this._moves];
143
+ if (this._up) {
144
+ cursors.push(this._up);
145
+ }
146
+ return cursors;
147
+ }
148
+ /**
149
+ * The cursor occurrence of movement type `movementType.DOWN`.
150
+ */
151
+ _down;
152
+ /**
153
+ * The cursor occurrences of movement type `movementType.MOVE`.
154
+ */
155
+ _moves;
156
+ /**
157
+ * The cursor occurrence of movement type `movementType.UP`.
158
+ *
159
+ * May not exist, such as when the player holds their cursor until the end of a beatmap.
160
+ */
161
+ _up;
162
+ constructor(down, moves, up) {
163
+ this._down = down;
164
+ this._moves = moves;
165
+ // Re-set down cursor occurrence for checking.
166
+ this.down = down;
167
+ this.up = up;
168
+ }
169
+ /**
170
+ * Determines whether this cursor occurrence group is active at the specified time.
171
+ *
172
+ * @param time The time.
173
+ * @returns Whether this cursor occurrence group is active at the specified time.
174
+ */
175
+ isActiveAt(time) {
176
+ return time >= this.startTime && time <= this.endTime;
177
+ }
178
+ /**
179
+ * Finds the cursor occurrence that is active at a given time.
180
+ *
181
+ * @param time The time.
182
+ * @returns The cursor occurrence at the given time, `null` if not found.
183
+ */
184
+ cursorAt(time) {
185
+ if (!this.isActiveAt(time)) {
186
+ return null;
187
+ }
188
+ if (this._down.time === time) {
189
+ return this._down;
190
+ }
191
+ if (this._up?.time === time) {
192
+ return this._up;
193
+ }
194
+ let l = 0;
195
+ let r = this._moves.length - 2;
196
+ while (l <= r) {
197
+ const pivot = l + ((r - l) >> 1);
198
+ if (this._moves[pivot].time < time) {
199
+ l = pivot + 1;
200
+ }
201
+ else if (this._moves[pivot].time > time) {
202
+ r = pivot - 1;
203
+ }
204
+ else {
205
+ return this._moves[pivot];
206
+ }
207
+ }
208
+ // l will be the first cursor occurrence with time > this._moves[l].time, but we want the one before it
209
+ return this._moves[l - 1];
210
+ }
211
+ }
212
+
55
213
  /**
56
214
  * Represents a cursor instance in an osu!droid replay.
57
215
  *
58
- * Stores cursor movement data in the form of `CursorOccurrence`s.
216
+ * Stores cursor movement data in the form of `CursorOccurrenceGroup`s.
59
217
  *
60
218
  * This is used when analyzing replays using replay analyzer.
61
219
  */
62
220
  class CursorData {
63
221
  /**
64
- * The occurrences of this cursor instance.
222
+ * The occurrence groups of this cursor instance.
65
223
  */
66
- occurrences = [];
224
+ occurrenceGroups = [];
225
+ /**
226
+ * The time at which the first occurrence of this cursor instance occurs.
227
+ *
228
+ * Will return `null` if there are no occurrences.
229
+ */
230
+ get earliestOccurrenceTime() {
231
+ return this.occurrenceGroups.at(0)?.startTime ?? null;
232
+ }
233
+ /**
234
+ * The time at which the latest occurrence of this cursor instance occurs.
235
+ *
236
+ * Will return `null` if there are no occurrences.
237
+ */
238
+ get latestOccurrenceTime() {
239
+ return this.occurrenceGroups.at(-1)?.endTime ?? null;
240
+ }
241
+ /**
242
+ * The amount of cursor occurrences of this cursor instance.
243
+ */
244
+ get totalOccurrences() {
245
+ return this.occurrenceGroups.reduce((a, v) => {
246
+ // Down cursor.
247
+ ++a;
248
+ // Move cursors.
249
+ a += v.moves.length;
250
+ if (v.up) {
251
+ // Up cursor.
252
+ ++a;
253
+ }
254
+ return a;
255
+ }, 0);
256
+ }
257
+ /**
258
+ * All cursor occurrences of this cursor instnace.
259
+ *
260
+ * This iterates all occurrence groups and as such should be used sparingly or stored locally.
261
+ */
262
+ get allOccurrences() {
263
+ return this.occurrenceGroups.flatMap((v) => v.allOccurrences);
264
+ }
67
265
  constructor(values) {
266
+ let downOccurrence = null;
267
+ let moveOccurrences = [];
68
268
  for (let i = 0; i < values.size; ++i) {
69
- this.occurrences.push(new CursorOccurrence(values.time[i], values.x[i], values.y[i], values.id[i]));
269
+ const occurrence = new CursorOccurrence(values.time[i], values.x[i], values.y[i], values.id[i]);
270
+ switch (occurrence.id) {
271
+ case exports.movementType.DOWN:
272
+ downOccurrence = occurrence;
273
+ break;
274
+ case exports.movementType.MOVE:
275
+ moveOccurrences.push(occurrence);
276
+ break;
277
+ case exports.movementType.UP:
278
+ this.occurrenceGroups.push(new CursorOccurrenceGroup(
279
+ // Guaranteed to be non-null.
280
+ downOccurrence, moveOccurrences, occurrence));
281
+ downOccurrence = null;
282
+ moveOccurrences = [];
283
+ }
284
+ }
285
+ // Add the final cursor occurrence group as the loop may not catch it for special cases.
286
+ if (downOccurrence !== null && moveOccurrences.length > 0) {
287
+ this.occurrenceGroups.push(new CursorOccurrenceGroup(downOccurrence, moveOccurrences));
70
288
  }
71
289
  }
72
290
  }
@@ -94,16 +312,6 @@ exports.hitResult = void 0;
94
312
  hitResult[hitResult["RESULT_300"] = 4] = "RESULT_300";
95
313
  })(exports.hitResult || (exports.hitResult = {}));
96
314
 
97
- /**
98
- * Movement type of a cursor in an osu!droid replay.
99
- */
100
- exports.movementType = void 0;
101
- (function (movementType) {
102
- movementType[movementType["DOWN"] = 0] = "DOWN";
103
- movementType[movementType["MOVE"] = 1] = "MOVE";
104
- movementType[movementType["UP"] = 2] = "UP";
105
- })(exports.movementType || (exports.movementType = {}));
106
-
107
315
  /**
108
316
  * Represents a replay data in an osu!droid replay.
109
317
  *
@@ -327,9 +535,17 @@ class ThreeFingerChecker {
327
535
  */
328
536
  breakPointAccurateTimes = [];
329
537
  /**
330
- * A cursor data array that only contains `movementType.DOWN` movement ID occurrences.
538
+ * A cursor occurrence nested array that only contains `movementType.DOWN` movement ID occurrences.
539
+ *
540
+ * Each index represents the cursor index.
331
541
  */
332
542
  downCursorInstances = [];
543
+ /**
544
+ * All cursor occurrences in the replay.
545
+ *
546
+ * Each index represents the cursor index.
547
+ */
548
+ allCursorInstances;
333
549
  /**
334
550
  * Nerf factors from all sections that were three-fingered.
335
551
  */
@@ -341,6 +557,7 @@ class ThreeFingerChecker {
341
557
  constructor(calculator, data) {
342
558
  this.calculator = calculator;
343
559
  this.data = data;
560
+ this.allCursorInstances = data.cursorMovement.map((v) => v.allOccurrences);
344
561
  const stats = new osuBase.MapStats({
345
562
  od: this.calculator.beatmap.difficulty.od,
346
563
  mods: this.calculator.mods.filter((m) => m.isApplicableToDroid() &&
@@ -375,16 +592,14 @@ class ThreeFingerChecker {
375
592
  }
376
593
  this.getAccurateBreakPoints();
377
594
  this.filterCursorInstances();
378
- if (this.downCursorInstances.filter((v) => v.occurrences.length > 0)
379
- .length <= 3) {
595
+ if (this.downCursorInstances.filter((v) => v.length > 0).length <= 3) {
380
596
  return { is3Finger: false, penalty: 1 };
381
597
  }
382
598
  this.getBeatmapSections();
383
599
  this.detectDragPlay();
384
600
  this.getDetailedBeatmapSections();
385
601
  this.preventAccidentalTaps();
386
- if (this.downCursorInstances.filter((v) => v.occurrences.length > 0)
387
- .length <= 3) {
602
+ if (this.downCursorInstances.filter((v) => v.length > 0).length <= 3) {
388
603
  return { is3Finger: false, penalty: 1 };
389
604
  }
390
605
  this.calculateNerfFactors();
@@ -496,27 +711,20 @@ class ThreeFingerChecker {
496
711
  const lastObjectHitTime = objects.at(-1).object.startTime + lastObjectHitWindow;
497
712
  for (let i = 0; i < this.data.cursorMovement.length; ++i) {
498
713
  const cursorInstance = this.data.cursorMovement[i];
499
- const newCursorData = new CursorData({
500
- size: 0,
501
- time: [],
502
- x: [],
503
- y: [],
504
- id: [],
505
- });
506
- for (let j = 0; j < cursorInstance.occurrences.length; ++j) {
507
- if (cursorInstance.occurrences[j].id !== exports.movementType.DOWN) {
508
- continue;
509
- }
510
- const time = cursorInstance.occurrences[j].time;
511
- if (time < firstObjectHitTime || time > lastObjectHitTime) {
714
+ const validOccurrences = [];
715
+ for (let j = 0; j < cursorInstance.occurrenceGroups.length; ++j) {
716
+ const group = cursorInstance.occurrenceGroups[j];
717
+ if (group.startTime < firstObjectHitTime ||
718
+ group.endTime > lastObjectHitTime) {
512
719
  continue;
513
720
  }
514
- if (this.breakPointAccurateTimes.some((v) => time >= v.startTime && time <= v.endTime)) {
721
+ if (this.breakPointAccurateTimes.some((v) => group.startTime >= v.startTime &&
722
+ group.endTime <= v.endTime)) {
515
723
  continue;
516
724
  }
517
- newCursorData.occurrences.push(new CursorOccurrence(time, cursorInstance.occurrences[j].position.x, cursorInstance.occurrences[j].position.y, cursorInstance.occurrences[j].id));
725
+ validOccurrences.push(group.down);
518
726
  }
519
- this.downCursorInstances.push(newCursorData);
727
+ this.downCursorInstances.push(validOccurrences);
520
728
  }
521
729
  }
522
730
  /**
@@ -600,18 +808,18 @@ class ThreeFingerChecker {
600
808
  const cursorIndexes = [];
601
809
  for (let i = 0; i < this.data.cursorMovement.length; ++i) {
602
810
  const c = this.data.cursorMovement[i];
603
- if (c.occurrences.length === 0) {
811
+ if (c.occurrenceGroups.length === 0) {
604
812
  continue;
605
813
  }
606
814
  // Do not include cursors that don't have an occurence in this section
607
815
  // this speeds up checking process.
608
- if (c.occurrences.filter((v) => v.time >= firstObjectMinHitTime &&
609
- v.time <= lastObjectMaxHitTime).length === 0) {
816
+ if (c.occurrenceGroups.filter((v) => v.startTime >= firstObjectMinHitTime &&
817
+ v.endTime <= lastObjectMaxHitTime).length === 0) {
610
818
  continue;
611
819
  }
612
820
  // If this cursor instance doesn't move, it's not the cursor instance we want.
613
- if (c.occurrences.filter((v) => v.id === exports.movementType.MOVE)
614
- .length === 0) {
821
+ if (c.occurrenceGroups.filter((v) => v.moves.length > 0).length ===
822
+ 0) {
615
823
  continue;
616
824
  }
617
825
  cursorIndexes.push(i);
@@ -648,28 +856,28 @@ class ThreeFingerChecker {
648
856
  // therefore the game emulates the movement between
649
857
  // movementType.MOVE cursors.
650
858
  const hitTime = o.object.startTime + s.accuracy;
651
- const nextHitIndex = c.occurrences.findIndex((v) => v.time >= hitTime);
652
- const hitIndex = nextHitIndex - 1;
653
- if (hitIndex <= -1) {
654
- cursorIndexes[j] = -1;
859
+ const cursorGroup = c.occurrenceGroups.find((v) => v.isActiveAt(hitTime));
860
+ if (!cursorGroup) {
655
861
  continue;
656
862
  }
657
- if (c.occurrences[hitIndex].id === exports.movementType.UP) {
863
+ const cursors = cursorGroup.allOccurrences;
864
+ const nextHitIndex = cursors.findIndex((v) => v.time >= hitTime);
865
+ const hitIndex = nextHitIndex - 1;
866
+ if (hitIndex <= -1) {
658
867
  cursorIndexes[j] = -1;
659
868
  continue;
660
869
  }
661
- const cursorPosition = new osuBase.Vector2(c.occurrences[hitIndex].position.x, c.occurrences[hitIndex].position.y);
870
+ const cursorPosition = new osuBase.Vector2(cursors[hitIndex].position.x, cursors[hitIndex].position.y);
662
871
  let isInObject = false;
663
- if (c.occurrences[nextHitIndex].id === exports.movementType.MOVE ||
664
- c.occurrences[hitIndex].id === exports.movementType.MOVE) {
872
+ if (cursors[nextHitIndex].id === exports.movementType.MOVE) {
665
873
  // Try to interpolate movement between two movementType.MOVE cursor every 1ms.
666
874
  // This minimizes rounding error.
667
- for (let mSecPassed = c.occurrences[hitIndex].time; mSecPassed <= c.occurrences[nextHitIndex].time; ++mSecPassed) {
668
- const t = (mSecPassed - c.occurrences[nextHitIndex].time) /
669
- (c.occurrences[hitIndex].time -
670
- c.occurrences[nextHitIndex].time);
671
- cursorPosition.x = osuBase.Interpolation.lerp(c.occurrences[hitIndex].position.x, c.occurrences[nextHitIndex].position.x, t);
672
- cursorPosition.y = osuBase.Interpolation.lerp(c.occurrences[hitIndex].position.y, c.occurrences[nextHitIndex].position.y, t);
875
+ for (let mSecPassed = cursors[hitIndex].time; mSecPassed <= cursors[nextHitIndex].time; ++mSecPassed) {
876
+ const t = (mSecPassed - cursors[nextHitIndex].time) /
877
+ (cursors[hitIndex].time -
878
+ cursors[nextHitIndex].time);
879
+ cursorPosition.x = osuBase.Interpolation.lerp(cursors[hitIndex].position.x, cursors[nextHitIndex].position.x, t);
880
+ cursorPosition.y = osuBase.Interpolation.lerp(cursors[hitIndex].position.y, cursors[nextHitIndex].position.y, t);
673
881
  if (o.object
674
882
  .getStackedPosition(osuBase.modes.droid)
675
883
  .getDistance(cursorPosition) <=
@@ -747,26 +955,26 @@ class ThreeFingerChecker {
747
955
  * unnecessary taps.
748
956
  */
749
957
  preventAccidentalTaps() {
750
- let filledCursorAmount = this.downCursorInstances.filter((v) => v.occurrences.length > 0).length;
958
+ let filledCursorAmount = this.downCursorInstances.filter((v) => v.length > 0).length;
751
959
  if (filledCursorAmount <= 3) {
752
960
  return;
753
961
  }
754
962
  const objects = this.calculator.objects;
755
- const totalCursorAmount = this.downCursorInstances.reduce((acc, value) => acc + value.occurrences.length, 0);
963
+ const totalCursorAmount = this.downCursorInstances.reduce((acc, value) => acc + value.length, 0);
756
964
  for (let i = 0; i < this.downCursorInstances.length; ++i) {
757
965
  if (filledCursorAmount <= 3) {
758
966
  break;
759
967
  }
760
- const cursorInstance = this.downCursorInstances[i];
968
+ const cursorInstances = this.downCursorInstances[i];
761
969
  // Use an estimation for accidental tap threshold.
762
- if (cursorInstance.occurrences.length <=
970
+ if (cursorInstances.length <=
763
971
  Math.ceil(objects.length / this.accidentalTapThreshold) &&
764
- cursorInstance.occurrences.length / totalCursorAmount <
972
+ cursorInstances.length / totalCursorAmount <
765
973
  this.threeFingerRatioThreshold * 2) {
766
974
  --filledCursorAmount;
767
- cursorInstance.occurrences.length = 0;
975
+ cursorInstances.length = 0;
768
976
  }
769
- this.downCursorInstances[i] = cursorInstance;
977
+ this.downCursorInstances[i] = cursorInstances;
770
978
  }
771
979
  }
772
980
  /**
@@ -794,9 +1002,9 @@ class ThreeFingerChecker {
794
1002
  : this.hitWindow.hitWindowFor50(isPrecise));
795
1003
  // Filter cursor instances during section.
796
1004
  this.downCursorInstances.forEach((c) => {
797
- const i = c.occurrences.findIndex((t) => t.time >= startTime);
1005
+ const i = c.findIndex((t) => t.time >= startTime);
798
1006
  if (i !== -1) {
799
- c.occurrences = c.occurrences.slice(i);
1007
+ c = c.slice(i);
800
1008
  }
801
1009
  });
802
1010
  const cursorAmounts = [];
@@ -806,15 +1014,15 @@ class ThreeFingerChecker {
806
1014
  if (i === dragIndex) {
807
1015
  continue;
808
1016
  }
809
- const cursorData = this.downCursorInstances[i];
1017
+ const cursors = this.downCursorInstances[i];
810
1018
  let amount = 0;
811
- for (let j = 0; j < cursorData.occurrences.length; ++j) {
812
- if (cursorData.occurrences[j].time >= startTime &&
813
- cursorData.occurrences[j].time <= endTime) {
1019
+ for (let j = 0; j < cursors.length; ++j) {
1020
+ if (cursors[j].time >= startTime &&
1021
+ cursors[j].time <= endTime) {
814
1022
  ++amount;
815
1023
  cursorVectorTimes.push({
816
- vector: new osuBase.Vector2(cursorData.occurrences[j].position.x, cursorData.occurrences[j].position.y),
817
- time: cursorData.occurrences[j].time,
1024
+ vector: new osuBase.Vector2(cursors[j].position.x, cursors[j].position.y),
1025
+ time: cursors[j].time,
818
1026
  });
819
1027
  }
820
1028
  }
@@ -982,6 +1190,13 @@ class TwoHandChecker {
982
1190
  * those that do not worth any strain.
983
1191
  */
984
1192
  minCursorIndexCount = 5;
1193
+ /**
1194
+ * A cursor occurrence nested array containing all cursor occurrences.
1195
+ *
1196
+ * Each index represents the cursor index.
1197
+ */
1198
+ // TODO: replace with group at some point
1199
+ allCursorOccurrences = [];
985
1200
  /**
986
1201
  * @param calculator The difficulty calculator to analyze.
987
1202
  * @param data The data of the replay.
@@ -989,6 +1204,7 @@ class TwoHandChecker {
989
1204
  constructor(calculator, data) {
990
1205
  this.calculator = calculator;
991
1206
  this.data = data;
1207
+ this.allCursorOccurrences = data.cursorMovement.map((v) => v.allOccurrences);
992
1208
  const stats = new osuBase.MapStats({
993
1209
  od: this.calculator.beatmap.difficulty.od,
994
1210
  mods: this.calculator.mods.filter((m) => m.isApplicableToDroid() &&
@@ -1001,8 +1217,7 @@ class TwoHandChecker {
1001
1217
  * Checks if a beatmap is two-handed.
1002
1218
  */
1003
1219
  check() {
1004
- if (this.data.cursorMovement.filter((v) => v.occurrences.length > 0)
1005
- .length <= 1) {
1220
+ if (this.data.cursorMovement.filter((v) => v.occurrenceGroups.length > 0).length <= 1) {
1006
1221
  return { is2Hand: false, cursorIndexes: [] };
1007
1222
  }
1008
1223
  this.indexHitObjects();
@@ -1081,16 +1296,15 @@ class TwoHandChecker {
1081
1296
  const deltaTimes = [];
1082
1297
  for (let i = 0; i < this.data.cursorMovement.length; ++i) {
1083
1298
  const c = this.data.cursorMovement[i];
1084
- for (let j = 0; j < c.occurrences.length; ++j) {
1085
- if (c.occurrences[j].time <
1299
+ for (let j = 0; j < c.occurrenceGroups.length; ++j) {
1300
+ const group = c.occurrenceGroups[j];
1301
+ const previousGroup = c.occurrenceGroups[j - 1];
1302
+ if (group.startTime <
1086
1303
  this.calculator.beatmap.hitObjects.objects[0].startTime -
1087
1304
  this.hitWindow.hitWindowFor50()) {
1088
1305
  continue;
1089
1306
  }
1090
- if (c.occurrences[j].id !== exports.movementType.MOVE) {
1091
- continue;
1092
- }
1093
- const deltaTime = c.occurrences[j]?.time - c.occurrences[j - 1]?.time || 0;
1307
+ const deltaTime = group.startTime - previousGroup.endTime;
1094
1308
  if (deltaTime > 0) {
1095
1309
  deltaTimes.push(deltaTime);
1096
1310
  }
@@ -1130,26 +1344,26 @@ class TwoHandChecker {
1130
1344
  const minimumHitTime = startTime - hitWindowLength - hitWindowOffset;
1131
1345
  const maximumHitTime = startTime + hitWindowLength + hitWindowOffset;
1132
1346
  const cursorInformations = [];
1133
- for (let i = 0; i < this.data.cursorMovement.length; ++i) {
1134
- const c = this.data.cursorMovement[i];
1135
- if (c.occurrences.length === 0) {
1347
+ for (let i = 0; i < this.allCursorOccurrences.length; ++i) {
1348
+ const c = this.allCursorOccurrences[i];
1349
+ if (c.length === 0) {
1136
1350
  continue;
1137
1351
  }
1138
- let hitTimeBeforeIndex = osuBase.MathUtils.clamp(c.occurrences.findIndex((v) => v.time >= minimumHitTime), 1, c.occurrences.length - 1) - 1;
1139
- let hitTimeAfterIndex = c.occurrences.findIndex(
1352
+ let hitTimeBeforeIndex = osuBase.MathUtils.clamp(c.findIndex((v) => v.time >= minimumHitTime), 1, c.length - 1) - 1;
1353
+ let hitTimeAfterIndex = c.findIndex(
1140
1354
  // There is a special case for sliders where the time leniency in droid is a lot bigger compared to PC.
1141
1355
  // To prevent slider end time from ending earlier than hit window leniency, we use the maximum value between both.
1142
1356
  (v) => v.time >= Math.max(object.object.endTime, maximumHitTime));
1143
1357
  if (hitTimeAfterIndex === -1) {
1144
1358
  // Maximum hit time or object end time may be out of bounds for every presses.
1145
1359
  // We set the index to the latest cursor occurrence if that happens.
1146
- hitTimeAfterIndex = c.occurrences.length;
1360
+ hitTimeAfterIndex = c.length;
1147
1361
  }
1148
1362
  --hitTimeAfterIndex;
1149
1363
  // Sometimes a `movementType.UP` instance occurs at the same time as a `movementType.MOVE`
1150
1364
  // or a cursor is recorded twice in one time, therefore this check is required.
1151
- while (c.occurrences[hitTimeBeforeIndex]?.time ===
1152
- c.occurrences[hitTimeBeforeIndex - 1]?.time &&
1365
+ while (c[hitTimeBeforeIndex]?.time ===
1366
+ c[hitTimeBeforeIndex - 1]?.time &&
1153
1367
  hitTimeBeforeIndex > 0) {
1154
1368
  --hitTimeBeforeIndex;
1155
1369
  }
@@ -1158,8 +1372,8 @@ class TwoHandChecker {
1158
1372
  let distance = Number.POSITIVE_INFINITY;
1159
1373
  let j = hitTimeBeforeIndex;
1160
1374
  for (j; j <= hitTimeAfterIndex; ++j) {
1161
- const occurrence = c.occurrences[j];
1162
- const nextOccurrence = c.occurrences[j + 1];
1375
+ const occurrence = c[j];
1376
+ const nextOccurrence = c[j + 1];
1163
1377
  const cursorPosition = occurrence.position;
1164
1378
  if (occurrence.time < minimumHitTime &&
1165
1379
  nextOccurrence?.id !== exports.movementType.MOVE) {
@@ -1210,21 +1424,20 @@ class TwoHandChecker {
1210
1424
  // Aside of angles, we need to consider if the player dragged from the previous object to the current object.
1211
1425
  let isDragged = false;
1212
1426
  // Get the latest down or movement cursor occurrence.
1213
- while (c.occurrences[j]?.id === exports.movementType.UP &&
1214
- j > hitTimeBeforeIndex) {
1427
+ while (c[j]?.id === exports.movementType.UP && j > hitTimeBeforeIndex) {
1215
1428
  --j;
1216
1429
  }
1217
1430
  if (object.object instanceof osuBase.Circle) {
1218
1431
  // For circles, we only need to consider the actual press on the circle.
1219
1432
  // Therefore, we need to get the latest down cursor occurrence instead.
1220
- while (c.occurrences[j]?.id !== exports.movementType.DOWN &&
1433
+ while (c[j]?.id !== exports.movementType.DOWN &&
1221
1434
  j > hitTimeBeforeIndex) {
1222
1435
  --j;
1223
1436
  }
1224
1437
  }
1225
1438
  // Theoretically there can only be 1 up occurrence, but this is a
1226
1439
  // consideration if the user manually adds cursor occurrences.
1227
- if (c.occurrences[j]?.id === exports.movementType.UP) {
1440
+ if (c[j]?.id === exports.movementType.UP) {
1228
1441
  ++j;
1229
1442
  }
1230
1443
  // Some move instances move in the exact same place. Not sure why, most likely
@@ -1232,16 +1445,16 @@ class TwoHandChecker {
1232
1445
  // convert into +1 or -1.
1233
1446
  // let nextSignificantOccurrenceIndex: number = j + 1;
1234
1447
  // while (
1235
- // c.occurrences[j] &&
1236
- // c.occurrences[nextSignificantOccurrenceIndex] &&
1237
- // c.occurrences[j].position.equals(
1238
- // c.occurrences[nextSignificantOccurrenceIndex].position
1448
+ // c[j] &&
1449
+ // c[nextSignificantOccurrenceIndex] &&
1450
+ // c[j].position.equals(
1451
+ // c[nextSignificantOccurrenceIndex].position
1239
1452
  // )
1240
1453
  // ) {
1241
1454
  // ++nextSignificantOccurrenceIndex;
1242
1455
  // }
1243
1456
  // const nextSignificantOccurrence: CursorOccurrence =
1244
- // c.occurrences[nextSignificantOccurrenceIndex];
1457
+ // c[nextSignificantOccurrenceIndex];
1245
1458
  // const next: DifficultyHitObject | RebalanceDifficultyHitObject =
1246
1459
  // this.map.objects[index + 1];
1247
1460
  // Angle detection.
@@ -1308,15 +1521,14 @@ class TwoHandChecker {
1308
1521
  }
1309
1522
  }
1310
1523
  let occurrenceStartIndex = hitTimeAfterIndex;
1311
- while (c.occurrences[occurrenceStartIndex]?.time >=
1312
- dragTimeThreshold &&
1524
+ while (c[occurrenceStartIndex]?.time >= dragTimeThreshold &&
1313
1525
  occurrenceStartIndex > 0) {
1314
1526
  --occurrenceStartIndex;
1315
1527
  }
1316
1528
  // The above loop will make the start index before or right when
1317
1529
  // the previous object was hit or ended, but we want the index after it.
1318
1530
  ++occurrenceStartIndex;
1319
- const dragOccurrences = c.occurrences.slice(occurrenceStartIndex, hitTimeAfterIndex);
1531
+ const dragOccurrences = c.slice(occurrenceStartIndex, hitTimeAfterIndex);
1320
1532
  isDragged =
1321
1533
  dragOccurrences.length > 0 &&
1322
1534
  // We only care when the cursor approaches the current object. It doesn't
@@ -1359,7 +1571,7 @@ class TwoHandChecker {
1359
1571
  return false;
1360
1572
  }
1361
1573
  let cursorLoopIndex = Math.max(0, indexedHitObject.occurrenceIndex);
1362
- const c = this.data.cursorMovement[indexedHitObject.actualCursorIndex];
1574
+ const c = this.allCursorOccurrences[indexedHitObject.actualCursorIndex];
1363
1575
  const acceptableRadius = indexedHitObject.object.object.getRadius(osuBase.modes.droid) * 2.4;
1364
1576
  for (let i = 1; i < indexedHitObject.object.object.nestedHitObjects.length; ++i) {
1365
1577
  const tickWasHit = hitData.tickset[i - 1];
@@ -1369,16 +1581,14 @@ class TwoHandChecker {
1369
1581
  const object = indexedHitObject.object.object.nestedHitObjects[i];
1370
1582
  let j = cursorLoopIndex;
1371
1583
  let cursorHitTick = false;
1372
- for (j; j < c.occurrences.length; ++j) {
1373
- if (c.occurrences[j].time <
1374
- object.startTime - hitWindowOffset) {
1584
+ for (j; j < c.length; ++j) {
1585
+ if (c[j].time < object.startTime - hitWindowOffset) {
1375
1586
  continue;
1376
1587
  }
1377
- if (c.occurrences[j].time >
1378
- object.startTime + hitWindowOffset) {
1588
+ if (c[j].time > object.startTime + hitWindowOffset) {
1379
1589
  break;
1380
1590
  }
1381
- if (c.occurrences[j].position.getDistance(object.getStackedPosition(osuBase.modes.droid)) <= acceptableRadius) {
1591
+ if (c[j].position.getDistance(object.getStackedPosition(osuBase.modes.droid)) <= acceptableRadius) {
1382
1592
  cursorHitTick = true;
1383
1593
  break;
1384
1594
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/data/CursorOccurrence.ts","../src/data/CursorData.ts","../src/constants/hitResult.ts","../src/constants/movementType.ts","../src/data/ReplayData.ts","../src/analysis/BeatmapSectionGenerator.ts","../src/analysis/data/BeatmapSection.ts","../src/analysis/data/ThreeFingerBeatmapSection.ts","../src/analysis/ThreeFingerChecker.ts","../src/analysis/objects/IndexedHitObject.ts","../src/analysis/TwoHandChecker.ts","../src/ReplayAnalyzer.ts","../src/data/ReplayObjectData.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["Vector2","hitResult","movementType","Accuracy","MapStats","ModUtil","ModPrecise","DroidHitWindow","MathUtils","Circle","Spinner","Interpolation","modes","Utils","Slider","DroidAPIRequestBuilder","stream","Readable","Parse","javaDeserialization","ModHidden","ModFlashlight","DroidDifficultyCalculator","RebalanceDroidDifficultyCalculator"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/constants/movementType.ts","../src/data/CursorOccurrence.ts","../src/data/CursorOccurrenceGroup.ts","../src/data/CursorData.ts","../src/constants/hitResult.ts","../src/data/ReplayData.ts","../src/analysis/BeatmapSectionGenerator.ts","../src/analysis/data/BeatmapSection.ts","../src/analysis/data/ThreeFingerBeatmapSection.ts","../src/analysis/ThreeFingerChecker.ts","../src/analysis/objects/IndexedHitObject.ts","../src/analysis/TwoHandChecker.ts","../src/ReplayAnalyzer.ts","../src/data/ReplayObjectData.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["movementType","Vector2","hitResult","Accuracy","MapStats","ModUtil","ModPrecise","DroidHitWindow","MathUtils","Circle","Spinner","Interpolation","modes","Utils","Slider","DroidAPIRequestBuilder","stream","Readable","Parse","javaDeserialization","ModHidden","ModFlashlight","DroidDifficultyCalculator","RebalanceDroidDifficultyCalculator"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rian8337/osu-droid-replay-analyzer",
3
- "version": "3.0.0-beta.3",
3
+ "version": "3.0.0-beta.4",
4
4
  "description": "A replay analyzer for analyzing osu!droid replay files.",
5
5
  "keywords": [
6
6
  "osu",
@@ -31,9 +31,9 @@
31
31
  "url": "https://github.com/Rian8337/osu-droid-module/issues"
32
32
  },
33
33
  "dependencies": {
34
- "@rian8337/osu-base": "^3.0.0-beta.3",
35
- "@rian8337/osu-difficulty-calculator": "^3.0.0-beta.3",
36
- "@rian8337/osu-rebalance-difficulty-calculator": "^3.0.0-beta.3",
34
+ "@rian8337/osu-base": "^3.0.0-beta.4",
35
+ "@rian8337/osu-difficulty-calculator": "^3.0.0-beta.4",
36
+ "@rian8337/osu-rebalance-difficulty-calculator": "^3.0.0-beta.4",
37
37
  "java-deserialization": "^0.1.0",
38
38
  "unzipper": "^0.10.11"
39
39
  },
@@ -45,5 +45,5 @@
45
45
  "publishConfig": {
46
46
  "access": "public"
47
47
  },
48
- "gitHead": "2efcc06b6a1d83756d80d205560fe82bfe57c9b0"
48
+ "gitHead": "bd08cf09956d63b517e5d17dd880c1fa22d9de8c"
49
49
  }
@@ -3,11 +3,22 @@ import { DroidDifficultyCalculator } from '@rian8337/osu-difficulty-calculator';
3
3
  import { DroidDifficultyCalculator as DroidDifficultyCalculator$1 } from '@rian8337/osu-rebalance-difficulty-calculator';
4
4
 
5
5
  /**
6
- * Movement type of a cursor in an osu!droid replay.
6
+ * Movement types of a cursor in an osu!droid replay.
7
+ *
8
+ * The cursor movement is represented as a player's action on the screen.
7
9
  */
8
10
  declare enum movementType {
11
+ /**
12
+ * The player places their finger on the screen.
13
+ */
9
14
  DOWN = 0,
15
+ /**
16
+ * The player drags their finger on the screen.
17
+ */
10
18
  MOVE = 1,
19
+ /**
20
+ * The player releases their finger from the screen.
21
+ */
11
22
  UP = 2
12
23
  }
13
24
 
@@ -30,6 +41,80 @@ declare class CursorOccurrence {
30
41
  constructor(time: number, x: number, y: number, id: movementType);
31
42
  }
32
43
 
44
+ /**
45
+ * Represents a group of cursor occurrences representing a cursor instance's
46
+ * movement when a player places their finger on the screen.
47
+ */
48
+ declare class CursorOccurrenceGroup {
49
+ /**
50
+ * The cursor occurrence of movement type `movementType.DOWN`.
51
+ */
52
+ get down(): CursorOccurrence;
53
+ /**
54
+ * The cursor occurrence of movement type `movementType.DOWN`.
55
+ */
56
+ set down(value: CursorOccurrence);
57
+ /**
58
+ * The cursor occurrences of movement type `movementType.MOVE`.
59
+ */
60
+ get moves(): readonly CursorOccurrence[];
61
+ /**
62
+ * The cursor occurrence of movement type `movementType.UP`.
63
+ *
64
+ * May not exist, such as when the player holds their cursor until the end of a beatmap.
65
+ */
66
+ get up(): CursorOccurrence | undefined;
67
+ /**
68
+ * The cursor occurrence of movement type `movementType.UP`.
69
+ *
70
+ * May not exist, such as when the player holds their cursor until the end of a beatmap.
71
+ */
72
+ set up(value: CursorOccurrence | undefined);
73
+ /**
74
+ * The time at which this cursor occurrence group starts.
75
+ */
76
+ get startTime(): number;
77
+ /**
78
+ * The time at which this cursor occurrence group ends.
79
+ */
80
+ get endTime(): number;
81
+ /**
82
+ * All cursor occurrences in this group.
83
+ *
84
+ * This iterates all occurrences and as such should be used sparingly or stored locally.
85
+ */
86
+ get allOccurrences(): CursorOccurrence[];
87
+ /**
88
+ * The cursor occurrence of movement type `movementType.DOWN`.
89
+ */
90
+ private _down;
91
+ /**
92
+ * The cursor occurrences of movement type `movementType.MOVE`.
93
+ */
94
+ private _moves;
95
+ /**
96
+ * The cursor occurrence of movement type `movementType.UP`.
97
+ *
98
+ * May not exist, such as when the player holds their cursor until the end of a beatmap.
99
+ */
100
+ private _up?;
101
+ constructor(down: CursorOccurrence, moves: CursorOccurrence[], up?: CursorOccurrence);
102
+ /**
103
+ * Determines whether this cursor occurrence group is active at the specified time.
104
+ *
105
+ * @param time The time.
106
+ * @returns Whether this cursor occurrence group is active at the specified time.
107
+ */
108
+ isActiveAt(time: number): boolean;
109
+ /**
110
+ * Finds the cursor occurrence that is active at a given time.
111
+ *
112
+ * @param time The time.
113
+ * @returns The cursor occurrence at the given time, `null` if not found.
114
+ */
115
+ cursorAt(time: number): CursorOccurrence | null;
116
+ }
117
+
33
118
  /**
34
119
  * Contains information about a cursor instance.
35
120
  */
@@ -58,15 +143,37 @@ interface CursorInformation {
58
143
  /**
59
144
  * Represents a cursor instance in an osu!droid replay.
60
145
  *
61
- * Stores cursor movement data in the form of `CursorOccurrence`s.
146
+ * Stores cursor movement data in the form of `CursorOccurrenceGroup`s.
62
147
  *
63
148
  * This is used when analyzing replays using replay analyzer.
64
149
  */
65
150
  declare class CursorData {
66
151
  /**
67
- * The occurrences of this cursor instance.
152
+ * The occurrence groups of this cursor instance.
68
153
  */
69
- occurrences: CursorOccurrence[];
154
+ occurrenceGroups: CursorOccurrenceGroup[];
155
+ /**
156
+ * The time at which the first occurrence of this cursor instance occurs.
157
+ *
158
+ * Will return `null` if there are no occurrences.
159
+ */
160
+ get earliestOccurrenceTime(): number | null;
161
+ /**
162
+ * The time at which the latest occurrence of this cursor instance occurs.
163
+ *
164
+ * Will return `null` if there are no occurrences.
165
+ */
166
+ get latestOccurrenceTime(): number | null;
167
+ /**
168
+ * The amount of cursor occurrences of this cursor instance.
169
+ */
170
+ get totalOccurrences(): number;
171
+ /**
172
+ * All cursor occurrences of this cursor instnace.
173
+ *
174
+ * This iterates all occurrence groups and as such should be used sparingly or stored locally.
175
+ */
176
+ get allOccurrences(): CursorOccurrence[];
70
177
  constructor(values: CursorInformation);
71
178
  }
72
179
 
@@ -578,9 +685,17 @@ declare class ThreeFingerChecker {
578
685
  */
579
686
  private readonly breakPointAccurateTimes;
580
687
  /**
581
- * A cursor data array that only contains `movementType.DOWN` movement ID occurrences.
688
+ * A cursor occurrence nested array that only contains `movementType.DOWN` movement ID occurrences.
689
+ *
690
+ * Each index represents the cursor index.
582
691
  */
583
692
  private readonly downCursorInstances;
693
+ /**
694
+ * All cursor occurrences in the replay.
695
+ *
696
+ * Each index represents the cursor index.
697
+ */
698
+ private readonly allCursorInstances;
584
699
  /**
585
700
  * Nerf factors from all sections that were three-fingered.
586
701
  */