goudengine 0.0.828 → 0.0.831

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 (68) hide show
  1. package/README.md +116 -0
  2. package/dist/generated/diagnostic.g.d.ts +15 -0
  3. package/dist/generated/diagnostic.g.d.ts.map +1 -0
  4. package/dist/generated/diagnostic.g.js +50 -0
  5. package/dist/generated/diagnostic.g.js.map +1 -0
  6. package/dist/generated/index.g.d.ts +4 -2
  7. package/dist/generated/index.g.d.ts.map +1 -1
  8. package/dist/generated/index.g.js +8 -1
  9. package/dist/generated/index.g.js.map +1 -1
  10. package/dist/generated/node/index.g.d.ts +443 -3
  11. package/dist/generated/node/index.g.d.ts.map +1 -1
  12. package/dist/generated/node/index.g.js +985 -17
  13. package/dist/generated/node/index.g.js.map +1 -1
  14. package/dist/generated/types/engine.g.d.ts +541 -0
  15. package/dist/generated/types/engine.g.d.ts.map +1 -1
  16. package/dist/generated/types/input.g.d.ts +43 -1
  17. package/dist/generated/types/input.g.d.ts.map +1 -1
  18. package/dist/generated/types/input.g.js +50 -1
  19. package/dist/generated/types/input.g.js.map +1 -1
  20. package/dist/index.d.ts +6 -0
  21. package/dist/index.d.ts.map +1 -0
  22. package/dist/index.js +28 -0
  23. package/dist/index.js.map +1 -0
  24. package/dist/node/index.d.ts +6 -0
  25. package/dist/node/index.d.ts.map +1 -0
  26. package/dist/node/index.js +28 -0
  27. package/dist/node/index.js.map +1 -0
  28. package/dist/shared/debugger.d.ts +9 -0
  29. package/dist/shared/debugger.d.ts.map +1 -0
  30. package/dist/shared/debugger.js +11 -0
  31. package/dist/shared/debugger.js.map +1 -0
  32. package/dist/shared/network.d.ts +39 -0
  33. package/dist/shared/network.d.ts.map +1 -0
  34. package/dist/shared/network.js +66 -0
  35. package/dist/shared/network.js.map +1 -0
  36. package/dist/web/generated/types/engine.g.d.ts +541 -0
  37. package/dist/web/generated/types/engine.g.d.ts.map +1 -1
  38. package/dist/web/generated/types/input.g.d.ts +43 -1
  39. package/dist/web/generated/types/input.g.d.ts.map +1 -1
  40. package/dist/web/generated/types/input.g.js +49 -0
  41. package/dist/web/generated/types/input.g.js.map +1 -1
  42. package/dist/web/generated/web/index.g.d.ts +175 -3
  43. package/dist/web/generated/web/index.g.d.ts.map +1 -1
  44. package/dist/web/generated/web/index.g.js +497 -6
  45. package/dist/web/generated/web/index.g.js.map +1 -1
  46. package/dist/web/shared/debugger.d.ts +9 -0
  47. package/dist/web/shared/debugger.d.ts.map +1 -0
  48. package/dist/web/shared/debugger.js +7 -0
  49. package/dist/web/shared/debugger.js.map +1 -0
  50. package/dist/web/shared/network.d.ts +39 -0
  51. package/dist/web/shared/network.d.ts.map +1 -0
  52. package/dist/web/shared/network.js +61 -0
  53. package/dist/web/shared/network.js.map +1 -0
  54. package/dist/web/web/index.d.ts +6 -0
  55. package/dist/web/web/index.d.ts.map +1 -0
  56. package/dist/web/web/index.js +6 -0
  57. package/dist/web/web/index.js.map +1 -0
  58. package/goud-engine-node.darwin-arm64.node +0 -0
  59. package/goud-engine-node.darwin-x64.node +0 -0
  60. package/goud-engine-node.linux-x64-gnu.node +0 -0
  61. package/goud-engine-node.win32-x64-msvc.node +0 -0
  62. package/index.d.ts +381 -0
  63. package/index.js +56 -52
  64. package/package.json +25 -19
  65. package/wasm/goud_engine.d.ts +716 -70
  66. package/wasm/goud_engine.js +1401 -20
  67. package/wasm/goud_engine_bg.wasm +0 -0
  68. package/wasm/goud_engine_bg.wasm.d.ts +180 -70
@@ -1,14 +1,32 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
3
 
4
+ /**
5
+ * Collision contact data returned by wasm collision helper methods.
6
+ */
4
7
  export class WasmContact {
5
8
  private constructor();
6
9
  free(): void;
7
10
  [Symbol.dispose](): void;
11
+ /**
12
+ * Contact normal X component.
13
+ */
8
14
  normal_x: number;
15
+ /**
16
+ * Contact normal Y component.
17
+ */
9
18
  normal_y: number;
19
+ /**
20
+ * Penetration depth along the contact normal.
21
+ */
10
22
  penetration: number;
23
+ /**
24
+ * Contact point X coordinate.
25
+ */
11
26
  point_x: number;
27
+ /**
28
+ * Contact point Y coordinate.
29
+ */
12
30
  point_y: number;
13
31
  }
14
32
 
