@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.
- package/node_modules/@vworlds/vecs-protocol/package.json +1 -1
- package/node_modules/@vworlds/vecs-protocol/src/cid.d.ts +3 -2
- package/node_modules/@vworlds/vecs-protocol/src/cid.js +5 -7
- package/node_modules/@vworlds/vecs-protocol/src/cid.js.map +1 -1
- package/node_modules/@vworlds/vecs-protocol/src/index.d.ts +1 -0
- package/node_modules/@vworlds/vecs-protocol/src/index.js +1 -0
- package/node_modules/@vworlds/vecs-protocol/src/index.js.map +1 -1
- package/node_modules/@vworlds/vecs-protocol/src/messages.d.ts +5 -4
- package/node_modules/@vworlds/vecs-protocol/src/messages.js.map +1 -1
- package/node_modules/@vworlds/vecs-protocol/src/network_world.d.ts +3 -3
- package/node_modules/@vworlds/vecs-protocol/src/network_world.js +1 -1
- package/node_modules/@vworlds/vecs-protocol/src/network_world.js.map +1 -1
- package/node_modules/@vworlds/vecs-protocol/src/world_path.js.map +1 -0
- package/package.json +4 -4
- package/vecs-client/src/client_world.d.ts +16 -8
- package/vecs-client/src/client_world.js +58 -37
- package/vecs-client/src/client_world.js.map +1 -1
- package/vecs-client/src/{interpolator.d.ts → diff_buffer.d.ts} +26 -10
- package/vecs-client/src/{interpolator.js → diff_buffer.js} +71 -42
- package/vecs-client/src/diff_buffer.js.map +1 -0
- package/vecs-client/src/index.d.ts +3 -2
- package/vecs-client/src/index.js +2 -2
- package/vecs-client/src/index.js.map +1 -1
- package/vecs-protocol/src/cid.d.ts +3 -2
- package/vecs-protocol/src/cid.js +5 -7
- package/vecs-protocol/src/cid.js.map +1 -1
- package/vecs-protocol/src/index.d.ts +1 -0
- package/vecs-protocol/src/index.js +1 -0
- package/vecs-protocol/src/index.js.map +1 -1
- package/vecs-protocol/src/messages.d.ts +5 -4
- package/vecs-protocol/src/messages.js.map +1 -1
- package/vecs-protocol/src/network_world.d.ts +3 -3
- package/vecs-protocol/src/network_world.js +1 -1
- package/vecs-protocol/src/network_world.js.map +1 -1
- package/vecs-protocol/src/world_path.d.ts +1 -0
- package/vecs-protocol/src/world_path.js +4 -0
- package/vecs-protocol/src/world_path.js.map +1 -0
- package/vecs-client/src/interpolator.js.map +0 -1
- package/vecs-client/src/world_path.js.map +0 -1
- /package/{vecs-client → node_modules/@vworlds/vecs-protocol}/src/world_path.d.ts +0 -0
- /package/{vecs-client → node_modules/@vworlds/vecs-protocol}/src/world_path.js +0 -0
|
@@ -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:
|
|
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:
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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":"
|
|
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:
|
|
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:
|
|
14
|
+
eid: EID;
|
|
14
15
|
type: number;
|
|
15
16
|
constructor(bytes: Uint8Array, // contains an already-encoded ComponentSnapshot
|
|
16
|
-
eid?:
|
|
17
|
+
eid?: EID, type?: number);
|
|
17
18
|
}
|
|
18
|
-
export type RemovedComponent = [eid:
|
|
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":"
|
|
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?:
|
|
9
|
-
localEntityIdStart?:
|
|
8
|
+
entityIdStart?: EID;
|
|
9
|
+
localEntityIdStart?: EID;
|
|
10
10
|
networkEntityReuseWaitFrames?: number;
|
|
11
11
|
}
|
|
12
12
|
export declare class NetworkWorld extends World {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network_world.js","sourceRoot":"","sources":["../../../../vecs-protocol/src/network_world.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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.
|
|
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
|
-
"@vworlds/vecs-protocol": "1.0.
|
|
21
|
-
"@vworlds/vecs-wire": "1.0.
|
|
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
|
|
2
|
+
import { type ComponentInstance, type Entity } from "@vworlds/vecs";
|
|
3
3
|
import { EventEmitter } from "eventemitter3";
|
|
4
|
-
import { ComponentSnapshot } from "./
|
|
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 |
|
|
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
|
|
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
|
|
44
|
-
private
|
|
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
|
|
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 {
|
|
5
|
-
|
|
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.
|
|
19
|
-
this.
|
|
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.
|
|
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 ??
|
|
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.
|
|
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.
|
|
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
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
this.
|
|
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
|
-
|
|
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
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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
|
-
|
|
158
|
-
|
|
159
|
-
|
|
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":"AAAA,OAAO,EACL,aAAa,EAEb,aAAa,EACb,UAAU,EAEV,cAAc,EACd,UAAU,EACV,YAAY,
|
|
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:
|
|
16
|
+
readonly eid: EID;
|
|
10
17
|
readonly type: number;
|
|
11
18
|
payload: Uint8Array | ComponentInstance;
|
|
12
19
|
readonly cid: CID;
|
|
13
|
-
constructor(eid:
|
|
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
|
|
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
|
|
47
|
-
private
|
|
56
|
+
private _decodeSnapshot;
|
|
57
|
+
private _interpolate;
|
|
48
58
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
|
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
|
-
//
|
|
114
|
-
let
|
|
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
|
-
|
|
124
|
-
|
|
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.
|
|
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
|
-
|
|
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("
|
|
263
|
+
throw new Error("Component interpolation requires a component snapshot decoder");
|
|
237
264
|
}
|
|
238
|
-
|
|
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
|
-
|
|
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
|
-
|
|
273
|
+
const interpolate = this._componentInterpolators.get(targetSnapshot.type);
|
|
274
|
+
if (!interpolate) {
|
|
247
275
|
return;
|
|
248
276
|
}
|
|
249
|
-
const sourceSnapshot = sd.
|
|
277
|
+
const sourceSnapshot = sd.getSnapshot(targetSnapshot.cid) ?? this._state.get(targetSnapshot.cid);
|
|
250
278
|
if (!sourceSnapshot) {
|
|
251
279
|
return;
|
|
252
280
|
}
|
|
253
|
-
const
|
|
254
|
-
const
|
|
255
|
-
|
|
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
|
-
|
|
266
|
-
|
|
267
|
-
|
|
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
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
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
|
-
|
|
309
|
-
|
|
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=
|
|
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,
|
|
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 "
|
|
5
|
+
export { worldPath } from "@vworlds/vecs-protocol";
|
package/vecs-client/src/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { ComponentSnapshot, Diff,
|
|
1
|
+
export { ComponentSnapshot, Diff, DiffBuffer, interpolatePosition } from "./diff_buffer.js";
|
|
2
2
|
export { ClientWorld } from "./client_world.js";
|
|
3
|
-
export { worldPath } from "
|
|
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,
|
|
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:
|
|
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:
|
|
15
|
+
export declare function cid_unpack(cid: CID): [eid: EID, type: number];
|
package/vecs-protocol/src/cid.js
CHANGED
|
@@ -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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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":"
|
|
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:
|
|
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:
|
|
14
|
+
eid: EID;
|
|
14
15
|
type: number;
|
|
15
16
|
constructor(bytes: Uint8Array, // contains an already-encoded ComponentSnapshot
|
|
16
|
-
eid?:
|
|
17
|
+
eid?: EID, type?: number);
|
|
17
18
|
}
|
|
18
|
-
export type RemovedComponent = [eid:
|
|
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":"
|
|
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?:
|
|
9
|
-
localEntityIdStart?:
|
|
8
|
+
entityIdStart?: EID;
|
|
9
|
+
localEntityIdStart?: EID;
|
|
10
10
|
networkEntityReuseWaitFrames?: number;
|
|
11
11
|
}
|
|
12
12
|
export declare class NetworkWorld extends World {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network_world.js","sourceRoot":"","sources":["../../../../vecs-protocol/src/network_world.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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 @@
|
|
|
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":"AAAA,OAAO,EACL,cAAc,EACd,iBAAiB,IAAI,qBAAqB,EAE1C,QAAQ,EACR,UAAU,GAEX,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAUlC,MAAM,OAAO,iBAAiB;IAM5B,YAAmB,GAAW,EAAE,IAAY,EAAE,OAAuC;QACnF,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;CACF;AAED,MAAM,OAAO,IAAI;IAIf,YACS,IAAY,EACZ,EAAU,EACV,OAAkB;QAFlB,SAAI,GAAJ,IAAI,CAAQ;QACZ,OAAE,GAAF,EAAE,CAAQ;QACV,YAAO,GAAP,OAAO,CAAW;QANpB,cAAS,GAAwB,EAAE,CAAC;IAOxC,CAAC;IAEJ,IAAW,IAAI;QACb,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,CAC1B,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAC9C,CAAC,CAAC;IACL,CAAC;IAED,IAAW,IAAI,CAAC,CAAiC;QAC/C,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC;IAEM,sBAAsB;QAC3B,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC;CACF;AAED,MAAM,UAAU,iBAAiB,CAAC,EAAa;IAC7C,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC1C,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACrE,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,OAAO,YAAY;IAuBvB,YACU,aAAqB,UAAU,EAAE,oBAAoB;IACrD,uBAA+B,IAAI,GAAG,EAAE,EAAE,yCAAyC;IAC1E,wBAAkD;QAF3D,eAAU,GAAV,UAAU,CAAqB;QAC/B,yBAAoB,GAApB,oBAAoB,CAAoB;QAC/B,6BAAwB,GAAxB,wBAAwB,CAA0B;QAzBrE,4DAA4D;QACpD,WAAM,GAAG,IAAI,GAAG,EAA6B,CAAC;QAC9C,kBAAa,GAAW,CAAC,CAAC;QAElC,2DAA2D;QAC3D,kDAAkD;QAC1C,WAAM,GAAuB,SAAS,CAAC;QAK/C,4DAA4D;QAC5D,2BAA2B;QACpB,YAAO,GAAW,CAAC,CAAC,CAAC;QAE5B,6CAA6C;QACrC,WAAM,GAAG,CAAC,CAAC,CAAC;QAEpB,0EAA0E;QAC1E,wEAAwE;QAChE,cAAS,GAAG,CAAC,CAAC,CAAC;QAOrB,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;IAEO,YAAY,CAAC,EAAQ;QAC3B,8BAA8B;QAC9B,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QACF,EAAE,CAAC,OAAgC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAClD,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;oBAC7B,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;wBAC/B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC1B,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,EAAE,CAAC;IAC7B,CAAC;IAED,8CAA8C;IAC9C,qCAAqC;IAC7B,IAAI;QACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;IAClD,CAAC;IAED,gDAAgD;IAChD,gCAAgC;IACzB,IAAI,CAAC,GAAW;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QACrE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,0DAA0D;YAC1D,qEAAqE;YACrE,6CAA6C;YAC7C,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACnE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;YACxB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;YACrB,OAAO,EAAE,CAAC,CAAC,oBAAoB;QACjC,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QACpB,CAAC;QAED,gEAAgE;QAChE,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAE/B,uDAAuD;QACvD,uDAAuD;QACvD,4DAA4D;QAC5D,iDAAiD;QACjD,gCAAgC;QAChC,kCAAkC;QAClC,KACE,IAAI,CAAC,GAAG,CAAC,EACT,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,EAC5C,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,oBAAoB,EAC7C,CAAC;YACD,4DAA4D;YAC5D,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACtC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;YACxB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,iDAAiD;QAChE,CAAC;QAED,2DAA2D;QAC3D,iEAAiE;QACjE,sEAAsE;QACtE,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC;gBACvB,MAAM;YACR,CAAC;YACD,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,OAAO,IAAI,IAAI,CAAC,oBAAoB,CAAC;QACvC,CAAC;QACD,uEAAuE;QACvE,wEAAwE;QACxE,uDAAuD;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACpE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QAC1B,CAAC;QAED,kEAAkE;QAClE,yCAAyC;QACzC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,8DAA8D;IAC9D,gDAAgD;IACzC,IAAI,CAAC,IAAU;QACpB,gEAAgE;QAChE,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,mDAAmD;QACnD,4DAA4D;QAC5D,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpC,CAAC;QAED,qEAAqE;QACrE,2CAA2C;QAC3C,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAElC,oDAAoD;QACpD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,OAAO,CAAC,mBAAmB;QAC7B,CAAC;QACD,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAChC,yCAAyC;YACzC,0CAA0C;YAC1C,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC5B,6CAA6C;gBAC7C,uDAAuD;gBACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;gBACtB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBACvB,KAAK,GAAG,CAAC,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,8CAA8C;gBAC9C,qBAAqB;gBACrB,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACjC,CAAC;YACD,sDAAsD;YACtD,+BAA+B;YAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAChD,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtC,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;YAClD,CAAC;QACH,CAAC;QACD,yDAAyD;QACzD,0DAA0D;QAC1D,qBAAqB;QACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;QAErD,oEAAoE;QACpE,6BAA6B;QAC7B,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEhC,+DAA+D;QAC/D,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAEO,uBAAuB,CAAC,QAA2B;QACzD,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,YAAY,UAAU,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,kBAAkB,uBAAuB,yBAAyB,CAAC,CAAC;YACtF,CAAC;YACD,OAAO,QAAQ,CAAC,OAAO,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAClF,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QAC1D,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,kBAAkB,uBAAuB,yBAAyB,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,qBAAqB,CAC3B,EAAQ,EACR,MAAY,EACZ,KAAa,EACb,GAAW,EACX,GAAW;QAEX,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE;YAC1C,IAAI,cAAc,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;gBACpD,OAAO;YACT,CAAC;YACD,MAAM,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAC9F,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,OAAO;YACT,CAAC;YACD,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;YACpE,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;YACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACvE,EAAE,CAAC,IAAI,CAAC,GAAG,CACT,cAAc,CAAC,GAAG,EAClB,IAAI,iBAAiB,CAAC,cAAc,CAAC,GAAG,EAAE,uBAAuB,EAAE,QAAQ,CAAC,CAC7E,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,sBAAsB,EAAE,CAAC;IAC9B,CAAC;CACF;AAED,SAAS,UAAU,CAAC,SAA4B;IAC9C,MAAM,SAAS,GAAG,SAA+B,CAAC;IAClD,OAAO,OAAO,SAAS,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,SAAS,CAAC,CAAC,KAAK,QAAQ,CAAC;AAC5E,CAAC;AAED,SAAS,IAAI,CACX,CAAoB,EACpB,CAAoB,EACpB,KAAa,EACb,GAAW,EACX,CAAS;IAET,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;QAClB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC;IACtB,MAAM,QAAQ,GAAG,IAAK,CAAC,CAAC,WAAsE,EAAE,CAAC;IACjG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;IACnD,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;IACnD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,wCAAwC;AACxC,SAAS,QAAQ,CAAI,GAAW,EAAE,IAA6B;IAC7D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO;IACT,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;AACH,CAAC;AAMD,MAAM,UAAU,KAAK,CAAC,CAAmB,EAAE,CAAmB,EAAE,KAAK,GAAG,IAAI;IAC1E,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QACzC,4BAA4B;QAC5B,iDAAiD;QACjD,0CAA0C;QAC1C,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IAE5C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,OAA+B,CAAC,CAAC;IACrD,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,OAA+B,CAAC,CAAC;IAErD,MAAM,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;IAClB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACf,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACjB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,6BAA6B;IACtD,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAErC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,CAAC,CAAC,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IAC3B,CAAC;IACD,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;IAEZ,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -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"}
|
|
File without changes
|
|
File without changes
|