UNPKG

@osbjs/hitobjects-tiny-osbjs

Version:

Hit objects parser for tiny-osbjs.

43 lines (42 loc) 1.73 kB
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 };