@nodetool-ai/game-renderer 0.8.1

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.
Files changed (62) hide show
  1. package/dist/.nodetool-build-stamp +1 -0
  2. package/dist/audio.d.ts +39 -0
  3. package/dist/audio.d.ts.map +1 -0
  4. package/dist/audio.js +227 -0
  5. package/dist/audio.js.map +1 -0
  6. package/dist/browser-fonts.d.ts +8 -0
  7. package/dist/browser-fonts.d.ts.map +1 -0
  8. package/dist/browser-fonts.js +39 -0
  9. package/dist/browser-fonts.js.map +1 -0
  10. package/dist/browser.d.ts +31 -0
  11. package/dist/browser.d.ts.map +1 -0
  12. package/dist/browser.js +106 -0
  13. package/dist/browser.js.map +1 -0
  14. package/dist/build.d.ts +19 -0
  15. package/dist/build.d.ts.map +1 -0
  16. package/dist/build.js +236 -0
  17. package/dist/build.js.map +1 -0
  18. package/dist/canvas2d.d.ts +34 -0
  19. package/dist/canvas2d.d.ts.map +1 -0
  20. package/dist/canvas2d.js +208 -0
  21. package/dist/canvas2d.js.map +1 -0
  22. package/dist/fonts.d.ts +5 -0
  23. package/dist/fonts.d.ts.map +1 -0
  24. package/dist/fonts.js +10 -0
  25. package/dist/fonts.js.map +1 -0
  26. package/dist/frame.d.ts +55 -0
  27. package/dist/frame.d.ts.map +1 -0
  28. package/dist/frame.js +123 -0
  29. package/dist/frame.js.map +1 -0
  30. package/dist/gpu-capture.d.ts +4 -0
  31. package/dist/gpu-capture.d.ts.map +1 -0
  32. package/dist/gpu-capture.js +192 -0
  33. package/dist/gpu-capture.js.map +1 -0
  34. package/dist/index.d.ts +43 -0
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +3 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/input.d.ts +3 -0
  39. package/dist/input.d.ts.map +1 -0
  40. package/dist/input.js +16 -0
  41. package/dist/input.js.map +1 -0
  42. package/dist/lighting.d.ts +17 -0
  43. package/dist/lighting.d.ts.map +1 -0
  44. package/dist/lighting.js +79 -0
  45. package/dist/lighting.js.map +1 -0
  46. package/dist/node.d.ts +14 -0
  47. package/dist/node.d.ts.map +1 -0
  48. package/dist/node.js +177 -0
  49. package/dist/node.js.map +1 -0
  50. package/dist/standalone-player.d.ts +2 -0
  51. package/dist/standalone-player.d.ts.map +1 -0
  52. package/dist/standalone-player.js +286 -0
  53. package/dist/standalone-player.js.map +1 -0
  54. package/dist/touch-controls.d.ts +18 -0
  55. package/dist/touch-controls.d.ts.map +1 -0
  56. package/dist/touch-controls.js +136 -0
  57. package/dist/touch-controls.js.map +1 -0
  58. package/dist/webgpu.d.ts +75 -0
  59. package/dist/webgpu.d.ts.map +1 -0
  60. package/dist/webgpu.js +807 -0
  61. package/dist/webgpu.js.map +1 -0
  62. package/package.json +64 -0
