murow 0.0.73 → 0.1.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 (99) hide show
  1. package/README.md +15 -1
  2. package/dist/cjs/core/binary-codec/binary-codec.js +1 -1
  3. package/dist/cjs/core/driver/driver.js +1 -1
  4. package/dist/cjs/core/driver/drivers/immediate.js +1 -1
  5. package/dist/cjs/core/driver/drivers/raf.js +1 -1
  6. package/dist/cjs/core/driver/drivers/timeout.js +1 -1
  7. package/dist/cjs/core/input/index.js +1 -1
  8. package/dist/cjs/core/input/mouse-look/index.js +1 -0
  9. package/dist/cjs/core/input/mouse-look/mouse-look.js +1 -0
  10. package/dist/cjs/core/input/scroll-zoom/index.js +1 -0
  11. package/dist/cjs/core/input/scroll-zoom/scroll-zoom.js +1 -0
  12. package/dist/cjs/ecs/component.js +1 -1
  13. package/dist/cjs/ecs/system-builder.js +1 -1
  14. package/dist/cjs/ecs/world.js +1 -1
  15. package/dist/cjs/game/loop/loop.js +1 -1
  16. package/dist/cjs/net/adapters/bun-websocket.js +1 -1
  17. package/dist/esm/core/binary-codec/binary-codec.js +1 -1
  18. package/dist/esm/core/driver/drivers/immediate.js +1 -1
  19. package/dist/esm/core/driver/drivers/raf.js +1 -1
  20. package/dist/esm/core/driver/drivers/timeout.js +1 -1
  21. package/dist/esm/core/input/index.js +1 -1
  22. package/dist/esm/core/input/mouse-look/index.js +1 -0
  23. package/dist/esm/core/input/mouse-look/mouse-look.js +1 -0
  24. package/dist/esm/core/input/scroll-zoom/index.js +1 -0
  25. package/dist/esm/core/input/scroll-zoom/scroll-zoom.js +1 -0
  26. package/dist/esm/ecs/component.js +1 -1
  27. package/dist/esm/ecs/system-builder.js +1 -1
  28. package/dist/esm/ecs/world.js +1 -1
  29. package/dist/esm/game/loop/loop.js +1 -1
  30. package/dist/esm/net/adapters/bun-websocket.js +1 -1
  31. package/dist/netcode/cjs/index.js +1552 -0
  32. package/dist/netcode/esm/index.js +1530 -0
  33. package/dist/netcode/types/client/game-client.d.ts +125 -0
  34. package/dist/netcode/types/client/index.d.ts +1 -0
  35. package/dist/netcode/types/client/interpolation-buffer.d.ts +37 -0
  36. package/dist/netcode/types/client/interpolation-buffer.test.d.ts +1 -0
  37. package/dist/netcode/types/codec/delta-codec.d.ts +17 -0
  38. package/dist/netcode/types/codec/delta-codec.test.d.ts +1 -0
  39. package/dist/netcode/types/codec/index.d.ts +1 -0
  40. package/dist/netcode/types/components/index.d.ts +1 -0
  41. package/dist/netcode/types/components/sync-spec.d.ts +43 -0
  42. package/dist/netcode/types/components/sync-spec.test.d.ts +1 -0
  43. package/dist/netcode/types/ctx.d.ts +105 -0
  44. package/dist/netcode/types/ctx.test.d.ts +1 -0
  45. package/dist/netcode/types/handlers/define-handlers.d.ts +47 -0
  46. package/dist/netcode/types/handlers/index.d.ts +1 -0
  47. package/dist/netcode/types/index.d.ts +11 -0
  48. package/dist/netcode/types/integration.test.d.ts +1 -0
  49. package/dist/netcode/types/intents/define-intents.d.ts +53 -0
  50. package/dist/netcode/types/intents/define-intents.test.d.ts +1 -0
  51. package/dist/netcode/types/intents/index.d.ts +1 -0
  52. package/dist/netcode/types/network/base.d.ts +120 -0
  53. package/dist/netcode/types/network/index.d.ts +2 -0
  54. package/dist/netcode/types/network/transport.d.ts +1 -0
  55. package/dist/netcode/types/packets/convergence.test.d.ts +1 -0
  56. package/dist/netcode/types/packets/harness.d.ts +103 -0
  57. package/dist/netcode/types/packets/index.d.ts +2 -0
  58. package/dist/netcode/types/packets/intermittent-intents.test.d.ts +1 -0
  59. package/dist/netcode/types/packets/pathological.test.d.ts +1 -0
  60. package/dist/netcode/types/packets/peer-interpolation.test.d.ts +1 -0
  61. package/dist/netcode/types/packets/reordering.test.d.ts +1 -0
  62. package/dist/netcode/types/packets/virtual-network.d.ts +65 -0
  63. package/dist/netcode/types/predictions/define-predictions.d.ts +45 -0
  64. package/dist/netcode/types/predictions/define-predictions.test.d.ts +1 -0
  65. package/dist/netcode/types/predictions/index.d.ts +1 -0
  66. package/dist/netcode/types/reconciliation.test.d.ts +1 -0
  67. package/dist/netcode/types/rpcs/define-rpcs.d.ts +44 -0
  68. package/dist/netcode/types/rpcs/define-rpcs.test.d.ts +1 -0
  69. package/dist/netcode/types/rpcs/index.d.ts +1 -0
  70. package/dist/netcode/types/server/game-server.d.ts +77 -0
  71. package/dist/netcode/types/server/index.d.ts +2 -0
  72. package/dist/netcode/types/server/plugins/aoi-grid.d.ts +34 -0
  73. package/dist/netcode/types/server/plugins/index.d.ts +3 -0
  74. package/dist/netcode/types/server/plugins/lag-compensation.d.ts +34 -0
  75. package/dist/netcode/types/server/plugins/plugin.d.ts +24 -0
  76. package/dist/netcode/types/tick-rate.test.d.ts +1 -0
  77. package/dist/netcode/types/transports/index.d.ts +1 -0
  78. package/dist/netcode/types/transports/memory-transport.d.ts +51 -0
  79. package/dist/netcode/types/types.test.d.ts +1 -0
  80. package/dist/types/core/binary-codec/binary-codec.d.ts +89 -31
  81. package/dist/types/core/driver/driver.d.ts +8 -8
  82. package/dist/types/core/driver/drivers/immediate.d.ts +4 -4
  83. package/dist/types/core/driver/drivers/raf.d.ts +6 -6
  84. package/dist/types/core/driver/drivers/timeout.d.ts +4 -4
  85. package/dist/types/core/input/index.d.ts +2 -0
  86. package/dist/types/core/input/mouse-look/index.d.ts +1 -0
  87. package/dist/types/core/input/mouse-look/mouse-look.d.ts +139 -0
  88. package/dist/types/core/input/scroll-zoom/index.d.ts +1 -0
  89. package/dist/types/core/input/scroll-zoom/scroll-zoom.d.ts +38 -0
  90. package/dist/types/ecs/component.d.ts +67 -11
  91. package/dist/types/ecs/entity-handle.d.ts +5 -5
  92. package/dist/types/ecs/system-builder.d.ts +13 -0
  93. package/dist/types/ecs/world.d.ts +72 -4
  94. package/dist/types/game/loop/loop.d.ts +21 -2
  95. package/dist/types/net/adapters/bun-websocket.d.ts +19 -3
  96. package/dist/webgpu/cjs/index.js +120 -5
  97. package/dist/webgpu/esm/index.js +120 -5
  98. package/dist/webgpu/types/3d/renderer.d.ts +38 -0
  99. package/package.json +6 -1
