@osbjs/hitobjects-tiny-osbjs
Version:
Hit objects parser for tiny-osbjs.
43 lines (42 loc) • 1.73 kB
TypeScript
import { Vector2 } from "@osbjs/tiny-osbjs";
type Circle = {
position: Vector2;
time: number;
};
type Slider = {
startTime: number;
endTime: number;
positionAtTime: (time: number) => Vector2;
};
type HitObjects = {
sliders: Slider[];
circles: Circle[];
};
/**
* Get all beatmap hitobjects.
* @param filepath Full path to osu file.
*/
declare function loadBeatmapHitobjects(filepath: string): HitObjects;
/**
* Find the first circle with a specific timestamp.
* @param time Time in millisecond
* @param circles Array of circles
* @param maxAcceptableOffset Accept result in range [time - maxAcceptableOffset, time + maxAcceptableOffset]
*/
declare function findCircleAtTime(time: number, circles: Circle[], maxAcceptableOffset?: number): Circle | undefined;
/**
* Find the first slider with a specific timestamp.
* @param time Time in millisecond
* @param sliders Array of sliders
* @param maxAcceptableOffset Accept result in range [time - maxAcceptableOffset, time + maxAcceptableOffset]
*/
declare function findSliderAtTime(time: number, sliders: Slider[], maxAcceptableOffset?: number): Slider | undefined;
/**
* Returns hitobjects in a specific period.
* @param startTime Start time in millisecond
* @param endTime End time in millisecond
* @param hitobjects Array of hit objects
* @param maxAcceptableOffset Accept result in range [startTime - maxAcceptableOffset, endTime + maxAcceptableOffset]
*/
declare function filterHitObjectsInPeriod(startTime: number, endTime: number, hitobjects: HitObjects, maxAcceptableOffset?: number): HitObjects;
export { loadBeatmapHitobjects, findCircleAtTime, findSliderAtTime, filterHitObjectsInPeriod };