@rapierphysicsplugin/client 1.0.0

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 (83) hide show
  1. package/dist/__tests__/clock-sync.test.d.ts +2 -0
  2. package/dist/__tests__/clock-sync.test.d.ts.map +1 -0
  3. package/dist/__tests__/clock-sync.test.js +63 -0
  4. package/dist/__tests__/clock-sync.test.js.map +1 -0
  5. package/dist/__tests__/interpolator.test.d.ts +2 -0
  6. package/dist/__tests__/interpolator.test.d.ts.map +1 -0
  7. package/dist/__tests__/interpolator.test.js +82 -0
  8. package/dist/__tests__/interpolator.test.js.map +1 -0
  9. package/dist/__tests__/state-reconciler.test.d.ts +2 -0
  10. package/dist/__tests__/state-reconciler.test.d.ts.map +1 -0
  11. package/dist/__tests__/state-reconciler.test.js +86 -0
  12. package/dist/__tests__/state-reconciler.test.js.map +1 -0
  13. package/dist/clock-sync.d.ts +17 -0
  14. package/dist/clock-sync.d.ts.map +1 -0
  15. package/dist/clock-sync.js +63 -0
  16. package/dist/clock-sync.js.map +1 -0
  17. package/dist/index.d.ts +10 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +8 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/input-manager.d.ts +18 -0
  22. package/dist/input-manager.d.ts.map +1 -0
  23. package/dist/input-manager.js +62 -0
  24. package/dist/input-manager.js.map +1 -0
  25. package/dist/interpolator.d.ts +35 -0
  26. package/dist/interpolator.d.ts.map +1 -0
  27. package/dist/interpolator.js +198 -0
  28. package/dist/interpolator.js.map +1 -0
  29. package/dist/networked-rapier-plugin.d.ts +82 -0
  30. package/dist/networked-rapier-plugin.d.ts.map +1 -0
  31. package/dist/networked-rapier-plugin.js +698 -0
  32. package/dist/networked-rapier-plugin.js.map +1 -0
  33. package/dist/rapier-body-ops.d.ts +27 -0
  34. package/dist/rapier-body-ops.d.ts.map +1 -0
  35. package/dist/rapier-body-ops.js +208 -0
  36. package/dist/rapier-body-ops.js.map +1 -0
  37. package/dist/rapier-collision-ops.d.ts +6 -0
  38. package/dist/rapier-collision-ops.d.ts.map +1 -0
  39. package/dist/rapier-collision-ops.js +200 -0
  40. package/dist/rapier-collision-ops.js.map +1 -0
  41. package/dist/rapier-constraint-ops.d.ts +29 -0
  42. package/dist/rapier-constraint-ops.d.ts.map +1 -0
  43. package/dist/rapier-constraint-ops.js +286 -0
  44. package/dist/rapier-constraint-ops.js.map +1 -0
  45. package/dist/rapier-plugin.d.ts +145 -0
  46. package/dist/rapier-plugin.d.ts.map +1 -0
  47. package/dist/rapier-plugin.js +263 -0
  48. package/dist/rapier-plugin.js.map +1 -0
  49. package/dist/rapier-shape-ops.d.ts +21 -0
  50. package/dist/rapier-shape-ops.d.ts.map +1 -0
  51. package/dist/rapier-shape-ops.js +314 -0
  52. package/dist/rapier-shape-ops.js.map +1 -0
  53. package/dist/rapier-types.d.ts +58 -0
  54. package/dist/rapier-types.d.ts.map +1 -0
  55. package/dist/rapier-types.js +4 -0
  56. package/dist/rapier-types.js.map +1 -0
  57. package/dist/state-reconciler.d.ts +28 -0
  58. package/dist/state-reconciler.d.ts.map +1 -0
  59. package/dist/state-reconciler.js +119 -0
  60. package/dist/state-reconciler.js.map +1 -0
  61. package/dist/sync-client.d.ts +110 -0
  62. package/dist/sync-client.d.ts.map +1 -0
  63. package/dist/sync-client.js +514 -0
  64. package/dist/sync-client.js.map +1 -0
  65. package/package.json +21 -0
  66. package/src/__tests__/clock-sync.test.ts +72 -0
  67. package/src/__tests__/interpolator.test.ts +98 -0
  68. package/src/__tests__/state-reconciler.test.ts +102 -0
  69. package/src/clock-sync.ts +77 -0
  70. package/src/index.ts +9 -0
  71. package/src/input-manager.ts +72 -0
  72. package/src/interpolator.ts +256 -0
  73. package/src/networked-rapier-plugin.ts +909 -0
  74. package/src/rapier-body-ops.ts +251 -0
  75. package/src/rapier-collision-ops.ts +229 -0
  76. package/src/rapier-constraint-ops.ts +327 -0
  77. package/src/rapier-plugin.ts +364 -0
  78. package/src/rapier-shape-ops.ts +369 -0
  79. package/src/rapier-types.ts +60 -0
  80. package/src/state-reconciler.ts +151 -0
  81. package/src/sync-client.ts +640 -0
  82. package/tsconfig.json +12 -0
  83. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rapier-shape-ops.js","sourceRoot":"","sources":["../src/rapier-shape-ops.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import type RAPIER from '@dimforge/rapier3d-compat';
