@vworlds/vecs-client 1.0.20 → 1.0.22

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 (41) hide show
  1. package/node_modules/@vworlds/vecs-protocol/package.json +1 -1
  2. package/node_modules/@vworlds/vecs-protocol/src/cid.d.ts +3 -2
  3. package/node_modules/@vworlds/vecs-protocol/src/cid.js +5 -7
  4. package/node_modules/@vworlds/vecs-protocol/src/cid.js.map +1 -1
  5. package/node_modules/@vworlds/vecs-protocol/src/index.d.ts +1 -0
  6. package/node_modules/@vworlds/vecs-protocol/src/index.js +1 -0
  7. package/node_modules/@vworlds/vecs-protocol/src/index.js.map +1 -1
  8. package/node_modules/@vworlds/vecs-protocol/src/messages.d.ts +5 -4
  9. package/node_modules/@vworlds/vecs-protocol/src/messages.js.map +1 -1
  10. package/node_modules/@vworlds/vecs-protocol/src/network_world.d.ts +3 -3
  11. package/node_modules/@vworlds/vecs-protocol/src/network_world.js +1 -1
  12. package/node_modules/@vworlds/vecs-protocol/src/network_world.js.map +1 -1
  13. package/node_modules/@vworlds/vecs-protocol/src/world_path.js.map +1 -0
  14. package/package.json +4 -4
  15. package/vecs-client/src/client_world.d.ts +16 -8
  16. package/vecs-client/src/client_world.js +58 -37
  17. package/vecs-client/src/client_world.js.map +1 -1
  18. package/vecs-client/src/{interpolator.d.ts → diff_buffer.d.ts} +26 -10
  19. package/vecs-client/src/{interpolator.js → diff_buffer.js} +71 -42
  20. package/vecs-client/src/diff_buffer.js.map +1 -0
  21. package/vecs-client/src/index.d.ts +3 -2
  22. package/vecs-client/src/index.js +2 -2
  23. package/vecs-client/src/index.js.map +1 -1
  24. package/vecs-protocol/src/cid.d.ts +3 -2
  25. package/vecs-protocol/src/cid.js +5 -7
  26. package/vecs-protocol/src/cid.js.map +1 -1
  27. package/vecs-protocol/src/index.d.ts +1 -0
  28. package/vecs-protocol/src/index.js +1 -0
  29. package/vecs-protocol/src/index.js.map +1 -1
  30. package/vecs-protocol/src/messages.d.ts +5 -4
  31. package/vecs-protocol/src/messages.js.map +1 -1
  32. package/vecs-protocol/src/network_world.d.ts +3 -3
  33. package/vecs-protocol/src/network_world.js +1 -1
  34. package/vecs-protocol/src/network_world.js.map +1 -1
  35. package/vecs-protocol/src/world_path.d.ts +1 -0
  36. package/vecs-protocol/src/world_path.js +4 -0
  37. package/vecs-protocol/src/world_path.js.map +1 -0
  38. package/vecs-client/src/interpolator.js.map +0 -1
  39. package/vecs-client/src/world_path.js.map +0 -1
  40. /package/{vecs-client → node_modules/@vworlds/vecs-protocol}/src/world_path.d.ts +0 -0
  41. /package/{vecs-client → node_modules/@vworlds/vecs-protocol}/src/world_path.js +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vworlds/vecs-protocol",
3
- "version": "1.0.20",
3
+ "version": "1.0.22",
4
4
  "type": "module",
5
5
  "main": "./src/index.js",
6
6
  "types": "./src/index.d.ts",
@@ -1,3 +1,4 @@
1
+ import type { EID } from "@vworlds/vecs";
1
2
  /** A component id packs an entity id and component type id into a uint32. */
2
3
  export type CID = number;
3
4
  /** Component type ids below this value can fit into packed wire component ids. */
@@ -9,6 +10,6 @@ export declare function getLocalComponentMin(): number;
9
10
  /** Configure the local component type range before constructing networked worlds. */
10
11
  export declare function setLocalComponentMin(value: number): void;
11
12
  /** Pack an entity id and component type id into a uint32 component id. */
12
- export declare function cid_pack(eid: number, type: number): CID;
13
+ export declare function cid_pack(eid: EID, type: number): CID;
13
14
  /** Unpack a uint32 component id into [entity id, component type id]. */
14
- export declare function cid_unpack(cid: CID): [eid: number, type: number];
15
+ export declare function cid_unpack(cid: CID): [eid: EID, type: number];
@@ -24,14 +24,12 @@ export function getLocalComponentMin() {
24
24
  }
25
25
  /** Configure the local component type range before constructing networked worlds. */
26
26
  export function setLocalComponentMin(value) {
27
+ validateLocalComponentMin(value);
27
28
  LOCAL_COMPONENT_MIN = value;
28
- if (isAlignedLocalComponentMin(value)) {
29
- getLocalComponentMin();
30
- componentTypeMask = LOCAL_COMPONENT_MIN - 1;
31
- componentTypeShift = Math.log2(LOCAL_COMPONENT_MIN);
32
- MAX_ENTITY_ID = 2 ** (32 - componentTypeShift) - 1;
33
- MAX_COMPONENT_TYPE = componentTypeMask;
34
- }
29
+ componentTypeMask = value - 1;
30
+ componentTypeShift = Math.log2(value);
31
+ MAX_ENTITY_ID = 2 ** (32 - componentTypeShift) - 1;
32
+ MAX_COMPONENT_TYPE = componentTypeMask;
35
33
  }
36
34
  /** Pack an entity id and component type id into a uint32 component id. */
