sonolus.py 0.1.0__py3-none-any.whl → 0.1.2__py3-none-any.whl
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.
Potentially problematic release.
This version of sonolus.py might be problematic. Click here for more details.
- sonolus/backend/mode.py +4 -4
- sonolus/backend/visitor.py +2 -2
- sonolus/build/compile.py +3 -3
- sonolus/build/engine.py +20 -4
- sonolus/script/archetype.py +42 -11
- sonolus/script/bucket.py +4 -5
- sonolus/script/callbacks.py +10 -0
- sonolus/script/comptime.py +14 -0
- sonolus/script/debug.py +1 -1
- sonolus/script/effect.py +13 -14
- sonolus/script/engine.py +26 -6
- sonolus/script/globals.py +79 -44
- sonolus/script/graphics.py +37 -28
- sonolus/script/internal/builtin_impls.py +3 -3
- sonolus/script/internal/native.py +2 -2
- sonolus/script/interval.py +14 -0
- sonolus/script/level.py +7 -7
- sonolus/script/num.py +30 -4
- sonolus/script/options.py +6 -9
- sonolus/script/particle.py +50 -51
- sonolus/script/pointer.py +3 -3
- sonolus/script/preview.py +81 -0
- sonolus/script/runtime.py +113 -35
- sonolus/script/sprite.py +108 -107
- sonolus/script/text.py +407 -404
- sonolus/script/transform.py +13 -17
- sonolus/script/vec.py +24 -0
- {sonolus_py-0.1.0.dist-info → sonolus_py-0.1.2.dist-info}/METADATA +1 -1
- {sonolus_py-0.1.0.dist-info → sonolus_py-0.1.2.dist-info}/RECORD +32 -31
- {sonolus_py-0.1.0.dist-info → sonolus_py-0.1.2.dist-info}/WHEEL +0 -0
- {sonolus_py-0.1.0.dist-info → sonolus_py-0.1.2.dist-info}/entry_points.txt +0 -0
- {sonolus_py-0.1.0.dist-info → sonolus_py-0.1.2.dist-info}/licenses/LICENSE +0 -0
sonolus/script/runtime.py
CHANGED
|
@@ -7,17 +7,24 @@ from sonolus.script.globals import (
|
|
|
7
7
|
_level_life,
|
|
8
8
|
_level_score,
|
|
9
9
|
_play_runtime_environment,
|
|
10
|
+
_play_runtime_ui,
|
|
11
|
+
_play_runtime_ui_configuration,
|
|
10
12
|
_play_runtime_update,
|
|
13
|
+
_preview_runtime_canvas,
|
|
11
14
|
_preview_runtime_environment,
|
|
15
|
+
_preview_runtime_ui,
|
|
16
|
+
_preview_runtime_ui_configuration,
|
|
12
17
|
_runtime_background,
|
|
13
18
|
_runtime_particle_transform,
|
|
14
19
|
_runtime_skin_transform,
|
|
15
20
|
_runtime_touch_array,
|
|
16
|
-
_runtime_ui,
|
|
17
|
-
_runtime_ui_configuration,
|
|
18
21
|
_tutorial_runtime_environment,
|
|
22
|
+
_tutorial_runtime_ui,
|
|
23
|
+
_tutorial_runtime_ui_configuration,
|
|
19
24
|
_tutorial_runtime_update,
|
|
20
25
|
_watch_runtime_environment,
|
|
26
|
+
_watch_runtime_ui,
|
|
27
|
+
_watch_runtime_ui_configuration,
|
|
21
28
|
_watch_runtime_update,
|
|
22
29
|
)
|
|
23
30
|
from sonolus.script.graphics import Quad, Rect
|
|
@@ -83,21 +90,56 @@ class _TutorialRuntimeUpdate:
|
|
|
83
90
|
navigation_direction: int
|
|
84
91
|
|
|
85
92
|
|
|
93
|
+
class ScrollDirection(IntEnum):
|
|
94
|
+
LEFT_TO_RIGHT = 0
|
|
95
|
+
TOP_TO_BOTTOM = 1
|
|
96
|
+
RIGHT_TO_LEFT = 2
|
|
97
|
+
BOTTOM_TO_TOP = 3
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
@_preview_runtime_canvas
|
|
101
|
+
class _PreviewRuntimeCanvas:
|
|
102
|
+
scroll_direction: ScrollDirection
|
|
103
|
+
size: float
|
|
104
|
+
|
|
105
|
+
|
|
86
106
|
class RuntimeUiConfig(Record):
|
|
87
107
|
scale: float
|
|
88
108
|
alpha: float
|
|
89
109
|
|
|
90
110
|
|
|
91
|
-
@
|
|
92
|
-
class
|
|
111
|
+
@_play_runtime_ui_configuration
|
|
112
|
+
class _PlayRuntimeUiConfigs:
|
|
93
113
|
menu: RuntimeUiConfig
|
|
94
114
|
judgment: RuntimeUiConfig
|
|
95
115
|
combo: RuntimeUiConfig
|
|
96
116
|
primary_metric: RuntimeUiConfig
|
|
97
117
|
secondary_metric: RuntimeUiConfig
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
@_watch_runtime_ui_configuration
|
|
121
|
+
class _WatchRuntimeUiConfigs:
|
|
122
|
+
menu: RuntimeUiConfig
|
|
123
|
+
judgment: RuntimeUiConfig
|
|
124
|
+
combo: RuntimeUiConfig
|
|
125
|
+
primary_metric: RuntimeUiConfig
|
|
126
|
+
secondary_metric: RuntimeUiConfig
|
|
127
|
+
progress: RuntimeUiConfig
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
@_preview_runtime_ui_configuration
|
|
131
|
+
class _PreviewRuntimeUiConfigs:
|
|
132
|
+
menu: RuntimeUiConfig
|
|
98
133
|
progress: RuntimeUiConfig
|
|
99
134
|
|
|
100
135
|
|
|
136
|
+
@_tutorial_runtime_ui_configuration
|
|
137
|
+
class _TutorialRuntimeUiConfigs:
|
|
138
|
+
menu: RuntimeUiConfig
|
|
139
|
+
navigation: RuntimeUiConfig
|
|
140
|
+
instruction: RuntimeUiConfig
|
|
141
|
+
|
|
142
|
+
|
|
101
143
|
class HorizontalAlign(IntEnum):
|
|
102
144
|
LEFT = -1
|
|
103
145
|
CENTER = 0
|
|
@@ -139,8 +181,20 @@ class RuntimeUiLayout(Record):
|
|
|
139
181
|
self.background = background
|
|
140
182
|
|
|
141
183
|
|
|
142
|
-
@
|
|
143
|
-
class
|
|
184
|
+
@_play_runtime_ui
|
|
185
|
+
class _PlayRuntimeUi:
|
|
186
|
+
menu: RuntimeUiLayout
|
|
187
|
+
judgment: RuntimeUiLayout
|
|
188
|
+
combo_value: RuntimeUiLayout
|
|
189
|
+
combo_text: RuntimeUiLayout
|
|
190
|
+
primary_metric_bar: RuntimeUiLayout
|
|
191
|
+
primary_metric_value: RuntimeUiLayout
|
|
192
|
+
secondary_metric_bar: RuntimeUiLayout
|
|
193
|
+
secondary_metric_value: RuntimeUiLayout
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
@_watch_runtime_ui
|
|
197
|
+
class _WatchRuntimeUi:
|
|
144
198
|
menu: RuntimeUiLayout
|
|
145
199
|
judgment: RuntimeUiLayout
|
|
146
200
|
combo_value: RuntimeUiLayout
|
|
@@ -152,6 +206,20 @@ class _RuntimeUi:
|
|
|
152
206
|
progress: RuntimeUiLayout
|
|
153
207
|
|
|
154
208
|
|
|
209
|
+
@_preview_runtime_ui
|
|
210
|
+
class _PreviewRuntimeUi:
|
|
211
|
+
menu: RuntimeUiLayout
|
|
212
|
+
progress: RuntimeUiLayout
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
@_tutorial_runtime_ui
|
|
216
|
+
class _TutorialRuntimeUi:
|
|
217
|
+
menu: RuntimeUiLayout
|
|
218
|
+
previous: RuntimeUiLayout
|
|
219
|
+
next: RuntimeUiLayout
|
|
220
|
+
instruction: RuntimeUiLayout
|
|
221
|
+
|
|
222
|
+
|
|
155
223
|
class Touch(Record):
|
|
156
224
|
id: int
|
|
157
225
|
started: bool
|
|
@@ -329,13 +397,13 @@ def is_debug() -> bool:
|
|
|
329
397
|
if not ctx():
|
|
330
398
|
return False
|
|
331
399
|
match ctx().global_state.mode:
|
|
332
|
-
case Mode.
|
|
400
|
+
case Mode.PLAY:
|
|
333
401
|
return _PlayRuntimeEnvironment.is_debug
|
|
334
|
-
case Mode.
|
|
402
|
+
case Mode.WATCH:
|
|
335
403
|
return _WatchRuntimeEnvironment.is_debug
|
|
336
|
-
case Mode.
|
|
404
|
+
case Mode.PREVIEW:
|
|
337
405
|
return _PreviewRuntimeEnvironment.is_debug
|
|
338
|
-
case Mode.
|
|
406
|
+
case Mode.TUTORIAL:
|
|
339
407
|
return _TutorialRuntimeEnvironment.is_debug
|
|
340
408
|
case _:
|
|
341
409
|
return False
|
|
@@ -346,13 +414,13 @@ def aspect_ratio() -> float:
|
|
|
346
414
|
if not ctx():
|
|
347
415
|
return 16 / 9
|
|
348
416
|
match ctx().global_state.mode:
|
|
349
|
-
case Mode.
|
|
417
|
+
case Mode.PLAY:
|
|
350
418
|
return _PlayRuntimeEnvironment.aspect_ratio
|
|
351
|
-
case Mode.
|
|
419
|
+
case Mode.WATCH:
|
|
352
420
|
return _WatchRuntimeEnvironment.aspect_ratio
|
|
353
|
-
case Mode.
|
|
421
|
+
case Mode.PREVIEW:
|
|
354
422
|
return _PreviewRuntimeEnvironment.aspect_ratio
|
|
355
|
-
case Mode.
|
|
423
|
+
case Mode.TUTORIAL:
|
|
356
424
|
return _TutorialRuntimeEnvironment.aspect_ratio
|
|
357
425
|
|
|
358
426
|
|
|
@@ -361,11 +429,11 @@ def audio_offset() -> float:
|
|
|
361
429
|
if not ctx():
|
|
362
430
|
return 0
|
|
363
431
|
match ctx().global_state.mode:
|
|
364
|
-
case Mode.
|
|
432
|
+
case Mode.PLAY:
|
|
365
433
|
return _PlayRuntimeEnvironment.audio_offset
|
|
366
|
-
case Mode.
|
|
434
|
+
case Mode.WATCH:
|
|
367
435
|
return _WatchRuntimeEnvironment.audio_offset
|
|
368
|
-
case Mode.
|
|
436
|
+
case Mode.TUTORIAL:
|
|
369
437
|
return _TutorialRuntimeEnvironment.audio_offset
|
|
370
438
|
case _:
|
|
371
439
|
return 0
|
|
@@ -376,9 +444,9 @@ def input_offset() -> float:
|
|
|
376
444
|
if not ctx():
|
|
377
445
|
return 0
|
|
378
446
|
match ctx().global_state.mode:
|
|
379
|
-
case Mode.
|
|
447
|
+
case Mode.PLAY:
|
|
380
448
|
return _PlayRuntimeEnvironment.input_offset
|
|
381
|
-
case Mode.
|
|
449
|
+
case Mode.WATCH:
|
|
382
450
|
return _WatchRuntimeEnvironment.input_offset
|
|
383
451
|
case _:
|
|
384
452
|
return 0
|
|
@@ -389,7 +457,7 @@ def is_multiplayer() -> bool:
|
|
|
389
457
|
if not ctx():
|
|
390
458
|
return False
|
|
391
459
|
match ctx().global_state.mode:
|
|
392
|
-
case Mode.
|
|
460
|
+
case Mode.PLAY:
|
|
393
461
|
return _PlayRuntimeEnvironment.is_multiplayer
|
|
394
462
|
case _:
|
|
395
463
|
return False
|
|
@@ -400,7 +468,7 @@ def is_replay() -> bool:
|
|
|
400
468
|
if not ctx():
|
|
401
469
|
return False
|
|
402
470
|
match ctx().global_state.mode:
|
|
403
|
-
case Mode.
|
|
471
|
+
case Mode.WATCH:
|
|
404
472
|
return _WatchRuntimeEnvironment.is_replay
|
|
405
473
|
case _:
|
|
406
474
|
return False
|
|
@@ -411,11 +479,11 @@ def time() -> float:
|
|
|
411
479
|
if not ctx():
|
|
412
480
|
return 0
|
|
413
481
|
match ctx().global_state.mode:
|
|
414
|
-
case Mode.
|
|
482
|
+
case Mode.PLAY:
|
|
415
483
|
return _PlayRuntimeUpdate.time
|
|
416
|
-
case Mode.
|
|
484
|
+
case Mode.WATCH:
|
|
417
485
|
return _WatchRuntimeUpdate.time
|
|
418
|
-
case Mode.
|
|
486
|
+
case Mode.TUTORIAL:
|
|
419
487
|
return _TutorialRuntimeUpdate.time
|
|
420
488
|
case _:
|
|
421
489
|
return 0
|
|
@@ -426,11 +494,11 @@ def delta_time() -> float:
|
|
|
426
494
|
if not ctx():
|
|
427
495
|
return 0
|
|
428
496
|
match ctx().global_state.mode:
|
|
429
|
-
case Mode.
|
|
497
|
+
case Mode.PLAY:
|
|
430
498
|
return _PlayRuntimeUpdate.delta_time
|
|
431
|
-
case Mode.
|
|
499
|
+
case Mode.WATCH:
|
|
432
500
|
return _WatchRuntimeUpdate.delta_time
|
|
433
|
-
case Mode.
|
|
501
|
+
case Mode.TUTORIAL:
|
|
434
502
|
return _TutorialRuntimeUpdate.delta_time
|
|
435
503
|
case _:
|
|
436
504
|
return 0
|
|
@@ -441,11 +509,11 @@ def scaled_time() -> float:
|
|
|
441
509
|
if not ctx():
|
|
442
510
|
return 0
|
|
443
511
|
match ctx().global_state.mode:
|
|
444
|
-
case Mode.
|
|
512
|
+
case Mode.PLAY:
|
|
445
513
|
return _PlayRuntimeUpdate.scaled_time
|
|
446
|
-
case Mode.
|
|
514
|
+
case Mode.WATCH:
|
|
447
515
|
return _WatchRuntimeUpdate.scaled_time
|
|
448
|
-
case Mode.
|
|
516
|
+
case Mode.TUTORIAL:
|
|
449
517
|
return _TutorialRuntimeUpdate.time
|
|
450
518
|
case _:
|
|
451
519
|
return 0
|
|
@@ -456,7 +524,7 @@ def touches() -> VarArray[Touch, 999]:
|
|
|
456
524
|
if not ctx():
|
|
457
525
|
return VarArray(0, Array[Touch, 0]())
|
|
458
526
|
match ctx().global_state.mode:
|
|
459
|
-
case Mode.
|
|
527
|
+
case Mode.PLAY:
|
|
460
528
|
return VarArray(_PlayRuntimeUpdate.touch_count, _TouchArray.touches)
|
|
461
529
|
case _:
|
|
462
530
|
return VarArray(0, Array[Touch, 0]())
|
|
@@ -467,7 +535,7 @@ def is_skip() -> bool:
|
|
|
467
535
|
if not ctx():
|
|
468
536
|
return False
|
|
469
537
|
match ctx().global_state.mode:
|
|
470
|
-
case Mode.
|
|
538
|
+
case Mode.WATCH:
|
|
471
539
|
return _WatchRuntimeUpdate.is_skip
|
|
472
540
|
case _:
|
|
473
541
|
return False
|
|
@@ -478,7 +546,7 @@ def navigation_direction() -> int:
|
|
|
478
546
|
if not ctx():
|
|
479
547
|
return 0
|
|
480
548
|
match ctx().global_state.mode:
|
|
481
|
-
case Mode.
|
|
549
|
+
case Mode.TUTORIAL:
|
|
482
550
|
return _TutorialRuntimeUpdate.navigation_direction
|
|
483
551
|
case _:
|
|
484
552
|
return 0
|
|
@@ -510,8 +578,18 @@ def set_background(value: Quad):
|
|
|
510
578
|
_Background.value = value
|
|
511
579
|
|
|
512
580
|
|
|
513
|
-
|
|
514
|
-
|
|
581
|
+
play_ui = _PlayRuntimeUi
|
|
582
|
+
play_ui_configs = _PlayRuntimeUiConfigs
|
|
583
|
+
watch_ui = _WatchRuntimeUi
|
|
584
|
+
watch_ui_configs = _WatchRuntimeUiConfigs
|
|
585
|
+
preview_ui = _PreviewRuntimeUi
|
|
586
|
+
preview_ui_configs = _PreviewRuntimeUiConfigs
|
|
587
|
+
tutorial_ui = _TutorialRuntimeUi
|
|
588
|
+
tutorial_ui_configs = _TutorialRuntimeUiConfigs
|
|
589
|
+
|
|
590
|
+
|
|
591
|
+
def canvas() -> _PreviewRuntimeCanvas:
|
|
592
|
+
return _PreviewRuntimeCanvas
|
|
515
593
|
|
|
516
594
|
|
|
517
595
|
def screen() -> Rect:
|
sonolus/script/sprite.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from dataclasses import dataclass
|
|
2
|
-
from typing import Annotated, Any,
|
|
2
|
+
from typing import Annotated, Any, NewType, dataclass_transform, get_origin
|
|
3
3
|
|
|
4
4
|
from sonolus.backend.ops import Op
|
|
5
5
|
from sonolus.script.graphics import QuadLike, flatten_quad
|
|
@@ -193,8 +193,7 @@ def skin_sprite(name: str) -> Any:
|
|
|
193
193
|
return SkinSprite(name)
|
|
194
194
|
|
|
195
195
|
|
|
196
|
-
|
|
197
|
-
_sprites_: list[str]
|
|
196
|
+
type Skin = NewType("Skin", Any)
|
|
198
197
|
|
|
199
198
|
|
|
200
199
|
@dataclass_transform()
|
|
@@ -221,110 +220,112 @@ def skin[T](cls: type[T]) -> T | Skin:
|
|
|
221
220
|
|
|
222
221
|
|
|
223
222
|
class StandardSprite:
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
223
|
+
NOTE_HEAD_NEUTRAL = Annotated[Sprite, skin_sprite("#NOTE_HEAD_NEUTRAL")]
|
|
224
|
+
NOTE_HEAD_RED = Annotated[Sprite, skin_sprite("#NOTE_HEAD_RED")]
|
|
225
|
+
NOTE_HEAD_GREEN = Annotated[Sprite, skin_sprite("#NOTE_HEAD_GREEN")]
|
|
226
|
+
NOTE_HEAD_BLUE = Annotated[Sprite, skin_sprite("#NOTE_HEAD_BLUE")]
|
|
227
|
+
NOTE_HEAD_YELLOW = Annotated[Sprite, skin_sprite("#NOTE_HEAD_YELLOW")]
|
|
228
|
+
NOTE_HEAD_PURPLE = Annotated[Sprite, skin_sprite("#NOTE_HEAD_PURPLE")]
|
|
229
|
+
NOTE_HEAD_CYAN = Annotated[Sprite, skin_sprite("#NOTE_HEAD_CYAN")]
|
|
230
|
+
|
|
231
|
+
NOTE_TICK_NEUTRAL = Annotated[Sprite, skin_sprite("#NOTE_TICK_NEUTRAL")]
|
|
232
|
+
NOTE_TICK_RED = Annotated[Sprite, skin_sprite("#NOTE_TICK_RED")]
|
|
233
|
+
NOTE_TICK_GREEN = Annotated[Sprite, skin_sprite("#NOTE_TICK_GREEN")]
|
|
234
|
+
NOTE_TICK_BLUE = Annotated[Sprite, skin_sprite("#NOTE_TICK_BLUE")]
|
|
235
|
+
NOTE_TICK_YELLOW = Annotated[Sprite, skin_sprite("#NOTE_TICK_YELLOW")]
|
|
236
|
+
NOTE_TICK_PURPLE = Annotated[Sprite, skin_sprite("#NOTE_TICK_PURPLE")]
|
|
237
|
+
NOTE_TICK_CYAN = Annotated[Sprite, skin_sprite("#NOTE_TICK_CYAN")]
|
|
238
|
+
|
|
239
|
+
NOTE_TAIL_NEUTRAL = Annotated[Sprite, skin_sprite("#NOTE_TAIL_NEUTRAL")]
|
|
240
|
+
NOTE_TAIL_RED = Annotated[Sprite, skin_sprite("#NOTE_TAIL_RED")]
|
|
241
|
+
NOTE_TAIL_GREEN = Annotated[Sprite, skin_sprite("#NOTE_TAIL_GREEN")]
|
|
242
|
+
NOTE_TAIL_BLUE = Annotated[Sprite, skin_sprite("#NOTE_TAIL_BLUE")]
|
|
243
|
+
NOTE_TAIL_YELLOW = Annotated[Sprite, skin_sprite("#NOTE_TAIL_YELLOW")]
|
|
244
|
+
NOTE_TAIL_PURPLE = Annotated[Sprite, skin_sprite("#NOTE_TAIL_PURPLE")]
|
|
245
|
+
NOTE_TAIL_CYAN = Annotated[Sprite, skin_sprite("#NOTE_TAIL_CYAN")]
|
|
246
|
+
|
|
247
|
+
NOTE_CONNECTION_NEUTRAL = Annotated[Sprite, skin_sprite("#NOTE_CONNECTION_NEUTRAL")]
|
|
248
|
+
NOTE_CONNECTION_RED = Annotated[Sprite, skin_sprite("#NOTE_CONNECTION_RED")]
|
|
249
|
+
NOTE_CONNECTION_GREEN = Annotated[Sprite, skin_sprite("#NOTE_CONNECTION_GREEN")]
|
|
250
|
+
NOTE_CONNECTION_BLUE = Annotated[Sprite, skin_sprite("#NOTE_CONNECTION_BLUE")]
|
|
251
|
+
NOTE_CONNECTION_YELLOW = Annotated[Sprite, skin_sprite("#NOTE_CONNECTION_YELLOW")]
|
|
252
|
+
NOTE_CONNECTION_PURPLE = Annotated[Sprite, skin_sprite("#NOTE_CONNECTION_PURPLE")]
|
|
253
|
+
NOTE_CONNECTION_CYAN = Annotated[Sprite, skin_sprite("#NOTE_CONNECTION_CYAN")]
|
|
254
|
+
|
|
255
|
+
NOTE_CONNECTION_NEUTRAL_SEAMLESS = Annotated[Sprite, skin_sprite("#NOTE_CONNECTION_NEUTRAL_SEAMLESS")]
|
|
256
|
+
NOTE_CONNECTION_RED_SEAMLESS = Annotated[Sprite, skin_sprite("#NOTE_CONNECTION_RED_SEAMLESS")]
|
|
257
|
+
NOTE_CONNECTION_GREEN_SEAMLESS = Annotated[Sprite, skin_sprite("#NOTE_CONNECTION_GREEN_SEAMLESS")]
|
|
258
|
+
NOTE_CONNECTION_BLUE_SEAMLESS = Annotated[Sprite, skin_sprite("#NOTE_CONNECTION_BLUE_SEAMLESS")]
|
|
259
|
+
NOTE_CONNECTION_YELLOW_SEAMLESS = Annotated[Sprite, skin_sprite("#NOTE_CONNECTION_YELLOW_SEAMLESS")]
|
|
260
|
+
NOTE_CONNECTION_PURPLE_SEAMLESS = Annotated[Sprite, skin_sprite("#NOTE_CONNECTION_PURPLE_SEAMLESS")]
|
|
261
|
+
NOTE_CONNECTION_CYAN_SEAMLESS = Annotated[Sprite, skin_sprite("#NOTE_CONNECTION_CYAN_SEAMLESS")]
|
|
262
|
+
|
|
263
|
+
SIMULTANEOUS_CONNECTION_NEUTRAL = Annotated[Sprite, skin_sprite("#SIMULTANEOUS_CONNECTION_NEUTRAL")]
|
|
264
|
+
SIMULTANEOUS_CONNECTION_RED = Annotated[Sprite, skin_sprite("#SIMULTANEOUS_CONNECTION_RED")]
|
|
265
|
+
SIMULTANEOUS_CONNECTION_GREEN = Annotated[Sprite, skin_sprite("#SIMULTANEOUS_CONNECTION_GREEN")]
|
|
266
|
+
SIMULTANEOUS_CONNECTION_BLUE = Annotated[Sprite, skin_sprite("#SIMULTANEOUS_CONNECTION_BLUE")]
|
|
267
|
+
SIMULTANEOUS_CONNECTION_YELLOW = Annotated[Sprite, skin_sprite("#SIMULTANEOUS_CONNECTION_YELLOW")]
|
|
268
|
+
SIMULTANEOUS_CONNECTION_PURPLE = Annotated[Sprite, skin_sprite("#SIMULTANEOUS_CONNECTION_PURPLE")]
|
|
269
|
+
SIMULTANEOUS_CONNECTION_CYAN = Annotated[Sprite, skin_sprite("#SIMULTANEOUS_CONNECTION_CYAN")]
|
|
270
|
+
|
|
271
|
+
SIMULTANEOUS_CONNECTION_NEUTRAL_SEAMLESS = Annotated[
|
|
272
|
+
Sprite, skin_sprite("#SIMULTANEOUS_CONNECTION_NEUTRAL_SEAMLESS")
|
|
273
|
+
]
|
|
274
|
+
SIMULTANEOUS_CONNECTION_RED_SEAMLESS = Annotated[Sprite, skin_sprite("#SIMULTANEOUS_CONNECTION_RED_SEAMLESS")]
|
|
275
|
+
SIMULTANEOUS_CONNECTION_GREEN_SEAMLESS = Annotated[Sprite, skin_sprite("#SIMULTANEOUS_CONNECTION_GREEN_SEAMLESS")]
|
|
276
|
+
SIMULTANEOUS_CONNECTION_BLUE_SEAMLESS = Annotated[Sprite, skin_sprite("#SIMULTANEOUS_CONNECTION_BLUE_SEAMLESS")]
|
|
277
|
+
SIMULTANEOUS_CONNECTION_YELLOW_SEAMLESS = Annotated[Sprite, skin_sprite("#SIMULTANEOUS_CONNECTION_YELLOW_SEAMLESS")]
|
|
278
|
+
SIMULTANEOUS_CONNECTION_PURPLE_SEAMLESS = Annotated[Sprite, skin_sprite("#SIMULTANEOUS_CONNECTION_PURPLE_SEAMLESS")]
|
|
279
|
+
SIMULTANEOUS_CONNECTION_CYAN_SEAMLESS = Annotated[Sprite, skin_sprite("#SIMULTANEOUS_CONNECTION_CYAN_SEAMLESS")]
|
|
280
|
+
|
|
281
|
+
DIRECTIONAL_MARKER_NEUTRAL = Annotated[Sprite, skin_sprite("#DIRECTIONAL_MARKER_NEUTRAL")]
|
|
282
|
+
DIRECTIONAL_MARKER_RED = Annotated[Sprite, skin_sprite("#DIRECTIONAL_MARKER_RED")]
|
|
283
|
+
DIRECTIONAL_MARKER_GREEN = Annotated[Sprite, skin_sprite("#DIRECTIONAL_MARKER_GREEN")]
|
|
284
|
+
DIRECTIONAL_MARKER_BLUE = Annotated[Sprite, skin_sprite("#DIRECTIONAL_MARKER_BLUE")]
|
|
285
|
+
DIRECTIONAL_MARKER_YELLOW = Annotated[Sprite, skin_sprite("#DIRECTIONAL_MARKER_YELLOW")]
|
|
286
|
+
DIRECTIONAL_MARKER_PURPLE = Annotated[Sprite, skin_sprite("#DIRECTIONAL_MARKER_PURPLE")]
|
|
287
|
+
DIRECTIONAL_MARKER_CYAN = Annotated[Sprite, skin_sprite("#DIRECTIONAL_MARKER_CYAN")]
|
|
288
|
+
|
|
289
|
+
SIMULTANEOUS_MARKER_NEUTRAL = Annotated[Sprite, skin_sprite("#SIMULTANEOUS_MARKER_NEUTRAL")]
|
|
290
|
+
SIMULTANEOUS_MARKER_RED = Annotated[Sprite, skin_sprite("#SIMULTANEOUS_MARKER_RED")]
|
|
291
|
+
SIMULTANEOUS_MARKER_GREEN = Annotated[Sprite, skin_sprite("#SIMULTANEOUS_MARKER_GREEN")]
|
|
292
|
+
SIMULTANEOUS_MARKER_BLUE = Annotated[Sprite, skin_sprite("#SIMULTANEOUS_MARKER_BLUE")]
|
|
293
|
+
SIMULTANEOUS_MARKER_YELLOW = Annotated[Sprite, skin_sprite("#SIMULTANEOUS_MARKER_YELLOW")]
|
|
294
|
+
SIMULTANEOUS_MARKER_PURPLE = Annotated[Sprite, skin_sprite("#SIMULTANEOUS_MARKER_PURPLE")]
|
|
295
|
+
SIMULTANEOUS_MARKER_CYAN = Annotated[Sprite, skin_sprite("#SIMULTANEOUS_MARKER_CYAN")]
|
|
296
|
+
|
|
297
|
+
STAGE_MIDDLE = Annotated[Sprite, skin_sprite("#STAGE_MIDDLE")]
|
|
298
|
+
STAGE_LEFT_BORDER = Annotated[Sprite, skin_sprite("#STAGE_LEFT_BORDER")]
|
|
299
|
+
STAGE_RIGHT_BORDER = Annotated[Sprite, skin_sprite("#STAGE_RIGHT_BORDER")]
|
|
300
|
+
STAGE_TOP_BORDER = Annotated[Sprite, skin_sprite("#STAGE_TOP_BORDER")]
|
|
301
|
+
STAGE_BOTTOM_BORDER = Annotated[Sprite, skin_sprite("#STAGE_BOTTOM_BORDER")]
|
|
302
|
+
|
|
303
|
+
STAGE_LEFT_BORDER_SEAMLESS = Annotated[Sprite, skin_sprite("#STAGE_LEFT_BORDER_SEAMLESS")]
|
|
304
|
+
STAGE_RIGHT_BORDER_SEAMLESS = Annotated[Sprite, skin_sprite("#STAGE_RIGHT_BORDER_SEAMLESS")]
|
|
305
|
+
STAGE_TOP_BORDER_SEAMLESS = Annotated[Sprite, skin_sprite("#STAGE_TOP_BORDER_SEAMLESS")]
|
|
306
|
+
STAGE_BOTTOM_BORDER_SEAMLESS = Annotated[Sprite, skin_sprite("#STAGE_BOTTOM_BORDER_SEAMLESS")]
|
|
307
|
+
|
|
308
|
+
STAGE_TOP_LEFT_CORNER = Annotated[Sprite, skin_sprite("#STAGE_TOP_LEFT_CORNER")]
|
|
309
|
+
STAGE_TOP_RIGHT_CORNER = Annotated[Sprite, skin_sprite("#STAGE_TOP_RIGHT_CORNER")]
|
|
310
|
+
STAGE_BOTTOM_LEFT_CORNER = Annotated[Sprite, skin_sprite("#STAGE_BOTTOM_LEFT_CORNER")]
|
|
311
|
+
STAGE_BOTTOM_RIGHT_CORNER = Annotated[Sprite, skin_sprite("#STAGE_BOTTOM_RIGHT_CORNER")]
|
|
312
|
+
|
|
313
|
+
LANE = Annotated[Sprite, skin_sprite("#LANE")]
|
|
314
|
+
LANE_SEAMLESS = Annotated[Sprite, skin_sprite("#LANE_SEAMLESS")]
|
|
315
|
+
LANE_ALTERNATIVE = Annotated[Sprite, skin_sprite("#LANE_ALTERNATIVE")]
|
|
316
|
+
LANE_ALTERNATIVE_SEAMLESS = Annotated[Sprite, skin_sprite("#LANE_ALTERNATIVE_SEAMLESS")]
|
|
317
|
+
|
|
318
|
+
JUDGMENT_LINE = Annotated[Sprite, skin_sprite("#JUDGMENT_LINE")]
|
|
319
|
+
NOTE_SLOT = Annotated[Sprite, skin_sprite("#NOTE_SLOT")]
|
|
320
|
+
STAGE_COVER = Annotated[Sprite, skin_sprite("#STAGE_COVER")]
|
|
321
|
+
|
|
322
|
+
GRID_NEUTRAL = Annotated[Sprite, skin_sprite("#GRID_NEUTRAL")]
|
|
323
|
+
GRID_RED = Annotated[Sprite, skin_sprite("#GRID_RED")]
|
|
324
|
+
GRID_GREEN = Annotated[Sprite, skin_sprite("#GRID_GREEN")]
|
|
325
|
+
GRID_BLUE = Annotated[Sprite, skin_sprite("#GRID_BLUE")]
|
|
326
|
+
GRID_YELLOW = Annotated[Sprite, skin_sprite("#GRID_YELLOW")]
|
|
327
|
+
GRID_PURPLE = Annotated[Sprite, skin_sprite("#GRID_PURPLE")]
|
|
328
|
+
GRID_CYAN = Annotated[Sprite, skin_sprite("#GRID_CYAN")]
|
|
328
329
|
|
|
329
330
|
|
|
330
331
|
@skin
|