2
+ import type { Observable, PhysicsBody, PhysicsShape, PhysicsConstraint, PhysicsMaterial, PhysicsShapeType, IPhysicsCollisionEvent, IBasePhysicsCollisionEvent } from '@babylonjs/core';
3
+ import type { Vector3, Quaternion } from '@babylonjs/core';
4
+ import type { Vec3 } from '@rapierphysicsplugin/shared';
5
+ import { PhysicsConstraintAxisLimitMode, PhysicsConstraintMotorType } from '@babylonjs/core';
6
+ export interface AxisConfig {
7
+ mode?: PhysicsConstraintAxisLimitMode;
8
+ minLimit?: number;
9
+ maxLimit?: number;
10
+ friction?: number;
11
+ motorType?: PhysicsConstraintMotorType;
12
+ motorTarget?: number;
13
+ motorMaxForce?: number;
14
+ }
15
+ export declare function v3toVec(v: Vector3): Vec3;
16
+ export interface RapierPluginState {
17
+ rapier: typeof RAPIER;
18
+ world: RAPIER.World;
19
+ bodyToRigidBody: Map<PhysicsBody, RAPIER.RigidBody>;
20
+ bodyToColliders: Map<PhysicsBody, RAPIER.Collider[]>;
21
+ shapeToColliderDesc: Map<PhysicsShape, RAPIER.ColliderDesc>;
22
+ shapeTypeMap: Map<PhysicsShape, PhysicsShapeType>;
23
+ shapeMaterialMap: Map<PhysicsShape, PhysicsMaterial>;
24
+ shapeDensityMap: Map<PhysicsShape, number>;
25
+ shapeFilterMembership: Map<PhysicsShape, number>;
26
+ shapeFilterCollide: Map<PhysicsShape, number>;
27
+ bodyCollisionObservables: Map<PhysicsBody, Observable<IPhysicsCollisionEvent>>;
28
+ bodyCollisionEndedObservables: Map<PhysicsBody, Observable<IBasePhysicsCollisionEvent>>;
29
+ constraintToJoint: Map<PhysicsConstraint, RAPIER.ImpulseJoint>;
30
+ constraintBodies: Map<PhysicsConstraint, {
31
+ body: PhysicsBody;
32
+ childBody: PhysicsBody;
33
+ }>;
34
+ constraintAxisState: Map<PhysicsConstraint, Map<number, AxisConfig>>;
35
+ constraintEnabled: Map<PhysicsConstraint, boolean>;
36
+ constraintDescriptors: Map<PhysicsConstraint, {
37
+ body: PhysicsBody;
38
+ childBody: PhysicsBody;
39
+ }>;
40
+ collisionCallbackEnabled: Set<PhysicsBody>;
41
+ collisionEndedCallbackEnabled: Set<PhysicsBody>;
42
+ triggerShapes: Set<PhysicsShape>;
43
+ bodyIdToPhysicsBody: Map<string, PhysicsBody>;
44
+ bodyToShape: Map<PhysicsBody, PhysicsShape>;
45
+ shapeToBody: Map<PhysicsShape, PhysicsBody>;
46
+ compoundChildren: Map<PhysicsShape, Array<{
47
+ child: PhysicsShape;
48
+ translation?: Vector3;
49
+ rotation?: Quaternion;
50
+ scale?: Vector3;
51
+ }>>;
52
+ bodyEventMask: Map<PhysicsBody, number>;
53
+ colliderHandleToBody: Map<number, PhysicsBody>;
54
+ onCollisionObservable: Observable<IPhysicsCollisionEvent>;
55
+ onCollisionEndedObservable: Observable<IBasePhysicsCollisionEvent>;
56
+ onTriggerCollisionObservable: Observable<IBasePhysicsCollisionEvent>;
57
+ }
58
+ //# sourceMappingURL=rapier-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rapier-types.d.ts","sourceRoot":"","sources":["../src/rapier-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export function v3toVec(v) {
2
+ return { x: v.x, y: v.y, z: v.z };
3
+ }
4
+ //# sourceMappingURL=rapier-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rapier-types.js","sourceRoot":"","sources":["../src/rapier-types.ts"],"names":[],"mappings":"AAyBA,MAAM,UAAU,OAAO,CAAC,CAAU;IAChC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACpC,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { BodyState, RoomSnapshot, ClientInput } from '@rapierphysicsplugin/shared';
2
+ import { Interpolator } from './interpolator.js';
3
+ export interface ReconciliationResult {
4
+ /** Bodies that the local client controls — apply corrections */
5
+ localCorrections: Map<string, BodyState>;
6
+ /** Bodies controlled by remote players — use interpolated states */
7
+ remoteStates: Map<string, BodyState>;
8
+ }
9
+ export declare class StateReconciler {
10
+ private interpolator;
11
+ private localBodyIds;
12
+ private pendingInputs;
13
+ private lastServerTick;
14
+ constructor(interpolator?: Interpolator);
15
+ setLocalBodies(bodyIds: string[]): void;
16
+ addLocalBody(bodyId: string): void;
17
+ removeLocalBody(bodyId: string): void;
18
+ addPendingInput(input: ClientInput): void;
19
+ processServerState(snapshot: RoomSnapshot): ReconciliationResult;
20
+ getInterpolatedRemoteState(bodyId: string, currentTime: number): BodyState | null;
21
+ getPendingInputs(): ClientInput[];
22
+ get lastProcessedServerTick(): number;
23
+ getInterpolator(): Interpolator;
24
+ clear(): void;
25
+ }
26
+ export declare function needsCorrection(predicted: BodyState, authoritative: BodyState): boolean;
27
+ export declare function blendBodyState(current: BodyState, target: BodyState): BodyState;
28
+ //# sourceMappingURL=state-reconciler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-reconciler.d.ts","sourceRoot":"","sources":["../src/state-reconciler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAc,MAAM,6BAA6B,CAAC;AAMpG,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,WAAW,oBAAoB;IACnC,gEAAgE;IAChE,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzC,oEAAoE;IACpE,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACtC;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,cAAc,CAAK;gBAEf,YAAY,CAAC,EAAE,YAAY;IAIvC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAIvC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIlC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIrC,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAIzC,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,oBAAoB;IA0BhE,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAIjF,gBAAgB,IAAI,WAAW,EAAE;IAIjC,IAAI,uBAAuB,IAAI,MAAM,CAEpC;IAED,eAAe,IAAI,YAAY;IAI/B,KAAK,IAAI,IAAI;CAMd;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,GAAG,OAAO,CAMvF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,SAAS,CAQ/E"}
@@ -0,0 +1,119 @@
1
+ import { RECONCILIATION_THRESHOLD, POSITION_LERP_SPEED, ROTATION_SLERP_SPEED, } from '@rapierphysicsplugin/shared';
2
+ import { Interpolator } from './interpolator.js';
3
+ export class StateReconciler {
4
+ constructor(interpolator) {
5
+ this.localBodyIds = new Set();
6
+ this.pendingInputs = [];
7
+ this.lastServerTick = 0;
8
+ this.interpolator = interpolator ?? new Interpolator();
9
+ }
10
+ setLocalBodies(bodyIds) {
11
+ this.localBodyIds = new Set(bodyIds);
12
+ }
13
+ addLocalBody(bodyId) {
14
+ this.localBodyIds.add(bodyId);
15
+ }
16
+ removeLocalBody(bodyId) {
17
+ this.localBodyIds.delete(bodyId);
18
+ }
19
+ addPendingInput(input) {
20
+ this.pendingInputs.push(input);
21
+ }
22
+ processServerState(snapshot) {
23
+ const result = {
24
+ localCorrections: new Map(),
25
+ remoteStates: new Map(),
26
+ };
27
+ this.lastServerTick = snapshot.tick;
28
+ // Discard inputs that the server has already processed
29
+ this.pendingInputs = this.pendingInputs.filter(input => input.tick > snapshot.tick);
30
+ for (const body of snapshot.bodies) {
31
+ if (this.localBodyIds.has(body.id)) {
32
+ // Local body — check if correction needed
33
+ result.localCorrections.set(body.id, body);
34
+ }
35
+ else {
36
+ // Remote body — feed to interpolator (render loop queries at proper render time)
37
+ this.interpolator.addSnapshot(body.id, body, snapshot.timestamp);
38
+ }
39
+ }
40
+ return result;
41
+ }
42
+ getInterpolatedRemoteState(bodyId, currentTime) {
43
+ return this.interpolator.getInterpolatedState(bodyId, currentTime);
44
+ }
45
+ getPendingInputs() {
46
+ return this.pendingInputs;
47
+ }
48
+ get lastProcessedServerTick() {
49
+ return this.lastServerTick;
50
+ }
51
+ getInterpolator() {
52
+ return this.interpolator;
53
+ }
54
+ clear() {
55
+ this.localBodyIds.clear();
56
+ this.pendingInputs = [];
57
+ this.interpolator.clear();
58
+ this.lastServerTick = 0;
59
+ }
60
+ }
61
+ export function needsCorrection(predicted, authoritative) {
62
+ const dx = predicted.position.x - authoritative.position.x;
63
+ const dy = predicted.position.y - authoritative.position.y;
64
+ const dz = predicted.position.z - authoritative.position.z;
65
+ const distSq = dx * dx + dy * dy + dz * dz;
66
+ return distSq > RECONCILIATION_THRESHOLD * RECONCILIATION_THRESHOLD;
67
+ }
68
+ export function blendBodyState(current, target) {
69
+ return {
70
+ id: current.id,
71
+ position: lerpVec3(current.position, target.position, POSITION_LERP_SPEED),
72
+ rotation: slerpQuat(current.rotation, target.rotation, ROTATION_SLERP_SPEED),
73
+ linVel: target.linVel,
74
+ angVel: target.angVel,
75
+ };
76
+ }
77
+ function lerpVec3(a, b, t) {
78
+ return {
79
+ x: a.x + (b.x - a.x) * t,
80
+ y: a.y + (b.y - a.y) * t,
81
+ z: a.z + (b.z - a.z) * t,
82
+ };
83
+ }
84
+ function slerpQuat(a, b, t) {
85
+ let dot = a.x * b.x + a.y * b.y + a.z * b.z + a.w * b.w;
86
+ let bx = b.x, by = b.y, bz = b.z, bw = b.w;
87
+ if (dot < 0) {
88
+ dot = -dot;
89
+ bx = -bx;
90
+ by = -by;
91
+ bz = -bz;
92
+ bw = -bw;
93
+ }
94
+ if (dot > 0.9995) {
95
+ const len = Math.sqrt((a.x + (bx - a.x) * t) ** 2 +
96
+ (a.y + (by - a.y) * t) ** 2 +
97
+ (a.z + (bz - a.z) * t) ** 2 +
98
+ (a.w + (bw - a.w) * t) ** 2);
99
+ return {
100
+ x: (a.x + (bx - a.x) * t) / len,
101
+ y: (a.y + (by - a.y) * t) / len,
102
+ z: (a.z + (bz - a.z) * t) / len,
103
+ w: (a.w + (bw - a.w) * t) / len,
104
+ };
105
+ }
106
+ const theta0 = Math.acos(dot);
107
+ const theta = theta0 * t;
108
+ const sinTheta = Math.sin(theta);
109
+ const sinTheta0 = Math.sin(theta0);
110
+ const s0 = Math.cos(theta) - dot * sinTheta / sinTheta0;
111
+ const s1 = sinTheta / sinTheta0;
112
+ return {
113
+ x: s0 * a.x + s1 * bx,
114
+ y: s0 * a.y + s1 * by,
115
+ z: s0 * a.z + s1 * bz,
116
+ w: s0 * a.w + s1 * bw,
117
+ };
118
+ }
119
+ //# sourceMappingURL=state-reconciler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-reconciler.js","sourceRoot":"","sources":["../src/state-reconciler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ import type { BodyDescriptor, CollisionEventData, ConstraintDescriptor, RoomSnapshot, InputAction } from '@rapierphysicsplugin/shared';
2
+ import type { MeshBinaryMessage, GeometryDefData, MeshRefData, MaterialDefData, TextureDefData } from '@rapierphysicsplugin/shared';
3
+ import { ClockSyncClient } from './clock-sync.js';
4
+ import { StateReconciler } from './state-reconciler.js';
5
+ import { InputManager } from './input-manager.js';
6
+ type StateUpdateCallback = (state: RoomSnapshot) => void;
7
+ type BodyAddedCallback = (body: BodyDescriptor) => void;
8
+ type BodyRemovedCallback = (bodyId: string) => void;
9
+ type SimulationStartedCallback = (snapshot: RoomSnapshot) => void;
10
+ type CollisionEventsCallback = (events: CollisionEventData[]) => void;
11
+ type ConstraintAddedCallback = (constraint: ConstraintDescriptor) => void;
12
+ type ConstraintRemovedCallback = (constraintId: string) => void;
13
+ type MeshBinaryCallback = (msg: MeshBinaryMessage) => void;
14
+ type GeometryDefCallback = (data: GeometryDefData) => void;
15
+ type MeshRefCallback = (data: MeshRefData) => void;
16
+ type MaterialDefCallback = (data: MaterialDefData) => void;
17
+ type TextureDefCallback = (data: TextureDefData) => void;
18
+ export declare class PhysicsSyncClient {
19
+ private ws;
20
+ private clockSync;
21
+ private reconciler;
22
+ private inputManager;
23
+ private clientId;
24
+ private roomId;
25
+ private indexToId;
26
+ private idToIndex;
27
+ private fullStateMap;
28
+ private _simulationRunning;
29
+ private _bytesSent;
30
+ private _bytesReceived;
31
+ private stateUpdateCallbacks;
32
+ private bodyAddedCallbacks;
33
+ private bodyRemovedCallbacks;
34
+ private simulationStartedCallbacks;
35
+ private collisionEventsCallbacks;
36
+ private constraintAddedCallbacks;
37
+ private constraintRemovedCallbacks;
38
+ private meshBinaryCallbacks;
39
+ private geometryDefCallbacks;
40
+ private meshRefCallbacks;
41
+ private materialDefCallbacks;
42
+ private textureDefCallbacks;
43
+ private connectResolve;
44
+ private connectReject;
45
+ private joinResolve;
46
+ private createResolve;
47
+ constructor();
48
+ connect(url: string): Promise<void>;
49
+ createRoom(roomId: string, initialBodies: BodyDescriptor[], gravity?: {
50
+ x: number;
51
+ y: number;
52
+ z: number;
53
+ }): Promise<void>;
54
+ joinRoom(roomId: string): Promise<RoomSnapshot>;
55
+ leaveRoom(): void;
56
+ sendInput(actions: InputAction[]): void;
57
+ addLocalBody(bodyId: string): void;
58
+ removeLocalBody(bodyId: string): void;
59
+ addBody(body: BodyDescriptor): void;
60
+ removeBody(bodyId: string): void;
61
+ addConstraint(constraint: ConstraintDescriptor): void;
62
+ removeConstraint(constraintId: string): void;
63
+ onStateUpdate(callback: StateUpdateCallback): void;
64
+ onBodyAdded(callback: BodyAddedCallback): void;
65
+ onBodyRemoved(callback: BodyRemovedCallback): void;
66
+ onSimulationStarted(callback: SimulationStartedCallback): void;
67
+ onCollisionEvents(callback: CollisionEventsCallback): void;
68
+ onConstraintAdded(callback: ConstraintAddedCallback): void;
69
+ onConstraintRemoved(callback: ConstraintRemovedCallback): void;
70
+ onMeshBinary(callback: MeshBinaryCallback): void;
71
+ onGeometryDef(callback: GeometryDefCallback): void;
72
+ onMeshRef(callback: MeshRefCallback): void;
73
+ onMaterialDef(callback: MaterialDefCallback): void;
74
+ onTextureDef(callback: TextureDefCallback): void;
75
+ /** Send pre-encoded binary mesh data directly over the WebSocket (no msgpackr wrapping). */
76
+ sendMeshBinary(encoded: Uint8Array): void;
77
+ /** Send pre-encoded GEOMETRY_DEF directly over the WebSocket. */
78
+ sendGeometryDef(encoded: Uint8Array): void;
79
+ /** Send pre-encoded MESH_REF directly over the WebSocket. */
80
+ sendMeshRef(encoded: Uint8Array): void;
81
+ /** Send pre-encoded MATERIAL_DEF directly over the WebSocket. */
82
+ sendMaterialDef(encoded: Uint8Array): void;
83
+ /** Send pre-encoded TEXTURE_DEF directly over the WebSocket. */
84
+ sendTextureDef(encoded: Uint8Array): void;
85
+ startSimulation(): void;
86
+ get simulationRunning(): boolean;
87
+ /** Total number of bodies the client knows about (including sleeping/unchanged ones) */
88
+ get totalBodyCount(): number;
89
+ disconnect(): void;
90
+ private initBodyIdMap;
91
+ private addBodyIdMapping;
92
+ private initFullState;
93
+ /**
94
+ * Merge partial delta bodies into the full state map.
95
+ * Returns the merged (complete) body states for the bodies that were in the delta.
96
+ */
97
+ private mergeDelta;
98
+ private handleMessage;
99
+ private sendClientInput;
100
+ private send;
101
+ getReconciler(): StateReconciler;
102
+ getClockSync(): ClockSyncClient;
103
+ getInputManager(): InputManager;
104
+ getClientId(): string | null;
105
+ getRoomId(): string | null;
106
+ get bytesSent(): number;
107
+ get bytesReceived(): number;
108
+ }
109
+ export {};
110
+ //# sourceMappingURL=sync-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-client.d.ts","sourceRoot":"","sources":["../src/sync-client.ts"],"names":[],"mappings":"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"}