plinkit 1.0.0-dev.3 → 1.0.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 +69 -91
- package/dist/index.cjs +4 -4
- package/dist/index.d.ts +10 -32
- package/dist/index.es.js +1444 -1609
- package/dist/plinkit.umd.js +4 -4
- package/package.json +5 -5
package/dist/index.d.ts
CHANGED
|
@@ -47,27 +47,12 @@ export declare class Plinkit {
|
|
|
47
47
|
private readonly showGuidePegs;
|
|
48
48
|
private balance;
|
|
49
49
|
private lastSpawnAtMs;
|
|
50
|
-
private readonly audio;
|
|
51
50
|
constructor(options: PlinkitOptions);
|
|
52
51
|
spawnBall(): SpawnResult;
|
|
53
52
|
resize(): void;
|
|
54
53
|
destroy(): void;
|
|
55
54
|
getState(): PlinkitStateSnapshot;
|
|
56
55
|
setBallCost(value: number): void;
|
|
57
|
-
setMuted(value: boolean): void;
|
|
58
|
-
/**
|
|
59
|
-
* Возвращает `true`, если звук выключен или аудио не сконфигурировано
|
|
60
|
-
* (`options.audio` не передан). Так UI-код может единообразно опираться на
|
|
61
|
-
* `isMuted()` без проверки наличия аудио.
|
|
62
|
-
*/
|
|
63
|
-
isMuted(): boolean;
|
|
64
|
-
setVolume(value: number): void;
|
|
65
|
-
/**
|
|
66
|
-
* Проигрывает UI-сэмпл, заданный через `options.audio.uiTapUrl`. Удобно
|
|
67
|
-
* вызывать из click/pointerup-обработчиков на кнопках продукта, чтобы UI-звук
|
|
68
|
-
* разделял mute/volume/auto-unlock с физическими звуками поля.
|
|
69
|
-
*/
|
|
70
|
-
playUiTap(): void;
|
|
71
56
|
private handleCollision;
|
|
72
57
|
private frame;
|
|
73
58
|
private renderSnapshot;
|
|
@@ -90,27 +75,20 @@ export declare interface PlinkitAppearanceOptions {
|
|
|
90
75
|
textureCrossOrigin?: string | null;
|
|
91
76
|
}
|
|
92
77
|
|
|
93
|
-
export declare interface PlinkitAudioOptions {
|
|
94
|
-
/** URL короткого сэмпла для столкновения шарика с пегом (peg/guide). */
|
|
95
|
-
pegHitUrl?: string;
|
|
96
|
-
/** URL короткого сэмпла для попадания шарика в корзину (момент settle). */
|
|
97
|
-
bucketHitUrl?: string;
|
|
98
|
-
/** URL короткого сэмпла UI-клика (для использования через `Plinkit.playUiTap()`). */
|
|
99
|
-
uiTapUrl?: string;
|
|
100
|
-
/** Общая громкость 0..1. По умолчанию 1. */
|
|
101
|
-
masterVolume?: number;
|
|
102
|
-
/**
|
|
103
|
-
* Стартовое состояние mute. По умолчанию `false`. Web Audio автоматически
|
|
104
|
-
* разблокируется на первом user gesture (см. секцию «Звуки» в README).
|
|
105
|
-
*/
|
|
106
|
-
muted?: boolean;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
78
|
export declare interface PlinkitCallbacks {
|
|
110
79
|
onBalanceChange?: (state: PlinkitStateSnapshot) => void;
|
|
111
80
|
onBallSettled?: (settlement: BallSettlement, state: PlinkitStateSnapshot) => void;
|
|
81
|
+
onCollision?: (collision: PlinkitCollisionInfo, state: PlinkitStateSnapshot) => void;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export declare interface PlinkitCollisionInfo {
|
|
85
|
+
ballId: number;
|
|
86
|
+
target: PlinkitCollisionTarget;
|
|
87
|
+
speed: number;
|
|
112
88
|
}
|
|
113
89
|
|
|
90
|
+
export declare type PlinkitCollisionTarget = "peg" | "guide";
|
|
91
|
+
|
|
114
92
|
declare interface PlinkitEdgeGuidesOptions {
|
|
115
93
|
radius: number;
|
|
116
94
|
spread: number;
|
|
@@ -142,9 +120,9 @@ export declare interface PlinkitOptions {
|
|
|
142
120
|
showGuidePegs: boolean;
|
|
143
121
|
houseEdge?: number;
|
|
144
122
|
appearance?: PlinkitAppearanceOptions;
|
|
145
|
-
audio?: PlinkitAudioOptions;
|
|
146
123
|
onBalanceChange?: (state: PlinkitStateSnapshot) => void;
|
|
147
124
|
onBallSettled?: (settlement: BallSettlement, state: PlinkitStateSnapshot) => void;
|
|
125
|
+
onCollision?: (collision: PlinkitCollisionInfo, state: PlinkitStateSnapshot) => void;
|
|
148
126
|
}
|
|
149
127
|
|
|
150
128
|
export declare interface PlinkitStateSnapshot {
|