@r2o3/rgskin-nodejs 0.0.3 → 0.0.6
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 +67 -11
- package/package.json +1 -1
- package/rgskin.d.ts +286 -58
- package/rgskin.js +2633 -456
- package/rgskin_bg.wasm +0 -0
package/README.md
CHANGED
|
@@ -1,8 +1,18 @@
|
|
|
1
1
|
# rgskin
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
[](https://crates.io/crates/rgskin)
|
|
4
|
+
[&color=CB3837)](https://www.npmjs.com/package/@r2o3/rgskin-browser)
|
|
5
|
+
[&color=CB3837)](https://www.npmjs.com/package/@r2o3/rgskin-nodejs)
|
|
6
|
+
|
|
7
|
+
[](LICENSE)
|
|
8
|
+
[](https://www.rust-lang.org/tools/install)
|
|
9
|
+
|
|
10
|
+
A library for loading and creating skins for various rhythm games. It supports multi-threading and cross-platform usage including Web and Node.js environments via WebAssembly (WASM).
|
|
3
11
|
|
|
4
12
|
## Table of Contents
|
|
5
13
|
|
|
14
|
+
- [Features](#features)
|
|
15
|
+
- [Supported Games](#supported-games)
|
|
6
16
|
- [Rust Usage](#rust-usage)
|
|
7
17
|
- [Installation](#installation)
|
|
8
18
|
- [API Reference](#api-reference)
|
|
@@ -21,13 +31,20 @@ A library for loading and creating skins for various rhythm games. It supports c
|
|
|
21
31
|
- [WASM Bindings](#wasm-bindings)
|
|
22
32
|
- [License](#license)
|
|
23
33
|
|
|
34
|
+
## Features
|
|
35
|
+
|
|
36
|
+
### Supported Games:
|
|
37
|
+
- Osu!
|
|
38
|
+
- Quaver
|
|
39
|
+
- fluXis
|
|
40
|
+
|
|
24
41
|
## Rust Usage
|
|
25
42
|
|
|
26
43
|
### Installation
|
|
27
44
|
Add this to your `Cargo.toml`:
|
|
28
45
|
```toml
|
|
29
46
|
[dependencies]
|
|
30
|
-
rgskin = "0.0.
|
|
47
|
+
rgskin = "0.0.6"
|
|
31
48
|
```
|
|
32
49
|
|
|
33
50
|
Or run:
|
|
@@ -47,6 +64,7 @@ use rgskin::prelude::*;
|
|
|
47
64
|
// importing a skin from a directory
|
|
48
65
|
let osu_skin = import::osu::skin_from_dir("path/to/skin").expect("Failed to import skin!", false);
|
|
49
66
|
let fluxis_skin = import::fluxis::skin_from_dir("path/to/skin").expect("Failed to import skin!", false);
|
|
67
|
+
let quaver_skin = import::quaver::skin_from_dir("path/to/skin").expect("Failed to import skin!", false);
|
|
50
68
|
```
|
|
51
69
|
|
|
52
70
|
The second argument is for if you want to import ALL assets for a skin, it will import all textures but leave the unrequired unloaded, usually recommended when merging skins of the same type as you might need all assets; otherwise if false it will only import and load the required assets.
|
|
@@ -90,7 +108,7 @@ OsuSkin.to_generic_mania(()); // yes, the extra parethesis is required.
|
|
|
90
108
|
```
|
|
91
109
|
```rust
|
|
92
110
|
FluXisSkin::from_generic_mania(&generic);
|
|
93
|
-
FluXisSkin.to_generic_mania(fluxis_layout); // if you don't have a layout you can just pass None
|
|
111
|
+
FluXisSkin.to_generic_mania(fluxis_layout); // if you don't have a layout you can just pass None.
|
|
94
112
|
```
|
|
95
113
|
|
|
96
114
|
---
|
|
@@ -134,20 +152,58 @@ then use as an ES module
|
|
|
134
152
|
### API Reference
|
|
135
153
|
|
|
136
154
|
#### Initialization
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
As of now you can't parse/write using the original structures in JS/TS, will be supported in the *near* future.
|
|
158
|
+
|
|
159
|
+
> [!IMPORTANT]
|
|
160
|
+
> `wasm-bindgen-rayon` uses `SharedArrayBuffer` for thread communication, which requires your page to be cross-origin isolated. Your server must send these headers:
|
|
161
|
+
> ```
|
|
162
|
+
> Cross-Origin-Opener-Policy: same-origin
|
|
163
|
+
> Cross-Origin-Embedder-Policy: require-corp
|
|
164
|
+
> ```
|
|
165
|
+
> You can verify isolation is active with `self.crossOriginIsolated` in the browser console.
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
**ES Modules (bundler or Node.js)**
|
|
170
|
+
|
|
137
171
|
```javascript
|
|
138
|
-
|
|
139
|
-
|
|
172
|
+
import init, { initThreadPool } from '@r2o3/rgskin';
|
|
173
|
+
// or if not installed via npm:
|
|
174
|
+
// import init, { initThreadPool } from './path/to/rgskin.js';
|
|
140
175
|
|
|
141
|
-
|
|
142
|
-
|
|
176
|
+
await init();
|
|
177
|
+
await initThreadPool(navigator.hardwareConcurrency);
|
|
178
|
+
```
|
|
143
179
|
|
|
144
|
-
|
|
145
|
-
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
**Browser (`<script type="module">`)**
|
|
183
|
+
|
|
184
|
+
```javascript
|
|
185
|
+
import rgskin from './path/to/rgskin.js';
|
|
186
|
+
|
|
187
|
+
await rgskin.default();
|
|
188
|
+
await rgskin.initThreadPool(navigator.hardwareConcurrency);
|
|
146
189
|
```
|
|
147
190
|
|
|
148
|
-
|
|
191
|
+
---
|
|
149
192
|
|
|
150
|
-
|
|
193
|
+
**CommonJS (Node.js or Legacy Environments)**
|
|
194
|
+
|
|
195
|
+
CommonJS (`require`) is not natively supported because `wasm-bindgen-rayon` relies on ES Modules and top-level async initialization. However, you can load it using `import()`:
|
|
196
|
+
|
|
197
|
+
```javascript
|
|
198
|
+
async function loadWasm() {
|
|
199
|
+
const wasm = await import('@r2o3/rgskin');
|
|
200
|
+
|
|
201
|
+
await wasm.default();
|
|
202
|
+
await wasm.initThreadPool(navigator.hardwareConcurrency);
|
|
203
|
+
|
|
204
|
+
return wasm;
|
|
205
|
+
}
|
|
206
|
+
```
|
|
151
207
|
|
|
152
208
|
#### Importing/Loading Skins
|
|
153
209
|
|
package/package.json
CHANGED
package/rgskin.d.ts
CHANGED
|
@@ -4,27 +4,33 @@
|
|
|
4
4
|
export class BinaryStore {
|
|
5
5
|
free(): void;
|
|
6
6
|
[Symbol.dispose](): void;
|
|
7
|
-
constructor();
|
|
8
|
-
insertBinary(binary: RawBytes): void;
|
|
9
|
-
makeUnique(new_path: string, binary: RawBytes): string;
|
|
10
|
-
loadFromArrayBuffer(path: string, buffer: ArrayBuffer): void;
|
|
11
|
-
loadFromUint8Array(path: string, array: Uint8Array): void;
|
|
12
7
|
allLoaded(): boolean;
|
|
8
|
+
hasBinary(path: string): boolean;
|
|
9
|
+
makeUnique(new_path: string, binary: RawBytes): string;
|
|
13
10
|
loadedCount(): number;
|
|
11
|
+
insertBinary(binary: RawBytes): void;
|
|
14
12
|
unloadedPaths(): Array<any>;
|
|
15
|
-
hasBinary(path: string): boolean;
|
|
16
|
-
getBinaryPath(path: string): string | undefined;
|
|
17
13
|
binaryHasData(path: string): boolean;
|
|
18
14
|
getBinaryData(path: string): Uint8Array | undefined;
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
getBinaryPath(path: string): string | undefined;
|
|
16
|
+
loadFromUint8Array(path: string, array: Uint8Array): void;
|
|
17
|
+
loadFromArrayBuffer(path: string, buffer: ArrayBuffer): void;
|
|
18
|
+
constructor();
|
|
19
|
+
clear(): void;
|
|
21
20
|
getLength(): number;
|
|
21
|
+
extend(other: BinaryStore): void;
|
|
22
|
+
remove(path: string): boolean;
|
|
23
|
+
contains(path: string): boolean;
|
|
22
24
|
isEmpty(): boolean;
|
|
23
25
|
getPaths(): Array<any>;
|
|
24
|
-
clear(): void;
|
|
25
|
-
copy(original_path: string, new_path: string): string | undefined;
|
|
26
26
|
makeUniqueCopy(original_path: string, new_base_path: string): string | undefined;
|
|
27
|
-
|
|
27
|
+
copy(original_path: string, new_path: string): string | undefined;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export enum DefaultSkin {
|
|
31
|
+
Arrow = 0,
|
|
32
|
+
Bar = 1,
|
|
33
|
+
Circle = 2,
|
|
28
34
|
}
|
|
29
35
|
|
|
30
36
|
export class FluXisKeymode {
|
|
@@ -54,12 +60,12 @@ export class FluXisSkin {
|
|
|
54
60
|
free(): void;
|
|
55
61
|
[Symbol.dispose](): void;
|
|
56
62
|
constructor(skin_json: SkinJson, textures?: TextureStore | null, samples?: BinaryStore | null);
|
|
63
|
+
getKeymode(keymode: number): FluXisKeymode | undefined;
|
|
57
64
|
toGenericMania(): GenericManiaSkin;
|
|
58
|
-
toGenericManiaWithLayout(layout: FluXisLayout): GenericManiaSkin;
|
|
59
65
|
static fromGenericMania(skin: GenericManiaSkin): FluXisSkinWithLayout;
|
|
60
|
-
getKeymode(keymode: number): FluXisKeymode | undefined;
|
|
61
|
-
getRequiredTexturePaths(): string[];
|
|
62
66
|
getRequiredSamplePaths(): string[];
|
|
67
|
+
getRequiredTexturePaths(): string[];
|
|
68
|
+
toGenericManiaWithLayout(layout: FluXisLayout): GenericManiaSkin;
|
|
63
69
|
skin_json: SkinJson;
|
|
64
70
|
textures: TextureStore;
|
|
65
71
|
samples: BinaryStore;
|
|
@@ -102,15 +108,39 @@ export class GenericManiaSkin {
|
|
|
102
108
|
private constructor();
|
|
103
109
|
free(): void;
|
|
104
110
|
[Symbol.dispose](): void;
|
|
111
|
+
getKeymode(keymode: number): Keymode | undefined;
|
|
105
112
|
toGenericMania(): GenericManiaSkin;
|
|
106
113
|
static fromGenericMania(skin: GenericManiaSkin): GenericManiaSkin;
|
|
107
|
-
getKeymode(keymode: number): Keymode | undefined;
|
|
108
|
-
getRequiredTexturePaths(): string[];
|
|
109
114
|
getRequiredSamplePaths(): string[];
|
|
115
|
+
getRequiredTexturePaths(): string[];
|
|
110
116
|
textures: TextureStore;
|
|
111
117
|
samples: BinaryStore;
|
|
112
118
|
}
|
|
113
119
|
|
|
120
|
+
export enum HealthBarKeysAlignment {
|
|
121
|
+
LeftStage = 0,
|
|
122
|
+
RightStage = 1,
|
|
123
|
+
TopLeft = 2,
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export enum HealthBarType {
|
|
127
|
+
Horizontal = 0,
|
|
128
|
+
Vertical = 1,
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export enum HitBubblesAlignment {
|
|
132
|
+
LeftStage = 0,
|
|
133
|
+
RightStage = 1,
|
|
134
|
+
BelowStage = 2,
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
export enum HitBubblesType {
|
|
138
|
+
FallDown = 0,
|
|
139
|
+
FallUp = 1,
|
|
140
|
+
FallLeft = 2,
|
|
141
|
+
FallRight = 3,
|
|
142
|
+
}
|
|
143
|
+
|
|
114
144
|
export class Info {
|
|
115
145
|
private constructor();
|
|
116
146
|
free(): void;
|
|
@@ -124,12 +154,31 @@ export class Keymode {
|
|
|
124
154
|
private constructor();
|
|
125
155
|
free(): void;
|
|
126
156
|
[Symbol.dispose](): void;
|
|
127
|
-
static fromStr(content: string): OsuKeymode;
|
|
128
157
|
toStr(): string;
|
|
158
|
+
static fromStr(content: string): OsuKeymode;
|
|
129
159
|
getTexturePaths(): string[];
|
|
130
160
|
keymode: number;
|
|
131
161
|
}
|
|
132
162
|
|
|
163
|
+
export class MainMenu {
|
|
164
|
+
private constructor();
|
|
165
|
+
free(): void;
|
|
166
|
+
[Symbol.dispose](): void;
|
|
167
|
+
static fromStr(content: string): MainMenu;
|
|
168
|
+
toString(): string;
|
|
169
|
+
navigation_button_hovered_alpha: number;
|
|
170
|
+
audio_visualizer_opacity: number;
|
|
171
|
+
note_visualizer_opacity: number;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
export class MenuBorder {
|
|
175
|
+
private constructor();
|
|
176
|
+
free(): void;
|
|
177
|
+
[Symbol.dispose](): void;
|
|
178
|
+
static fromStr(content: string): MenuBorder;
|
|
179
|
+
toString(): string;
|
|
180
|
+
}
|
|
181
|
+
|
|
133
182
|
export class OsuKeymode {
|
|
134
183
|
private constructor();
|
|
135
184
|
free(): void;
|
|
@@ -190,11 +239,11 @@ export class OsuSkin {
|
|
|
190
239
|
free(): void;
|
|
191
240
|
[Symbol.dispose](): void;
|
|
192
241
|
constructor(skin_ini: OsuSkinIni, textures?: TextureStore | null, samples?: BinaryStore | null);
|
|
242
|
+
getKeymode(keymode: number): OsuKeymode | undefined;
|
|
193
243
|
toGenericMania(): GenericManiaSkin;
|
|
194
244
|
static fromGenericMania(skin: GenericManiaSkin): OsuSkin;
|
|
195
|
-
getKeymode(keymode: number): OsuKeymode | undefined;
|
|
196
|
-
getRequiredTexturePaths(): string[];
|
|
197
245
|
getRequiredSamplePaths(): string[];
|
|
246
|
+
getRequiredTexturePaths(): string[];
|
|
198
247
|
skin_ini: OsuSkinIni;
|
|
199
248
|
textures: TextureStore;
|
|
200
249
|
samples: BinaryStore;
|
|
@@ -203,112 +252,291 @@ export class OsuSkin {
|
|
|
203
252
|
export class OsuSkinIni {
|
|
204
253
|
free(): void;
|
|
205
254
|
[Symbol.dispose](): void;
|
|
206
|
-
constructor();
|
|
207
255
|
static fromStr(json_str: string): OsuSkinIni;
|
|
208
256
|
toString(): string;
|
|
209
|
-
getRequiredTexturePaths(): string[];
|
|
210
|
-
getRequiredSamplePaths(): string[];
|
|
211
257
|
getKeymode(keymode: number): OsuKeymode | undefined;
|
|
258
|
+
getRequiredSamplePaths(): string[];
|
|
259
|
+
getRequiredTexturePaths(): string[];
|
|
260
|
+
constructor();
|
|
212
261
|
general: General;
|
|
213
262
|
keymodes: OsuKeymode[];
|
|
214
263
|
}
|
|
215
264
|
|
|
265
|
+
export class QuaGeneral {
|
|
266
|
+
private constructor();
|
|
267
|
+
free(): void;
|
|
268
|
+
[Symbol.dispose](): void;
|
|
269
|
+
static fromStr(content: string): QuaGeneral;
|
|
270
|
+
toString(): string;
|
|
271
|
+
name: string;
|
|
272
|
+
author: string;
|
|
273
|
+
version: string;
|
|
274
|
+
center_cursor: boolean;
|
|
275
|
+
use_skin_backgrounds: boolean;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
export class QuaKeymode {
|
|
279
|
+
private constructor();
|
|
280
|
+
free(): void;
|
|
281
|
+
[Symbol.dispose](): void;
|
|
282
|
+
toStr(): string;
|
|
283
|
+
static fromStr(content: string): QuaKeymode;
|
|
284
|
+
keymode: number;
|
|
285
|
+
default_skin: DefaultSkin;
|
|
286
|
+
color_objects_by_snap_distance: boolean;
|
|
287
|
+
use_hit_object_sheet: boolean;
|
|
288
|
+
rotate_hit_objects_by_column: boolean;
|
|
289
|
+
flip_note_images_on_upscroll: boolean;
|
|
290
|
+
flip_note_end_images_on_upscroll: boolean;
|
|
291
|
+
draw_long_note_end: boolean;
|
|
292
|
+
note_padding: number;
|
|
293
|
+
width_for_note_height_scale: number;
|
|
294
|
+
bg_mask_alpha: number;
|
|
295
|
+
bg_mask_padding: number;
|
|
296
|
+
column_alignment: number;
|
|
297
|
+
column_size: number;
|
|
298
|
+
column_lighting_offset_y: number;
|
|
299
|
+
column_lighting_scale: number;
|
|
300
|
+
hit_pos_offset_y: number;
|
|
301
|
+
receptor_pos_offset_y: number;
|
|
302
|
+
receptors_over_hit_objects: boolean;
|
|
303
|
+
stage_receptor_padding: number;
|
|
304
|
+
coop_playfield_padding: number;
|
|
305
|
+
hit_error_chevron_size: number;
|
|
306
|
+
hit_error_height: number;
|
|
307
|
+
hit_error_pos_x: number;
|
|
308
|
+
hit_error_pos_y: number;
|
|
309
|
+
hit_error_alpha: number;
|
|
310
|
+
judgement_hit_burst_fps: number;
|
|
311
|
+
judgement_burst_pos_y: number;
|
|
312
|
+
judgement_hit_burst_bump_y: number;
|
|
313
|
+
judgement_hit_burst_bump_time: number;
|
|
314
|
+
judgement_hit_burst_scale: number;
|
|
315
|
+
hit_lighting_x: number;
|
|
316
|
+
hit_lighting_y: number;
|
|
317
|
+
hit_lighting_fps: number;
|
|
318
|
+
hit_lighting_scale: number;
|
|
319
|
+
hit_lighting_column_rotation: boolean;
|
|
320
|
+
hold_lighting_fps: number;
|
|
321
|
+
hold_lighting_scale: number;
|
|
322
|
+
hold_lighting_column_rotation: boolean;
|
|
323
|
+
health_bar_keys_alignment: HealthBarKeysAlignment;
|
|
324
|
+
health_bar_type: HealthBarType;
|
|
325
|
+
health_bar_pos_offset_x: number;
|
|
326
|
+
health_bar_pos_offset_y: number;
|
|
327
|
+
health_bar_scale: number;
|
|
328
|
+
hit_bubbles_alignment: HitBubblesAlignment;
|
|
329
|
+
hit_bubbles_type: HitBubblesType;
|
|
330
|
+
hit_bubbles_pos_x: number;
|
|
331
|
+
hit_bubbles_pos_y: number;
|
|
332
|
+
hit_bubbles_scale: number;
|
|
333
|
+
hit_bubble_scale: number;
|
|
334
|
+
hit_bubble_border_padding: number;
|
|
335
|
+
hit_bubble_padding: number;
|
|
336
|
+
combo_display_scale: number;
|
|
337
|
+
combo_pos_x: number;
|
|
338
|
+
combo_pos_y: number;
|
|
339
|
+
combo_display_bump_y: number;
|
|
340
|
+
combo_display_bump_time: number;
|
|
341
|
+
rating_display_scale: number;
|
|
342
|
+
rating_display_pos_x: number;
|
|
343
|
+
rating_display_pos_y: number;
|
|
344
|
+
accuracy_display_scale: number;
|
|
345
|
+
accuracy_display_pos_x: number;
|
|
346
|
+
accuracy_display_pos_y: number;
|
|
347
|
+
kps_display_scale: number;
|
|
348
|
+
kps_display_pos_x: number;
|
|
349
|
+
kps_display_pos_y: number;
|
|
350
|
+
score_display_scale: number;
|
|
351
|
+
score_display_pos_x: number;
|
|
352
|
+
score_display_pos_y: number;
|
|
353
|
+
battle_royale_alert_pos_x: number;
|
|
354
|
+
battle_royale_alert_pos_y: number;
|
|
355
|
+
battle_royale_alert_scale: number;
|
|
356
|
+
battle_royale_eliminated_pos_x: number;
|
|
357
|
+
battle_royale_eliminated_pos_y: number;
|
|
358
|
+
judgement_counter_alpha: number;
|
|
359
|
+
judgement_counter_size: number;
|
|
360
|
+
judgement_counter_pos_x: number;
|
|
361
|
+
judgement_counter_pos_y: number;
|
|
362
|
+
judgement_counter_padding: number;
|
|
363
|
+
judgement_counter_horizontal: boolean;
|
|
364
|
+
judgement_counter_fade_to_alpha: boolean;
|
|
365
|
+
use_judgement_color_for_numbers: boolean;
|
|
366
|
+
song_time_progress_scale: number;
|
|
367
|
+
song_time_progress_position_at_top: boolean;
|
|
368
|
+
show_mini_song_bar: boolean;
|
|
369
|
+
mini_song_bar_display_pos_x: number;
|
|
370
|
+
mini_song_bar_display_pos_y: number;
|
|
371
|
+
mini_song_bar_display_width_factor: number;
|
|
372
|
+
mini_song_bar_display_height: number;
|
|
373
|
+
use_fallback: boolean;
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
export class QuaSkin {
|
|
377
|
+
free(): void;
|
|
378
|
+
[Symbol.dispose](): void;
|
|
379
|
+
constructor(skin_ini: QuaSkinIni, textures?: TextureStore | null, samples?: BinaryStore | null);
|
|
380
|
+
getKeymode(keymode: number): QuaKeymode | undefined;
|
|
381
|
+
toGenericMania(): GenericManiaSkin;
|
|
382
|
+
static fromGenericMania(skin: GenericManiaSkin): QuaSkin;
|
|
383
|
+
getRequiredSamplePaths(): string[];
|
|
384
|
+
getRequiredTexturePaths(): string[];
|
|
385
|
+
skin_ini: QuaSkinIni;
|
|
386
|
+
textures: TextureStore;
|
|
387
|
+
samples: BinaryStore;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
export class QuaSkinIni {
|
|
391
|
+
free(): void;
|
|
392
|
+
[Symbol.dispose](): void;
|
|
393
|
+
static fromStr(ini_str: string): QuaSkinIni;
|
|
394
|
+
toString(): string;
|
|
395
|
+
getKeymode(keymode: number): QuaKeymode | undefined;
|
|
396
|
+
constructor();
|
|
397
|
+
general: QuaGeneral;
|
|
398
|
+
main_menu: MainMenu;
|
|
399
|
+
menu_border: MenuBorder;
|
|
400
|
+
song_select: SongSelect;
|
|
401
|
+
results: Results;
|
|
402
|
+
keymodes: QuaKeymode[];
|
|
403
|
+
get shared_keymode(): QuaKeymode | undefined;
|
|
404
|
+
set shared_keymode(value: QuaKeymode | null | undefined);
|
|
405
|
+
}
|
|
406
|
+
|
|
216
407
|
export class RawBytes {
|
|
217
408
|
free(): void;
|
|
218
409
|
[Symbol.dispose](): void;
|
|
219
|
-
constructor(path: string);
|
|
220
|
-
static fromBytes(path: string, bytes: Uint8Array): RawBytes;
|
|
221
410
|
getData(): Uint8Array | undefined;
|
|
222
|
-
|
|
223
|
-
static
|
|
224
|
-
|
|
225
|
-
|
|
411
|
+
getHash(): bigint | undefined;
|
|
412
|
+
static fromBytes(path: string, bytes: Uint8Array): RawBytes;
|
|
413
|
+
constructor(path: string);
|
|
414
|
+
unload(): void;
|
|
226
415
|
getPath(): string;
|
|
227
416
|
hasData(): boolean;
|
|
417
|
+
isEmpty(): boolean;
|
|
228
418
|
isLoaded(): boolean;
|
|
229
419
|
isUnloaded(): boolean;
|
|
230
|
-
|
|
420
|
+
static fromUint8Array(path: string, array: Uint8Array): RawBytes;
|
|
421
|
+
static fromArrayBuffer(path: string, buffer: ArrayBuffer): RawBytes;
|
|
422
|
+
static fromUint8ArrayUnloaded(path: string, array: Uint8Array): RawBytes;
|
|
423
|
+
static fromArrayBufferUnloaded(path: string, buffer: ArrayBuffer): RawBytes;
|
|
231
424
|
load(): void;
|
|
232
|
-
unload(): void;
|
|
233
425
|
path: string;
|
|
234
426
|
}
|
|
235
427
|
|
|
428
|
+
export class Results {
|
|
429
|
+
private constructor();
|
|
430
|
+
free(): void;
|
|
431
|
+
[Symbol.dispose](): void;
|
|
432
|
+
static fromStr(content: string): Results;
|
|
433
|
+
toString(): string;
|
|
434
|
+
results_background_type: ResultsBackgroundType;
|
|
435
|
+
results_background_filter_alpha: number;
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
export enum ResultsBackgroundType {
|
|
439
|
+
Header = 0,
|
|
440
|
+
Background = 1,
|
|
441
|
+
None = 2,
|
|
442
|
+
}
|
|
443
|
+
|
|
236
444
|
export class SkinJson {
|
|
237
445
|
free(): void;
|
|
238
446
|
[Symbol.dispose](): void;
|
|
239
|
-
constructor();
|
|
240
447
|
static fromStr(json_str: string): SkinJson;
|
|
241
448
|
toString(): string;
|
|
449
|
+
constructor();
|
|
242
450
|
info: Info;
|
|
243
451
|
keymodes: FluXisKeymode[];
|
|
244
452
|
}
|
|
245
453
|
|
|
454
|
+
export class SongSelect {
|
|
455
|
+
private constructor();
|
|
456
|
+
free(): void;
|
|
457
|
+
[Symbol.dispose](): void;
|
|
458
|
+
static fromStr(content: string): SongSelect;
|
|
459
|
+
toString(): string;
|
|
460
|
+
mapset_panel_hovering_alpha: number;
|
|
461
|
+
map_background_brightness: number;
|
|
462
|
+
display_map_background: boolean;
|
|
463
|
+
}
|
|
464
|
+
|
|
246
465
|
export class Texture {
|
|
247
466
|
free(): void;
|
|
248
467
|
[Symbol.dispose](): void;
|
|
249
|
-
constructor(path: string);
|
|
250
468
|
static fromBlank(path: string): Texture;
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
static fromUint8ArrayUnloaded(path: string, array: Uint8Array): Texture;
|
|
469
|
+
getHash(): bigint | undefined;
|
|
470
|
+
constructor(path: string);
|
|
471
|
+
unload(): void;
|
|
255
472
|
getPath(): string;
|
|
256
473
|
hasData(): boolean;
|
|
474
|
+
isEmpty(): boolean;
|
|
257
475
|
isLoaded(): boolean;
|
|
258
476
|
isUnloaded(): boolean;
|
|
259
|
-
|
|
477
|
+
static fromUint8Array(path: string, array: Uint8Array): Texture;
|
|
478
|
+
static fromArrayBuffer(path: string, buffer: ArrayBuffer): Texture;
|
|
479
|
+
static fromUint8ArrayUnloaded(path: string, array: Uint8Array): Texture;
|
|
480
|
+
static fromArrayBufferUnloaded(path: string, buffer: ArrayBuffer): Texture;
|
|
260
481
|
load(): void;
|
|
261
|
-
unload(): void;
|
|
262
482
|
path: string;
|
|
263
483
|
}
|
|
264
484
|
|
|
265
485
|
export class TextureStore {
|
|
266
486
|
free(): void;
|
|
267
487
|
[Symbol.dispose](): void;
|
|
268
|
-
constructor();
|
|
269
|
-
insertTexture(texture: Texture): void;
|
|
270
|
-
makeUnique(new_path: string, texture: Texture): string;
|
|
271
|
-
loadFromArrayBuffer(path: string, buffer: ArrayBuffer): void;
|
|
272
|
-
loadFromUint8Array(path: string, array: Uint8Array): void;
|
|
273
488
|
allLoaded(): boolean;
|
|
489
|
+
hasTexture(path: string): boolean;
|
|
490
|
+
makeUnique(new_path: string, texture: Texture): string;
|
|
274
491
|
loadedCount(): number;
|
|
492
|
+
insertTexture(texture: Texture): void;
|
|
275
493
|
unloadedPaths(): Array<any>;
|
|
276
|
-
hasTexture(path: string): boolean;
|
|
277
494
|
getTexturePath(path: string): string | undefined;
|
|
278
495
|
textureHasData(path: string): boolean;
|
|
279
|
-
|
|
280
|
-
|
|
496
|
+
loadFromUint8Array(path: string, array: Uint8Array): void;
|
|
497
|
+
loadFromArrayBuffer(path: string, buffer: ArrayBuffer): void;
|
|
498
|
+
constructor();
|
|
499
|
+
clear(): void;
|
|
281
500
|
getLength(): number;
|
|
501
|
+
extend(other: TextureStore): void;
|
|
502
|
+
remove(path: string): boolean;
|
|
503
|
+
contains(path: string): boolean;
|
|
282
504
|
isEmpty(): boolean;
|
|
283
505
|
getPaths(): Array<any>;
|
|
284
|
-
clear(): void;
|
|
285
|
-
copy(original_path: string, new_path: string): string | undefined;
|
|
286
506
|
makeUniqueCopy(original_path: string, new_base_path: string): string | undefined;
|
|
287
|
-
|
|
507
|
+
copy(original_path: string, new_path: string): string | undefined;
|
|
288
508
|
}
|
|
289
509
|
|
|
290
510
|
export function allSamplesFromDir(path: string): BinaryStore;
|
|
291
511
|
|
|
292
|
-
export function allTexturesFromDir(path: string): TextureStore;
|
|
512
|
+
export function allTexturesFromDir(path: string, load_only?: string[] | null): TextureStore;
|
|
293
513
|
|
|
294
|
-
export function fluXisSkinFromDir(path: string): FluXisSkin;
|
|
514
|
+
export function fluXisSkinFromDir(path: string, import_all?: boolean | null): FluXisSkin;
|
|
295
515
|
|
|
296
516
|
export function fluXisSkinToDir(skin: FluXisSkin, path: string): void;
|
|
297
517
|
|
|
298
|
-
export function
|
|
518
|
+
export function fluxisJsonStrFromDir(path: string): string;
|
|
299
519
|
|
|
300
|
-
export function
|
|
520
|
+
export function fluxisJsonToDir(skin_json: SkinJson, path: string): void;
|
|
301
521
|
|
|
302
|
-
export function
|
|
522
|
+
export function fluxisLayoutToDir(layout_json: FluXisLayout, path: string): void;
|
|
303
523
|
|
|
304
|
-
export function
|
|
524
|
+
export function osuIniStrFromDir(path: string): string;
|
|
305
525
|
|
|
306
|
-
export function
|
|
526
|
+
export function osuIniToDir(skin_ini: OsuSkinIni, path: string): void;
|
|
307
527
|
|
|
308
|
-
export function osuSkinFromDir(path: string): OsuSkin;
|
|
528
|
+
export function osuSkinFromDir(path: string, import_all?: boolean | null): OsuSkin;
|
|
309
529
|
|
|
310
530
|
export function osuSkinToDir(skin: OsuSkin, path: string): void;
|
|
311
531
|
|
|
532
|
+
export function quaverIniStrFromDir(path: string): string;
|
|
533
|
+
|
|
534
|
+
export function quaverIniToDir(skin_ini: QuaSkinIni, path: string): void;
|
|
535
|
+
|
|
536
|
+
export function quaverSkinFromDir(path: string, import_all?: boolean | null): QuaSkin;
|
|
537
|
+
|
|
538
|
+
export function quaverSkinToDir(skin: QuaSkin, path: string): void;
|
|
539
|
+
|
|
312
540
|
export function samplesFromDir(path: string, relative_sample_paths: Array<any>): BinaryStore;
|
|
313
541
|
|
|
314
542
|
export function samplesToDir(samples: BinaryStore, path: string): void;
|