plinkit 1.0.0-dev.0 → 1.0.0-dev.2
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 -0
- package/dist/index.cjs +4 -4
- package/dist/index.d.ts +35 -1
- package/dist/index.es.js +1546 -1347
- package/dist/plinkit.umd.js +4 -4
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -43,15 +43,32 @@ export declare class Plinkit {
|
|
|
43
43
|
private accumulatorMs;
|
|
44
44
|
private lastFrameTime;
|
|
45
45
|
private readonly callbacks;
|
|
46
|
-
private
|
|
46
|
+
private ballCost;
|
|
47
47
|
private readonly showGuidePegs;
|
|
48
48
|
private balance;
|
|
49
49
|
private lastSpawnAtMs;
|
|
50
|
+
private readonly audio;
|
|
50
51
|
constructor(options: PlinkitOptions);
|
|
51
52
|
spawnBall(): SpawnResult;
|
|
52
53
|
resize(): void;
|
|
53
54
|
destroy(): void;
|
|
54
55
|
getState(): PlinkitStateSnapshot;
|
|
56
|
+
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
|
+
private handleCollision;
|
|
55
72
|
private frame;
|
|
56
73
|
private renderSnapshot;
|
|
57
74
|
private emitBalanceChange;
|
|
@@ -73,6 +90,22 @@ export declare interface PlinkitAppearanceOptions {
|
|
|
73
90
|
textureCrossOrigin?: string | null;
|
|
74
91
|
}
|
|
75
92
|
|
|
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
|
+
|
|
76
109
|
export declare interface PlinkitCallbacks {
|
|
77
110
|
onBalanceChange?: (state: PlinkitStateSnapshot) => void;
|
|
78
111
|
onBallSettled?: (settlement: BallSettlement, state: PlinkitStateSnapshot) => void;
|
|
@@ -109,6 +142,7 @@ export declare interface PlinkitOptions {
|
|
|
109
142
|
showGuidePegs: boolean;
|
|
110
143
|
houseEdge?: number;
|
|
111
144
|
appearance?: PlinkitAppearanceOptions;
|
|
145
|
+
audio?: PlinkitAudioOptions;
|
|
112
146
|
onBalanceChange?: (state: PlinkitStateSnapshot) => void;
|
|
113
147
|
onBallSettled?: (settlement: BallSettlement, state: PlinkitStateSnapshot) => void;
|
|
114
148
|
}
|