zx-kit 0.33.0 → 0.34.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 CHANGED
@@ -32,7 +32,7 @@ zx-kit captures that aesthetic in TypeScript. You get the Spectrum's palette, RO
32
32
  - **Monochrome playfield (opt-in)** — the classic anti-clash trick: render the action area in a single ink + paper at its own size, keep the colour in the HUD around it. Everything inside becomes a clean two-colour silhouette — no clash, ever
33
33
  - **Free-roaming sprites** — position, velocity, gravity, `flipX` caching, transparent or opaque background
34
34
  - **Three-tier collision** — AABB overlap tests, generic rect-vs-tile wall resolution (any sprite size), and pixel-precise mask overlap with O(pixels) sorted-merge intersection — no allocations per frame
35
- - **Keyboard and gamepad input** — configurable key-repeat, transparent gamepad polling, single-consume action flags, instant state reset on phase transitions
35
+ - **Keyboard and gamepad input** — configurable key-repeat, transparent gamepad polling, single-consume action flags, instant state reset on phase transitions, built-in `+`/`-` volume with an auto-hide HUD bar (one render-loop line)
36
36
  - **ZX-style UI widgets** — progress bars with managed lifetime, boxes, frames, panel titles
37
37
  - **Typed save / load** — persistent saves via `localStorage` with schema versioning, migrations, slot enumeration, in-memory throttling, and discriminated Result types for every failure mode
38
38
  - **Runtime locale switching** — type-safe string-pack selection via `pickLocale()`, so a game can switch language while running — unimaginable on the original Spectrum, natural in the browser
