zx-kit 0.19.1 → 0.21.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/ui.js CHANGED
@@ -108,6 +108,363 @@ export function drawPanelTitle(ctx, options) {
108
108
  : x + padding;
109
109
  drawText(ctx, text, tx, y + padding, ink, paper);
110
110
  }
111
+ /**
112
+ * Draws a regularly-spaced dot pattern covering a rectangular area.
113
+ *
114
+ * Useful for: radar / sonar screens, tactical scanner overlays, debug grids,
115
+ * stippled backgrounds, "dotted line" decorative elements, alien-invasion
116
+ * style detection grids.
117
+ *
118
+ * @example
119
+ * // Sonar background (submarine)
120
+ * drawDottedGrid(ctx, {
121
+ * x: 8, y: 8, width: 64, height: 48,
122
+ * spacing: 4, color: C.GREEN, paper: C.BLACK,
123
+ * })
124
+ *
125
+ * // Tactical overlay
126
+ * drawDottedGrid(ctx, { x: 0, y: 0, width: 256, height: 192, spacing: 8, color: C.B_WHITE })
127
+ */
128
+ export function drawDottedGrid(ctx, options) {
129
+ const { x, y, width, height, spacing, color, paper, dotSize = 1 } = options;
130
+ if (paper !== undefined) {
131
+ ctx.fillStyle = paper;
132
+ ctx.fillRect(x, y, width, height);
133
+ }
134
+ ctx.fillStyle = color;
135
+ for (let dy = 0; dy < height; dy += spacing) {
136
+ for (let dx = 0; dx < width; dx += spacing) {
137
+ ctx.fillRect(x + dx, y + dy, dotSize, dotSize);
138
+ }
139
+ }
140
+ }
141
+ /**
142
+ * Draws a discrete segmented bar — health, ammo, shield, fuel, stamina, mana,
143
+ * battery, damage indicators. The bar shows `round(value/max * segments)` filled
144
+ * segments out of `segments` total.
145
+ *
146
+ * @example
147
+ * // Robocop-style health (single colour):
148
+ * drawSegmentedBar(ctx, {
149
+ * x: 0, y: 0, segments: 10, value: 7, max: 10, color: C.B_GREEN,
150
+ * })
151
+ *
152
+ * // Oxygen with threshold gradient (red → yellow → green):
153
+ * drawSegmentedBar(ctx, {
154
+ * x: 0, y: 0, segments: 10, value: 8, max: 10,
155
+ * colors: [C.B_RED, C.B_YELLOW, C.B_GREEN],
156
+ * paper: C.BLACK,
157
+ * })
158
+ *
159
+ * // Vertical bar (e.g. oxygen indicator next to ballast tanks):
160
+ * drawSegmentedBar(ctx, {
161
+ * x: 0, y: 0, segments: 8, value: 5, max: 8,
162
+ * orientation: 'vertical', color: C.B_GREEN,
163
+ * })
164
+ */
165
+ export function drawSegmentedBar(ctx, options) {
166
+ const { x, y, segments, value, max, segmentWidth = CELL, segmentHeight = CELL, gap = 1, color, colors, paper, orientation = 'horizontal', } = options;
167
+ if ((color === undefined) === (colors === undefined)) {
168
+ throw new Error('drawSegmentedBar: provide exactly one of `color` or `colors`');
169
+ }
170
+ const clamped = Math.max(0, Math.min(max, value));
171
+ const ratio = max === 0 ? 0 : clamped / max;
172
+ const filled = Math.round(ratio * segments);
173
+ let fillColor;
174
+ if (color !== undefined) {
175
+ fillColor = color;
176
+ }
177
+ else {
178
+ const [lo, mid, hi] = colors;
179
+ fillColor = ratio < 1 / 3 ? lo : ratio < 2 / 3 ? mid : hi;
180
+ }
181
+ for (let i = 0; i < segments; i++) {
182
+ const filledHere = i < filled;
183
+ const drawColor = filledHere ? fillColor : paper;
184
+ if (drawColor === undefined)
185
+ continue;
186
+ const dx = orientation === 'horizontal' ? i * (segmentWidth + gap) : 0;
187
+ const dy = orientation === 'horizontal' ? 0 : (segments - 1 - i) * (segmentHeight + gap);
188
+ ctx.fillStyle = drawColor;
189
+ ctx.fillRect(x + dx, y + dy, segmentWidth, segmentHeight);
190
+ }
191
+ }
192
+ /**
193
+ * Draws a fluid container — ballast tanks, fuel gauges, water reservoirs,
194
+ * lava levels, oil drums, chemical canisters. Liquid fills from the bottom up.
195
+ *
196
+ * **Shape `'pill'`** renders rounded semicircular caps at top and bottom for a
197
+ * sci-fi / submarine look. **Shape `'rect'`** uses sharp corners — simpler and
198
+ * more industrial. Both share the same fill semantics.
199
+ *
200
+ * @example
201
+ * // Submarine ballast tank (pill, cyan fluid)
202
+ * drawTank(ctx, {
203
+ * x: 8, y: 16, width: 16, height: 48,
204
+ * fillPct: 0.66,
205
+ * shape: 'pill',
206
+ * liquidColor: C.B_CYAN,
207
+ * containerColor: C.WHITE,
208
+ * emptyColor: C.BLACK,
209
+ * })
210
+ *
211
+ * // Generic fuel gauge (rect, yellow fluid)
212
+ * drawTank(ctx, {
213
+ * x: 200, y: 8, width: 24, height: 32,
214
+ * fillPct: 0.4, shape: 'rect',
215
+ * liquidColor: C.B_YELLOW, containerColor: C.WHITE, emptyColor: C.BLACK,
216
+ * })
217
+ */
218
+ export function drawTank(ctx, options) {
219
+ const { x, y, width, height, fillPct, shape = 'pill', liquidColor, containerColor = liquidColor, emptyColor = C.BLACK, } = options;
220
+ const pct = Math.max(0, Math.min(1, fillPct));
221
+ const fillHeight = Math.round(height * pct);
222
+ const fillTop = y + height - fillHeight;
223
+ // For pill shape, the cap radius is half the width capped to a sensible max.
224
+ const capRadius = shape === 'pill' ? Math.min(Math.floor(width / 2), Math.floor(height / 2)) : 0;
225
+ // ── Empty region fill ────────────────────────────────────────────────────
226
+ if (emptyColor !== 'transparent') {
227
+ ctx.fillStyle = emptyColor;
228
+ if (shape === 'rect') {
229
+ ctx.fillRect(x, y, width, height - fillHeight);
230
+ }
231
+ else {
232
+ // Pill: fill the body (rectangle middle), and add top semicircle if
233
+ // empty area extends into it.
234
+ for (let dy = 0; dy < height - fillHeight; dy++) {
235
+ const py = y + dy;
236
+ const insetLeft = _capInset(dy, height, capRadius, width);
237
+ ctx.fillRect(x + insetLeft, py, width - 2 * insetLeft, 1);
238
+ }
239
+ }
240
+ }
241
+ // ── Liquid region fill ──────────────────────────────────────────────────
242
+ if (fillHeight > 0) {
243
+ ctx.fillStyle = liquidColor;
244
+ if (shape === 'rect') {
245
+ ctx.fillRect(x, fillTop, width, fillHeight);
246
+ }
247
+ else {
248
+ for (let dy = 0; dy < fillHeight; dy++) {
249
+ const py = fillTop + dy;
250
+ const trueDy = (height - fillHeight) + dy; // offset within full container
251
+ const insetLeft = _capInset(trueDy, height, capRadius, width);
252
+ ctx.fillRect(x + insetLeft, py, width - 2 * insetLeft, 1);
253
+ }
254
+ }
255
+ }
256
+ // ── Container outline ────────────────────────────────────────────────────
257
+ ctx.fillStyle = containerColor;
258
+ if (shape === 'rect') {
259
+ // 4 thin lines for the rectangular outline (1 px thick)
260
+ ctx.fillRect(x, y, width, 1); // top
261
+ ctx.fillRect(x, y + height - 1, width, 1); // bottom
262
+ ctx.fillRect(x, y, 1, height); // left
263
+ ctx.fillRect(x + width - 1, y, 1, height); // right
264
+ }
265
+ else {
266
+ // Pill outline: vertical sides + curved top/bottom via _capInset
267
+ for (let dy = 0; dy < height; dy++) {
268
+ const inset = _capInset(dy, height, capRadius, width);
269
+ // Left and right edge pixels of the outline at this row
270
+ ctx.fillRect(x + inset, y + dy, 1, 1);
271
+ ctx.fillRect(x + width - 1 - inset, y + dy, 1, 1);
272
+ }
273
+ }
274
+ }
275
+ /**
276
+ * Internal helper: for a pill shape of given dimensions and cap radius,
277
+ * returns how many pixels are inset from the left edge at row `dy` (0-indexed
278
+ * from the top). Returns 0 in the rectangular middle. The shape is symmetric,
279
+ * so the right edge inset equals the left edge inset.
280
+ */
281
+ function _capInset(dy, totalHeight, capRadius, _width) {
282
+ if (capRadius === 0)
283
+ return 0;
284
+ // Top cap: rows 0..capRadius-1
285
+ if (dy < capRadius) {
286
+ const r = capRadius;
287
+ const offsetFromCenter = r - 1 - dy;
288
+ const horiz = Math.round(r - Math.sqrt(Math.max(0, r * r - (offsetFromCenter + 0.5) * (offsetFromCenter + 0.5))));
289
+ return horiz;
290
+ }
291
+ // Bottom cap: rows (totalHeight - capRadius)..totalHeight-1
292
+ if (dy >= totalHeight - capRadius) {
293
+ const r = capRadius;
294
+ const offsetFromCenter = dy - (totalHeight - capRadius);
295
+ const horiz = Math.round(r - Math.sqrt(Math.max(0, r * r - (offsetFromCenter + 0.5) * (offsetFromCenter + 0.5))));
296
+ return horiz;
297
+ }
298
+ return 0; // straight middle
299
+ }
300
+ /**
301
+ * Draws a circular analog gauge with a movable needle — RPM, speedometer,
302
+ * fuel level, temperature, volume knob, anything that maps a scalar to an angle.
303
+ *
304
+ * Optional decorations: filled face background, circular rim outline, evenly
305
+ * spaced tick marks. None of these are required; the needle alone is the
306
+ * minimum visible output.
307
+ *
308
+ * @example
309
+ * // Submarine motor RPM gauge (range 0-3000)
310
+ * drawDial(ctx, {
311
+ * cx: 128, cy: 100, radius: 24,
312
+ * value: 1500, min: 0, max: 3000,
313
+ * needleColor: C.B_RED,
314
+ * rimColor: C.WHITE,
315
+ * tickColor: C.WHITE,
316
+ * ticks: 7,
317
+ * })
318
+ *
319
+ * // Bare minimum: just the needle
320
+ * drawDial(ctx, { cx: 50, cy: 50, radius: 10, value: 75, needleColor: C.B_GREEN })
321
+ */
322
+ export function drawDial(ctx, options) {
323
+ const { cx, cy, radius, value, min = 0, max = 100, startAngle = 3 * Math.PI / 4, endAngle = Math.PI / 4 + 2 * Math.PI, needleColor, faceColor, rimColor, tickColor, ticks = 0, } = options;
324
+ // Face
325
+ if (faceColor !== undefined) {
326
+ ctx.fillStyle = faceColor;
327
+ _fillCircle(ctx, cx, cy, radius);
328
+ }
329
+ // Rim
330
+ if (rimColor !== undefined) {
331
+ ctx.fillStyle = rimColor;
332
+ _plotCircle(ctx, cx, cy, radius);
333
+ }
334
+ // Ticks
335
+ if (tickColor !== undefined && ticks > 0) {
336
+ ctx.fillStyle = tickColor;
337
+ const sweep = endAngle - startAngle;
338
+ const innerR = Math.max(0, radius - 3);
339
+ for (let i = 0; i < ticks; i++) {
340
+ const t = ticks === 1 ? 0 : i / (ticks - 1);
341
+ const a = startAngle + sweep * t;
342
+ const cosA = Math.cos(a), sinA = Math.sin(a);
343
+ _plotLine(ctx, cx + innerR * cosA, cy + innerR * sinA, cx + radius * cosA, cy + radius * sinA);
344
+ }
345
+ }
346
+ // Needle
347
+ const clamped = Math.max(min, Math.min(max, value));
348
+ const t = max === min ? 0 : (clamped - min) / (max - min);
349
+ const angle = startAngle + (endAngle - startAngle) * t;
350
+ ctx.fillStyle = needleColor;
351
+ _plotLine(ctx, cx, cy, cx + radius * Math.cos(angle), cy + radius * Math.sin(angle));
352
+ }
353
+ const _COMPASS_DIRS = ['N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW'];
354
+ /**
355
+ * Draws a text-based compass heading indicator — the classic 80s tactical
356
+ * display `[W [NW] N [NE] E]` style with the current direction in the centre,
357
+ * highlighted, and the two neighbouring directions on each side.
358
+ *
359
+ * Useful for: submarine HUD, space sim navigation, rally / driving game
360
+ * heading, any first-person game that needs a cheap-to-render compass.
361
+ *
362
+ * The heading is rounded to the nearest 45° step and then five labels are
363
+ * shown — the centre direction plus two on each side, wrapping around as
364
+ * needed (heading `0` → `W [NW] N [NE] E`, heading `90` → `N [NE] E [SE] S`).
365
+ *
366
+ * @example
367
+ * drawCompassText(ctx, {
368
+ * x: 0, y: 168,
369
+ * heading: 0, // N
370
+ * color: C.WHITE,
371
+ * highlightColor: C.B_YELLOW,
372
+ * paper: C.BLACK,
373
+ * })
374
+ * // Renders: `W [NW] N [NE] E` — centre "N" in bright yellow, ±1 in brackets,
375
+ * // outer ±2 ("W", "E") plain.
376
+ */
377
+ export function drawCompassText(ctx, options) {
378
+ const { x, y, heading, color, highlightColor = color, paper, brackets = true, } = options;
379
+ // Normalise heading into [0, 360)
380
+ const h = ((heading % 360) + 360) % 360;
381
+ // Round to nearest 45° step → index 0..7
382
+ const centerIdx = Math.round(h / 45) % 8;
383
+ // Five directions: centre and ±1, ±2 (wrapping)
384
+ const indices = [
385
+ (centerIdx + 6) % 8, // -2
386
+ (centerIdx + 7) % 8, // -1
387
+ centerIdx, // 0
388
+ (centerIdx + 1) % 8, // +1
389
+ (centerIdx + 2) % 8, // +2
390
+ ];
391
+ let cursorX = x;
392
+ for (let i = 0; i < indices.length; i++) {
393
+ const label = _COMPASS_DIRS[indices[i]];
394
+ const isCenter = i === 2;
395
+ const isAdjacent = i === 1 || i === 3;
396
+ const shown = isAdjacent && brackets ? `[${label}]` : label;
397
+ const ink = isCenter ? highlightColor : color;
398
+ drawText(ctx, shown, cursorX, y, ink, paper);
399
+ cursorX += shown.length * CELL;
400
+ // single-cell space between tokens
401
+ cursorX += CELL;
402
+ }
403
+ }
404
+ // ─── Drawing primitives (private) ────────────────────────────────────────────
405
+ /**
406
+ * Bresenham line algorithm — plots a 1-pixel-wide line from (x0,y0) to (x1,y1)
407
+ * using the current `ctx.fillStyle`. Coordinates are rounded to integers.
408
+ */
409
+ function _plotLine(ctx, x0, y0, x1, y1) {
410
+ let ix0 = Math.round(x0), iy0 = Math.round(y0);
411
+ const ix1 = Math.round(x1), iy1 = Math.round(y1);
412
+ const dx = Math.abs(ix1 - ix0);
413
+ const dy = -Math.abs(iy1 - iy0);
414
+ const sx = ix0 < ix1 ? 1 : -1;
415
+ const sy = iy0 < iy1 ? 1 : -1;
416
+ let err = dx + dy;
417
+ while (true) {
418
+ ctx.fillRect(ix0, iy0, 1, 1);
419
+ if (ix0 === ix1 && iy0 === iy1)
420
+ break;
421
+ const e2 = 2 * err;
422
+ if (e2 >= dy) {
423
+ err += dy;
424
+ ix0 += sx;
425
+ }
426
+ if (e2 <= dx) {
427
+ err += dx;
428
+ iy0 += sy;
429
+ }
430
+ }
431
+ }
432
+ /**
433
+ * Midpoint circle algorithm — plots a 1-pixel-wide circle outline of radius
434
+ * `r` centred at (cx,cy) using the current `ctx.fillStyle`.
435
+ */
436
+ function _plotCircle(ctx, cx, cy, r) {
437
+ let x = 0, y = r, d = 1 - r;
438
+ while (y >= x) {
439
+ ctx.fillRect(cx + x, cy + y, 1, 1);
440
+ ctx.fillRect(cx + y, cy + x, 1, 1);
441
+ ctx.fillRect(cx - x, cy + y, 1, 1);
442
+ ctx.fillRect(cx - y, cy + x, 1, 1);
443
+ ctx.fillRect(cx + x, cy - y, 1, 1);
444
+ ctx.fillRect(cx + y, cy - x, 1, 1);
445
+ ctx.fillRect(cx - x, cy - y, 1, 1);
446
+ ctx.fillRect(cx - y, cy - x, 1, 1);
447
+ x++;
448
+ if (d < 0) {
449
+ d += 2 * x + 1;
450
+ }
451
+ else {
452
+ y--;
453
+ d += 2 * (x - y) + 1;
454
+ }
455
+ }
456
+ }
457
+ /**
458
+ * Fills a solid disc of radius `r` centred at (cx,cy) using the current
459
+ * `ctx.fillStyle`. Uses horizontal `fillRect` spans for efficiency.
460
+ */
461
+ function _fillCircle(ctx, cx, cy, r) {
462
+ for (let dy = -r; dy <= r; dy++) {
463
+ const xMax = Math.floor(Math.sqrt(Math.max(0, r * r - dy * dy)));
464
+ if (xMax >= 0)
465
+ ctx.fillRect(cx - xMax, cy + dy, 2 * xMax + 1, 1);
466
+ }
467
+ }
111
468
  // ─── Public API — stateful widget ────────────────────────────────────────────
112
469
  /**
113
470
  * Draws a ZX-style progress / value bar and registers it for managed redraws.
package/dist/ui.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.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.19.1",
3
+ "version": "0.21.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/zrebec/zx-kit.git"