sonolus-bandori-engine 0.6.8 → 0.7.0
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 +22 -9
- package/dist/EngineConfiguration +0 -0
- package/dist/EngineData +0 -0
- package/dist/convert.d.ts +10 -10
- package/dist/convert.js +9 -21
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/package.json +13 -11
package/README.md
CHANGED
|
@@ -19,18 +19,31 @@ Engine ID: `1`
|
|
|
19
19
|
|
|
20
20
|
### Skin Sprites
|
|
21
21
|
|
|
22
|
-
| ID | Sprite
|
|
23
|
-
| --- |
|
|
24
|
-
| 1 | Stage
|
|
25
|
-
| 2 | Judgment Line
|
|
22
|
+
| ID | Sprite | Bandori Asset Path |
|
|
23
|
+
| --- | ------------------------------ | ----------------------------------------------------- |
|
|
24
|
+
| 1 | Stage | `/ingameskin/fieldskin/{name}/bg_line_rhythm` |
|
|
25
|
+
| 2 | Judgment Line | `/ingameskin/fieldskin/{name}/game_play_line` |
|
|
26
|
+
| 11 | Left Directional Flick Note | `/ingameskin/noteskin/{name}/DirectionalFlickSprites` |
|
|
27
|
+
| 12 | Right Directional Flick Note | `/ingameskin/noteskin/{name}/DirectionalFlickSprites` |
|
|
28
|
+
| 21 | Left Directional Flick Marker | `/ingameskin/noteskin/{name}/DirectionalFlickSprites` |
|
|
29
|
+
| 22 | Right Directional Flick Marker | `/ingameskin/noteskin/{name}/DirectionalFlickSprites` |
|
|
26
30
|
|
|
27
31
|
### Effect Clips
|
|
28
32
|
|
|
29
|
-
| ID |
|
|
30
|
-
| --- | ------------------------ |
|
|
31
|
-
| 1 | Directional Flick Single | `/sound/tapseskin/{name}/directional_fl
|
|
32
|
-
| 2 | Directional Flick Double | `/sound/tapseskin/{name}/directional_fl_2
|
|
33
|
-
| 3 | Directional Flick Triple | `/sound/tapseskin/{name}/directional_fl_3
|
|
33
|
+
| ID | Clip | Bandori Asset Path |
|
|
34
|
+
| --- | ------------------------ | ------------------------------------------ |
|
|
35
|
+
| 1 | Directional Flick Single | `/sound/tapseskin/{name}/directional_fl` |
|
|
36
|
+
| 2 | Directional Flick Double | `/sound/tapseskin/{name}/directional_fl_2` |
|
|
37
|
+
| 3 | Directional Flick Triple | `/sound/tapseskin/{name}/directional_fl_3` |
|
|
38
|
+
|
|
39
|
+
### Particle Effects
|
|
40
|
+
|
|
41
|
+
| ID | Effect |
|
|
42
|
+
| --- | -------------------------------- |
|
|
43
|
+
| 1 | Circular Left Directional Flick |
|
|
44
|
+
| 2 | Circular Right Directional Flick |
|
|
45
|
+
| 11 | Linear Left Directional Flick |
|
|
46
|
+
| 12 | Linear Right Directional Flick |
|
|
34
47
|
|
|
35
48
|
## Documentation
|
|
36
49
|
|
package/dist/EngineConfiguration
CHANGED
|
Binary file
|
package/dist/EngineData
CHANGED
|
Binary file
|
package/dist/convert.d.ts
CHANGED
|
@@ -1,38 +1,38 @@
|
|
|
1
1
|
import { LevelData } from 'sonolus-core';
|
|
2
|
-
export
|
|
3
|
-
|
|
2
|
+
export type ChartObject = SingleObject | DirectionalObject | SlideObject | LongObject | BPMObject | SystemObject;
|
|
3
|
+
type ObjectBase = {
|
|
4
4
|
beat: number;
|
|
5
5
|
};
|
|
6
|
-
|
|
6
|
+
type NoteBase = ObjectBase & {
|
|
7
7
|
lane: number;
|
|
8
8
|
flick?: true;
|
|
9
9
|
skill?: true;
|
|
10
10
|
charge?: true;
|
|
11
11
|
};
|
|
12
|
-
|
|
12
|
+
type SingleObject = NoteBase & {
|
|
13
13
|
type: 'Single';
|
|
14
14
|
};
|
|
15
|
-
|
|
15
|
+
type DirectionalObject = NoteBase & {
|
|
16
16
|
type: 'Directional';
|
|
17
17
|
direction: 'Left' | 'Right';
|
|
18
18
|
width: number;
|
|
19
19
|
};
|
|
20
|
-
|
|
20
|
+
type SlideObject = {
|
|
21
21
|
type: 'Slide';
|
|
22
22
|
connections: Connection[];
|
|
23
23
|
};
|
|
24
|
-
|
|
24
|
+
type LongObject = {
|
|
25
25
|
type: 'Long';
|
|
26
26
|
connections: Connection[];
|
|
27
27
|
};
|
|
28
|
-
|
|
28
|
+
type Connection = NoteBase & {
|
|
29
29
|
hidden?: true;
|
|
30
30
|
};
|
|
31
|
-
|
|
31
|
+
type BPMObject = ObjectBase & {
|
|
32
32
|
type: 'BPM';
|
|
33
33
|
bpm: number;
|
|
34
34
|
};
|
|
35
|
-
|
|
35
|
+
type SystemObject = ObjectBase & {
|
|
36
36
|
type: 'System';
|
|
37
37
|
data: string;
|
|
38
38
|
};
|
package/dist/convert.js
CHANGED
|
@@ -83,8 +83,7 @@ function fromBestdori(chart, archetypes) {
|
|
|
83
83
|
let segments = [];
|
|
84
84
|
const hasHidden = chartObject.connections.some((connection) => connection.hidden);
|
|
85
85
|
const isLong = chartObject.connections.length === 2 &&
|
|
86
|
-
chartObject.connections[0].lane ===
|
|
87
|
-
chartObject.connections[1].lane
|
|
86
|
+
chartObject.connections[0].lane === chartObject.connections[1].lane
|
|
88
87
|
? 1
|
|
89
88
|
: 0;
|
|
90
89
|
chartObject.connections.forEach((connection, index) => {
|
|
@@ -120,14 +119,7 @@ function fromBestdori(chart, archetypes) {
|
|
|
120
119
|
: archetypes.slideEndNoteIndex,
|
|
121
120
|
data: {
|
|
122
121
|
index: 0,
|
|
123
|
-
values: [
|
|
124
|
-
0,
|
|
125
|
-
time,
|
|
126
|
-
lane,
|
|
127
|
-
0,
|
|
128
|
-
0,
|
|
129
|
-
isLong,
|
|
130
|
-
],
|
|
122
|
+
values: [0, time, lane, 0, 0, isLong],
|
|
131
123
|
},
|
|
132
124
|
},
|
|
133
125
|
time,
|
|
@@ -158,7 +150,7 @@ function fromBestdori(chart, archetypes) {
|
|
|
158
150
|
time: head.time,
|
|
159
151
|
lane: head.lane,
|
|
160
152
|
};
|
|
161
|
-
segments.forEach((segment
|
|
153
|
+
segments.forEach((segment) => {
|
|
162
154
|
wrappedSliderEntities.push({
|
|
163
155
|
entity: {
|
|
164
156
|
archetype: hasHidden
|
|
@@ -173,7 +165,6 @@ function fromBestdori(chart, archetypes) {
|
|
|
173
165
|
segment.time,
|
|
174
166
|
prevSegment.lane,
|
|
175
167
|
segment.lane,
|
|
176
|
-
index === 0 ? 1 : 0,
|
|
177
168
|
],
|
|
178
169
|
},
|
|
179
170
|
},
|
|
@@ -191,6 +182,7 @@ function fromBestdori(chart, archetypes) {
|
|
|
191
182
|
}
|
|
192
183
|
});
|
|
193
184
|
return {
|
|
185
|
+
bgmOffset: 0,
|
|
194
186
|
entities: [
|
|
195
187
|
...wrappedNoteEntities
|
|
196
188
|
.sort((a, b) => a.time - b.time || Math.abs(b.lane) - Math.abs(a.lane))
|
|
@@ -198,18 +190,15 @@ function fromBestdori(chart, archetypes) {
|
|
|
198
190
|
if (wrappedNoteEntity.head) {
|
|
199
191
|
if (!wrappedNoteEntity.entity.data)
|
|
200
192
|
throw 'Unexpected missing entity data';
|
|
201
|
-
wrappedNoteEntity.entity.data.values[0] =
|
|
202
|
-
wrappedNoteEntities.indexOf(wrappedNoteEntity.head);
|
|
193
|
+
wrappedNoteEntity.entity.data.values[0] = wrappedNoteEntities.indexOf(wrappedNoteEntity.head);
|
|
203
194
|
}
|
|
204
195
|
return wrappedNoteEntity.entity;
|
|
205
196
|
}),
|
|
206
197
|
...wrappedSliderEntities.map((wrappedSliderEntity) => {
|
|
207
198
|
if (!wrappedSliderEntity.entity.data)
|
|
208
199
|
throw 'Unexpected missing entity data';
|
|
209
|
-
wrappedSliderEntity.entity.data.values[0] =
|
|
210
|
-
|
|
211
|
-
wrappedSliderEntity.entity.data.values[1] =
|
|
212
|
-
wrappedNoteEntities.indexOf(wrappedSliderEntity.tail);
|
|
200
|
+
wrappedSliderEntity.entity.data.values[0] = wrappedNoteEntities.indexOf(wrappedSliderEntity.head);
|
|
201
|
+
wrappedSliderEntity.entity.data.values[1] = wrappedNoteEntities.indexOf(wrappedSliderEntity.tail);
|
|
213
202
|
return wrappedSliderEntity.entity;
|
|
214
203
|
}),
|
|
215
204
|
],
|
|
@@ -226,7 +215,6 @@ function fromBestdori(chart, archetypes) {
|
|
|
226
215
|
exports.fromBestdori = fromBestdori;
|
|
227
216
|
function repair(chartObjects) {
|
|
228
217
|
chartObjects.forEach((chartObject) => {
|
|
229
|
-
var _a, _b;
|
|
230
218
|
switch (chartObject.type) {
|
|
231
219
|
case 'Long':
|
|
232
220
|
case 'Slide': {
|
|
@@ -247,10 +235,10 @@ function repair(chartObjects) {
|
|
|
247
235
|
break;
|
|
248
236
|
}
|
|
249
237
|
default:
|
|
250
|
-
while (
|
|
238
|
+
while (chartObject.connections[0]?.hidden) {
|
|
251
239
|
chartObject.connections.shift();
|
|
252
240
|
}
|
|
253
|
-
while (
|
|
241
|
+
while (chartObject.connections[chartObject.connections.length - 1]?.hidden) {
|
|
254
242
|
chartObject.connections.pop();
|
|
255
243
|
}
|
|
256
244
|
break;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { LevelData } from 'sonolus-core';
|
|
2
2
|
import { ChartObject } from './convert';
|
|
3
3
|
import { Resource } from './Resource';
|
|
4
|
-
export declare const version = "0.
|
|
4
|
+
export declare const version = "0.7.0";
|
|
5
5
|
export declare const engineInfo: {
|
|
6
6
|
readonly name: "bandori";
|
|
7
|
-
readonly version:
|
|
7
|
+
readonly version: 7;
|
|
8
8
|
readonly title: {
|
|
9
9
|
readonly en: "BanG Dream!";
|
|
10
10
|
readonly ja: "バンドリ!";
|
package/dist/index.js
CHANGED
|
@@ -5,10 +5,10 @@ const convert_1 = require("./convert");
|
|
|
5
5
|
const Resource_1 = require("./Resource");
|
|
6
6
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
7
7
|
const archetypes = require('./archetypes');
|
|
8
|
-
exports.version = '0.
|
|
8
|
+
exports.version = '0.7.0';
|
|
9
9
|
exports.engineInfo = {
|
|
10
10
|
name: 'bandori',
|
|
11
|
-
version:
|
|
11
|
+
version: 7,
|
|
12
12
|
title: {
|
|
13
13
|
en: 'BanG Dream!',
|
|
14
14
|
ja: 'バンドリ!',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sonolus-bandori-engine",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "A recreation of BanG Dream! Girls Band Party engine in Sonolus",
|
|
5
5
|
"author": "NonSpicyBurrito",
|
|
6
6
|
"repository": "github:NonSpicyBurrito/sonolus-bandori-engine",
|
|
@@ -18,18 +18,20 @@
|
|
|
18
18
|
"build": "ts-node ./src/build && tsc -p ./tsconfig.lib.json"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
|
+
"@tsconfig/node16": "^1.0.3",
|
|
21
22
|
"@types/fs-extra": "^9.0.13",
|
|
22
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
23
|
-
"@typescript-eslint/parser": "^5.
|
|
24
|
-
"eslint": "^8.
|
|
23
|
+
"@typescript-eslint/eslint-plugin": "^5.44.0",
|
|
24
|
+
"@typescript-eslint/parser": "^5.44.0",
|
|
25
|
+
"eslint": "^8.28.0",
|
|
25
26
|
"eslint-config-prettier": "^8.5.0",
|
|
26
|
-
"eslint-plugin-prettier": "^4.
|
|
27
|
+
"eslint-plugin-prettier": "^4.2.1",
|
|
27
28
|
"fs-extra": "^10.1.0",
|
|
28
|
-
"prettier": "^2.
|
|
29
|
-
"
|
|
30
|
-
"sonolus
|
|
31
|
-
"
|
|
32
|
-
"ts-node
|
|
33
|
-
"
|
|
29
|
+
"prettier": "^2.8.0",
|
|
30
|
+
"prettier-plugin-organize-imports": "^3.2.0",
|
|
31
|
+
"sonolus-core": "^6.0.0-beta.6",
|
|
32
|
+
"sonolus.js": "^8.0.0-beta.3",
|
|
33
|
+
"ts-node": "^10.9.1",
|
|
34
|
+
"ts-node-dev": "^2.0.0",
|
|
35
|
+
"typescript": "^4.9.3"
|
|
34
36
|
}
|
|
35
37
|
}
|