37
35
  export function cid_pack(eid, type) {
@@ -1 +1 @@
1
- {"version":3,"file":"cid.js","sourceRoot":"","sources":["../../../../vecs-protocol/src/cid.ts"],"names":[],"mappings":"AAGA,kFAAkF;AAClF,MAAM,CAAC,IAAI,mBAAmB,GAAG,GAAG,CAAC;AAErC,+DAA+D;AAC/D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAEhC,IAAI,iBAAiB,GAAG,mBAAmB,GAAG,CAAC,CAAC;AAChD,IAAI,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AACxD,IAAI,aAAa,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;AACvD,IAAI,kBAAkB,GAAG,iBAAiB,CAAC;AAE3C,SAAS,yBAAyB,CAAC,KAAa;IAC9C,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IACxF,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAa;IAC/C,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAClF,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,oBAAoB;IAClC,yBAAyB,CAAC,mBAAmB,CAAC,CAAC;IAC/C,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,mBAAmB,GAAG,KAAK,CAAC;IAC5B,IAAI,0BAA0B,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,oBAAoB,EAAE,CAAC;QACvB,iBAAiB,GAAG,mBAAmB,GAAG,CAAC,CAAC;QAC5C,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACpD,aAAa,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACnD,kBAAkB,GAAG,iBAAiB,CAAC;IACzC,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,IAAY;IAChD,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,iDAAiD,GAAG,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,GAAG,GAAG,aAAa,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,uBAAuB,GAAG,oBAAoB,aAAa,4BAA4B,mBAAmB,IAAI;YAC5G,0DAA0D,CAC7D,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,+CAA+C,IAAI,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,IAAI,GAAG,kBAAkB,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,qBAAqB,IAAI,mCAAmC,kBAAkB,IAAI;YAChF,mDAAmD,mBAAmB,GAAG,CAC5E,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,CAAC,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,GAAG,iBAAiB,CAAC,CAAC,KAAK,CAAC,CAAC;AAC1E,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,UAAU,CAAC,GAAQ;IACjC,OAAO,CAAC,GAAG,KAAK,kBAAkB,EAAE,GAAG,GAAG,iBAAiB,CAAC,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"cid.js","sourceRoot":"","sources":["../../../../vecs-protocol/src/cid.ts"],"names":[],"mappings":"AAKA,kFAAkF;AAClF,MAAM,CAAC,IAAI,mBAAmB,GAAG,GAAG,CAAC;AAErC,+DAA+D;AAC/D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAEhC,IAAI,iBAAiB,GAAG,mBAAmB,GAAG,CAAC,CAAC;AAChD,IAAI,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AACxD,IAAI,aAAa,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;AACvD,IAAI,kBAAkB,GAAG,iBAAiB,CAAC;AAE3C,SAAS,yBAAyB,CAAC,KAAa;IAC9C,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IACxF,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAa;IAC/C,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAClF,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,oBAAoB;IAClC,yBAAyB,CAAC,mBAAmB,CAAC,CAAC;IAC/C,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,yBAAyB,CAAC,KAAK,CAAC,CAAC;IACjC,mBAAmB,GAAG,KAAK,CAAC;IAC5B,iBAAiB,GAAG,KAAK,GAAG,CAAC,CAAC;IAC9B,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,aAAa,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACnD,kBAAkB,GAAG,iBAAiB,CAAC;AACzC,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,QAAQ,CAAC,GAAQ,EAAE,IAAY;IAC7C,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,iDAAiD,GAAG,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,GAAG,GAAG,aAAa,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,uBAAuB,GAAG,oBAAoB,aAAa,4BAA4B,mBAAmB,IAAI;YAC5G,0DAA0D,CAC7D,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,+CAA+C,IAAI,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,IAAI,GAAG,kBAAkB,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,qBAAqB,IAAI,mCAAmC,kBAAkB,IAAI;YAChF,mDAAmD,mBAAmB,GAAG,CAC5E,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,CAAC,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,GAAG,iBAAiB,CAAC,CAAC,KAAK,CAAC,CAAC;AAC1E,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,UAAU,CAAC,GAAQ;IACjC,OAAO,CAAC,GAAG,KAAK,kBAAkB,EAAE,GAAG,GAAG,iBAAiB,CAAC,CAAC;AAC/D,CAAC"}
@@ -3,3 +3,4 @@ export { NetworkWorld, type NetworkWorldOptions, type RegisteredNetworkComponent
3
3
  export { Client2Server, ComponentSnapshot, EncodedSnapshot, Server2Client, StateDiff, type RemovedComponent, } from "./messages.js";
4
4
  export { FIRST_USER_RPC_ID, RPC, RPC_RESPONSE_ID, RPC_TIMEOUT_ERROR, SessionRPC, type RPCHandler, } from "./rpc.js";
5
5
  export type { ConnectionError, VecsSocket, VecsSocketEvents, VecsSocketListener, VecsSocketListenerEvents, } from "./transport.js";
6
+ export { worldPath } from "./world_path.js";
@@ -2,4 +2,5 @@ export { ALL_COMPONENTS, LOCAL_COMPONENT_MIN, cid_pack, cid_unpack, getLocalComp
2
2
  export { NetworkWorld, } from "./network_world.js";
3
3
  export { Client2Server, ComponentSnapshot, EncodedSnapshot, Server2Client, StateDiff, } from "./messages.js";
4
4
  export { FIRST_USER_RPC_ID, RPC, RPC_RESPONSE_ID, RPC_TIMEOUT_ERROR, SessionRPC, } from "./rpc.js";
5
+ export { worldPath } from "./world_path.js";
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../vecs-protocol/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,oBAAoB,EACpB,oBAAoB,GAErB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,YAAY,GAGb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,SAAS,GAEV,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,iBAAiB,EACjB,GAAG,EACH,eAAe,EACf,iBAAiB,EACjB,UAAU,GAEX,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../vecs-protocol/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,oBAAoB,EACpB,oBAAoB,GAErB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,YAAY,GAGb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,SAAS,GAEV,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,iBAAiB,EACjB,GAAG,EACH,eAAe,EACf,iBAAiB,EACjB,UAAU,GAEX,MAAM,UAAU,CAAC;AAQlB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,7 +1,8 @@
1
+ import type { EID } from "@vworlds/vecs";
1
2
  import { Decoder, Encoder, type IEncodable } from "@vworlds/vecs-wire";
2
3
  import { RPC } from "./rpc.js";
3
4
  export declare class ComponentSnapshot implements IEncodable {
4
- eid: number;
5
+ eid: EID;
5
6
  type: number;
6
7
  payload: Uint8Array;
7
8
  constructor(values?: Partial<ComponentSnapshot>);
@@ -10,12 +11,12 @@ export declare class ComponentSnapshot implements IEncodable {
10
11
  }
11
12
  export declare class EncodedSnapshot {
12
13
  bytes: Uint8Array;
13
- eid: number;
14
+ eid: EID;
14
15
  type: number;
15
16
  constructor(bytes: Uint8Array, // contains an already-encoded ComponentSnapshot
16
- eid?: number, type?: number);
17
+ eid?: EID, type?: number);
17
18
  }
18
- export type RemovedComponent = [eid: number, type: number];
19
+ export type RemovedComponent = [eid: EID, type: number];
19
20
  export declare class StateDiff implements IEncodable {
20
21
  toFrame: number;
21
22
  fromFrame: number;
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../../vecs-protocol/src/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../../vecs-protocol/src/messages.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
- import { World, type ComponentClass, type WorldOptions } from "@vworlds/vecs";
1
+ import { World, type ComponentClass, type EID, type WorldOptions } from "@vworlds/vecs";
2
2
  export interface RegisteredNetworkComponent {
3
3
  Class: ComponentClass;
4
4
  type: number;
5
5
  }
6
6
  export interface NetworkWorldOptions extends Omit<WorldOptions, "idPools"> {
7
7
  networkComponents?: readonly ComponentClass[];
8
- entityIdStart?: number;
9
- localEntityIdStart?: number;
8
+ entityIdStart?: EID;
9
+ localEntityIdStart?: EID;
10
10
  networkEntityReuseWaitFrames?: number;
11
11
  }
12
12
  export declare class NetworkWorld extends World {
@@ -1,4 +1,4 @@
1
- import { World } from "@vworlds/vecs";
1
+ import { World, } from "@vworlds/vecs";
2
2
  import { cid_pack, setLocalComponentMin } from "./cid.js";
3
3
  const DEFAULT_ENTITY_ID_START = 1000;
4
4
  const MODULE_ID_RANGE_SIZE = 100;
@@ -1 +1 @@
1
- {"version":3,"file":"network_world.js","sourceRoot":"","sources":["../../../../vecs-protocol/src/network_world.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAA6D,MAAM,eAAe,CAAC;AACjG,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE1D,MAAM,uBAAuB,GAAG,IAAI,CAAC;AACrC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,IAAI,2BAA+C,CAAC;AAcpD,MAAM,OAAO,YAAa,SAAQ,KAAK;IAKrC,YAAmB,UAA+B,EAAE;QAClD,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC;QAC1D,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC5E,0BAA0B,CAAC,iBAAiB,CAAC,CAAC;QAC9C,KAAK,CAAC;YACJ,OAAO,EAAE,mBAAmB,CAAC,iBAAiB,EAAE,OAAO,CAAC;SACzD,CAAC,CAAC;QARY,6BAAwB,GAAG,IAAI,GAAG,EAAsC,CAAC;QAUxF,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC9D,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;YACvB,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAClB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5B,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACpD,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,mBAAmB,CAAC,IAAY;QACrC,OAAO,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;CACF;AAED,SAAS,0BAA0B,CAAC,iBAAyB;IAC3D,IAAI,2BAA2B,KAAK,SAAS,EAAE,CAAC;QAC9C,2BAA2B,GAAG,iBAAiB,CAAC;QAChD,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;QACxC,OAAO;IACT,CAAC;IACD,IAAI,2BAA2B,KAAK,iBAAiB,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CACb,kCAAkC,iBAAiB,kCAAkC,2BAA2B,EAAE,CACnH,CAAC;IACJ,CAAC;IACD,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,mBAAmB,CAC1B,iBAAyB,EACzB,OAA4B;IAE5B,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,uBAAuB,CAAC;IACvE,mBAAmB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IACpD,IAAI,aAAa,IAAI,iBAAiB,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,aAAa,GAAG,aAAa,GAAG,oBAAoB,CAAC;IAC3D,IAAI,aAAa,IAAI,iBAAiB,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,KAAK,GAAmB;QAC5B,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,iBAAiB,GAAG,CAAC,EAAE;QACvD,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,aAAa,GAAG,CAAC,EAAE;QACrE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,GAAG,CAAC,EAAE;KAC/D,CAAC;IAEF,IAAI,OAAO,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC;QACnD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IACtD,mBAAmB,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAC;IAC9D,IAAI,kBAAkB,IAAI,aAAa,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,iBAAiB,GAAiB;QACtC,IAAI,EAAE,gBAAgB;QACtB,GAAG,EAAE,aAAa;QAClB,GAAG,EAAE,kBAAkB,GAAG,CAAC;KAC5B,CAAC;IACF,IAAI,OAAO,CAAC,4BAA4B,KAAK,SAAS,EAAE,CAAC;QACvD,iBAAiB,CAAC,eAAe,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC3E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,uBAAuB,CAAC,qBAA6B;IAC5D,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,qBAAqB,GAAG,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,KAAK,GAAG,KAAK,EAAE,CAAC;QACrB,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY,EAAE,KAAa;IACtD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,kCAAkC,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"network_world.js","sourceRoot":"","sources":["../../../../vecs-protocol/src/network_world.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"world_path.js","sourceRoot":"","sources":["../../../../vecs-protocol/src/world_path.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAC,QAAQ,GAAG,eAAe,EAAE,SAAiB;IACrE,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;AAC3E,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vworlds/vecs-client",
3
- "version": "1.0.20",
3
+ "version": "1.0.22",
4
4
  "type": "module",
5
5
  "main": "./vecs-client/src/index.js",
6
6
  "types": "./vecs-client/src/index.d.ts",
@@ -16,9 +16,9 @@
16
16
  },
17
17
  "dependencies": {
18
18
  "@vworlds/dgram-client": "^1.0.8",
19
- "@vworlds/vecs": "1.0.20",
20
- "@vworlds/vecs-protocol": "1.0.20",
21
- "@vworlds/vecs-wire": "1.0.20",
19
+ "@vworlds/vecs": "1.0.22",
20
+ "@vworlds/vecs-protocol": "1.0.22",
21
+ "@vworlds/vecs-wire": "1.0.22",
22
22
  "eventemitter3": "^5.0.4"
23
23
  },
24
24
  "bundleDependencies": [
@@ -1,7 +1,7 @@
1
1
  import { NetworkWorld, type NetworkWorldOptions, type RPCHandler, type VecsSocket } from "@vworlds/vecs-protocol";
2
- import { type ComponentInstance, type IPhase } from "@vworlds/vecs";
2
+ import { type ComponentInstance, type Entity } from "@vworlds/vecs";
3
3
  import { EventEmitter } from "eventemitter3";
4
- import { ComponentSnapshot } from "./interpolator.js";
4
+ import { ComponentSnapshot, type ComponentInterpolator } from "./diff_buffer.js";
5
5
  export interface ClientWorldResetEvent {
6
6
  initial: boolean;
7
7
  fromFrame: number;
@@ -18,9 +18,16 @@ export interface ClientWorldOptions extends NetworkWorldOptions {
18
18
  interpolatorBucketLength?: number;
19
19
  serverTickIntervalMs?: number;
20
20
  ackIntervalMs?: number;
21
+ /**
22
+ * Component types to interpolate between server frames, keyed by component
23
+ * type id, with the function used to blend each one. Types without an entry
24
+ * are snapped to their latest received value. Defaults to interpolating the
25
+ * first network component (type 1) as a 2D position via `interpolatePosition`.
26
+ */
27
+ interpolators?: Iterable<readonly [number, ComponentInterpolator]>;
21
28
  }
22
29
  export interface InstallSystemsOptions {
23
- applyPhase?: string | IPhase;
30
+ applyPhase?: string | Entity;
24
31
  }
25
32
  export interface DgramConnectOptions extends Omit<ClientWorldOptions, "socket"> {
26
33
  host: string;
@@ -35,14 +42,14 @@ export declare class ClientWorld extends NetworkWorld {
35
42
  private _socket;
36
43
  private readonly _rpc;
37
44
  private readonly _rpcInbox;
38
- private readonly _interpolator;
45
+ private readonly _diffBuffer;
39
46
  private readonly _encodeBuffer;
40
47
  private readonly _ackIntervalMs;
48
+ private readonly _networkedQuery;
41
49
  private _input;
42
50
  private _ackTimer;
43
- private _needsBaselineAfterDisconnect;
44
- private _hasReceivedFullBaseline;
45
- private _receivingFullBaseline;
51
+ private _baselineApplied;
52
+ private _forceBaselineReset;
46
53
  private _systemsInstalled;
47
54
  constructor(options?: ClientWorldOptions);
48
55
  static connectDgram(options: DgramConnectOptions): Promise<ClientWorld>;
@@ -59,8 +66,9 @@ export declare class ClientWorld extends NetworkWorld {
59
66
  decodeComponentSnapshot(snapshot: ComponentSnapshot): ComponentInstance;
60
67
  private _applySnapshot;
61
68
  private _removeComponent;
62
- private _handleFullBaseline;
69
+ private _destroyNetworkEntities;
63
70
  private _handleDisconnect;
71
+ private _phaseTarget;
64
72
  private _startAckTimer;
65
73
  private _stopAckTimer;
66
74
  }
@@ -1,8 +1,10 @@
1
- import { Client2Server, Server2Client, SessionRPC, ALL_COMPONENTS, cid_unpack, NetworkWorld, } from "@vworlds/vecs-protocol";
1
+ import { Client2Server, Server2Client, SessionRPC, ALL_COMPONENTS, cid_unpack, NetworkWorld, worldPath, } from "@vworlds/vecs-protocol";
2
+ import { ON_UPDATE, Phase, } from "@vworlds/vecs";
2
3
  import { Decoder, Encoder } from "@vworlds/vecs-wire";
3
4
  import { EventEmitter } from "eventemitter3";
4
- import { Interpolator, diffFromStateDiff } from "./interpolator.js";
5
- import { worldPath } from "./world_path.js";
5
+ import { DiffBuffer, diffFromStateDiff, } from "./diff_buffer.js";
6
+ class Networked {
7
+ }
6
8
  const DEFAULT_CLIENT_LOCAL_ENTITY_ID_START = 10000;
7
9
  export class ClientWorld extends NetworkWorld {
8
10
  constructor(options = {}) {
@@ -15,13 +17,14 @@ export class ClientWorld extends NetworkWorld {
15
17
  this.events = new EventEmitter();
16
18
  this._rpc = new SessionRPC();
17
19
  this._rpcInbox = [];
18
- this._needsBaselineAfterDisconnect = false;
19
- this._hasReceivedFullBaseline = false;
20
- this._receivingFullBaseline = false;
20
+ this._baselineApplied = false;
21
+ this._forceBaselineReset = false;
21
22
  this._systemsInstalled = false;
22
23
  this._encodeBuffer = new Uint8Array(options.encodeBufferSize ?? 64 * 1024);
23
24
  this._ackIntervalMs = options.ackIntervalMs ?? 1000 / 30;
24
- this._interpolator = new Interpolator(options.interpolatorBucketLength ?? 3, options.serverTickIntervalMs ?? 1000 / 30, (snapshot) => this.decodeComponentSnapshot(snapshot));
25
+ this.component(Networked);
26
+ this._networkedQuery = this.query("ClientWorld:Networked").with(Networked).track().build();
27
+ this._diffBuffer = new DiffBuffer(options.interpolatorBucketLength ?? 3, options.serverTickIntervalMs ?? 1000 / 30, (snapshot) => this.decodeComponentSnapshot(snapshot), options.interpolators);
25
28
  if (options.socket) {
26
29
  this.attachSocket(options.socket);
27
30
  }
@@ -45,7 +48,7 @@ export class ClientWorld extends NetworkWorld {
45
48
  return;
46
49
  }
47
50
  this._systemsInstalled = true;
48
- const applyPhase = options.applyPhase ?? "update";
51
+ const applyPhase = this._phaseTarget(options.applyPhase ?? ON_UPDATE);
49
52
  this.system("ClientWorld:Apply")
50
53
  .phase(applyPhase)
51
54
  .run((now) => this.apply(now));
@@ -64,7 +67,7 @@ export class ClientWorld extends NetworkWorld {
64
67
  const incoming = this._rpcInbox.splice(0);
65
68
  this._rpc.process(incoming);
66
69
  }
67
- const diff = this._interpolator.pull(now);
70
+ const diff = this._diffBuffer.pull(now);
68
71
  diff.snapshots.forEach((snapshot) => this._applySnapshot(snapshot));
69
72
  diff.removed?.forEach((key) => {
70
73
  const [eid, type] = cid_unpack(key);
@@ -76,7 +79,7 @@ export class ClientWorld extends NetworkWorld {
76
79
  return;
77
80
  }
78
81
  const rpc = this._rpc.getOutgoing();
79
- const ackFrame = this._interpolator.version < 0 ? 0 : this._interpolator.version;
82
+ const ackFrame = this._diffBuffer.version < 0 ? 0 : this._diffBuffer.version;
80
83
  const encoder = new Encoder(this._encodeBuffer);
81
84
  encoder.write(new Client2Server({ ackFrame, input: this._input, rpc }));
82
85
  this._socket.send(encoder.getBuffer());
@@ -95,14 +98,39 @@ export class ClientWorld extends NetworkWorld {
95
98
  }
96
99
  }
97
100
  _pushDiff(sd) {
101
+ // A diff with fromFrame === 0 is a full baseline: the complete authoritative
102
+ // state at sd.toFrame. The server streams these whenever a client falls
103
+ // outside its history window -- most commonly a backgrounded tab, where the
104
+ // render loop (and therefore DiffBuffer.pull) is suspended and acks are
105
+ // throttled, so the server keeps resending the whole world until the client
106
+ // catches up.
107
+ //
108
+ // A baseline is reset-then-rebuild: every server-owned entity is destroyed
109
+ // and then recreated from the snapshot. Destroying first is what makes the
110
+ // rebuild fire each entity's `enter` again, so view systems that attach
111
+ // client-side state on enter (e.g. spacerocks' Drawable draw statements)
112
+ // rebuild it. Reconciling in place instead would re-`attach` onto the living
113
+ // entity, which fires `modified` -- not `enter` -- leaving that client-side
114
+ // state stale or empty. The teardown runs here, at receive time (synchronous,
115
+ // outside the deferred apply queue), so the entities are fully gone before
116
+ // the next apply replays the baseline and recreates them.
98
117
  if (sd.fromFrame === 0) {
99
- this._handleFullBaseline(sd);
100
- }
101
- else {
102
- this._receivingFullBaseline = false;
118
+ // Skip baselines we have already advanced past (duplicates or, with the
119
+ // unordered transport, stragglers). After a reconnect the server may have
120
+ // restarted its frame counter, so a forced reset overrides this.
121
+ if (!this._forceBaselineReset && sd.toFrame <= this._diffBuffer.version) {
122
+ return;
123
+ }
124
+ this._forceBaselineReset = false;
125
+ const initial = !this._baselineApplied;
126
+ this._baselineApplied = true;
127
+ this._destroyNetworkEntities();
128
+ this._diffBuffer.reset();
129
+ this._diffBuffer.push(diffFromStateDiff(sd));
130
+ this.events.emit("reset", { initial, fromFrame: sd.fromFrame, toFrame: sd.toFrame });
131
+ return;
103
132
  }
104
- const diff = diffFromStateDiff(sd);
105
- this._interpolator.push(diff);
133
+ this._diffBuffer.push(diffFromStateDiff(sd));
106
134
  }
107
135
  decodeComponentSnapshot(snapshot) {
108
136
  if (!(snapshot.payload instanceof Uint8Array)) {
@@ -116,7 +144,7 @@ export class ClientWorld extends NetworkWorld {
116
144
  }
117
145
  _applySnapshot(snapshot) {
118
146
  const component = this.decodeComponentSnapshot(snapshot);
119
- const entity = this.getOrCreateEntity(snapshot.eid);
147
+ const entity = this.getOrCreateEntity(snapshot.eid, (e) => e.add(Networked));
120
148
  entity.attach(component);
121
149
  }
122
150
  _removeComponent(eid, type) {
@@ -134,32 +162,25 @@ export class ClientWorld extends NetworkWorld {
134
162
  entity.remove(type);
135
163
  }
136
164
  }
137
- _handleFullBaseline(sd) {
138
- if (this._receivingFullBaseline) {
139
- return;
140
- }
141
- if (!this._needsBaselineAfterDisconnect &&
142
- this._hasReceivedFullBaseline &&
143
- sd.toFrame <= this._interpolator.version) {
144
- return;
145
- }
146
- const initial = !this._hasReceivedFullBaseline;
147
- if (!initial) {
148
- this._interpolator.reset();
149
- }
150
- this._needsBaselineAfterDisconnect = false;
151
- this._hasReceivedFullBaseline = true;
152
- this._receivingFullBaseline = true;
153
- this.events.emit("reset", { initial, fromFrame: sd.fromFrame, toFrame: sd.toFrame });
165
+ // Destroy every network entity so an incoming baseline can recreate them
166
+ // from scratch (re-firing each entity's `enter`). query.forEach wraps in
167
+ // beginDefer/endDefer, so destroying inside the callback is safe.
168
+ _destroyNetworkEntities() {
169
+ this._networkedQuery.forEach((entity) => entity.destroy());
154
170
  }
155
171
  _handleDisconnect() {
156
172
  this._stopAckTimer();
157
- this._receivingFullBaseline = false;
158
- if (this._hasReceivedFullBaseline) {
159
- this._needsBaselineAfterDisconnect = true;
173
+ // A reconnect may land on a server whose frame counter restarted, so the
174
+ // next baseline can carry a lower frame than the one we last saw. Force the
175
+ // next baseline to be adopted regardless of its frame number.
176
+ if (this._baselineApplied) {
177
+ this._forceBaselineReset = true;
160
178
  }
161
179
  this.events.emit("disconnect");
162
180
  }
181
+ _phaseTarget(phase) {
182
+ return (typeof phase === "string" ? this.entity(phase) : phase).add(Phase);
183
+ }
163
184
  _startAckTimer() {
164
185
  if (this._ackTimer !== undefined) {
165
186
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"client_world.js","sourceRoot":"","sources":["../../../src/client_world.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client_world.js","sourceRoot":"","sources":["../../../src/client_world.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,23 @@
1
1
  import { StateDiff, type CID } from "@vworlds/vecs-protocol";
2
- import { type ComponentInstance } from "@vworlds/vecs";
2
+ import { type ComponentInstance, type EID } from "@vworlds/vecs";
3
3
  export interface IPosition {
4
4
  readonly x: number;
5
5
  readonly y: number;
6
6
  }
7
7
  type DecodeComponentSnapshot = (snapshot: ComponentSnapshot) => ComponentInstance;
8
+ /**
9
+ * Blends a source and target component toward render time. `alpha` is the
10
+ * normalized interpolation factor in the range [0, 1], where 0 returns the
11
+ * source value and 1 the target value. The returned value should be a fresh
12
+ * component instance; inputs must not be mutated.
13
+ */
14
+ export type ComponentInterpolator = (source: ComponentInstance, target: ComponentInstance, alpha: number) => ComponentInstance;
8
15
  export declare class ComponentSnapshot {
9
- readonly eid: number;
16
+ readonly eid: EID;
10
17
  readonly type: number;
11
18
  payload: Uint8Array | ComponentInstance;
12
19
  readonly cid: CID;
13
- constructor(eid: number, type: number, payload: Uint8Array | ComponentInstance);
20
+ constructor(eid: EID, type: number, payload: Uint8Array | ComponentInstance);
14
21
  }
15
22
  export declare class Diff {
16
23
  from: number;
@@ -21,10 +28,12 @@ export declare class Diff {
21
28
  constructor(from: number, to: number, removed?: number[] | undefined);
22
29
  get smap(): Map<number, ComponentSnapshot>;
23
30
  set smap(v: Map<number, ComponentSnapshot>);
31
+ getSnapshot(cid: CID): ComponentSnapshot | undefined;
32
+ upsertSnapshot(snapshot: ComponentSnapshot): void;
24
33
  updateSnapshotsFromMap(): void;
25
34
  }
26
35
  export declare function diffFromStateDiff(sd: StateDiff): Diff;
27
- export declare class Interpolator {
36
+ export declare class DiffBuffer {
28
37
  private max_length;
29
38
  private server_tick_interval;
30
39
  private readonly _decodeComponentSnapshot?;
@@ -35,18 +44,25 @@ export declare class Interpolator {
35
44
  version: number;
36
45
  private _tServ;
37
46
  private _lastTime;
47
+ private readonly _componentInterpolators;
38
48
  constructor(max_length?: number, // max bucket length
39
49
  server_tick_interval?: number, // server tick interval FPS configuration
40
- _decodeComponentSnapshot?: DecodeComponentSnapshot | undefined);
50
+ _decodeComponentSnapshot?: DecodeComponentSnapshot | undefined, componentInterpolators?: Iterable<readonly [number, ComponentInterpolator]>);
41
51
  private _updateState;
42
52
  private _pop;
43
53
  pull(now: number): Diff;
44
54
  reset(): void;
45
55
  push(diff: Diff): void;
46
- private _decodePositionSnapshot;
47
- private _interpolatePositions;
56
+ private _decodeSnapshot;
57
+ private _interpolate;
48
58
  }
49
- export declare function merge(a: Diff | undefined, b: Diff, check?: boolean): Diff;
50
- export declare function merge(a: Diff, b: Diff | undefined, check?: boolean): Diff;
51
- export declare function merge(a: Diff | undefined, b: Diff | undefined, check?: boolean): Diff | undefined;
59
+ /**
60
+ * Default {@link ComponentInterpolator} for 2D point components: linearly
61
+ * interpolates the `x` and `y` fields. Exported so callers can interpolate
62
+ * their own position-like components without reimplementing the math.
63
+ */
64
+ export declare const interpolatePosition: ComponentInterpolator;
65
+ export declare function merge(a: Diff | undefined, b: Diff, check?: boolean, mutateAccumulator?: boolean): Diff;
66
+ export declare function merge(a: Diff, b: Diff | undefined, check?: boolean, mutateAccumulator?: boolean): Diff;
67
+ export declare function merge(a: Diff | undefined, b: Diff | undefined, check?: boolean, mutateAccumulator?: boolean): Diff | undefined;
52
68
  export {};
@@ -10,6 +10,12 @@ export class ComponentSnapshot {
10
10
  this.cid = cid_pack(eid, type);
11
11
  }
12
12
  }
13
+ // A Diff carries the component snapshots and removals for a frame range. It
14
+ // keeps two views of the same snapshots: `snapshots` (an ordered array, the
15
+ // form decoded from the wire and consumed by callers) and `smap` (a cid-keyed
16
+ // map, used for fast lookup and overwrite during merge). `smap` is built
17
+ // lazily from `snapshots` on first access. Use `getSnapshot`/`upsertSnapshot`
18
+ // when keyed access should preserve the current representation.
13
19
  export class Diff {
14
20
  constructor(from, to, removed) {
15
21
  this.from = from;
@@ -27,6 +33,25 @@ export class Diff {
27
33
  this._smap = v;
28
34
  this.updateSnapshotsFromMap();
29
35
  }
36
+ getSnapshot(cid) {
37
+ if (this._smap) {
38
+ return this._smap.get(cid);
39
+ }
40
+ return this.snapshots.find((snapshot) => snapshot.cid === cid);
41
+ }
42
+ upsertSnapshot(snapshot) {
43
+ if (this._smap) {
44
+ this._smap.set(snapshot.cid, snapshot);
45
+ this.updateSnapshotsFromMap();
46
+ return;
47
+ }
48
+ const index = this.snapshots.findIndex((existing) => existing.cid === snapshot.cid);
49
+ if (index === -1) {
50
+ this.snapshots.push(snapshot);
51
+ return;
52
+ }
53
+ this.snapshots[index] = snapshot;
54
+ }
30
55
  updateSnapshotsFromMap() {
31
56
  this.snapshots = [...this.smap.values()];
32
57
  }
@@ -40,10 +65,12 @@ export function diffFromStateDiff(sd) {
40
65
  d.removed = sd.removed.map(([eid, type]) => cid_pack(eid, type));
41
66
  return d;
42
67
  }
43
- export class Interpolator {
68
+ export class DiffBuffer {
44
69
  constructor(max_length = MAX_LENGTH, // max bucket length
45
70
  server_tick_interval = 1000 / 60, // server tick interval FPS configuration
46
- _decodeComponentSnapshot) {
71
+ _decodeComponentSnapshot, componentInterpolators = [
72
+ [POSITION_COMPONENT_TYPE, interpolatePosition],
73
+ ]) {
47
74
  this.max_length = max_length;
48
75
  this.server_tick_interval = server_tick_interval;
49
76
  this._decodeComponentSnapshot = _decodeComponentSnapshot;
@@ -65,6 +92,7 @@ export class Interpolator {
65
92
  throw new Error("minimum interpolation bucket length is 2");
66
93
  }
67
94
  this.bucket = Array(this.max_length).fill(undefined);
95
+ this._componentInterpolators = new Map(componentInterpolators);
68
96
  }
69
97
  _updateState(sd) {
70
98
  // apply diff to current state
@@ -110,8 +138,8 @@ export class Interpolator {
110
138
  if (this._tServ === -1) {
111
139
  this._tServ = now;
112
140
  }
113
- // lerpStart is the timestamp of the currently visualized state.
114
- let lerpStart = this._lastTime;
141
+ // interpolationStart is the timestamp of the currently visualized state.
142
+ let interpolationStart = this._lastTime;
115
143
  // The following loop will incorporate (merge) into the
116
144
  // proposed diff (sd) as many snapshots from the bucket
117
145
  // as it needs in order to catch up to server time, that is,
@@ -119,9 +147,11 @@ export class Interpolator {
119
147
  // snapshots until we are behind
120
148
  // or have eaten the whole buffer.
121
149
  for (let i = 0; i < this.bucket.length && now >= this._tServ; i++, this._tServ += this.server_tick_interval) {
122
- // take snapshot on bucket[0] and merge it on to the result:
123
- sd = merge(sd, this.bucket[0], false);
124
- lerpStart = this._tServ;
150
+ // take snapshot on bucket[0] and merge it on to the result. sd is owned
151
+ // exclusively by this pull(), so fold each frame in place to avoid copying
152
+ // the snapshot map on every iteration.
153
+ sd = merge(sd, this.bucket[0], false, true);
154
+ interpolationStart = this._tServ;
125
155
  this._pop(); //remove bucket[0] and shift contents to the left
126
156
  }
127
157
  // skip bucket items that are undefined. At the end of this
@@ -141,7 +171,7 @@ export class Interpolator {
141
171
  // callers can render fake frames between server ticks.
142
172
  const target = this.bucket[0];
143
173
  if (target) {
144
- this._interpolatePositions(sd, target, lerpStart, this._tServ, now);
174
+ this._interpolate(sd, target, interpolationStart, this._tServ, now);
145
175
  this._first = target.to;
146
176
  }
147
177
  else {
@@ -225,53 +255,53 @@ export class Interpolator {
225
255
  this.version = diff.to;
226
256
  }
227
257
  }
228
- _decodePositionSnapshot(snapshot) {
258
+ _decodeSnapshot(snapshot) {
229
259
  if (!(snapshot.payload instanceof Uint8Array)) {
230
- if (!isPosition(snapshot.payload)) {
231
- throw new Error(`Component type ${POSITION_COMPONENT_TYPE} must satisfy IPosition`);
232
- }
233
260
  return snapshot.payload;
234
261
  }
235
262
  if (!this._decodeComponentSnapshot) {
236
- throw new Error("Position interpolation requires a component snapshot decoder");
263
+ throw new Error("Component interpolation requires a component snapshot decoder");
237
264
  }
238
- const component = this._decodeComponentSnapshot(snapshot);
239
- if (!isPosition(component)) {
240
- throw new Error(`Component type ${POSITION_COMPONENT_TYPE} must satisfy IPosition`);
241
- }
242
- return component;
265
+ return this._decodeComponentSnapshot(snapshot);
243
266
  }
244
- _interpolatePositions(sd, target, start, end, now) {
267
+ _interpolate(sd, target, start, end, now) {
268
+ if (this._componentInterpolators.size === 0) {
269
+ return;
270
+ }
271
+ const alpha = end === start ? 1 : (now - start) / (end - start);
245
272
  target.snapshots.forEach((targetSnapshot) => {
246
- if (targetSnapshot.type !== POSITION_COMPONENT_TYPE) {
273
+ const interpolate = this._componentInterpolators.get(targetSnapshot.type);
274
+ if (!interpolate) {
247
275
  return;
248
276
  }
249
- const sourceSnapshot = sd.smap.get(targetSnapshot.cid) ?? this._state.get(targetSnapshot.cid);
277
+ const sourceSnapshot = sd.getSnapshot(targetSnapshot.cid) ?? this._state.get(targetSnapshot.cid);
250
278
  if (!sourceSnapshot) {
251
279
  return;
252
280
  }
253
- const sourcePosition = this._decodePositionSnapshot(sourceSnapshot);
254
- const targetPosition = this._decodePositionSnapshot(targetSnapshot);
255
- const position = lerp(sourcePosition, targetPosition, start, end, now);
256
- sd.smap.set(targetSnapshot.cid, new ComponentSnapshot(targetSnapshot.eid, POSITION_COMPONENT_TYPE, position));
281
+ const source = this._decodeSnapshot(sourceSnapshot);
282
+ const targetComponent = this._decodeSnapshot(targetSnapshot);
283
+ sd.upsertSnapshot(new ComponentSnapshot(targetSnapshot.eid, targetSnapshot.type, interpolate(source, targetComponent, alpha)));
257
284
  });
258
- sd.updateSnapshotsFromMap();
259
285
  }
260
286
  }
261
287
  function isPosition(component) {
262
288
  const candidate = component;
263
289
  return typeof candidate.x === "number" && typeof candidate.y === "number";
264
290
  }
265
- function lerp(a, b, start, end, t) {
266
- if (end === start) {
267
- return b;
291
+ /**
292
+ * Default {@link ComponentInterpolator} for 2D point components: linearly
293
+ * interpolates the `x` and `y` fields. Exported so callers can interpolate
294
+ * their own position-like components without reimplementing the math.
295
+ */
296
+ export const interpolatePosition = (source, target, alpha) => {
297
+ if (!isPosition(source) || !isPosition(target)) {
298
+ throw new Error(`Component type ${POSITION_COMPONENT_TYPE} must satisfy IPosition`);
268
299
  }
269
- const d = end - start;
270
- const position = new b.constructor();
271
- position.x = a.x + ((b.x - a.x) / d) * (t - start);
272
- position.y = a.y + ((b.y - a.y) / d) * (t - start);
273
- return position;
274
- }
300
+ const result = new target.constructor();
301
+ result.x = source.x + (target.x - source.x) * alpha;
302
+ result.y = source.y + (target.y - source.y) * alpha;
303
+ return result;
304
+ };
275
305
  // helper function to add items to a set
276
306
  function addToSet(set, data) {
277
307
  if (!data) {
@@ -281,7 +311,7 @@ function addToSet(set, data) {
281
311
  set.add(item);
282
312
  }
283
313
  }
284
- export function merge(a, b, check = true) {
314
+ export function merge(a, b, check = true, mutateAccumulator = false) {
285
315
  if (!a) {
286
316
  return b;
287
317
  }
@@ -294,21 +324,20 @@ export function merge(a, b, check = true) {
294
324
  // incremented version counter on its own.
295
325
  throw new Error("cannot merge snapshots");
296
326
  }
297
- const m = new Diff(a.from, b.to, undefined);
298
327
  const removed = new Set();
299
328
  addToSet(removed, a.removed);
300
329
  addToSet(removed, b.removed);
301
- const as = new Map(a.smap);
330
+ const as = mutateAccumulator ? a.smap : new Map(a.smap);
302
331
  const bs = b.smap;
303
332
  bs.forEach((s) => {
304
333
  as.set(s.cid, s);
305
334
  removed.delete(s.cid); // undelete re-added entities
306
335
  });
307
336
  removed.forEach((r) => as.delete(r));
308
- if (removed.size) {
309
- m.removed = [...removed];
310
- }
337
+ const m = mutateAccumulator ? a : new Diff(a.from, b.to, undefined);
338
+ m.to = b.to;
339
+ m.removed = removed.size ? [...removed] : undefined;
311
340
  m.smap = as;
312
341
  return m;
313
342
  }
314
- //# sourceMappingURL=interpolator.js.map
343
+ //# sourceMappingURL=diff_buffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff_buffer.js","sourceRoot":"","sources":["../../../src/diff_buffer.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- export { ComponentSnapshot, Diff, Interpolator } from "./interpolator.js";
1
+ export { ComponentSnapshot, Diff, DiffBuffer, interpolatePosition } from "./diff_buffer.js";
2
+ export type { ComponentInterpolator, IPosition } from "./diff_buffer.js";
2
3
  export { ClientWorld } from "./client_world.js";
3
4
  export type { ClientWorldOptions, DgramConnectOptions, InstallSystemsOptions, } from "./client_world.js";
4
- export { worldPath } from "./world_path.js";
5
+ export { worldPath } from "@vworlds/vecs-protocol";
@@ -1,4 +1,4 @@
1
- export { ComponentSnapshot, Diff, Interpolator } from "./interpolator.js";
1
+ export { ComponentSnapshot, Diff, DiffBuffer, interpolatePosition } from "./diff_buffer.js";
2
2
  export { ClientWorld } from "./client_world.js";
3
- export { worldPath } from "./world_path.js";
3
+ export { worldPath } from "@vworlds/vecs-protocol";
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMhD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5F,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMhD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { EID } from "@vworlds/vecs";
1
2
  /** A component id packs an entity id and component type id into a uint32. */
2
3
  export type CID = number;
3
4
  /** Component type ids below this value can fit into packed wire component ids. */
@@ -9,6 +10,6 @@ export declare function getLocalComponentMin(): number;
9
10
  /** Configure the local component type range before constructing networked worlds. */
10
11
  export declare function setLocalComponentMin(value: number): void;
11
12
  /** Pack an entity id and component type id into a uint32 component id. */
12
- export declare function cid_pack(eid: number, type: number): CID;
13
+ export declare function cid_pack(eid: EID, type: number): CID;
13
14
  /** Unpack a uint32 component id into [entity id, component type id]. */
14
- export declare function cid_unpack(cid: CID): [eid: number, type: number];
15
+ export declare function cid_unpack(cid: CID): [eid: EID, type: number];
@@ -24,14 +24,12 @@ export function getLocalComponentMin() {
24
24
  }
25
25
  /** Configure the local component type range before constructing networked worlds. */
26
26
  export function setLocalComponentMin(value) {
27
+ validateLocalComponentMin(value);
27
28
  LOCAL_COMPONENT_MIN = value;
28
- if (isAlignedLocalComponentMin(value)) {
29
- getLocalComponentMin();
30
- componentTypeMask = LOCAL_COMPONENT_MIN - 1;
31
- componentTypeShift = Math.log2(LOCAL_COMPONENT_MIN);
32
- MAX_ENTITY_ID = 2 ** (32 - componentTypeShift) - 1;
33
- MAX_COMPONENT_TYPE = componentTypeMask;
34
- }
29
+ componentTypeMask = value - 1;
30
+ componentTypeShift = Math.log2(value);
31
+ MAX_ENTITY_ID = 2 ** (32 - componentTypeShift) - 1;
32
+ MAX_COMPONENT_TYPE = componentTypeMask;
35
33
  }
36
34
  /** Pack an entity id and component type id into a uint32 component id. */
37
35
  export function cid_pack(eid, type) {
@@ -1 +1 @@
1
- {"version":3,"file":"cid.js","sourceRoot":"","sources":["../../../../vecs-protocol/src/cid.ts"],"names":[],"mappings":"AAGA,kFAAkF;AAClF,MAAM,CAAC,IAAI,mBAAmB,GAAG,GAAG,CAAC;AAErC,+DAA+D;AAC/D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAEhC,IAAI,iBAAiB,GAAG,mBAAmB,GAAG,CAAC,CAAC;AAChD,IAAI,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AACxD,IAAI,aAAa,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;AACvD,IAAI,kBAAkB,GAAG,iBAAiB,CAAC;AAE3C,SAAS,yBAAyB,CAAC,KAAa;IAC9C,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IACxF,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAa;IAC/C,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAClF,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,oBAAoB;IAClC,yBAAyB,CAAC,mBAAmB,CAAC,CAAC;IAC/C,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,mBAAmB,GAAG,KAAK,CAAC;IAC5B,IAAI,0BAA0B,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,oBAAoB,EAAE,CAAC;QACvB,iBAAiB,GAAG,mBAAmB,GAAG,CAAC,CAAC;QAC5C,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACpD,aAAa,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACnD,kBAAkB,GAAG,iBAAiB,CAAC;IACzC,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,IAAY;IAChD,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,iDAAiD,GAAG,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,GAAG,GAAG,aAAa,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,uBAAuB,GAAG,oBAAoB,aAAa,4BAA4B,mBAAmB,IAAI;YAC5G,0DAA0D,CAC7D,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,+CAA+C,IAAI,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,IAAI,GAAG,kBAAkB,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,qBAAqB,IAAI,mCAAmC,kBAAkB,IAAI;YAChF,mDAAmD,mBAAmB,GAAG,CAC5E,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,CAAC,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,GAAG,iBAAiB,CAAC,CAAC,KAAK,CAAC,CAAC;AAC1E,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,UAAU,CAAC,GAAQ;IACjC,OAAO,CAAC,GAAG,KAAK,kBAAkB,EAAE,GAAG,GAAG,iBAAiB,CAAC,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"cid.js","sourceRoot":"","sources":["../../../../vecs-protocol/src/cid.ts"],"names":[],"mappings":"AAKA,kFAAkF;AAClF,MAAM,CAAC,IAAI,mBAAmB,GAAG,GAAG,CAAC;AAErC,+DAA+D;AAC/D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAEhC,IAAI,iBAAiB,GAAG,mBAAmB,GAAG,CAAC,CAAC;AAChD,IAAI,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AACxD,IAAI,aAAa,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;AACvD,IAAI,kBAAkB,GAAG,iBAAiB,CAAC;AAE3C,SAAS,yBAAyB,CAAC,KAAa;IAC9C,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IACxF,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAa;IAC/C,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAClF,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,oBAAoB;IAClC,yBAAyB,CAAC,mBAAmB,CAAC,CAAC;IAC/C,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,yBAAyB,CAAC,KAAK,CAAC,CAAC;IACjC,mBAAmB,GAAG,KAAK,CAAC;IAC5B,iBAAiB,GAAG,KAAK,GAAG,CAAC,CAAC;IAC9B,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,aAAa,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACnD,kBAAkB,GAAG,iBAAiB,CAAC;AACzC,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,QAAQ,CAAC,GAAQ,EAAE,IAAY;IAC7C,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,iDAAiD,GAAG,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,GAAG,GAAG,aAAa,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,uBAAuB,GAAG,oBAAoB,aAAa,4BAA4B,mBAAmB,IAAI;YAC5G,0DAA0D,CAC7D,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,+CAA+C,IAAI,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,IAAI,GAAG,kBAAkB,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,qBAAqB,IAAI,mCAAmC,kBAAkB,IAAI;YAChF,mDAAmD,mBAAmB,GAAG,CAC5E,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,CAAC,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,GAAG,iBAAiB,CAAC,CAAC,KAAK,CAAC,CAAC;AAC1E,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,UAAU,CAAC,GAAQ;IACjC,OAAO,CAAC,GAAG,KAAK,kBAAkB,EAAE,GAAG,GAAG,iBAAiB,CAAC,CAAC;AAC/D,CAAC"}
@@ -3,3 +3,4 @@ export { NetworkWorld, type NetworkWorldOptions, type RegisteredNetworkComponent
3
3
  export { Client2Server, ComponentSnapshot, EncodedSnapshot, Server2Client, StateDiff, type RemovedComponent, } from "./messages.js";
4
4
  export { FIRST_USER_RPC_ID, RPC, RPC_RESPONSE_ID, RPC_TIMEOUT_ERROR, SessionRPC, type RPCHandler, } from "./rpc.js";
5
5
  export type { ConnectionError, VecsSocket, VecsSocketEvents, VecsSocketListener, VecsSocketListenerEvents, } from "./transport.js";
6
+ export { worldPath } from "./world_path.js";
@@ -2,4 +2,5 @@ export { ALL_COMPONENTS, LOCAL_COMPONENT_MIN, cid_pack, cid_unpack, getLocalComp
2
2
  export { NetworkWorld, } from "./network_world.js";
3
3
  export { Client2Server, ComponentSnapshot, EncodedSnapshot, Server2Client, StateDiff, } from "./messages.js";
4
4
  export { FIRST_USER_RPC_ID, RPC, RPC_RESPONSE_ID, RPC_TIMEOUT_ERROR, SessionRPC, } from "./rpc.js";
5
+ export { worldPath } from "./world_path.js";
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../vecs-protocol/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,oBAAoB,EACpB,oBAAoB,GAErB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,YAAY,GAGb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,SAAS,GAEV,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,iBAAiB,EACjB,GAAG,EACH,eAAe,EACf,iBAAiB,EACjB,UAAU,GAEX,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../vecs-protocol/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,oBAAoB,EACpB,oBAAoB,GAErB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,YAAY,GAGb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,SAAS,GAEV,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,iBAAiB,EACjB,GAAG,EACH,eAAe,EACf,iBAAiB,EACjB,UAAU,GAEX,MAAM,UAAU,CAAC;AAQlB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,7 +1,8 @@
1
+ import type { EID } from "@vworlds/vecs";
1
2
  import { Decoder, Encoder, type IEncodable } from "@vworlds/vecs-wire";
2
3
  import { RPC } from "./rpc.js";
3
4
  export declare class ComponentSnapshot implements IEncodable {
4
- eid: number;
5
+ eid: EID;
5
6
  type: number;
6
7
  payload: Uint8Array;
7
8
  constructor(values?: Partial<ComponentSnapshot>);
@@ -10,12 +11,12 @@ export declare class ComponentSnapshot implements IEncodable {
10
11
  }
11
12
  export declare class EncodedSnapshot {
12
13
  bytes: Uint8Array;
13
- eid: number;
14
+ eid: EID;
14
15
  type: number;
15
16
  constructor(bytes: Uint8Array, // contains an already-encoded ComponentSnapshot
16
- eid?: number, type?: number);
17
+ eid?: EID, type?: number);
17
18
  }
18
- export type RemovedComponent = [eid: number, type: number];
19
+ export type RemovedComponent = [eid: EID, type: number];
19
20
  export declare class StateDiff implements IEncodable {
20
21
  toFrame: number;
21
22
  fromFrame: number;
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../../vecs-protocol/src/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../../vecs-protocol/src/messages.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
- import { World, type ComponentClass, type WorldOptions } from "@vworlds/vecs";
1
+ import { World, type ComponentClass, type EID, type WorldOptions } from "@vworlds/vecs";
2
2
  export interface RegisteredNetworkComponent {
3
3
  Class: ComponentClass;
4
4
  type: number;
5
5
  }
6
6
  export interface NetworkWorldOptions extends Omit<WorldOptions, "idPools"> {
7
7
  networkComponents?: readonly ComponentClass[];
8
- entityIdStart?: number;
9
- localEntityIdStart?: number;
8
+ entityIdStart?: EID;
9
+ localEntityIdStart?: EID;
10
10
  networkEntityReuseWaitFrames?: number;
11
11
  }
12
12
  export declare class NetworkWorld extends World {
@@ -1,4 +1,4 @@
1
- import { World } from "@vworlds/vecs";
1
+ import { World, } from "@vworlds/vecs";
2
2
  import { cid_pack, setLocalComponentMin } from "./cid.js";
3
3
  const DEFAULT_ENTITY_ID_START = 1000;
4
4
  const MODULE_ID_RANGE_SIZE = 100;
@@ -1 +1 @@
1
- {"version":3,"file":"network_world.js","sourceRoot":"","sources":["../../../../vecs-protocol/src/network_world.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"network_world.js","sourceRoot":"","sources":["../../../../vecs-protocol/src/network_world.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function worldPath(basePath: string | undefined, worldName: string): string;
@@ -0,0 +1,4 @@
1
+ export function worldPath(basePath = "/rtc/v1/world", worldName) {
2
+ return `${basePath.replace(/\/$/, "")}/${encodeURIComponent(worldName)}`;
3
+ }
4
+ //# sourceMappingURL=world_path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"world_path.js","sourceRoot":"","sources":["../../../../vecs-protocol/src/world_path.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAC,QAAQ,GAAG,eAAe,EAAE,SAAiB;IACrE,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;AAC3E,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"interpolator.js","sourceRoot":"","sources":["../../../src/interpolator.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"world_path.js","sourceRoot":"","sources":["../../../src/world_path.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAC,QAAQ,GAAG,eAAe,EAAE,SAAiB;IACrE,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;AAC3E,CAAC"}