@rel-packages/osu-beatmap-preview 0.1.1
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/README.md +12 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +32 -0
- package/dist/math/curves.d.ts +6 -0
- package/dist/math/curves.d.ts.map +1 -0
- package/dist/math/difficulty.d.ts +14 -0
- package/dist/math/difficulty.d.ts.map +1 -0
- package/dist/math/vector2.d.ts +14 -0
- package/dist/math/vector2.d.ts.map +1 -0
- package/dist/mods/index.d.ts +12 -0
- package/dist/mods/index.d.ts.map +1 -0
- package/dist/mods/mod_double_time.d.ts +4 -0
- package/dist/mods/mod_double_time.d.ts.map +1 -0
- package/dist/mods/mod_easy.d.ts +3 -0
- package/dist/mods/mod_easy.d.ts.map +1 -0
- package/dist/mods/mod_half_time.d.ts +3 -0
- package/dist/mods/mod_half_time.d.ts.map +1 -0
- package/dist/mods/mod_hard_rock.d.ts +3 -0
- package/dist/mods/mod_hard_rock.d.ts.map +1 -0
- package/dist/mods/mod_hidden.d.ts +5 -0
- package/dist/mods/mod_hidden.d.ts.map +1 -0
- package/dist/mods/types.d.ts +17 -0
- package/dist/mods/types.d.ts.map +1 -0
- package/dist/parser/beatmap_parser.d.ts +25 -0
- package/dist/parser/beatmap_parser.d.ts.map +1 -0
- package/dist/parser/osz_loader.d.ts +13 -0
- package/dist/parser/osz_loader.d.ts.map +1 -0
- package/dist/player/audio_controller.d.ts +28 -0
- package/dist/player/audio_controller.d.ts.map +1 -0
- package/dist/player/hitsound_controller.d.ts +16 -0
- package/dist/player/hitsound_controller.d.ts.map +1 -0
- package/dist/player/player.d.ts +96 -0
- package/dist/player/player.d.ts.map +1 -0
- package/dist/player/video_controller.d.ts +16 -0
- package/dist/player/video_controller.d.ts.map +1 -0
- package/dist/renderer/backend/canvas_backend.d.ts +38 -0
- package/dist/renderer/backend/canvas_backend.d.ts.map +1 -0
- package/dist/renderer/backend/render_backend.d.ts +33 -0
- package/dist/renderer/backend/render_backend.d.ts.map +1 -0
- package/dist/renderer/base_renderer.d.ts +46 -0
- package/dist/renderer/base_renderer.d.ts.map +1 -0
- package/dist/renderer/mania/mania_renderer.d.ts +20 -0
- package/dist/renderer/mania/mania_renderer.d.ts.map +1 -0
- package/dist/renderer/standard/standard_renderer.d.ts +39 -0
- package/dist/renderer/standard/standard_renderer.d.ts.map +1 -0
- package/dist/skin/skin_config.d.ts +29 -0
- package/dist/skin/skin_config.d.ts.map +1 -0
- package/dist/types/beatmap.d.ts +105 -0
- package/dist/types/beatmap.d.ts.map +1 -0
- package/dist/types/mods.d.ts +26 -0
- package/dist/types/mods.d.ts.map +1 -0
- package/dist/types/resources.d.ts +13 -0
- package/dist/types/resources.d.ts.map +1 -0
- package/dist/types/result.d.ts +31 -0
- package/dist/types/result.d.ts.map +1 -0
- package/package.json +41 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface IBeatmapDifficulty {
|
|
2
|
+
cs: number;
|
|
3
|
+
ar: number;
|
|
4
|
+
od: number;
|
|
5
|
+
hp: number;
|
|
6
|
+
}
|
|
7
|
+
export interface IApplicableToDifficulty {
|
|
8
|
+
apply_to_difficulty(difficulty: IBeatmapDifficulty): void;
|
|
9
|
+
}
|
|
10
|
+
export interface IApplicableToRate {
|
|
11
|
+
get_rate_multiplier(): number;
|
|
12
|
+
}
|
|
13
|
+
export interface IMod {
|
|
14
|
+
readonly name: string;
|
|
15
|
+
readonly acronym: string;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mods/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,uBAAuB;IACpC,mBAAmB,CAAC,UAAU,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC7D;AAED,MAAM,WAAW,iBAAiB;IAC9B,mBAAmB,IAAI,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,IAAI;IACjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { IBeatmap } from "../types/beatmap";
|
|
2
|
+
export declare class BeatmapParser {
|
|
3
|
+
private beatmap;
|
|
4
|
+
private section;
|
|
5
|
+
parse(content: string): IBeatmap;
|
|
6
|
+
private create_empty_beatmap;
|
|
7
|
+
private parse_line;
|
|
8
|
+
private parse_general;
|
|
9
|
+
private parse_metadata;
|
|
10
|
+
private parse_difficulty;
|
|
11
|
+
private current_beat_length;
|
|
12
|
+
private parse_timing_point;
|
|
13
|
+
private parse_hit_object;
|
|
14
|
+
private parse_extras;
|
|
15
|
+
private parse_slider_data;
|
|
16
|
+
private split_property;
|
|
17
|
+
}
|
|
18
|
+
export declare const extract_preview_time: (content: string) => number;
|
|
19
|
+
export declare const extract_audio_filename: (content: string) => string | null;
|
|
20
|
+
export declare const extract_background_filename: (content: string) => string | null;
|
|
21
|
+
export declare const extract_video_info: (content: string) => {
|
|
22
|
+
filename: string;
|
|
23
|
+
offset: number;
|
|
24
|
+
} | null;
|
|
25
|
+
//# sourceMappingURL=beatmap_parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"beatmap_parser.d.ts","sourceRoot":"","sources":["../../src/parser/beatmap_parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAiF,MAAM,kBAAkB,CAAC;AAGhI,qBAAa,aAAa;IACtB,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,OAAO,CAAc;IAE7B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ;IAkBhC,OAAO,CAAC,oBAAoB;IAyB5B,OAAO,CAAC,UAAU;IAoClB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,cAAc;IAwBtB,OAAO,CAAC,gBAAgB;IAyBxB,OAAO,CAAC,mBAAmB,CAAe;IAE1C,OAAO,CAAC,kBAAkB;IAkC1B,OAAO,CAAC,gBAAgB;IAmExB,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,cAAc;CAKzB;AAID,eAAO,MAAM,oBAAoB,GAAI,SAAS,MAAM,KAAG,MAGtD,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,SAAS,MAAM,KAAG,MAAM,GAAG,IAGjE,CAAC;AAEF,eAAO,MAAM,2BAA2B,GAAI,SAAS,MAAM,KAAG,MAAM,GAAG,IAGtE,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,SAAS,MAAM,KAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAI3F,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { IBeatmapResources } from "../types/resources";
|
|
2
|
+
export interface IOszLoaderOptions {
|
|
3
|
+
difficulty?: number | string;
|
|
4
|
+
}
|
|
5
|
+
export declare class OszLoader {
|
|
6
|
+
load_osz(data: ArrayBuffer, options?: IOszLoaderOptions): Promise<IBeatmapResources>;
|
|
7
|
+
load_from_files(files: Map<string, ArrayBuffer | string>, options?: IOszLoaderOptions): Promise<IBeatmapResources>;
|
|
8
|
+
list_difficulties(data: ArrayBuffer): Promise<string[]>;
|
|
9
|
+
private select_difficulty;
|
|
10
|
+
private find_file;
|
|
11
|
+
private to_string;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=osz_loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"osz_loader.d.ts","sourceRoot":"","sources":["../../src/parser/osz_loader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,MAAM,WAAW,iBAAiB;IAE9B,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAChC;AAED,qBAAa,SAAS;IAEZ,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAepF,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAuElH,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAqB7D,OAAO,CAAC,iBAAiB;IAiCzB,OAAO,CAAC,SAAS;IAiBjB,OAAO,CAAC,SAAS;CAIpB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export declare class AudioController {
|
|
2
|
+
private audio_context;
|
|
3
|
+
private audio_source;
|
|
4
|
+
private audio_buffer;
|
|
5
|
+
private gain_node;
|
|
6
|
+
private start_time;
|
|
7
|
+
private pause_time;
|
|
8
|
+
private speed;
|
|
9
|
+
private _is_playing;
|
|
10
|
+
private _duration;
|
|
11
|
+
private _is_loaded;
|
|
12
|
+
constructor(context: AudioContext);
|
|
13
|
+
get is_playing(): boolean;
|
|
14
|
+
get is_loaded(): boolean;
|
|
15
|
+
get duration(): number;
|
|
16
|
+
get current_time(): number;
|
|
17
|
+
load(data: ArrayBuffer, mods?: number): Promise<void>;
|
|
18
|
+
play(from_time?: number): void;
|
|
19
|
+
pause(): void;
|
|
20
|
+
seek(time_ms: number): void;
|
|
21
|
+
stop(): void;
|
|
22
|
+
get_host_time(time_ms: number): number;
|
|
23
|
+
private stop_source;
|
|
24
|
+
set_volume(volume: number): void;
|
|
25
|
+
set_speed(speed: number): void;
|
|
26
|
+
dispose(): void;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=audio_controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio_controller.d.ts","sourceRoot":"","sources":["../../src/player/audio_controller.ts"],"names":[],"mappings":"AAEA,qBAAa,eAAe;IACxB,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,YAAY,CAAsC;IAC1D,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,SAAS,CAAW;IAE5B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,UAAU,CAAkB;gBAExB,OAAO,EAAE,YAAY;IAMjC,IAAI,UAAU,IAAI,OAAO,CAExB;IACD,IAAI,SAAS,IAAI,OAAO,CAEvB;IACD,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,YAAY,IAAI,MAAM,CAKzB;IAEK,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB9D,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAuC9B,KAAK,IAAI,IAAI;IASb,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAc3B,IAAI,IAAI,IAAI;IAKZ,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAOtC,OAAO,CAAC,WAAW;IAanB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMhC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAgB9B,OAAO,IAAI,IAAI;CAQlB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SampleSet } from "../types/beatmap";
|
|
2
|
+
export declare class HitsoundController {
|
|
3
|
+
private context;
|
|
4
|
+
private gain_node;
|
|
5
|
+
private samples;
|
|
6
|
+
private volume;
|
|
7
|
+
constructor(context: AudioContext);
|
|
8
|
+
set_volume(volume: number): void;
|
|
9
|
+
load_samples(files: Map<string, ArrayBuffer>): Promise<void>;
|
|
10
|
+
play(normal_set: SampleSet, addition_set: SampleSet, hit_sound: number, index: number, volume?: number, custom_filename?: string, when?: number): void;
|
|
11
|
+
private play_sound;
|
|
12
|
+
private play_buffer;
|
|
13
|
+
private get_set_name;
|
|
14
|
+
dispose(): void;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=hitsound_controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hitsound_controller.d.ts","sourceRoot":"","sources":["../../src/player/hitsound_controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAgB,MAAM,kBAAkB,CAAC;AAE3D,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,SAAS,CAAW;IAC5B,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,MAAM,CAAa;gBAEf,OAAO,EAAE,YAAY;IAMjC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK1B,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBlE,IAAI,CACA,UAAU,EAAE,SAAS,EACrB,YAAY,EAAE,SAAS,EACvB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,MAAY,EACpB,eAAe,CAAC,EAAE,MAAM,EACxB,IAAI,GAAE,MAAU,GACjB,IAAI;IAsBP,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,YAAY;IAWpB,OAAO,IAAI,IAAI;CAIlB"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import type { IBeatmap } from "../types/beatmap";
|
|
2
|
+
import type { IBeatmapResources } from "../types/resources";
|
|
3
|
+
import { type Result, ErrorCode } from "../types/result";
|
|
4
|
+
import { type IRendererConfig } from "../renderer/base_renderer";
|
|
5
|
+
import type { IRenderBackend } from "../renderer/backend/render_backend";
|
|
6
|
+
import { type ISkinConfig } from "../skin/skin_config";
|
|
7
|
+
type PlayerEventMap = {
|
|
8
|
+
timeupdate: [time: number, duration: number];
|
|
9
|
+
ended: [];
|
|
10
|
+
loaded: [beatmap: IBeatmap, resources: IBeatmapResources];
|
|
11
|
+
error: [code: ErrorCode, reason: string];
|
|
12
|
+
statechange: [is_playing: boolean];
|
|
13
|
+
};
|
|
14
|
+
type PlayerEvent = keyof PlayerEventMap;
|
|
15
|
+
export interface IKeyBindings {
|
|
16
|
+
toggle_pause?: string;
|
|
17
|
+
seek_forward?: string;
|
|
18
|
+
seek_backward?: string;
|
|
19
|
+
toggle_grid?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface IPlayerOptions {
|
|
22
|
+
canvas: HTMLCanvasElement;
|
|
23
|
+
skin?: Partial<ISkinConfig>;
|
|
24
|
+
mods?: number;
|
|
25
|
+
start_time?: number;
|
|
26
|
+
autoplay?: boolean;
|
|
27
|
+
volume?: number;
|
|
28
|
+
backend?: IRenderBackend;
|
|
29
|
+
renderer_config?: Partial<IRendererConfig>;
|
|
30
|
+
playfield_scale?: number;
|
|
31
|
+
auto_resize?: boolean;
|
|
32
|
+
key_bindings?: IKeyBindings;
|
|
33
|
+
}
|
|
34
|
+
export declare class BeatmapPlayer {
|
|
35
|
+
private backend;
|
|
36
|
+
private renderer;
|
|
37
|
+
private audio_context;
|
|
38
|
+
private audio;
|
|
39
|
+
private hitsounds;
|
|
40
|
+
private video;
|
|
41
|
+
private resources;
|
|
42
|
+
private animation_frame;
|
|
43
|
+
private skin;
|
|
44
|
+
private mods;
|
|
45
|
+
private renderer_config;
|
|
46
|
+
private start_offset;
|
|
47
|
+
private volume;
|
|
48
|
+
private listeners;
|
|
49
|
+
private _raw_osu_content;
|
|
50
|
+
private _is_loaded;
|
|
51
|
+
private next_hit_object_index;
|
|
52
|
+
private resize_observer;
|
|
53
|
+
private key_handler;
|
|
54
|
+
private options;
|
|
55
|
+
constructor(options: IPlayerOptions);
|
|
56
|
+
load_osz(data: ArrayBuffer, difficulty?: number | string): Promise<Result<IBeatmapResources>>;
|
|
57
|
+
load_files(files: Map<string, ArrayBuffer | string>, difficulty?: number | string): Promise<Result<IBeatmapResources>>;
|
|
58
|
+
load_hitsounds(files: Map<string, ArrayBuffer>): Promise<void>;
|
|
59
|
+
load_beatmap(beatmap: IBeatmap, audio?: ArrayBuffer, background?: Blob, video?: Blob, video_offset?: number): Promise<Result<IBeatmapResources>>;
|
|
60
|
+
load_osu_content(content: string, audio?: ArrayBuffer): Promise<Result<IBeatmapResources>>;
|
|
61
|
+
private setup;
|
|
62
|
+
private create_renderer;
|
|
63
|
+
private get_last_object_time;
|
|
64
|
+
play(): Promise<void>;
|
|
65
|
+
pause(): void;
|
|
66
|
+
set_mods(mods: number): void;
|
|
67
|
+
seek(time_ms: number): void;
|
|
68
|
+
private update_hit_index;
|
|
69
|
+
stop(): void;
|
|
70
|
+
dispose(): void;
|
|
71
|
+
get current_time(): number;
|
|
72
|
+
get duration(): number;
|
|
73
|
+
get is_playing(): boolean;
|
|
74
|
+
get is_loaded(): boolean;
|
|
75
|
+
get beatmap(): IBeatmap | null;
|
|
76
|
+
get background(): Blob | undefined;
|
|
77
|
+
get config(): IRendererConfig;
|
|
78
|
+
resize(width: number, height: number, playfield_scale?: number): void;
|
|
79
|
+
private setup_auto_resize;
|
|
80
|
+
private setup_key_bindings;
|
|
81
|
+
toggle_pause(): void;
|
|
82
|
+
toggle_grid(): void;
|
|
83
|
+
private calculate_layout;
|
|
84
|
+
set_volume(volume: number): void;
|
|
85
|
+
on<E extends PlayerEvent>(event: E, callback: (...args: PlayerEventMap[E]) => void): void;
|
|
86
|
+
off<E extends PlayerEvent>(event: E, callback: Function): void;
|
|
87
|
+
private emit;
|
|
88
|
+
private start_render_loop;
|
|
89
|
+
private schedule_hitsounds;
|
|
90
|
+
private play_hitsound;
|
|
91
|
+
private get_timing_point;
|
|
92
|
+
private stop_render_loop;
|
|
93
|
+
private render_frame;
|
|
94
|
+
}
|
|
95
|
+
export {};
|
|
96
|
+
//# sourceMappingURL=player.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"player.d.ts","sourceRoot":"","sources":["../../src/player/player.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare class VideoController {
|
|
2
|
+
private video;
|
|
3
|
+
private object_url;
|
|
4
|
+
private _offset;
|
|
5
|
+
private speed;
|
|
6
|
+
get element(): HTMLVideoElement | null;
|
|
7
|
+
get offset(): number;
|
|
8
|
+
load(data: Blob, offset?: number, speed?: number): Promise<void>;
|
|
9
|
+
sync(audio_time_ms: number): void;
|
|
10
|
+
play(): void;
|
|
11
|
+
pause(): void;
|
|
12
|
+
seek(time_ms: number): void;
|
|
13
|
+
set_speed(speed: number): void;
|
|
14
|
+
dispose(): void;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=video_controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"video_controller.d.ts","sourceRoot":"","sources":["../../src/player/video_controller.ts"],"names":[],"mappings":"AAAA,qBAAa,eAAe;IACxB,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,KAAK,CAAa;IAE1B,IAAI,OAAO,IAAI,gBAAgB,GAAG,IAAI,CAErC;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAEK,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,GAAE,MAAU,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB5E,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI;IAqBjC,IAAI,IAAI,IAAI;IAQZ,KAAK,IAAI,IAAI;IAMb,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAO3B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAO9B,OAAO,IAAI,IAAI;CAYlB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { IRenderBackend } from "./render_backend";
|
|
2
|
+
export declare class CanvasBackend implements IRenderBackend {
|
|
3
|
+
private ctx;
|
|
4
|
+
private _width;
|
|
5
|
+
private _height;
|
|
6
|
+
private _dpr;
|
|
7
|
+
get width(): number;
|
|
8
|
+
get height(): number;
|
|
9
|
+
initialize(canvas: HTMLCanvasElement, use_high_dpi?: boolean): void;
|
|
10
|
+
clear(): void;
|
|
11
|
+
dispose(): void;
|
|
12
|
+
resize(width: number, height: number): void;
|
|
13
|
+
draw_circle(x: number, y: number, radius: number, fill_color: string, stroke_color?: string, stroke_width?: number): void;
|
|
14
|
+
draw_arc(x: number, y: number, radius: number, start_angle: number, end_angle: number, stroke_color: string, stroke_width: number, ccw?: boolean): void;
|
|
15
|
+
draw_rect(x: number, y: number, width: number, height: number, fill_color: string): void;
|
|
16
|
+
draw_text(text: string, x: number, y: number, font: string, fill_color: string, align?: CanvasTextAlign, baseline?: CanvasTextBaseline): void;
|
|
17
|
+
begin_path(): void;
|
|
18
|
+
move_to(x: number, y: number): void;
|
|
19
|
+
line_to(x: number, y: number): void;
|
|
20
|
+
bezier_curve_to(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;
|
|
21
|
+
quadratic_curve_to(cpx: number, cpy: number, x: number, y: number): void;
|
|
22
|
+
arc_to(x: number, y: number, radius: number, start: number, end: number, ccw?: boolean): void;
|
|
23
|
+
rect(x: number, y: number, width: number, height: number): void;
|
|
24
|
+
clip(): void;
|
|
25
|
+
stroke_path(color: string, width: number, cap?: CanvasLineCap, join?: CanvasLineJoin): void;
|
|
26
|
+
fill_path(color: string): void;
|
|
27
|
+
save(): void;
|
|
28
|
+
restore(): void;
|
|
29
|
+
translate(x: number, y: number): void;
|
|
30
|
+
scale(x: number, y: number): void;
|
|
31
|
+
rotate(angle: number): void;
|
|
32
|
+
set_alpha(alpha: number): void;
|
|
33
|
+
set_shadow(color: string, blur: number): void;
|
|
34
|
+
set_composite_operation(op: GlobalCompositeOperation): void;
|
|
35
|
+
draw_image(image: CanvasImageSource, x: number, y: number, width?: number, height?: number): void;
|
|
36
|
+
draw_image_part(image: CanvasImageSource, sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number): void;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=canvas_backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canvas_backend.d.ts","sourceRoot":"","sources":["../../../src/renderer/backend/canvas_backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export interface IRenderBackend {
|
|
2
|
+
initialize(canvas: HTMLCanvasElement, use_high_dpi?: boolean): void;
|
|
3
|
+
resize(width: number, height: number): void;
|
|
4
|
+
clear(): void;
|
|
5
|
+
dispose(): void;
|
|
6
|
+
get width(): number;
|
|
7
|
+
get height(): number;
|
|
8
|
+
draw_circle(x: number, y: number, radius: number, fill_color: string, stroke_color?: string, stroke_width?: number): void;
|
|
9
|
+
draw_arc(x: number, y: number, radius: number, start_angle: number, end_angle: number, stroke_color: string, stroke_width: number, ccw?: boolean): void;
|
|
10
|
+
draw_rect(x: number, y: number, width: number, height: number, fill_color: string): void;
|
|
11
|
+
draw_text(text: string, x: number, y: number, font: string, fill_color: string, align?: CanvasTextAlign, baseline?: CanvasTextBaseline): void;
|
|
12
|
+
begin_path(): void;
|
|
13
|
+
move_to(x: number, y: number): void;
|
|
14
|
+
line_to(x: number, y: number): void;
|
|
15
|
+
bezier_curve_to(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;
|
|
16
|
+
quadratic_curve_to(cpx: number, cpy: number, x: number, y: number): void;
|
|
17
|
+
arc_to(x: number, y: number, radius: number, start: number, end: number, ccw?: boolean): void;
|
|
18
|
+
rect(x: number, y: number, width: number, height: number): void;
|
|
19
|
+
clip(): void;
|
|
20
|
+
stroke_path(color: string, width: number, cap?: CanvasLineCap, join?: CanvasLineJoin): void;
|
|
21
|
+
fill_path(color: string): void;
|
|
22
|
+
save(): void;
|
|
23
|
+
restore(): void;
|
|
24
|
+
translate(x: number, y: number): void;
|
|
25
|
+
scale(x: number, y: number): void;
|
|
26
|
+
rotate(angle: number): void;
|
|
27
|
+
set_alpha(alpha: number): void;
|
|
28
|
+
set_shadow(color: string, blur: number): void;
|
|
29
|
+
set_composite_operation(op: GlobalCompositeOperation): void;
|
|
30
|
+
draw_image(image: CanvasImageSource, x: number, y: number, width?: number, height?: number): void;
|
|
31
|
+
draw_image_part(image: CanvasImageSource, sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number): void;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=render_backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render_backend.d.ts","sourceRoot":"","sources":["../../../src/renderer/backend/render_backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { IRenderBackend } from "./backend/render_backend";
|
|
2
|
+
import type { IBeatmap, IHitObject } from "../types/beatmap";
|
|
3
|
+
import type { ISkinConfig } from "../skin/skin_config";
|
|
4
|
+
export declare const PLAYFIELD_WIDTH = 512;
|
|
5
|
+
export declare const PLAYFIELD_HEIGHT = 384;
|
|
6
|
+
export declare enum GridLevel {
|
|
7
|
+
None = 0,
|
|
8
|
+
Large = 32,
|
|
9
|
+
Medium = 16,
|
|
10
|
+
Small = 8,
|
|
11
|
+
Tiny = 4
|
|
12
|
+
}
|
|
13
|
+
export interface IRendererConfig {
|
|
14
|
+
offset_x: number;
|
|
15
|
+
offset_y: number;
|
|
16
|
+
scale: number;
|
|
17
|
+
show_playfield: boolean;
|
|
18
|
+
playfield_color: string;
|
|
19
|
+
playfield_opacity: number;
|
|
20
|
+
grid_level: GridLevel;
|
|
21
|
+
grid_color: string;
|
|
22
|
+
grid_opacity: number;
|
|
23
|
+
use_high_dpi: boolean;
|
|
24
|
+
}
|
|
25
|
+
export declare const DEFAULT_RENDERER_CONFIG: IRendererConfig;
|
|
26
|
+
export declare abstract class BaseRenderer {
|
|
27
|
+
protected backend: IRenderBackend;
|
|
28
|
+
protected skin: ISkinConfig;
|
|
29
|
+
protected config: IRendererConfig;
|
|
30
|
+
protected mods: number;
|
|
31
|
+
protected beatmap: IBeatmap;
|
|
32
|
+
protected objects: IHitObject[];
|
|
33
|
+
protected background_image: CanvasImageSource | null;
|
|
34
|
+
constructor(backend: IRenderBackend, skin: ISkinConfig, mods?: number, config?: IRendererConfig);
|
|
35
|
+
set_background(image: CanvasImageSource | null): void;
|
|
36
|
+
update_config(config: Partial<IRendererConfig>): void;
|
|
37
|
+
abstract initialize(beatmap: IBeatmap): void;
|
|
38
|
+
abstract render(time: number): void;
|
|
39
|
+
abstract set_mods(mods: number): void;
|
|
40
|
+
dispose(): void;
|
|
41
|
+
protected render_playfield(custom_w?: number, custom_h?: number, custom_x?: number, custom_y?: number): void;
|
|
42
|
+
protected render_grid(): void;
|
|
43
|
+
protected render_background(): void;
|
|
44
|
+
protected get_visible_objects(time: number, preempt: number, fade_out: number): IHitObject[];
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=base_renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base_renderer.d.ts","sourceRoot":"","sources":["../../src/renderer/base_renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAGpC,oBAAY,SAAS;IACjB,IAAI,IAAI;IACR,KAAK,KAAK;IACV,MAAM,KAAK;IACX,KAAK,IAAI;IACT,IAAI,IAAI;CACX;AAED,MAAM,WAAW,eAAe;IAE5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IAGjB,KAAK,EAAE,MAAM,CAAC;IAGd,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAG1B,UAAU,EAAE,SAAS,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IAGrB,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,uBAAuB,EAAE,eAcrC,CAAC;AAEF,8BAAsB,YAAY;IAC9B,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC;IAClC,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC;IAC5B,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC;IAClC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IAEvB,SAAS,CAAC,OAAO,EAAG,QAAQ,CAAC;IAC7B,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAM;IACrC,SAAS,CAAC,gBAAgB,EAAE,iBAAiB,GAAG,IAAI,CAAQ;gBAEhD,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,GAAE,MAAU,EAAE,MAAM,GAAE,eAAyC;IAO3H,cAAc,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,GAAG,IAAI;IAIrD,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IAIrD,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAC5C,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAGnC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAErC,OAAO,IAAI,IAAI;IAKf,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAyB5G,SAAS,CAAC,WAAW,IAAI,IAAI;IA4B7B,SAAS,CAAC,iBAAiB,IAAI,IAAI;IA8BnC,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE;CAc/F"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { IBeatmap } from "../../types/beatmap";
|
|
2
|
+
import { BaseRenderer, type IRendererConfig } from "../base_renderer";
|
|
3
|
+
import type { IRenderBackend } from "../backend/render_backend";
|
|
4
|
+
import type { ISkinConfig } from "../../skin/skin_config";
|
|
5
|
+
export declare class ManiaRenderer extends BaseRenderer {
|
|
6
|
+
private key_count;
|
|
7
|
+
private scroll_time;
|
|
8
|
+
constructor(backend: IRenderBackend, skin: ISkinConfig, mods?: number, config?: IRendererConfig);
|
|
9
|
+
initialize(beatmap: IBeatmap): void;
|
|
10
|
+
set_mods(mods: number): void;
|
|
11
|
+
private update_scroll_time;
|
|
12
|
+
private time_to_y;
|
|
13
|
+
render(time: number): void;
|
|
14
|
+
private get_lane;
|
|
15
|
+
private draw_note;
|
|
16
|
+
private draw_hold_note;
|
|
17
|
+
private draw_judgment_line;
|
|
18
|
+
private draw_lane_keys;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=mania_renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mania_renderer.d.ts","sourceRoot":"","sources":["../../../src/renderer/mania/mania_renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAyB,MAAM,qBAAqB,CAAC;AAG3E,OAAO,EAAE,YAAY,EAAE,KAAK,eAAe,EAA8D,MAAM,kBAAkB,CAAC;AAClI,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAO1D,qBAAa,aAAc,SAAQ,YAAY;IAC3C,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,WAAW,CAA8C;gBAErD,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,GAAE,MAAU,EAAE,MAAM,GAAE,eAAyC;IAK3H,UAAU,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAYnC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK5B,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,SAAS;IAQjB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IA+C1B,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,SAAS;IAwBjB,OAAO,CAAC,cAAc;IAyCtB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,cAAc;CAsCzB"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { IBeatmap } from "../../types/beatmap";
|
|
2
|
+
import { BaseRenderer, type IRendererConfig } from "../base_renderer";
|
|
3
|
+
import type { IRenderBackend } from "../backend/render_backend";
|
|
4
|
+
import type { ISkinConfig } from "../../skin/skin_config";
|
|
5
|
+
export declare class StandardRenderer extends BaseRenderer {
|
|
6
|
+
private radius;
|
|
7
|
+
private preempt;
|
|
8
|
+
private fade_in;
|
|
9
|
+
private timing_points;
|
|
10
|
+
private use_hidden;
|
|
11
|
+
private use_hard_rock;
|
|
12
|
+
private slider_cache;
|
|
13
|
+
constructor(backend: IRenderBackend, skin: ISkinConfig, mods?: number, config?: IRendererConfig);
|
|
14
|
+
initialize(beatmap: IBeatmap): void;
|
|
15
|
+
set_mods(mods: number): void;
|
|
16
|
+
private process_timing_points;
|
|
17
|
+
private preprocess_objects;
|
|
18
|
+
private compute_slider_path;
|
|
19
|
+
private flatten_multibezier;
|
|
20
|
+
private clamp_path_to_distance;
|
|
21
|
+
private get_timing_at;
|
|
22
|
+
render(time: number): void;
|
|
23
|
+
private get_circle_opacity;
|
|
24
|
+
private get_slider_body_opacity;
|
|
25
|
+
private draw_approach_circle;
|
|
26
|
+
private draw_hit_circle;
|
|
27
|
+
private draw_slider;
|
|
28
|
+
private handle_reverse_arrows;
|
|
29
|
+
private draw_masked_slider;
|
|
30
|
+
private draw_slider_ticks;
|
|
31
|
+
private get_position_at_length;
|
|
32
|
+
private draw_reverse_arrow;
|
|
33
|
+
private draw_follow_circle;
|
|
34
|
+
private get_slider_position;
|
|
35
|
+
private get_path_length;
|
|
36
|
+
private draw_spinner;
|
|
37
|
+
private draw_follow_point;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=standard_renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standard_renderer.d.ts","sourceRoot":"","sources":["../../../src/renderer/standard/standard_renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAyC,MAAM,qBAAqB,CAAC;AAO3F,OAAO,EAAE,YAAY,EAAE,KAAK,eAAe,EAA2B,MAAM,kBAAkB,CAAC;AAC/F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAM1D,qBAAa,gBAAiB,SAAQ,YAAY;IAC9C,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,aAAa,CAAkB;IAGvC,OAAO,CAAC,YAAY,CAQN;gBAEF,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,GAAE,MAAU,EAAE,MAAM,GAAE,eAAyC;IAM3H,UAAU,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAmBnC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAU5B,OAAO,CAAC,qBAAqB;IAiB7B,OAAO,CAAC,kBAAkB;IA2C1B,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,mBAAmB;IA+B3B,OAAO,CAAC,sBAAsB;IAuB9B,OAAO,CAAC,aAAa;IASrB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAkD1B,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,uBAAuB;IAkC/B,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,eAAe;IAoEvB,OAAO,CAAC,WAAW;IAsInB,OAAO,CAAC,qBAAqB;IAqB7B,OAAO,CAAC,kBAAkB;IA4H1B,OAAO,CAAC,iBAAiB;IA0DzB,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,kBAAkB;IAsC1B,OAAO,CAAC,mBAAmB;IA2B3B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,YAAY;IAwBpB,OAAO,CAAC,iBAAiB;CA0C5B"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export interface ISkinConfig {
|
|
2
|
+
combo_colors: string[];
|
|
3
|
+
circle_border_width: number;
|
|
4
|
+
hit_circle_opacity: number;
|
|
5
|
+
approach_circle_width: number;
|
|
6
|
+
slider_body_opacity: number;
|
|
7
|
+
slider_border_opacity: number;
|
|
8
|
+
slider_tick_opacity: number;
|
|
9
|
+
slider_tick_size: number;
|
|
10
|
+
follow_circle_factor: number;
|
|
11
|
+
follow_circle_width: number;
|
|
12
|
+
follow_circle_opacity: number;
|
|
13
|
+
follow_point_width: number;
|
|
14
|
+
spinner_size: number;
|
|
15
|
+
spinner_center_size: number;
|
|
16
|
+
mania_lane_width: number;
|
|
17
|
+
mania_note_height: number;
|
|
18
|
+
mania_hit_position: number;
|
|
19
|
+
mania_lane_spacing: number;
|
|
20
|
+
mania_lane_colors: Record<number, string[]>;
|
|
21
|
+
font_family: string;
|
|
22
|
+
hit_animation_duration: number;
|
|
23
|
+
hit_animation_scale: number;
|
|
24
|
+
}
|
|
25
|
+
export declare const DEFAULT_SKIN: ISkinConfig;
|
|
26
|
+
export declare const merge_skin: (partial?: Partial<ISkinConfig>) => ISkinConfig;
|
|
27
|
+
export declare const get_combo_color: (skin: ISkinConfig, combo_number: number, alpha?: number) => string;
|
|
28
|
+
export declare const get_mania_lane_color: (skin: ISkinConfig, key_count: number, lane: number) => string;
|
|
29
|
+
//# sourceMappingURL=skin_config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skin_config.d.ts","sourceRoot":"","sources":["../../src/skin/skin_config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IAGvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB,EAAE,MAAM,CAAC;IAG9B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IAGzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAG3B,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAG5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAG5C,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mBAAmB,EAAE,MAAM,CAAC;CAC/B;AAeD,eAAO,MAAM,YAAY,EAAE,WA6B1B,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,UAAU,OAAO,CAAC,WAAW,CAAC,KAAG,WAQ3D,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,MAAM,WAAW,EAAE,cAAc,MAAM,EAAE,QAAO,MAAU,KAAG,MAG5F,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,MAAM,WAAW,EAAE,WAAW,MAAM,EAAE,MAAM,MAAM,KAAG,MAGzF,CAAC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
export declare enum GameMode {
|
|
2
|
+
Standard = 0,
|
|
3
|
+
Taiko = 1,
|
|
4
|
+
Catch = 2,
|
|
5
|
+
Mania = 3
|
|
6
|
+
}
|
|
7
|
+
export interface IBeatmap {
|
|
8
|
+
format_version: number;
|
|
9
|
+
mode: GameMode;
|
|
10
|
+
title: string;
|
|
11
|
+
title_unicode: string;
|
|
12
|
+
artist: string;
|
|
13
|
+
artist_unicode: string;
|
|
14
|
+
creator: string;
|
|
15
|
+
version: string;
|
|
16
|
+
ar: number;
|
|
17
|
+
cs: number;
|
|
18
|
+
od: number;
|
|
19
|
+
hp: number;
|
|
20
|
+
sv: number;
|
|
21
|
+
tick_rate: number;
|
|
22
|
+
timing_points: ITimingPoint[];
|
|
23
|
+
objects: IHitObject[];
|
|
24
|
+
circle_count: number;
|
|
25
|
+
slider_count: number;
|
|
26
|
+
spinner_count: number;
|
|
27
|
+
hold_count: number;
|
|
28
|
+
}
|
|
29
|
+
export declare enum SampleSet {
|
|
30
|
+
Auto = 0,
|
|
31
|
+
Normal = 1,
|
|
32
|
+
Soft = 2,
|
|
33
|
+
Drum = 3
|
|
34
|
+
}
|
|
35
|
+
export interface ITimingPoint {
|
|
36
|
+
time: number;
|
|
37
|
+
ms_per_beat: number;
|
|
38
|
+
change: boolean;
|
|
39
|
+
sample_set: SampleSet;
|
|
40
|
+
sample_index: number;
|
|
41
|
+
volume: number;
|
|
42
|
+
kiai: boolean;
|
|
43
|
+
velocity: number;
|
|
44
|
+
beat_length: number;
|
|
45
|
+
}
|
|
46
|
+
export declare const HitObjectType: {
|
|
47
|
+
readonly Circle: number;
|
|
48
|
+
readonly Slider: number;
|
|
49
|
+
readonly NewCombo: number;
|
|
50
|
+
readonly Spinner: number;
|
|
51
|
+
readonly ComboSkip: number;
|
|
52
|
+
readonly Hold: number;
|
|
53
|
+
};
|
|
54
|
+
export declare const HitSoundType: {
|
|
55
|
+
readonly Normal: number;
|
|
56
|
+
readonly Whistle: number;
|
|
57
|
+
readonly Finish: number;
|
|
58
|
+
readonly Clap: number;
|
|
59
|
+
};
|
|
60
|
+
export interface IHitSample {
|
|
61
|
+
normal_set: SampleSet;
|
|
62
|
+
addition_set: SampleSet;
|
|
63
|
+
index: number;
|
|
64
|
+
volume: number;
|
|
65
|
+
filename?: string;
|
|
66
|
+
}
|
|
67
|
+
export interface IHitObject {
|
|
68
|
+
time: number;
|
|
69
|
+
type: number;
|
|
70
|
+
hit_sound: number;
|
|
71
|
+
hit_sample?: IHitSample;
|
|
72
|
+
edge_sounds?: number[];
|
|
73
|
+
edge_sets?: [SampleSet, SampleSet][];
|
|
74
|
+
end_time: number;
|
|
75
|
+
end_pos: [number, number];
|
|
76
|
+
combo_number: number;
|
|
77
|
+
combo_count: number;
|
|
78
|
+
data: ICircleData | ISliderData | ISpinnerData | IHoldData;
|
|
79
|
+
}
|
|
80
|
+
export interface ICircleData {
|
|
81
|
+
pos: [number, number];
|
|
82
|
+
}
|
|
83
|
+
export type SliderPathType = "L" | "B" | "P" | "C";
|
|
84
|
+
export interface ISliderData {
|
|
85
|
+
pos: [number, number];
|
|
86
|
+
path_type: SliderPathType;
|
|
87
|
+
control_points: [number, number][];
|
|
88
|
+
distance: number;
|
|
89
|
+
repetitions: number;
|
|
90
|
+
duration?: number;
|
|
91
|
+
computed_path?: [number, number][];
|
|
92
|
+
}
|
|
93
|
+
export interface ISpinnerData {
|
|
94
|
+
end_time: number;
|
|
95
|
+
}
|
|
96
|
+
export interface IHoldData {
|
|
97
|
+
pos: [number, number];
|
|
98
|
+
end_time: number;
|
|
99
|
+
}
|
|
100
|
+
export declare const is_circle: (obj: IHitObject) => boolean;
|
|
101
|
+
export declare const is_slider: (obj: IHitObject) => boolean;
|
|
102
|
+
export declare const is_spinner: (obj: IHitObject) => boolean;
|
|
103
|
+
export declare const is_hold: (obj: IHitObject) => boolean;
|
|
104
|
+
export declare const is_new_combo: (obj: IHitObject) => boolean;
|
|
105
|
+
//# sourceMappingURL=beatmap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"beatmap.d.ts","sourceRoot":"","sources":["../../src/types/beatmap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export declare const Mods: {
|
|
2
|
+
readonly None: 0;
|
|
3
|
+
readonly NoFail: number;
|
|
4
|
+
readonly Easy: number;
|
|
5
|
+
readonly TouchDevice: number;
|
|
6
|
+
readonly Hidden: number;
|
|
7
|
+
readonly HardRock: number;
|
|
8
|
+
readonly SuddenDeath: number;
|
|
9
|
+
readonly DoubleTime: number;
|
|
10
|
+
readonly Relax: number;
|
|
11
|
+
readonly HalfTime: number;
|
|
12
|
+
readonly Nightcore: number;
|
|
13
|
+
readonly Flashlight: number;
|
|
14
|
+
readonly Autoplay: number;
|
|
15
|
+
readonly SpunOut: number;
|
|
16
|
+
readonly Autopilot: number;
|
|
17
|
+
readonly Perfect: number;
|
|
18
|
+
};
|
|
19
|
+
export declare const SpeedChangingMods: number;
|
|
20
|
+
export declare const DifficultyChangingMods: number;
|
|
21
|
+
export declare const mods_from_string: (str: string) => number;
|
|
22
|
+
export declare const mods_to_string: (mods: number) => string;
|
|
23
|
+
export declare const get_speed_multiplier: (mods: number) => number;
|
|
24
|
+
export declare const toggle_mod: (current: number, mod: number) => number;
|
|
25
|
+
export declare const has_mod: (mods: number, mod: number) => boolean;
|
|
26
|
+
//# sourceMappingURL=mods.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mods.d.ts","sourceRoot":"","sources":["../../src/types/mods.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;CAiBP,CAAC;AAEX,eAAO,MAAM,iBAAiB,QAAmD,CAAC;AAClF,eAAO,MAAM,sBAAsB,QAAgD,CAAC;AAEpF,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,KAAG,MA6B9C,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,MAsB7C,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,KAAG,MAInD,CAAC;AAIF,eAAO,MAAM,UAAU,GAAI,SAAS,MAAM,EAAE,KAAK,MAAM,KAAG,MAgBzD,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,EAAE,KAAK,MAAM,KAAG,OAA6B,CAAC"}
|