@@ -184,12 +184,12 @@ Zero runtime dependencies, `sideEffects: false`, fully tree-shakeable.
184
184
  | `monoscreen` | Opt-in monochrome playfield + colour HUD (clash-proof) | [rendering](docs/rendering.md#monoscreents--monochrome-playfield) |
185
185
  | `tilescroll` | Pixel-smooth sub-tile tilemap scrolling | [rendering](docs/rendering.md#tilescrollts--pixel-smooth-scrolling) |
186
186
  | `lighting` | Dithered cave darkness, one blit per frame | [rendering](docs/rendering.md#lightingts--dithered-cave-darkness) |
187
- | `audio` | 1-bit beeper: square-wave notes, patterns, volume | [audio](docs/audio.md#audiots--beeper-audio) |
187
+ | `audio` | 1-bit beeper: square-wave notes, patterns, volume + built-in auto-hide volume bar | [audio](docs/audio.md#audiots--beeper-audio) |
188
188
  | `ay` | AY-3-8912: 3-channel tone, LFSR noise, 16 envelopes | [audio](docs/audio.md#ayts--ay-3-8912-melodik-audio) |
189
189
  | `music` | AY music by note name (`A5`, `C#4`) + looping | [audio](docs/audio.md#musicts--note-name-ay-music) |
190
190
  | `collision` | AABB / rect-vs-tile / pixel-precise mask overlap | [collision](docs/collision.md) |
191
191
  | `save` | Typed save/load: versioning, migration, slots, throttle | [save](docs/save.md) |
192
- | `input` | Keyboard + gamepad movement, key-repeat, action flags | [api](docs/api.md#inputts--keyboard--gamepad-input) |
192
+ | `input` | Keyboard + gamepad movement, key-repeat, action flags, built-in `+`/`-` volume keys | [api](docs/api.md#inputts--keyboard--gamepad-input) |
193
193
  | `sprite` | Free-roaming sprites: position, velocity, gravity, flip | [api](docs/api.md#spritets--free-roaming-sprites) |
194
194
  | `animation` | Frame timer, position tween, blinker | [api](docs/api.md#animationts--frame-timer--tween) |
195
195
  | `camera` | Viewport follow with lerp + deadzone, world clamp | [api](docs/api.md#camerats--scrolling-camera) |
@@ -220,12 +220,13 @@ zx-kit/
220
220
  │ ├── audio.ts # initAudio, resumeAudio, beep, playPattern,
221
221
  │ │ # getAudioContext, getMasterGain,
222
222
  │ │ # getMasterVolume, setMasterVolume,
223
- │ │ # increaseVolume, decreaseVolume, Note
223
+ │ │ # increaseVolume, decreaseVolume, Note,
224
+ │ │ # setVolumeBarStyle, drawVolumeBar
224
225
  │ ├── ay.ts # createAY, playAY, AYChannel, AYNote, AYChip,
225
226
  │ │ # AY_VOL, AY_CLOCK, AY_ENVELOPE_SHAPES
226
227
  │ ├── input.ts # initInput, tickMovement, consumeFlag,
227
228
  │ │ # consumePause, consumeDebug, consumeAnyKey,
228
- │ │ # isHeld, resetInput, Direction
229
+ │ │ # isHeld, resetInput, setVolumeKeys, Direction
229
230
  │ ├── ui.ts # drawBox, drawFrame, drawPanelTitle,
230
231
  │ │ # instrumentation widgets, progress bars
231
232
  │ ├── tilemap.ts # createTileMap, Tile, Viewport, TileMap
package/dist/audio.d.ts CHANGED
@@ -17,6 +17,7 @@
17
17
  *
18
18
  * @see {@link createAY} and {@link playAY} for multi-channel music in `ay.ts`
19
19
  */
20
+ import type { SpectrumColor } from './palette.js';
20
21
  /**
21
22
  * Creates the shared `AudioContext` and master `GainNode`. Idempotent — safe to call
22
23
  * multiple times (subsequent calls are no-ops).
@@ -74,6 +75,8 @@ export declare function getMasterVolume(): number;
74
75
  export declare function setMasterVolume(volume: number): void;
75
76
  /**
76
77
  * Increases master volume by 0.1, up to a maximum of 1.0.
78
+ * Also marks the moment so {@link drawVolumeBar} auto-shows the HUD bar — calling
79
+ * this (by key **or** programmatically) makes the bar appear for ~1.5 s.
77
80
  *
78
81
  * @example
79
82
  * increaseVolume() // 0.3 → 0.4
@@ -81,11 +84,50 @@ export declare function setMasterVolume(volume: number): void;
81
84
  export declare function increaseVolume(): void;
82
85
  /**
83
86
  * Decreases master volume by 0.1, down to a minimum of 0.0.
87
+ * Also marks the moment so {@link drawVolumeBar} auto-shows the HUD bar — calling
88
+ * this (by key **or** programmatically) makes the bar appear for ~1.5 s.
84
89
  *
85
90
  * @example
86
91
  * decreaseVolume() // 0.3 → 0.2
87
92
  */
88
93
  export declare function decreaseVolume(): void;
94
+ /** Optional overrides for {@link setVolumeBarStyle}. */
95
+ export interface VolumeBarStyleOptions {
96
+ /** Bar ink colour. Default `C.B_GREEN`. */
97
+ color?: SpectrumColor;
98
+ /** Bar width in cells (`width = segments * CELL`). Default `10`. */
99
+ segments?: number;
100
+ /** Left edge in game pixels. Omit to centre horizontally. */
101
+ x?: number;
102
+ /** Top edge in game pixels. Default `96 - CELL` (≈ mid-screen). */
103
+ y?: number;
104
+ }
105
+ /**
106
+ * Configures the auto-hide volume bar's appearance (config-once style). Stores
107
+ * style in module state only — does **not** render. Optional: the defaults
108
+ * (centred 10-segment green bar, mid-screen) apply if this is never called.
109
+ *
110
+ * @param opts - Style overrides; unspecified fields keep their current value.
111
+ *
112
+ * @example
113
+ * setVolumeBarStyle({ color: C.B_CYAN }) // recolour only
114
+ * setVolumeBarStyle({ segments: 16, y: 176 }) // wider, near the bottom
115
+ */
116
+ export declare function setVolumeBarStyle(opts?: VolumeBarStyleOptions): void;
117
+ /**
118
+ * Draws the volume bar — the only render-loop call. Reads the stored style (see
119
+ * {@link setVolumeBarStyle}); takes no style args. Auto-show: draws nothing once
120
+ * more than ~1.5 s has passed since the last {@link increaseVolume} /
121
+ * {@link decreaseVolume}; otherwise renders the current master volume and hides
122
+ * itself afterwards. Call every frame.
123
+ *
124
+ * @param canvasCtx - The game canvas 2D context (scaled by `SCALE`).
125
+ *
126
+ * @example
127
+ * // in the render loop:
128
+ * drawVolumeBar(ctx) // shows ~1.5 s after a change, then hides itself
129
+ */
130
+ export declare function drawVolumeBar(canvasCtx: CanvasRenderingContext2D): void;
89
131
  /** A single note in a melody pattern. Use `freq: 0` for a rest (silence). */
90
132
  export interface Note {
91
133
  freq: number;
@@ -1 +1 @@
1
- {"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../src/audio.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAWH;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,MAAM,SAAM,GAAG,IAAI,CAM5C;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,IAAI,YAAY,GAAG,IAAI,CAErD;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,IAAI,QAAQ,GAAG,IAAI,CAE/C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAGpD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAED,6EAA6E;AAC7E,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,UAAU,SAAI,GAAG,IAAI,CAS/D;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAc9E"}
1
+ {"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../src/audio.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAkBjD;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,MAAM,SAAM,GAAG,IAAI,CAM5C;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,IAAI,YAAY,GAAG,IAAI,CAErD;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,IAAI,QAAQ,GAAG,IAAI,CAE/C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAGpD;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAGrC;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAGrC;AAwBD,wDAAwD;AACxD,MAAM,WAAW,qBAAqB;IACpC,2CAA2C;IAC3C,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,6DAA6D;IAC7D,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,mEAAmE;IACnE,CAAC,CAAC,EAAE,MAAM,CAAA;CACX;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,qBAA0B,GAAG,IAAI,CAKxE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,wBAAwB,GAAG,IAAI,CAuBvE;AAED,6EAA6E;AAC7E,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,UAAU,SAAI,GAAG,IAAI,CAS/D;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAc9E"}
package/dist/audio.js CHANGED
@@ -17,9 +17,15 @@
17
17
  *
18
18
  * @see {@link createAY} and {@link playAY} for multi-channel music in `ay.ts`
19
19
  */
20
+ import { C, CELL, SCALE } from './palette.js';
21
+ import { drawProgressBar } from './ui.js';
20
22
  let ctx = null;
21
23
  let masterGain = null;
22
24
  const VOLUME_STEP = 0.1;
25
+ /** Wall-clock time (ms, `performance.now()`) of the last volume change — drives the auto-show HUD bar. */
26
+ let _volumeChangedAt = 0;
27
+ /** How long {@link drawVolumeBar} keeps the bar visible after a change (ms). */
28
+ const VOLUME_BAR_MS = 1500;
23
29
  function clampVolume(v) {
24
30
  return Math.max(0, Math.min(1, v));
25
31
  }
@@ -100,21 +106,92 @@ export function setMasterVolume(volume) {
100
106
  }
101
107
  /**
102
108
  * Increases master volume by 0.1, up to a maximum of 1.0.
109
+ * Also marks the moment so {@link drawVolumeBar} auto-shows the HUD bar — calling
110
+ * this (by key **or** programmatically) makes the bar appear for ~1.5 s.
103
111
  *
104
112
  * @example
105
113
  * increaseVolume() // 0.3 → 0.4
106
114
  */
107
115
  export function increaseVolume() {
108
116
  setMasterVolume(getMasterVolume() + VOLUME_STEP);
117
+ _volumeChangedAt = performance.now();
109
118
  }
110
119
  /**
111
120
  * Decreases master volume by 0.1, down to a minimum of 0.0.
121
+ * Also marks the moment so {@link drawVolumeBar} auto-shows the HUD bar — calling
122
+ * this (by key **or** programmatically) makes the bar appear for ~1.5 s.
112
123
  *
113
124
  * @example
114
125
  * decreaseVolume() // 0.3 → 0.2
115
126
  */
116
127
  export function decreaseVolume() {
117
128
  setMasterVolume(getMasterVolume() - VOLUME_STEP);
129
+ _volumeChangedAt = performance.now();
130
+ }
131
+ const _volumeBarStyle = {
132
+ color: C.B_GREEN, // → drawProgressBar ink
133
+ segments: 10, // → width = 10 * CELL = 80 px
134
+ x: undefined, // centred horizontally
135
+ y: 96 - CELL, // roughly mid-screen
136
+ };
137
+ /**
138
+ * Configures the auto-hide volume bar's appearance (config-once style). Stores
139
+ * style in module state only — does **not** render. Optional: the defaults
140
+ * (centred 10-segment green bar, mid-screen) apply if this is never called.
141
+ *
142
+ * @param opts - Style overrides; unspecified fields keep their current value.
143
+ *
144
+ * @example
145
+ * setVolumeBarStyle({ color: C.B_CYAN }) // recolour only
146
+ * setVolumeBarStyle({ segments: 16, y: 176 }) // wider, near the bottom
147
+ */
148
+ export function setVolumeBarStyle(opts = {}) {
149
+ if (opts.color !== undefined)
150
+ _volumeBarStyle.color = opts.color;
151
+ if (opts.segments !== undefined)
152
+ _volumeBarStyle.segments = opts.segments;
153
+ if (opts.x !== undefined)
154
+ _volumeBarStyle.x = opts.x;
155
+ if (opts.y !== undefined)
156
+ _volumeBarStyle.y = opts.y;
157
+ }
158
+ /**
159
+ * Draws the volume bar — the only render-loop call. Reads the stored style (see
160
+ * {@link setVolumeBarStyle}); takes no style args. Auto-show: draws nothing once
161
+ * more than ~1.5 s has passed since the last {@link increaseVolume} /
162
+ * {@link decreaseVolume}; otherwise renders the current master volume and hides
163
+ * itself afterwards. Call every frame.
164
+ *
165
+ * @param canvasCtx - The game canvas 2D context (scaled by `SCALE`).
166
+ *
167
+ * @example
168
+ * // in the render loop:
169
+ * drawVolumeBar(ctx) // shows ~1.5 s after a change, then hides itself
170
+ */
171
+ export function drawVolumeBar(canvasCtx) {
172
+ if (performance.now() - _volumeChangedAt > VOLUME_BAR_MS)
173
+ return;
174
+ const { color, segments, x, y } = _volumeBarStyle;
175
+ const width = segments * CELL;
176
+ // drawProgressBar works in game-pixel space; convert the device-pixel backing
177
+ // store to it via the context's current horizontal scale (set by setupCanvas),
178
+ // so centring is correct at any scale. Falls back to SCALE if getTransform is
179
+ // unavailable (e.g. a bare test mock).
180
+ const scaleX = canvasCtx.getTransform?.().a || SCALE;
181
+ const screenW = canvasCtx.canvas.width / scaleX;
182
+ drawProgressBar(canvasCtx, {
183
+ id: 'zxkit:volume',
184
+ x: x ?? Math.round((screenW - width) / 2),
185
+ y,
186
+ width,
187
+ value: getMasterVolume(),
188
+ min: 0,
189
+ max: 1,
190
+ ink: color,
191
+ paper: C.BLACK,
192
+ border: { style: 'solid' },
193
+ visibilityLength: VOLUME_BAR_MS,
194
+ });
118
195
  }
119
196
  /**
120
197
  * Schedules a sequence of notes on the shared `AudioContext`.
package/dist/audio.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"audio.js","sourceRoot":"","sources":["../src/audio.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audio.js","sourceRoot":"","sources":["../src/audio.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,aAAa,EAAE,MAAM,cAAc,CAAA;AAG1D;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB,+DAA+D;IAC/D,GAAG,EAAE,MAAM,CAAA;IACX,iGAAiG;IACjG,OAAO,EAAE,MAAM,CAAA;IACf,iHAAiH;IACjH,MAAM,EAAE,MAAM,CAAA;IACd,kFAAkF;IAClF,QAAQ,EAAE,MAAM,CAAA;IAChB,8GAA8G;IAC9G,OAAO,EAAE,MAAM,CAAA;IACf,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;CACxC;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAA;IACjB,8FAA8F;IAC9F,SAAS,EAAE,MAAM,CAAA;IACjB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,kFAAkF;IAClF,SAAS,EAAE,MAAM,CAAA;IACjB,4BAA4B;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACpD,YAAY,CAUd;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,GAAE,MAA0B,GAAG,IAAI,CASjF;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,GAAE,MAA0B,GAAG,IAAI,CAE/E;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,CAAC,EAAE,YAAY,EACf,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAM,GAC3C,SAAS,CAUX;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,wBAAwB,EAC7B,IAAI,EAAE,SAAS,EACf,CAAC,GAAE,MAAU,EACb,CAAC,GAAE,MAAU,EACb,GAAG,GAAE,aAA0B,EAC/B,KAAK,GAAE,aAAuB,GAC7B,IAAI,CAON"}
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,aAAa,EAAE,MAAM,cAAc,CAAA;AAG1D;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB,+DAA+D;IAC/D,GAAG,EAAE,MAAM,CAAA;IACX,iGAAiG;IACjG,OAAO,EAAE,MAAM,CAAA;IACf,iHAAiH;IACjH,MAAM,EAAE,MAAM,CAAA;IACd,kFAAkF;IAClF,QAAQ,EAAE,MAAM,CAAA;IAChB,8GAA8G;IAC9G,OAAO,EAAE,MAAM,CAAA;IACf,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;CACxC;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAA;IACjB,8FAA8F;IAC9F,SAAS,EAAE,MAAM,CAAA;IACjB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,kFAAkF;IAClF,SAAS,EAAE,MAAM,CAAA;IACjB,4BAA4B;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACpD,YAAY,CAUd;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,GAAE,MAA0B,GAAG,IAAI,CASjF;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,GAAE,MAA0B,GAAG,IAAI,CAE/E;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,CAAC,EAAE,YAAY,EACf,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAM,GAC3C,SAAS,CAUX;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,wBAAwB,EAC7B,IAAI,EAAE,SAAS,EACf,CAAC,GAAE,MAAU,EACb,CAAC,GAAE,MAAU,EACb,GAAG,GAAE,aAA0B,EAC/B,KAAK,GAAE,aAAuB,GAC7B,IAAI,CAKN"}
package/dist/debug.js CHANGED
@@ -85,8 +85,7 @@ export function drawDebugOverlay(ctx, info, x = 1, y = 1, ink = C.B_YELLOW, pape
85
85
  lines.push(`CPU ${Math.round(info.cpuLoad * 100)}%`);
86
86
  for (const key of Object.keys(info.custom))
87
87
  lines.push(`${key} ${info.custom[key]}`);
88
- for (let i = 0; i < lines.length; i++) {
88
+ for (let i = 0; i < lines.length; i++)
89
89
  drawText(ctx, lines[i], x, y + i * CELL, ink, paper);
90
- }
91
90
  }
92
91
  //# sourceMappingURL=debug.js.map
package/dist/debug.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"debug.js","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"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"}
package/dist/input.d.ts CHANGED
@@ -5,17 +5,32 @@ export type Direction = 'up' | 'down' | 'left' | 'right';
5
5
  * Idempotent — safe to call multiple times. Timing params are always updated;
6
6
  * listeners are only attached on the first call.
7
7
  * Arrow keys drive movement; `F`/`f` = flag; `P`/`p` = pause; `Ctrl+Shift+B` = debug toggle.
8
- * Gamepad support is automatic — `tickMovement` polls the Gamepad API each frame.
9
- * D-pad and left analog stick map to directions; A = flag, Start = pause, Y = debug.
8
+ * `+`/`=` raise and `-`/`_` lower the master volume (see {@link setVolumeKeys} to
9
+ * remap or disable). Gamepad support is automatic `tickMovement` polls the
10
+ * Gamepad API each frame. D-pad and left analog stick map to directions;
11
+ * A = flag, Start = pause, Y = debug.
10
12
  *
11
13
  * @param repeatDelay - Milliseconds before auto-repeat starts after initial press (default `150`)
12
14
  * @param repeatInterval - Milliseconds between repeat ticks while key is held (default `80`)
13
15
  *
14
16
  * @example
15
- * initInput() // defaults: 150ms delay, 80ms repeat
17
+ * initInput() // defaults: 150ms delay, 80ms repeat, +/- volume
16
18
  * initInput(200, 60) // custom timing; safe to call again to reconfigure
17
19
  */
18
20
  export declare function initInput(repeatDelay?: number, repeatInterval?: number): void;
21
+ /**
22
+ * Overrides the keys that adjust master volume. Optional — `+`/`=` (up) and
23
+ * `-`/`_` (down) stay active if this is never called. Pass empty arrays to
24
+ * disable volume keys entirely.
25
+ *
26
+ * @param up - Key(s) (`KeyboardEvent.key`) that raise volume. A string or array.
27
+ * @param down - Key(s) that lower volume. A string or array.
28
+ *
29
+ * @example
30
+ * setVolumeKeys('9', '8') // numpad-ish remap; +/- no longer touch volume
31
+ * setVolumeKeys([], []) // disable built-in volume keys
32
+ */
33
+ export declare function setVolumeKeys(up: string | string[], down: string | string[]): void;
19
34
  /**
20
35
  * Advances the key-repeat timer and returns the movement direction for this frame.
21
36
  * Call once per frame with the frame delta in milliseconds.
@@ -1 +1 @@
1
- {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AA8GxD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,WAAW,SAAM,EAAE,cAAc,SAAK,GAAG,IAAI,CAoCtE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,SAAI,GAAG,SAAS,GAAG,IAAI,CA4B7E;AAED,sGAAsG;AACtG,wBAAgB,WAAW,IAAI,OAAO,CAA+D;AAErG,gGAAgG;AAChG,wBAAgB,YAAY,IAAI,OAAO,CAA8D;AAErG,kFAAkF;AAClF,wBAAgB,YAAY,IAAI,OAAO,CAA8D;AAErG;;;GAGG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAA6D;AAErG;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAyB;AAErE;;;;;;;;GAQG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAgBjC"}
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"AAEA,qDAAqD;AACrD,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAmHxD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,SAAS,CAAC,WAAW,SAAM,EAAE,cAAc,SAAK,GAAG,IAAI,CAuCtE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAGlF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,SAAI,GAAG,SAAS,GAAG,IAAI,CA4B7E;AAED,sGAAsG;AACtG,wBAAgB,WAAW,IAAI,OAAO,CAA+D;AAErG,gGAAgG;AAChG,wBAAgB,YAAY,IAAI,OAAO,CAA8D;AAErG,kFAAkF;AAClF,wBAAgB,YAAY,IAAI,OAAO,CAA8D;AAErG;;;GAGG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAA6D;AAErG;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAyB;AAErE;;;;;;;;GAQG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAgBjC"}
package/dist/input.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { increaseVolume, decreaseVolume } from './audio.js';
1
2
  const DIR_KEYS = {
2
3
  ArrowUp: 'up', ArrowDown: 'down', ArrowLeft: 'left', ArrowRight: 'right',
3
4
  };
@@ -16,6 +17,10 @@ let pendingImmediate = null;
16
17
  let _repeatDelay = 150;
17
18
  let _repeatInterval = 80;
18
19
  let inputInitialized = false;
20
+ // Volume keys — on by default; zx-kit owning +/- is the owner-approved trade-off.
21
+ // Remap with setVolumeKeys(); disable with empty sets. Drives audio.ts directly.
22
+ let _volumeUpKeys = ['+', '='];
23
+ let _volumeDownKeys = ['-', '_'];
19
24
  // ── Gamepad state ──────────────────────────────────────────────────────────────
20
25
  const STICK_DEAD = 0.35;
21
26
  let padPrevDir = null;
@@ -109,14 +114,16 @@ function pollGamepad() {
109
114
  * Idempotent — safe to call multiple times. Timing params are always updated;
110
115
  * listeners are only attached on the first call.
111
116
  * Arrow keys drive movement; `F`/`f` = flag; `P`/`p` = pause; `Ctrl+Shift+B` = debug toggle.
112
- * Gamepad support is automatic — `tickMovement` polls the Gamepad API each frame.
113
- * D-pad and left analog stick map to directions; A = flag, Start = pause, Y = debug.
117
+ * `+`/`=` raise and `-`/`_` lower the master volume (see {@link setVolumeKeys} to
118
+ * remap or disable). Gamepad support is automatic `tickMovement` polls the
119
+ * Gamepad API each frame. D-pad and left analog stick map to directions;
120
+ * A = flag, Start = pause, Y = debug.
114
121
  *
115
122
  * @param repeatDelay - Milliseconds before auto-repeat starts after initial press (default `150`)
116
123
  * @param repeatInterval - Milliseconds between repeat ticks while key is held (default `80`)
117
124
  *
118
125
  * @example
119
- * initInput() // defaults: 150ms delay, 80ms repeat
126
+ * initInput() // defaults: 150ms delay, 80ms repeat, +/- volume
120
127
  * initInput(200, 60) // custom timing; safe to call again to reconfigure
121
128
  */
122
129
  export function initInput(repeatDelay = 150, repeatInterval = 80) {
@@ -141,6 +148,10 @@ export function initInput(repeatDelay = 150, repeatInterval = 80) {
141
148
  pendingFlag = true;
142
149
  if (e.key === 'p' || e.key === 'P')
143
150
  pendingPause = true;
151
+ if (_volumeUpKeys.includes(e.key))
152
+ increaseVolume();
153
+ if (_volumeDownKeys.includes(e.key))
154
+ decreaseVolume();
144
155
  if (e.ctrlKey && e.shiftKey && (e.key === 'b' || e.key === 'B')) {
145
156
  pendingDebug = true;
146
157
  e.preventDefault();
@@ -155,6 +166,22 @@ export function initInput(repeatDelay = 150, repeatInterval = 80) {
155
166
  }
156
167
  });
157
168
  }
169
+ /**
170
+ * Overrides the keys that adjust master volume. Optional — `+`/`=` (up) and
171
+ * `-`/`_` (down) stay active if this is never called. Pass empty arrays to
172
+ * disable volume keys entirely.
173
+ *
174
+ * @param up - Key(s) (`KeyboardEvent.key`) that raise volume. A string or array.
175
+ * @param down - Key(s) that lower volume. A string or array.
176
+ *
177
+ * @example
178
+ * setVolumeKeys('9', '8') // numpad-ish remap; +/- no longer touch volume
179
+ * setVolumeKeys([], []) // disable built-in volume keys
180
+ */
181
+ export function setVolumeKeys(up, down) {
182
+ _volumeUpKeys = Array.isArray(up) ? up : [up];
183
+ _volumeDownKeys = Array.isArray(down) ? down : [down];
184
+ }
158
185
  /**
159
186
  * Advances the key-repeat timer and returns the movement direction for this frame.
160
187
  * Call once per frame with the frame delta in milliseconds.
package/dist/input.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zx-kit",
3
- "version": "0.33.0",
3
+ "version": "0.34.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/zrebec/zx-kit.git"