@@ -0,0 +1,136 @@
1
+ const DIRECTIONS = ["left", "right", "up", "down"];
2
+ // sin(22.5°): an axis turns on once the stick leans past the edge of its 45° sector, which gives 8-way input.
3
+ const AXIS_THRESHOLD = 0.38;
4
+ /** Maps a stick offset in screen pixels (y grows downward) to the direction actions it presses. */
5
+ export function stickActions(dx, dy, deadZone) {
6
+ const length = Math.hypot(dx, dy);
7
+ if (!(length > deadZone)) {
8
+ return [];
9
+ }
10
+ const x = dx / length;
11
+ const y = -dy / length;
12
+ const actions = [];
13
+ if (x < -AXIS_THRESHOLD)
14
+ actions.push("left");
15
+ if (x > AXIS_THRESHOLD)
16
+ actions.push("right");
17
+ if (y > AXIS_THRESHOLD)
18
+ actions.push("up");
19
+ if (y < -AXIS_THRESHOLD)
20
+ actions.push("down");
21
+ return actions;
22
+ }
23
+ /** Splits a game's input actions into the stick's directions and one button per other action. */
24
+ export function touchLayout(inputActions) {
25
+ const stick = DIRECTIONS.filter((action) => inputActions.includes(action));
26
+ return { stick, buttons: inputActions.filter((action) => !stick.includes(action)) };
27
+ }
28
+ /**
29
+ * A floating stick on the left half of the screen and action buttons on the right.
30
+ * The stick appears where the thumb lands, so it works for any hand position.
31
+ */
32
+ export function mountTouchControls(root, options) {
33
+ const layout = touchLayout(options.inputActions);
34
+ const held = new Map();
35
+ const emit = () => {
36
+ const pressed = new Set();
37
+ for (const actions of held.values())
38
+ actions.forEach((action) => pressed.add(action));
39
+ options.onChange(pressed);
40
+ };
41
+ const cleanups = [];
42
+ const listen = (target, type, handler) => {
43
+ target.addEventListener(type, handler, { passive: false });
44
+ cleanups.push(() => target.removeEventListener(type, handler));
45
+ };
46
+ if (layout.stick.length > 0) {
47
+ const zone = document.createElement("div");
48
+ zone.className = "touch-stick-zone";
49
+ const base = document.createElement("div");
50
+ base.className = "touch-stick";
51
+ const knob = document.createElement("div");
52
+ knob.className = "touch-knob";
53
+ base.append(knob);
54
+ zone.append(base);
55
+ root.append(zone);
56
+ let pointerId;
57
+ let originX = 0;
58
+ let originY = 0;
59
+ const radius = () => base.offsetWidth / 2 || 56;
60
+ const move = (event) => {
61
+ const limit = radius();
62
+ let dx = event.clientX - originX;
63
+ let dy = event.clientY - originY;
64
+ const length = Math.hypot(dx, dy);
65
+ if (length > limit) {
66
+ dx = (dx / length) * limit;
67
+ dy = (dy / length) * limit;
68
+ }
69
+ knob.style.transform = `translate(${dx}px, ${dy}px)`;
70
+ held.set("stick", new Set(stickActions(dx, dy, limit * 0.25).filter((action) => layout.stick.includes(action))));
71
+ emit();
72
+ };
73
+ const release = (event) => {
74
+ if (event.pointerId !== pointerId)
75
+ return;
76
+ pointerId = undefined;
77
+ base.classList.remove("active");
78
+ knob.style.transform = "";
79
+ held.delete("stick");
80
+ emit();
81
+ };
82
+ listen(zone, "pointerdown", (event) => {
83
+ event.preventDefault();
84
+ if (pointerId !== undefined)
85
+ return;
86
+ pointerId = event.pointerId;
87
+ zone.setPointerCapture(event.pointerId);
88
+ originX = event.clientX;
89
+ originY = event.clientY;
90
+ const bounds = zone.getBoundingClientRect();
91
+ base.style.left = `${originX - bounds.left}px`;
92
+ base.style.top = `${originY - bounds.top}px`;
93
+ base.classList.add("active");
94
+ move(event);
95
+ });
96
+ listen(zone, "pointermove", (event) => {
97
+ if (event.pointerId === pointerId)
98
+ move(event);
99
+ });
100
+ listen(zone, "pointerup", release);
101
+ listen(zone, "pointercancel", release);
102
+ }
103
+ const buttons = document.createElement("div");
104
+ buttons.className = "touch-buttons";
105
+ for (const action of layout.buttons) {
106
+ const button = document.createElement("button");
107
+ button.type = "button";
108
+ button.className = "touch-button";
109
+ button.textContent = action.toUpperCase();
110
+ button.setAttribute("aria-label", action);
111
+ const key = `button:${action}`;
112
+ const up = () => {
113
+ button.classList.remove("active");
114
+ held.delete(key);
115
+ emit();
116
+ };
117
+ listen(button, "pointerdown", (event) => {
118
+ event.preventDefault();
119
+ button.setPointerCapture(event.pointerId);
120
+ button.classList.add("active");
121
+ held.set(key, new Set([action]));
122
+ emit();
123
+ });
124
+ listen(button, "pointerup", up);
125
+ listen(button, "pointercancel", up);
126
+ listen(button, "contextmenu", (event) => event.preventDefault());
127
+ buttons.append(button);
128
+ }
129
+ root.append(buttons);
130
+ return () => {
131
+ cleanups.forEach((cleanup) => cleanup());
132
+ root.replaceChildren();
133
+ held.clear();
134
+ };
135
+ }
136
+ //# sourceMappingURL=touch-controls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"touch-controls.js","sourceRoot":"","sources":["../src/touch-controls.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ import type { GameRenderFrame } from "@nodetool-ai/protocol";
2
+ import { AssetCache } from "./canvas2d.js";
3
+ import type { GameHudEffectOrder, GameRenderer, GameRendererCapabilities, GameRendererEffect, GameRendererStats } from "./index.js";
4
+ /** Draws ordered sprites as consecutive texture batches on a private WebGPU device. */
5
+ export declare class WebGPUGameRenderer implements GameRenderer {
6
+ readonly canvas: HTMLCanvasElement;
7
+ private readonly device;
8
+ private readonly context;
9
+ private readonly format;
10
+ private readonly assets;
11
+ private readonly adapterType;
12
+ readonly backend = "webgpu";
13
+ private readonly pipeline;
14
+ private readonly effectSpritePipeline;
15
+ private readonly additivePipeline;
16
+ private readonly effectAdditivePipeline;
17
+ private readonly linearSampler;
18
+ private presentPipeline;
19
+ private readonly presentModule;
20
+ private readonly hudPipeline;
21
+ private readonly toSrgbPipeline;
22
+ private readonly toLinearPipeline;
23
+ private readonly presentLayout;
24
+ private readonly effectContext;
25
+ private readonly effectExecutor;
26
+ private readonly effectRecipeRunner;
27
+ private readonly effectRegistry;
28
+ private effects;
29
+ private hudOrder;
30
+ private sourceTarget;
31
+ private effectTarget;
32
+ private srgbTarget;
33
+ private lutTarget;
34
+ private minimalRenderSucceeded;
35
+ private readonly sampler;
36
+ private readonly cameraBuffer;
37
+ private readonly lightingBuffer;
38
+ private readonly lightPipeline;
39
+ private readonly lightLayout;
40
+ private readonly lightSampleLayout;
41
+ private readonly lightFallback;
42
+ private lightTarget;
43
+ private readonly textures;
44
+ private readonly validatedLuts;
45
+ private readonly fallback;
46
+ private readonly placeholders;
47
+ private instanceBuffer;
48
+ private instanceCapacity;
49
+ private hudCanvas;
50
+ private hudTexture;
51
+ private hudKey;
52
+ private disposed;
53
+ private lost;
54
+ constructor(canvas: HTMLCanvasElement, device: GPUDevice, context: GPUCanvasContext, format: GPUTextureFormat, assets: AssetCache, adapterType?: "hardware" | "software" | "unknown");
55
+ get capabilities(): GameRendererCapabilities;
56
+ setEffects(effects: readonly GameRendererEffect[], hudOrder?: GameHudEffectOrder): void;
57
+ private ensureEffectTargets;
58
+ private ensureLightTarget;
59
+ private convertColor;
60
+ private textureEntry;
61
+ private upload;
62
+ private getTexture;
63
+ private getLutTexture;
64
+ private placeholder;
65
+ render(frame: GameRenderFrame, interpolation: number): Promise<GameRendererStats>;
66
+ private renderFrame;
67
+ private updateHud;
68
+ private appendBatch;
69
+ private writeInstance;
70
+ private ensureInstanceCapacity;
71
+ resize(width: number, height: number): void;
72
+ invalidateAsset(assetId: string): void;
73
+ dispose(): void;
74
+ }
75
+ //# sourceMappingURL=webgpu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgpu.d.ts","sourceRoot":"","sources":["../src/webgpu.ts"],"names":[],"mappings":"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"}