@@ -21,60 +39,252 @@ export class WasmContact {
21
39
  export class WasmGame {
22
40
  free(): void;
23
41
  [Symbol.dispose](): void;
42
+ /**
43
+ * Returns whether two AABBs overlap.
44
+ */
24
45
  aabb_overlap(min_ax: number, min_ay: number, max_ax: number, max_ay: number, min_bx: number, min_by: number, max_bx: number, max_by: number): boolean;
46
+ /**
47
+ * Inserts or replaces `Name` on the entity.
48
+ */
25
49
  add_name(entity_bits: bigint, name: string): void;
50
+ /**
51
+ * Accumulates scroll delta for the current frame.
52
+ */
26
53
  add_scroll_delta(dx: number, dy: number): void;
54
+ /**
55
+ * Inserts or replaces `Sprite` on the entity.
56
+ */
27
57
  add_sprite(entity_bits: bigint, texture_handle: number, r: number, g: number, b: number, a: number, flip_x: boolean, flip_y: boolean, anchor_x: number, anchor_y: number): void;
58
+ /**
59
+ * Inserts or replaces `Transform2D` on the entity.
60
+ */
28
61
  add_transform2d(entity_bits: bigint, px: number, py: number, rotation: number, sx: number, sy: number): void;
62
+ /**
63
+ * Creates or resumes the WebAudio context.
64
+ *
65
+ * Call this from the first user gesture (click/touch/key) to satisfy
66
+ * browser autoplay restrictions.
67
+ */
68
+ audio_activate(): number;
69
+ /**
70
+ * Applies an immediate two-player mix in `[0, 1]`.
71
+ */
72
+ audio_crossfade(from_player_id: number, to_player_id: number, mix: number): number;
73
+ /**
74
+ * Pauses a player's playback.
75
+ */
76
+ audio_pause(player_id: number): number;
77
+ /**
78
+ * Plays audio without spatialization defaults.
79
+ */
80
+ audio_play(asset_data: Uint8Array): number;
81
+ /**
82
+ * Plays audio with spatial attenuation in 2D (`z = 0`).
83
+ */
84
+ audio_play_spatial(asset_data: Uint8Array, source_x: number, source_y: number, listener_x: number, listener_y: number, max_distance: number, rolloff: number): number;
85
+ /**
86
+ * Plays audio with spatial attenuation in 3D.
87
+ */
88
+ audio_play_spatial_3d(asset_data: Uint8Array, source_x: number, source_y: number, source_z: number, listener_x: number, listener_y: number, listener_z: number, max_distance: number, rolloff: number): number;
89
+ /**
90
+ * Resumes a paused player.
91
+ */
92
+ audio_resume(player_id: number): number;
93
+ /**
94
+ * Sets the global spatial listener position in 2D (`z = 0`).
95
+ */
96
+ audio_set_listener_position(x: number, y: number): number;
97
+ /**
98
+ * Sets the global spatial listener position in 3D.
99
+ */
100
+ audio_set_listener_position_3d(x: number, y: number, z: number): number;
101
+ /**
102
+ * Sets a player's playback speed in `[0.1, 10.0]`.
103
+ */
104
+ audio_set_player_speed(player_id: number, speed: number): number;
105
+ /**
106
+ * Sets a player's base volume in `[0, 1]`.
107
+ */
108
+ audio_set_player_volume(player_id: number, volume: number): number;
109
+ /**
110
+ * Sets (or updates) a player source position in 2D (`z = 0`).
111
+ */
112
+ audio_set_source_position(player_id: number, x: number, y: number, max_distance: number, rolloff: number): number;
113
+ /**
114
+ * Sets (or updates) a player source position in 3D.
115
+ */
116
+ audio_set_source_position_3d(player_id: number, x: number, y: number, z: number, max_distance: number, rolloff: number): number;
117
+ /**
118
+ * Stops a player and releases its WebAudio resources.
119
+ */
120
+ audio_stop(player_id: number): number;
121
+ /**
122
+ * Stops all active players and releases their WebAudio resources.
123
+ */
124
+ audio_stop_all(): number;
125
+ /**
126
+ * Updates attenuation for a playing spatial source in 2D (`z = 0`).
127
+ */
128
+ audio_update_spatial_volume(player_id: number, source_x: number, source_y: number, listener_x: number, listener_y: number, max_distance: number, rolloff: number): number;
129
+ /**
130
+ * Updates attenuation for a playing spatial source in 3D.
131
+ */
132
+ audio_update_spatial_volume_3d(player_id: number, source_x: number, source_y: number, source_z: number, listener_x: number, listener_y: number, listener_z: number, max_distance: number, rolloff: number): number;
29
133
  /**
30
134
  * Advances frame timing and prepares the wgpu surface for drawing.
31
135
  *
32
136
  * Call this at the start of each `requestAnimationFrame` callback.
33
137
  */
34
138
  begin_frame(delta_time: number): void;
139
+ /**
140
+ * Capture the canvas as a base64-encoded PNG data URL.
141
+ * The actual canvas capture is done in JS via canvas.toDataURL().
142
+ */
143
+ captureCanvasBase64(): string;
144
+ /**
145
+ * Returns whether two circles overlap.
146
+ */
35
147
  circle_overlap(x1: number, y1: number, r1: number, x2: number, y2: number, r2: number): boolean;
148
+ /**
149
+ * Overlay handle selection is unsupported in browser networking mode.
150
+ */
151
+ clear_network_overlay_handle(): number;
152
+ /**
153
+ * Network simulation controls are unsupported in browser networking mode.
154
+ */
155
+ clear_network_simulation(_handle: number): number;
156
+ /**
157
+ * Tests axis-aligned box vs axis-aligned box overlap and returns contact data.
158
+ */
36
159
  collision_aabb_aabb(center_ax: number, center_ay: number, half_wa: number, half_ha: number, center_bx: number, center_by: number, half_wb: number, half_hb: number): WasmContact | undefined;
160
+ /**
161
+ * Tests circle vs axis-aligned box overlap and returns contact data.
162
+ */
37
163
  collision_circle_aabb(cx: number, cy: number, cr: number, bx: number, by: number, bhw: number, bhh: number): WasmContact | undefined;
164
+ /**
165
+ * Tests circle vs circle overlap and returns contact data.
166
+ */
38
167
  collision_circle_circle(center_ax: number, center_ay: number, radius_a: number, center_bx: number, center_by: number, radius_b: number): WasmContact | undefined;
39
168
  /**
40
169
  * Creates a game instance with wgpu rendering attached to a canvas.
41
170
  */
42
171
  static createWithCanvas(canvas: HTMLCanvasElement, width: number, height: number, title: string): Promise<WasmGame>;
172
+ /**
173
+ * Despawns an entity by packed entity bits.
174
+ */
43
175
  despawn(entity_bits: bigint): boolean;
44
176
  /**
45
177
  * Despawns multiple entities at once. Returns the number of entities
46
178
  * successfully despawned.
47
179
  */
48
180
  despawn_batch(entity_bits: BigUint64Array): number;
181
+ /**
182
+ * Destroys a loaded font and any backing atlas textures.
183
+ */
184
+ destroy_font(handle: number): boolean;
185
+ /**
186
+ * Releases a previously registered texture handle.
187
+ *
188
+ * Handle `0` is reserved and ignored.
189
+ */
49
190
  destroy_texture(handle: number): void;
191
+ /**
192
+ * Dispatch a JSON debugger request and return the JSON response.
193
+ * Used by the WebSocket relay to forward IPC verbs.
194
+ */
195
+ dispatchDebuggerRequest(json: string): string;
196
+ /**
197
+ * Returns Euclidean distance between two points.
198
+ */
50
199
  distance(x1: number, y1: number, x2: number, y2: number): number;
200
+ /**
201
+ * Returns squared Euclidean distance between two points.
202
+ */
51
203
  distance_squared(x1: number, y1: number, x2: number, y2: number): number;
204
+ /**
205
+ * Draws a solid-color quad using the renderer fallback texture.
206
+ */
52
207
  draw_quad(x: number, y: number, w: number, h: number, r: number, g: number, b: number, a: number): void;
208
+ /**
209
+ * Draws a textured sprite in world or screen space.
210
+ *
211
+ * `texture` is a 1-based handle returned by `register_texture_from_bytes`.
212
+ */
53
213
  draw_sprite(texture: number, x: number, y: number, w: number, h: number, rotation: number, r: number, g: number, b: number, a: number): void;
214
+ /**
215
+ * Draws a textured sprite using a source rectangle in texture UV space.
216
+ *
217
+ * Returns `true` when the draw command is queued.
218
+ */
54
219
  draw_sprite_rect(texture: number, x: number, y: number, w: number, h: number, rotation: number, src_x: number, src_y: number, src_w: number, src_h: number, r: number, g: number, b: number, a: number): boolean;
220
+ /**
221
+ * Draws shaped text with alignment, wrapping, spacing, direction, and tint.
222
+ *
223
+ * `alignment`: 0 = Left, 1 = Center, 2 = Right
224
+ * `direction`: 0 = Auto, 1 = LTR, 2 = RTL
225
+ */
226
+ draw_text(font_handle: number, text: string, x: number, y: number, font_size: number, alignment: number, max_width: number, line_spacing: number, direction: number, r: number, g: number, b: number, a: number): boolean;
55
227
  /**
56
228
  * Flushes queued draw calls and presents the frame to the canvas.
57
229
  *
58
230
  * Call this at the end of each `requestAnimationFrame` callback.
59
231
  */
60
232
  end_frame(): void;
233
+ /**
234
+ * Returns the number of currently alive entities.
235
+ */
61
236
  entity_count(): number;
237
+ /**
238
+ * Get the debugger snapshot as JSON.
239
+ */
240
+ getDebuggerSnapshotJson(): string;
241
+ /**
242
+ * Gets the entity's `Name`.
243
+ */
62
244
  get_name(entity_bits: bigint): string | undefined;
245
+ /**
246
+ * Returns network capabilities for browser/WebSocket mode.
247
+ */
248
+ get_network_capabilities(): WasmNetworkCapabilities;
249
+ /**
250
+ * Returns aggregate stats for a specific network handle.
251
+ */
252
+ get_network_stats(handle: number): WasmNetworkStats;
63
253
  /**
64
254
  * Returns render statistics for the current frame, or `None` if
65
255
  * rendering is not active.
66
256
  */
67
257
  get_render_stats(): WasmRenderStats | undefined;
258
+ /**
259
+ * Gets the entity's `Sprite` as a wasm-safe DTO.
260
+ */
68
261
  get_sprite(entity_bits: bigint): WasmSprite | undefined;
262
+ /**
263
+ * Gets the entity's `Transform2D` as a wasm-safe DTO.
264
+ */
69
265
  get_transform2d(entity_bits: bigint): WasmTransform2D | undefined;
266
+ /**
267
+ * Returns whether the entity has a `Name` component.
268
+ */
70
269
  has_name(entity_bits: bigint): boolean;
71
270
  /**
72
271
  * Returns `true` when wgpu rendering is active (canvas was provided at
73
272
  * construction time).
74
273
  */
75
274
  has_renderer(): boolean;
275
+ /**
276
+ * Returns whether the entity has a `Sprite` component.
277
+ */
76
278
  has_sprite(entity_bits: bigint): boolean;
279
+ /**
280
+ * Returns whether the entity has a `Transform2D` component.
281
+ */
77
282
  has_transform2d(entity_bits: bigint): boolean;
283
+ /**
284
+ * Initialize the debugger route for this game instance.
285
+ * Call this once after construction to enable debugger support.
286
+ */
287
+ initDebugger(route_label: string): void;
78
288
  /**
79
289
  * Returns `true` if any key mapped to the given action was just pressed
80
290
  * this frame (not held from previous frame).
@@ -89,28 +299,109 @@ export class WasmGame {
89
299
  * Returns `true` if any key mapped to the given action is currently held.
90
300
  */
91
301
  is_action_pressed(action: string): boolean;
302
+ /**
303
+ * Returns whether the entity bits identify a live entity.
304
+ */
92
305
  is_alive(entity_bits: bigint): boolean;
306
+ /**
307
+ * Returns whether a key transitioned to pressed in this frame.
308
+ */
93
309
  is_key_just_pressed(key_code: number): boolean;
310
+ /**
311
+ * Returns whether a key transitioned to released in this frame.
312
+ */
94
313
  is_key_just_released(key_code: number): boolean;
314
+ /**
315
+ * Returns whether a key is currently held down.
316
+ */
95
317
  is_key_pressed(key_code: number): boolean;
318
+ /**
319
+ * Returns whether a mouse button transitioned to pressed in this frame.
320
+ */
96
321
  is_mouse_button_just_pressed(button: number): boolean;
322
+ /**
323
+ * Returns whether a mouse button transitioned to released in this frame.
324
+ */
97
325
  is_mouse_button_just_released(button: number): boolean;
326
+ /**
327
+ * Returns whether a mouse button is currently held down.
328
+ */
98
329
  is_mouse_button_pressed(button: number): boolean;
99
330
  /**
100
331
  * Maps an action name to a key code. Multiple keys can be mapped
101
332
  * to the same action. Returns `true` on success.
102
333
  */
103
334
  map_action_key(action: string, key: number): boolean;
335
+ /**
336
+ * Returns the current mouse X position.
337
+ */
104
338
  mouse_x(): number;
339
+ /**
340
+ * Returns the current mouse Y position.
341
+ */
105
342
  mouse_y(): number;
343
+ /**
344
+ * Convenience connect returning the connection handle only.
345
+ */
346
+ network_connect(protocol: number, address: string, port: number): number;
347
+ /**
348
+ * Connects to a remote WebSocket endpoint and returns a connection handle.
349
+ */
350
+ network_connect_with_peer(protocol: number, address: string, port: number): WasmNetworkConnectResult;
351
+ /**
352
+ * Disconnects and removes a network connection.
353
+ */
354
+ network_disconnect(handle: number): number;
355
+ /**
356
+ * Browser-hosting is not supported for WASM networking.
357
+ */
358
+ network_host(_protocol: number, _port: number): number;
359
+ /**
360
+ * Returns active peer count for the connection.
361
+ */
362
+ network_peer_count(handle: number): number;
363
+ /**
364
+ * Poll is a no-op for browser sockets (event-driven), but validates the handle.
365
+ */
366
+ network_poll(handle: number): number;
367
+ /**
368
+ * Legacy receive path returning payload bytes only.
369
+ */
370
+ network_receive(handle: number): Uint8Array;
371
+ /**
372
+ * Receives the next queued packet with peer metadata.
373
+ */
374
+ network_receive_packet(handle: number): WasmNetworkPacket | undefined;
375
+ /**
376
+ * Sends a binary packet on an existing connection.
377
+ */
378
+ network_send(handle: number, _peer_id: bigint, data: Uint8Array, _channel: number): number;
106
379
  /**
107
380
  * Creates a new game instance without rendering (ECS-only mode).
108
381
  */
109
382
  constructor(width: number, height: number, title: string);
383
+ /**
384
+ * Returns whether point `(px, py)` is inside the circle.
385
+ */
110
386
  point_in_circle(px: number, py: number, cx: number, cy: number, r: number): boolean;
387
+ /**
388
+ * Returns whether point `(px, py)` is inside the rectangle.
389
+ */
111
390
  point_in_rect(px: number, py: number, rx: number, ry: number, rw: number, rh: number): boolean;
391
+ /**
392
+ * Marks a key as pressed for the current frame.
393
+ */
112
394
  press_key(key_code: number): void;
395
+ /**
396
+ * Marks a mouse button as pressed for the current frame.
397
+ */
113
398
  press_mouse_button(button: number): void;
399
+ /**
400
+ * Registers a font from raw bytes.
401
+ *
402
+ * Returns a 1-based handle suitable for `draw_text`.
403
+ */
404
+ register_font_from_bytes(data: Uint8Array): number;
114
405
  /**
115
406
  * Registers a texture from raw image bytes (PNG, JPG, etc.).
116
407
  *
@@ -120,12 +411,33 @@ export class WasmGame {
120
411
  * fallback texture used by `draw_quad`).
121
412
  */
122
413
  register_texture_from_bytes(data: Uint8Array): number;
414
+ /**
415
+ * Marks a key as released for the current frame.
416
+ */
123
417
  release_key(key_code: number): void;
418
+ /**
419
+ * Marks a mouse button as released for the current frame.
420
+ */
124
421
  release_mouse_button(button: number): void;
422
+ /**
423
+ * Removes `Name` from the entity.
424
+ */
125
425
  remove_name(entity_bits: bigint): boolean;
426
+ /**
427
+ * Removes `Sprite` from the entity.
428
+ */
126
429
  remove_sprite(entity_bits: bigint): boolean;
430
+ /**
431
+ * Removes `Transform2D` from the entity.
432
+ */
127
433
  remove_transform2d(entity_bits: bigint): boolean;
434
+ /**
435
+ * Returns accumulated horizontal scroll delta.
436
+ */
128
437
  scroll_dx(): number;
438
+ /**
439
+ * Returns accumulated vertical scroll delta.
440
+ */
129
441
  scroll_dy(): number;
130
442
  /**
131
443
  * Reconfigures the wgpu surface after a canvas resize.
@@ -137,10 +449,33 @@ export class WasmGame {
137
449
  * Takes effect on the next `begin_frame` / `end_frame` pair.
138
450
  */
139
451
  set_clear_color(r: number, g: number, b: number, a: number): void;
452
+ /**
453
+ * Updates the current mouse position in logical coordinates.
454
+ */
140
455
  set_mouse_position(x: number, y: number): void;
456
+ /**
457
+ * Overlay handle selection is unsupported in browser networking mode.
458
+ */
459
+ set_network_overlay_handle(_handle: number): number;
460
+ /**
461
+ * Network simulation controls are unsupported in browser networking mode.
462
+ */
463
+ set_network_simulation(_handle: number, _one_way_latency_ms: number, _jitter_ms: number, _packet_loss_percent: number): number;
464
+ /**
465
+ * Updates an existing `Sprite` if present.
466
+ */
141
467
  set_sprite(entity_bits: bigint, texture_handle: number, r: number, g: number, b: number, a: number, flip_x: boolean, flip_y: boolean, anchor_x: number, anchor_y: number): void;
468
+ /**
469
+ * Updates an existing `Transform2D` if present.
470
+ */
142
471
  set_transform2d(entity_bits: bigint, px: number, py: number, rotation: number, sx: number, sy: number): void;
472
+ /**
473
+ * Spawns `count` empty entities and returns their packed entity bits.
474
+ */
143
475
  spawn_batch(count: number): BigUint64Array;
476
+ /**
477
+ * Spawns a single empty entity and returns its packed entity bits.
478
+ */
144
479
  spawn_empty(): bigint;
145
480
  /**
146
481
  * Seconds elapsed since the previous frame.
@@ -172,6 +507,48 @@ export class WasmGame {
172
507
  readonly window_width: number;
173
508
  }
174
509
 
510
+ export class WasmNetworkCapabilities {
511
+ private constructor();
512
+ free(): void;
513
+ [Symbol.dispose](): void;
514
+ max_channels: number;
515
+ max_connections: number;
516
+ max_message_size: number;
517
+ supports_hosting: boolean;
518
+ }
519
+
520
+ export class WasmNetworkConnectResult {
521
+ private constructor();
522
+ free(): void;
523
+ [Symbol.dispose](): void;
524
+ handle: number;
525
+ peer_id: bigint;
526
+ }
527
+
528
+ export class WasmNetworkPacket {
529
+ private constructor();
530
+ free(): void;
531
+ [Symbol.dispose](): void;
532
+ readonly data: Uint8Array;
533
+ readonly peer_id: bigint;
534
+ }
535
+
536
+ export class WasmNetworkStats {
537
+ private constructor();
538
+ free(): void;
539
+ [Symbol.dispose](): void;
540
+ bytes_received: bigint;
541
+ bytes_sent: bigint;
542
+ jitter_ms: number;
543
+ packet_loss_percent: number;
544
+ packets_lost: bigint;
545
+ packets_received: bigint;
546
+ packets_sent: bigint;
547
+ receive_bandwidth_bytes_per_sec: number;
548
+ rtt_ms: number;
549
+ send_bandwidth_bytes_per_sec: number;
550
+ }
551
+
175
552
  /**
176
553
  * Per-frame rendering statistics exposed to JavaScript.
177
554
  */
@@ -179,8 +556,17 @@ export class WasmRenderStats {
179
556
  private constructor();
180
557
  free(): void;
181
558
  [Symbol.dispose](): void;
559
+ /**
560
+ * Number of draw calls submitted this frame.
561
+ */
182
562
  draw_calls: number;
563
+ /**
564
+ * Number of texture bind switches this frame.
565
+ */
183
566
  texture_binds: number;
567
+ /**
568
+ * Number of triangles submitted this frame.
569
+ */
184
570
  triangles: number;
185
571
  }
186
572
 
@@ -192,14 +578,41 @@ export class WasmSprite {
192
578
  private constructor();
193
579
  free(): void;
194
580
  [Symbol.dispose](): void;
581
+ /**
582
+ * Alpha channel tint.
583
+ */
195
584
  a: number;
585
+ /**
586
+ * X anchor in normalized sprite space.
587
+ */
196
588
  anchor_x: number;
589
+ /**
590
+ * Y anchor in normalized sprite space.
591
+ */
197
592
  anchor_y: number;
593
+ /**
594
+ * Blue channel tint.
595
+ */
198
596
  b: number;
597
+ /**
598
+ * Horizontal texture flip flag.
599
+ */
199
600
  flip_x: boolean;
601
+ /**
602
+ * Vertical texture flip flag.
603
+ */
200
604
  flip_y: boolean;
605
+ /**
606
+ * Green channel tint.
607
+ */
201
608
  g: number;
609
+ /**
610
+ * Red channel tint.
611
+ */
202
612
  r: number;
613
+ /**
614
+ * Texture handle backing this sprite.
615
+ */
203
616
  texture_handle: number;
204
617
  }
205
618
 
@@ -211,26 +624,269 @@ export class WasmTransform2D {
211
624
  private constructor();
212
625
  free(): void;
213
626
  [Symbol.dispose](): void;
627
+ /**
628
+ * X position.
629
+ */
214
630
  position_x: number;
631
+ /**
632
+ * Y position.
633
+ */
215
634
  position_y: number;
635
+ /**
636
+ * Rotation in radians.
637
+ */
216
638
  rotation: number;
639
+ /**
640
+ * X scale.
641
+ */
217
642
  scale_x: number;
643
+ /**
644
+ * Y scale.
645
+ */
218
646
  scale_y: number;
219
647
  }
220
648
 
649
+ /**
650
+ * Serializable UI event record exposed to JavaScript.
651
+ */
652
+ export class WasmUiEvent {
653
+ private constructor();
654
+ free(): void;
655
+ [Symbol.dispose](): void;
656
+ /**
657
+ * Packed current focus/hover node or `u64::MAX`.
658
+ */
659
+ current_node_id: bigint;
660
+ /**
661
+ * Numeric UI event kind.
662
+ */
663
+ event_kind: number;
664
+ /**
665
+ * Packed `UiNodeId` for the source node.
666
+ */
667
+ node_id: bigint;
668
+ /**
669
+ * Packed previous focus/hover node or `u64::MAX`.
670
+ */
671
+ previous_node_id: bigint;
672
+ }
673
+
674
+ /**
675
+ * Standalone UI manager exported for browser/WASM SDK consumers.
676
+ *
677
+ * This mirrors the native `UiManager` lifecycle and widget/style/event APIs
678
+ * while preserving Rust-side ownership of layout and event processing.
679
+ */
680
+ export class WasmUiManager {
681
+ free(): void;
682
+ [Symbol.dispose](): void;
683
+ /**
684
+ * Creates a UI node with the given component type code.
685
+ */
686
+ create_node(component_type: number): bigint;
687
+ /**
688
+ * Returns the count of events captured during the latest `update`.
689
+ */
690
+ event_count(): number;
691
+ /**
692
+ * Reads one captured event by index.
693
+ */
694
+ event_read(index: number): WasmUiEvent | undefined;
695
+ /**
696
+ * Returns the child at an index, or `u64::MAX` if out of bounds.
697
+ */
698
+ get_child_at(node_id: bigint, index: number): bigint;
699
+ /**
700
+ * Returns the number of children for the given node.
701
+ */
702
+ get_child_count(node_id: bigint): number;
703
+ /**
704
+ * Returns a node's parent, or `u64::MAX` if missing/root.
705
+ */
706
+ get_parent(node_id: bigint): bigint;
707
+ /**
708
+ * Creates a standalone UI manager for web/WASM consumers.
709
+ */
710
+ constructor();
711
+ /**
712
+ * Returns the number of live UI nodes.
713
+ */
714
+ node_count(): number;
715
+ /**
716
+ * Removes a UI node and its subtree.
717
+ */
718
+ remove_node(node_id: bigint): number;
719
+ /**
720
+ * Builds render commands for the current UI tree.
721
+ */
722
+ render(): void;
723
+ /**
724
+ * Sets/creates a button widget and updates its enabled flag.
725
+ */
726
+ set_button_enabled(node_id: bigint, enabled: boolean): number;
727
+ /**
728
+ * Sets/creates an image widget and updates its texture path.
729
+ */
730
+ set_image_texture_path(node_id: bigint, path: string): number;
731
+ /**
732
+ * Sets/creates a label widget and updates its text.
733
+ */
734
+ set_label_text(node_id: bigint, text: string): number;
735
+ /**
736
+ * Sets or clears a node's parent (`u64::MAX` detaches to root).
737
+ */
738
+ set_parent(child_id: bigint, parent_id: bigint): number;
739
+ /**
740
+ * Sets/creates a slider widget and updates range/value/enabled state.
741
+ */
742
+ set_slider(node_id: bigint, min: number, max: number, value: number, enabled: boolean): number;
743
+ /**
744
+ * Applies per-node visual style overrides.
745
+ */
746
+ set_style(node_id: bigint, background_r?: number | null, background_g?: number | null, background_b?: number | null, background_a?: number | null, foreground_r?: number | null, foreground_g?: number | null, foreground_b?: number | null, foreground_a?: number | null, border_r?: number | null, border_g?: number | null, border_b?: number | null, border_a?: number | null, border_width?: number | null, font_family?: string | null, font_size?: number | null, texture_path?: string | null, widget_spacing?: number | null): number;
747
+ /**
748
+ * Sets or clears the node widget component by widget-kind code.
749
+ */
750
+ set_widget(node_id: bigint, widget_kind: number): number;
751
+ /**
752
+ * Runs a layout/input update tick and snapshots the emitted UI events.
753
+ */
754
+ update(): void;
755
+ }
756
+
221
757
  export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
222
758
 
223
759
  export interface InitOutput {
224
760
  readonly memory: WebAssembly.Memory;
225
- readonly wasmgame_add_scroll_delta: (a: number, b: number, c: number) => void;
761
+ readonly __wbg_wasmgame_free: (a: number, b: number) => void;
762
+ readonly wasmgame_begin_frame: (a: number, b: number) => void;
763
+ readonly wasmgame_captureCanvasBase64: (a: number) => [number, number, number, number];
764
+ readonly wasmgame_delta_time: (a: number) => number;
765
+ readonly wasmgame_dispatchDebuggerRequest: (a: number, b: number, c: number) => [number, number];
766
+ readonly wasmgame_end_frame: (a: number) => void;
767
+ readonly wasmgame_fps: (a: number) => number;
768
+ readonly wasmgame_frame_count: (a: number) => bigint;
769
+ readonly wasmgame_getDebuggerSnapshotJson: (a: number) => [number, number];
770
+ readonly wasmgame_has_renderer: (a: number) => number;
771
+ readonly wasmgame_initDebugger: (a: number, b: number, c: number) => void;
772
+ readonly wasmgame_new: (a: number, b: number, c: number, d: number) => number;
773
+ readonly wasmgame_set_canvas_size: (a: number, b: number, c: number) => void;
774
+ readonly wasmgame_set_clear_color: (a: number, b: number, c: number, d: number, e: number) => void;
775
+ readonly wasmgame_title: (a: number) => [number, number];
776
+ readonly wasmgame_total_time: (a: number) => number;
777
+ readonly wasmgame_window_height: (a: number) => number;
778
+ readonly wasmgame_window_width: (a: number) => number;
779
+ readonly __wbg_get_wasmcontact_normal_x: (a: number) => number;
780
+ readonly __wbg_get_wasmcontact_normal_y: (a: number) => number;
781
+ readonly __wbg_get_wasmcontact_penetration: (a: number) => number;
782
+ readonly __wbg_get_wasmcontact_point_x: (a: number) => number;
783
+ readonly __wbg_get_wasmcontact_point_y: (a: number) => number;
784
+ readonly __wbg_get_wasmnetworkcapabilities_max_channels: (a: number) => number;
785
+ readonly __wbg_get_wasmnetworkcapabilities_max_connections: (a: number) => number;
786
+ readonly __wbg_get_wasmnetworkcapabilities_max_message_size: (a: number) => number;
787
+ readonly __wbg_get_wasmnetworkcapabilities_supports_hosting: (a: number) => number;
788
+ readonly __wbg_get_wasmnetworkconnectresult_handle: (a: number) => number;
789
+ readonly __wbg_get_wasmnetworkconnectresult_peer_id: (a: number) => bigint;
790
+ readonly __wbg_get_wasmnetworkstats_bytes_received: (a: number) => bigint;
791
+ readonly __wbg_get_wasmnetworkstats_jitter_ms: (a: number) => number;
792
+ readonly __wbg_get_wasmnetworkstats_packet_loss_percent: (a: number) => number;
793
+ readonly __wbg_get_wasmnetworkstats_packets_lost: (a: number) => bigint;
794
+ readonly __wbg_get_wasmnetworkstats_packets_received: (a: number) => bigint;
795
+ readonly __wbg_get_wasmnetworkstats_packets_sent: (a: number) => bigint;
796
+ readonly __wbg_get_wasmnetworkstats_receive_bandwidth_bytes_per_sec: (a: number) => number;
797
+ readonly __wbg_get_wasmnetworkstats_rtt_ms: (a: number) => number;
798
+ readonly __wbg_get_wasmnetworkstats_send_bandwidth_bytes_per_sec: (a: number) => number;
799
+ readonly __wbg_set_wasmcontact_normal_x: (a: number, b: number) => void;
800
+ readonly __wbg_set_wasmcontact_normal_y: (a: number, b: number) => void;
801
+ readonly __wbg_set_wasmcontact_penetration: (a: number, b: number) => void;
802
+ readonly __wbg_set_wasmcontact_point_x: (a: number, b: number) => void;
803
+ readonly __wbg_set_wasmcontact_point_y: (a: number, b: number) => void;
804
+ readonly __wbg_set_wasmnetworkcapabilities_max_channels: (a: number, b: number) => void;
805
+ readonly __wbg_set_wasmnetworkcapabilities_max_connections: (a: number, b: number) => void;
806
+ readonly __wbg_set_wasmnetworkcapabilities_max_message_size: (a: number, b: number) => void;
807
+ readonly __wbg_set_wasmnetworkcapabilities_supports_hosting: (a: number, b: number) => void;
808
+ readonly __wbg_set_wasmnetworkconnectresult_handle: (a: number, b: number) => void;
809
+ readonly __wbg_set_wasmnetworkconnectresult_peer_id: (a: number, b: bigint) => void;
810
+ readonly __wbg_set_wasmnetworkstats_bytes_received: (a: number, b: bigint) => void;
811
+ readonly __wbg_set_wasmnetworkstats_jitter_ms: (a: number, b: number) => void;
812
+ readonly __wbg_set_wasmnetworkstats_packet_loss_percent: (a: number, b: number) => void;
813
+ readonly __wbg_set_wasmnetworkstats_packets_lost: (a: number, b: bigint) => void;
814
+ readonly __wbg_set_wasmnetworkstats_packets_received: (a: number, b: bigint) => void;
815
+ readonly __wbg_set_wasmnetworkstats_packets_sent: (a: number, b: bigint) => void;
816
+ readonly __wbg_set_wasmnetworkstats_receive_bandwidth_bytes_per_sec: (a: number, b: number) => void;
817
+ readonly __wbg_set_wasmnetworkstats_rtt_ms: (a: number, b: number) => void;
818
+ readonly __wbg_set_wasmnetworkstats_send_bandwidth_bytes_per_sec: (a: number, b: number) => void;
819
+ readonly __wbg_wasmcontact_free: (a: number, b: number) => void;
820
+ readonly __wbg_wasmnetworkcapabilities_free: (a: number, b: number) => void;
821
+ readonly __wbg_wasmnetworkconnectresult_free: (a: number, b: number) => void;
822
+ readonly __wbg_wasmnetworkpacket_free: (a: number, b: number) => void;
823
+ readonly __wbg_wasmnetworkstats_free: (a: number, b: number) => void;
824
+ readonly wasmgame_aabb_overlap: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => number;
825
+ readonly wasmgame_audio_activate: (a: number) => number;
826
+ readonly wasmgame_audio_play: (a: number, b: number, c: number) => number;
827
+ readonly wasmgame_audio_play_spatial: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => number;
828
+ readonly wasmgame_audio_play_spatial_3d: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => number;
829
+ readonly wasmgame_circle_overlap: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => number;
830
+ readonly wasmgame_clear_network_overlay_handle: (a: number) => number;
831
+ readonly wasmgame_clear_network_simulation: (a: number, b: number) => number;
832
+ readonly wasmgame_collision_aabb_aabb: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => number;
833
+ readonly wasmgame_collision_circle_aabb: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
834
+ readonly wasmgame_collision_circle_circle: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => number;
835
+ readonly wasmgame_destroy_font: (a: number, b: number) => number;
226
836
  readonly wasmgame_destroy_texture: (a: number, b: number) => void;
837
+ readonly wasmgame_distance: (a: number, b: number, c: number, d: number, e: number) => number;
838
+ readonly wasmgame_distance_squared: (a: number, b: number, c: number, d: number, e: number) => number;
227
839
  readonly wasmgame_draw_quad: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => void;
228
840
  readonly wasmgame_draw_sprite: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => void;
229
841
  readonly wasmgame_draw_sprite_rect: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number) => number;
842
+ readonly wasmgame_draw_text: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number) => number;
843
+ readonly wasmgame_get_network_capabilities: (a: number) => number;
844
+ readonly wasmgame_get_network_stats: (a: number, b: number) => number;
230
845
  readonly wasmgame_get_render_stats: (a: number) => number;
846
+ readonly wasmgame_network_connect: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
847
+ readonly wasmgame_network_connect_with_peer: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
848
+ readonly wasmgame_network_disconnect: (a: number, b: number) => number;
849
+ readonly wasmgame_network_host: (a: number, b: number, c: number) => number;
850
+ readonly wasmgame_network_peer_count: (a: number, b: number) => number;
851
+ readonly wasmgame_network_poll: (a: number, b: number) => number;
852
+ readonly wasmgame_network_receive: (a: number, b: number) => [number, number];
853
+ readonly wasmgame_network_receive_packet: (a: number, b: number) => number;
854
+ readonly wasmgame_network_send: (a: number, b: number, c: bigint, d: number, e: number, f: number) => number;
855
+ readonly wasmgame_point_in_circle: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
856
+ readonly wasmgame_point_in_rect: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => number;
857
+ readonly wasmgame_register_font_from_bytes: (a: number, b: number, c: number) => [number, number, number];
858
+ readonly wasmgame_register_texture_from_bytes: (a: number, b: number, c: number) => [number, number, number];
859
+ readonly wasmgame_set_network_simulation: (a: number, b: number, c: number, d: number, e: number) => number;
860
+ readonly wasmnetworkpacket_data: (a: number) => [number, number];
861
+ readonly wasmnetworkpacket_peer_id: (a: number) => bigint;
862
+ readonly __wbg_set_wasmnetworkstats_bytes_sent: (a: number, b: bigint) => void;
863
+ readonly wasmgame_set_network_overlay_handle: (a: number, b: number) => number;
864
+ readonly __wbg_get_wasmnetworkstats_bytes_sent: (a: number) => bigint;
865
+ readonly wasmgame_add_name: (a: number, b: bigint, c: number, d: number) => void;
866
+ readonly wasmgame_add_scroll_delta: (a: number, b: number, c: number) => void;
867
+ readonly wasmgame_add_sprite: (a: number, b: bigint, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => void;
868
+ readonly wasmgame_add_transform2d: (a: number, b: bigint, c: number, d: number, e: number, f: number, g: number) => void;
869
+ readonly wasmgame_audio_set_listener_position: (a: number, b: number, c: number) => number;
870
+ readonly wasmgame_audio_set_listener_position_3d: (a: number, b: number, c: number, d: number) => number;
871
+ readonly wasmgame_audio_set_player_speed: (a: number, b: number, c: number) => number;
872
+ readonly wasmgame_audio_set_player_volume: (a: number, b: number, c: number) => number;
873
+ readonly wasmgame_audio_set_source_position: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
874
+ readonly wasmgame_audio_set_source_position_3d: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => number;
875
+ readonly wasmgame_audio_update_spatial_volume: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
876
+ readonly wasmgame_audio_update_spatial_volume_3d: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => number;
877
+ readonly wasmgame_despawn: (a: number, b: bigint) => number;
878
+ readonly wasmgame_despawn_batch: (a: number, b: number, c: number) => number;
879
+ readonly wasmgame_entity_count: (a: number) => number;
880
+ readonly wasmgame_get_name: (a: number, b: bigint) => [number, number];
881
+ readonly wasmgame_get_sprite: (a: number, b: bigint) => number;
882
+ readonly wasmgame_get_transform2d: (a: number, b: bigint) => number;
883
+ readonly wasmgame_has_name: (a: number, b: bigint) => number;
884
+ readonly wasmgame_has_sprite: (a: number, b: bigint) => number;
885
+ readonly wasmgame_has_transform2d: (a: number, b: bigint) => number;
231
886
  readonly wasmgame_is_action_just_pressed: (a: number, b: number, c: number) => number;
232
887
  readonly wasmgame_is_action_just_released: (a: number, b: number, c: number) => number;
233
888
  readonly wasmgame_is_action_pressed: (a: number, b: number, c: number) => number;
889
+ readonly wasmgame_is_alive: (a: number, b: bigint) => number;
234
890
  readonly wasmgame_is_key_just_pressed: (a: number, b: number) => number;
235
891
  readonly wasmgame_is_key_just_released: (a: number, b: number) => number;
236
892
  readonly wasmgame_is_key_pressed: (a: number, b: number) => number;
@@ -242,116 +898,106 @@ export interface InitOutput {
242
898
  readonly wasmgame_mouse_y: (a: number) => number;
243
899
  readonly wasmgame_press_key: (a: number, b: number) => void;
244
900
  readonly wasmgame_press_mouse_button: (a: number, b: number) => void;
245
- readonly wasmgame_register_texture_from_bytes: (a: number, b: number, c: number) => [number, number, number];
246
901
  readonly wasmgame_release_key: (a: number, b: number) => void;
247
902
  readonly wasmgame_release_mouse_button: (a: number, b: number) => void;
248
- readonly wasmgame_scroll_dx: (a: number) => number;
249
- readonly wasmgame_scroll_dy: (a: number) => number;
250
- readonly wasmgame_set_mouse_position: (a: number, b: number, c: number) => void;
251
- readonly wasmgame_add_name: (a: number, b: bigint, c: number, d: number) => void;
252
- readonly wasmgame_add_sprite: (a: number, b: bigint, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => void;
253
- readonly wasmgame_add_transform2d: (a: number, b: bigint, c: number, d: number, e: number, f: number, g: number) => void;
254
- readonly wasmgame_despawn: (a: number, b: bigint) => number;
255
- readonly wasmgame_despawn_batch: (a: number, b: number, c: number) => number;
256
- readonly wasmgame_entity_count: (a: number) => number;
257
- readonly wasmgame_get_name: (a: number, b: bigint) => [number, number];
258
- readonly wasmgame_get_sprite: (a: number, b: bigint) => number;
259
- readonly wasmgame_get_transform2d: (a: number, b: bigint) => number;
260
- readonly wasmgame_has_name: (a: number, b: bigint) => number;
261
- readonly wasmgame_has_sprite: (a: number, b: bigint) => number;
262
- readonly wasmgame_has_transform2d: (a: number, b: bigint) => number;
263
- readonly wasmgame_is_alive: (a: number, b: bigint) => number;
264
903
  readonly wasmgame_remove_name: (a: number, b: bigint) => number;
265
904
  readonly wasmgame_remove_sprite: (a: number, b: bigint) => number;
266
905
  readonly wasmgame_remove_transform2d: (a: number, b: bigint) => number;
906
+ readonly wasmgame_scroll_dx: (a: number) => number;
907
+ readonly wasmgame_scroll_dy: (a: number) => number;
908
+ readonly wasmgame_set_mouse_position: (a: number, b: number, c: number) => void;
267
909
  readonly wasmgame_set_sprite: (a: number, b: bigint, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => void;
268
910
  readonly wasmgame_set_transform2d: (a: number, b: bigint, c: number, d: number, e: number, f: number, g: number) => void;
269
911
  readonly wasmgame_spawn_batch: (a: number, b: number) => [number, number];
270
912
  readonly wasmgame_spawn_empty: (a: number) => bigint;
271
- readonly __wbg_get_wasmcontact_normal_x: (a: number) => number;
272
- readonly __wbg_get_wasmcontact_normal_y: (a: number) => number;
273
- readonly __wbg_get_wasmcontact_penetration: (a: number) => number;
274
- readonly __wbg_get_wasmcontact_point_x: (a: number) => number;
275
- readonly __wbg_get_wasmcontact_point_y: (a: number) => number;
913
+ readonly wasmgame_createWithCanvas: (a: any, b: number, c: number, d: number, e: number) => any;
276
914
  readonly __wbg_get_wasmrenderstats_draw_calls: (a: number) => number;
277
915
  readonly __wbg_get_wasmrenderstats_texture_binds: (a: number) => number;
278
916
  readonly __wbg_get_wasmrenderstats_triangles: (a: number) => number;
917
+ readonly __wbg_get_wasmsprite_a: (a: number) => number;
279
918
  readonly __wbg_get_wasmsprite_anchor_x: (a: number) => number;
280
919
  readonly __wbg_get_wasmsprite_anchor_y: (a: number) => number;
920
+ readonly __wbg_get_wasmsprite_b: (a: number) => number;
281
921
  readonly __wbg_get_wasmsprite_flip_x: (a: number) => number;
282
922
  readonly __wbg_get_wasmsprite_flip_y: (a: number) => number;
283
- readonly __wbg_set_wasmcontact_normal_x: (a: number, b: number) => void;
284
- readonly __wbg_set_wasmcontact_normal_y: (a: number, b: number) => void;
285
- readonly __wbg_set_wasmcontact_penetration: (a: number, b: number) => void;
286
- readonly __wbg_set_wasmcontact_point_x: (a: number, b: number) => void;
287
- readonly __wbg_set_wasmcontact_point_y: (a: number, b: number) => void;
923
+ readonly __wbg_get_wasmsprite_g: (a: number) => number;
924
+ readonly __wbg_get_wasmsprite_r: (a: number) => number;
925
+ readonly __wbg_get_wasmtransform2d_position_x: (a: number) => number;
926
+ readonly __wbg_get_wasmuievent_current_node_id: (a: number) => bigint;
927
+ readonly __wbg_get_wasmuievent_event_kind: (a: number) => number;
928
+ readonly __wbg_get_wasmuievent_node_id: (a: number) => bigint;
929
+ readonly __wbg_get_wasmuievent_previous_node_id: (a: number) => bigint;
288
930
  readonly __wbg_set_wasmrenderstats_draw_calls: (a: number, b: number) => void;
289
931
  readonly __wbg_set_wasmrenderstats_texture_binds: (a: number, b: number) => void;
290
932
  readonly __wbg_set_wasmrenderstats_triangles: (a: number, b: number) => void;
933
+ readonly __wbg_set_wasmsprite_a: (a: number, b: number) => void;
291
934
  readonly __wbg_set_wasmsprite_anchor_x: (a: number, b: number) => void;
292
935
  readonly __wbg_set_wasmsprite_anchor_y: (a: number, b: number) => void;
936
+ readonly __wbg_set_wasmsprite_b: (a: number, b: number) => void;
293
937
  readonly __wbg_set_wasmsprite_flip_x: (a: number, b: number) => void;
294
938
  readonly __wbg_set_wasmsprite_flip_y: (a: number, b: number) => void;
295
- readonly __wbg_wasmcontact_free: (a: number, b: number) => void;
296
- readonly __wbg_wasmgame_free: (a: number, b: number) => void;
297
- readonly __wbg_wasmrenderstats_free: (a: number, b: number) => void;
298
- readonly __wbg_wasmsprite_free: (a: number, b: number) => void;
299
- readonly wasmgame_aabb_overlap: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => number;
300
- readonly wasmgame_begin_frame: (a: number, b: number) => void;
301
- readonly wasmgame_circle_overlap: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => number;
302
- readonly wasmgame_collision_aabb_aabb: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => number;
303
- readonly wasmgame_collision_circle_aabb: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
304
- readonly wasmgame_collision_circle_circle: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => number;
305
- readonly wasmgame_createWithCanvas: (a: any, b: number, c: number, d: number, e: number) => any;
306
- readonly wasmgame_delta_time: (a: number) => number;
307
- readonly wasmgame_distance: (a: number, b: number, c: number, d: number, e: number) => number;
308
- readonly wasmgame_distance_squared: (a: number, b: number, c: number, d: number, e: number) => number;
309
- readonly wasmgame_end_frame: (a: number) => void;
310
- readonly wasmgame_fps: (a: number) => number;
311
- readonly wasmgame_frame_count: (a: number) => bigint;
312
- readonly wasmgame_has_renderer: (a: number) => number;
313
- readonly wasmgame_new: (a: number, b: number, c: number, d: number) => number;
314
- readonly wasmgame_point_in_circle: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
315
- readonly wasmgame_point_in_rect: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => number;
316
- readonly wasmgame_set_canvas_size: (a: number, b: number, c: number) => void;
317
- readonly wasmgame_set_clear_color: (a: number, b: number, c: number, d: number, e: number) => void;
318
- readonly wasmgame_title: (a: number) => [number, number];
319
- readonly wasmgame_total_time: (a: number) => number;
320
- readonly wasmgame_window_height: (a: number) => number;
321
- readonly wasmgame_window_width: (a: number) => number;
322
- readonly __wbg_set_wasmsprite_a: (a: number, b: number) => void;
323
- readonly __wbg_set_wasmsprite_b: (a: number, b: number) => void;
324
939
  readonly __wbg_set_wasmsprite_g: (a: number, b: number) => void;
325
940
  readonly __wbg_set_wasmsprite_r: (a: number, b: number) => void;
326
- readonly __wbg_set_wasmsprite_texture_handle: (a: number, b: number) => void;
327
941
  readonly __wbg_set_wasmtransform2d_position_x: (a: number, b: number) => void;
942
+ readonly __wbg_set_wasmuievent_current_node_id: (a: number, b: bigint) => void;
943
+ readonly __wbg_set_wasmuievent_event_kind: (a: number, b: number) => void;
944
+ readonly __wbg_set_wasmuievent_node_id: (a: number, b: bigint) => void;
945
+ readonly __wbg_set_wasmuievent_previous_node_id: (a: number, b: bigint) => void;
946
+ readonly __wbg_wasmrenderstats_free: (a: number, b: number) => void;
947
+ readonly __wbg_wasmsprite_free: (a: number, b: number) => void;
948
+ readonly __wbg_wasmtransform2d_free: (a: number, b: number) => void;
949
+ readonly __wbg_wasmuievent_free: (a: number, b: number) => void;
950
+ readonly __wbg_wasmuimanager_free: (a: number, b: number) => void;
951
+ readonly wasmgame_audio_crossfade: (a: number, b: number, c: number, d: number) => number;
952
+ readonly wasmgame_audio_pause: (a: number, b: number) => number;
953
+ readonly wasmgame_audio_resume: (a: number, b: number) => number;
954
+ readonly wasmgame_audio_stop: (a: number, b: number) => number;
955
+ readonly wasmgame_audio_stop_all: (a: number) => number;
956
+ readonly wasmuimanager_create_node: (a: number, b: number) => bigint;
957
+ readonly wasmuimanager_event_count: (a: number) => number;
958
+ readonly wasmuimanager_event_read: (a: number, b: number) => number;
959
+ readonly wasmuimanager_get_child_at: (a: number, b: bigint, c: number) => bigint;
960
+ readonly wasmuimanager_get_child_count: (a: number, b: bigint) => number;
961
+ readonly wasmuimanager_get_parent: (a: number, b: bigint) => bigint;
962
+ readonly wasmuimanager_new: () => number;
963
+ readonly wasmuimanager_node_count: (a: number) => number;
964
+ readonly wasmuimanager_remove_node: (a: number, b: bigint) => number;
965
+ readonly wasmuimanager_render: (a: number) => void;
966
+ readonly wasmuimanager_set_button_enabled: (a: number, b: bigint, c: number) => number;
967
+ readonly wasmuimanager_set_image_texture_path: (a: number, b: bigint, c: number, d: number) => number;
968
+ readonly wasmuimanager_set_label_text: (a: number, b: bigint, c: number, d: number) => number;
969
+ readonly wasmuimanager_set_parent: (a: number, b: bigint, c: bigint) => number;
970
+ readonly wasmuimanager_set_slider: (a: number, b: bigint, c: number, d: number, e: number, f: number) => number;
971
+ readonly wasmuimanager_set_style: (a: number, b: bigint, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number) => number;
972
+ readonly wasmuimanager_set_widget: (a: number, b: bigint, c: number) => number;
973
+ readonly wasmuimanager_update: (a: number) => void;
974
+ readonly __wbg_set_wasmsprite_texture_handle: (a: number, b: number) => void;
328
975
  readonly __wbg_set_wasmtransform2d_position_y: (a: number, b: number) => void;
329
976
  readonly __wbg_set_wasmtransform2d_rotation: (a: number, b: number) => void;
330
977
  readonly __wbg_set_wasmtransform2d_scale_x: (a: number, b: number) => void;
331
978
  readonly __wbg_set_wasmtransform2d_scale_y: (a: number, b: number) => void;
332
- readonly __wbg_get_wasmsprite_a: (a: number) => number;
333
- readonly __wbg_get_wasmsprite_b: (a: number) => number;
334
- readonly __wbg_get_wasmsprite_g: (a: number) => number;
335
- readonly __wbg_get_wasmsprite_r: (a: number) => number;
336
979
  readonly __wbg_get_wasmsprite_texture_handle: (a: number) => number;
337
- readonly __wbg_get_wasmtransform2d_position_x: (a: number) => number;
338
980
  readonly __wbg_get_wasmtransform2d_position_y: (a: number) => number;
339
981
  readonly __wbg_get_wasmtransform2d_rotation: (a: number) => number;
340
982
  readonly __wbg_get_wasmtransform2d_scale_x: (a: number) => number;
341
983
  readonly __wbg_get_wasmtransform2d_scale_y: (a: number) => number;
342
- readonly __wbg_wasmtransform2d_free: (a: number, b: number) => void;
343
- readonly wasm_bindgen__closure__destroy__h34b32f47e9536ad7: (a: number, b: number) => void;
344
- readonly wasm_bindgen__closure__destroy__hb7ee5c5d3fd608d4: (a: number, b: number) => void;
345
- readonly wasm_bindgen__convert__closures_____invoke__h6c9ef6970fdda1f4: (a: number, b: number, c: any) => [number, number];
346
- readonly wasm_bindgen__convert__closures_____invoke__h40c8324309a93f8a: (a: number, b: number, c: any, d: any) => void;
347
- readonly wasm_bindgen__convert__closures_____invoke__h8b43903f8a91b24f: (a: number, b: number, c: any) => void;
984
+ readonly wasm_bindgen__closure__destroy__h789bc42e2f1b9970: (a: number, b: number) => void;
985
+ readonly wasm_bindgen__closure__destroy__h8ef9cafea49c0c6c: (a: number, b: number) => void;
986
+ readonly wasm_bindgen__closure__destroy__h173e94978d19fd44: (a: number, b: number) => void;
987
+ readonly wasm_bindgen__closure__destroy__h19c7764ad1550135: (a: number, b: number) => void;
988
+ readonly wasm_bindgen__convert__closures_____invoke__he47406ccb328564e: (a: number, b: number, c: any) => [number, number];
989
+ readonly wasm_bindgen__convert__closures_____invoke__h0f058dd9c7531832: (a: number, b: number, c: any, d: any) => void;
990
+ readonly wasm_bindgen__convert__closures_____invoke__h7379c539a866d2ef: (a: number, b: number, c: any) => void;
991
+ readonly wasm_bindgen__convert__closures_____invoke__h1155117ea4dcfb6a: (a: number, b: number, c: any) => void;
992
+ readonly wasm_bindgen__convert__closures_____invoke__h1155117ea4dcfb6a_3: (a: number, b: number, c: any) => void;
993
+ readonly wasm_bindgen__convert__closures_____invoke__h20ce9aa610e9cd25: (a: number, b: number, c: any) => void;
348
994
  readonly __wbindgen_malloc: (a: number, b: number) => number;
349
995
  readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
350
996
  readonly __wbindgen_exn_store: (a: number) => void;
351
997
  readonly __externref_table_alloc: () => number;
352
998
  readonly __wbindgen_externrefs: WebAssembly.Table;
353
- readonly __wbindgen_free: (a: number, b: number, c: number) => void;
354
999
  readonly __externref_table_dealloc: (a: number) => void;
1000
+ readonly __wbindgen_free: (a: number, b: number, c: number) => void;
355
1001
  readonly __wbindgen_start: () => void;
356
1002
  }
357
1003