plinkit 1.0.0-dev.4 → 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/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 {