@@ -20,9 +20,28 @@ export interface MeshInstanceHandle {
20
20
  readonly slot: number;
21
21
  readonly modelId: number;
22
22
  readonly skinned: boolean;
23
+ /** Source prefab id, or `null` if spawned from a raw model handle. */
24
+ readonly prefabId: string | null;
23
25
  setPosition(x: number, y: number, z: number): void;
24
26
  setRotation(x: number, y: number, z: number): void;
25
27
  setScale(x: number, y: number, z: number): void;
28
+ /**
29
+ * Set position WITHOUT GPU interpolation from the previous frame.
30
+ * Writes both PREV and CURR to the same value, so the next render
31
+ * produces no lerp slide. Use after teleports, network snapshot
32
+ * snaps, or any time the entity should appear at the new location
33
+ * immediately rather than smoothly moving toward it.
34
+ */
35
+ teleport(x: number, y: number, z: number): void;
36
+ /**
37
+ * Logical current position (what `setPosition` last wrote, not the interpolated render value).
38
+ * Returns a per-handle reusable tuple — do not retain across subsequent gets on the same handle.
39
+ */
40
+ readonly position: readonly [number, number, number];
41
+ /** Logical current rotation in radians. Reusable tuple; see `position`. */
42
+ readonly rotation: readonly [number, number, number];
43
+ /** Logical current scale. Reusable tuple; see `position`. */
44
+ readonly scale: readonly [number, number, number];
26
45
  play?(name: string, opts?: PlayOptions): void;
27
46
  stop?(): void;
28
47
  /** Free this instance's renderer slot. Safe to call once per handle. */
@@ -43,9 +62,28 @@ export interface InstanceHandle {
43
62
  setPosition(x: number, y: number, z: number): void;
44
63
  setRotation(x: number, y: number, z: number): void;
45
64
  setScale(x: number, y: number, z: number): void;
65
+ /**
66
+ * Set position WITHOUT GPU interpolation from the previous frame.
67
+ * Writes both PREV and CURR to the same value, so the next render
68
+ * produces no lerp slide. Use after teleports, network snapshot
69
+ * snaps, or any time the entity should appear at the new location
70
+ * immediately.
71
+ */
72
+ teleport(x: number, y: number, z: number): void;
73
+ /**
74
+ * Logical current position (what `setPosition` last wrote, not the interpolated render value).
75
+ * Returns a per-handle reusable tuple — do not retain across subsequent gets on the same handle.
76
+ */
77
+ readonly position: readonly [number, number, number];
78
+ /** Logical current rotation in radians. Reusable tuple; see `position`. */
79
+ readonly rotation: readonly [number, number, number];
80
+ /** Logical current scale. Reusable tuple; see `position`. */
81
+ readonly scale: readonly [number, number, number];
46
82
  play?(name: string, opts?: PlayOptions): void;
47
83
  stop?(): void;
48
84
  readonly skinned: boolean;
85
+ /** Source prefab id, or `null` if spawned from a raw model handle. */
86
+ readonly prefabId: string | null;
49
87
  /** Free this instance's renderer slot(s). Safe to call once per handle. */
50
88
  destroy(): void;
51
89
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "murow",
3
- "version": "0.0.73",
3
+ "version": "0.1.1",
4
4
  "description": "A lightweight TypeScript game engine for server-authoritative multiplayer games",
5
5
  "types": "dist/types/index.d.ts",
6
6
  "type": "module",
@@ -112,6 +112,11 @@
112
112
  "types": "./dist/webgpu/types/index.d.ts",
113
113
  "import": "./dist/webgpu/esm/index.js",
114
114
  "require": "./dist/webgpu/cjs/index.js"
115
+ },
116
+ "./netcode": {
117
+ "types": "./dist/netcode/types/index.d.ts",
118
+ "import": "./dist/netcode/esm/index.js",
119
+ "require": "./dist/netcode/cjs/index.js"
115
120
  }
116
121
  },
117
122
  "optionalDependencies": {