@woosh/meep-engine 2.138.0 → 2.138.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/bundle-worker-image-decoder.js +1 -1
- package/build/bundle-worker-terrain.js +1 -1
- package/package.json +1 -1
- package/src/core/assert.d.ts +6 -0
- package/src/core/assert.d.ts.map +1 -1
- package/src/core/assert.js +16 -3
- package/src/core/binary/half_to_float_uint16.js +1 -1
- package/src/core/binary/to_half_float_uint16.d.ts.map +1 -1
- package/src/core/binary/to_half_float_uint16.js +9 -4
- package/src/core/collection/table/RowFirstTableSpec.js +1 -1
- package/src/core/events/signal/Signal.d.ts.map +1 -1
- package/src/core/events/signal/Signal.js +53 -0
- package/src/core/math/spline/spline3_hermite_intersection_spline3_hermite_2d.d.ts +3 -3
- package/src/core/math/spline/spline3_hermite_intersection_spline3_hermite_2d.js +3 -3
- package/src/engine/Clock.d.ts +2 -2
- package/src/engine/Clock.js +2 -2
- package/src/engine/graphics/ecs/highlight/system/RenderableHighlightSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/highlight/system/RenderableHighlightSystem.js +17 -29
- package/src/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.js +18 -31
- package/src/engine/network/NetworkSession.d.ts +386 -0
- package/src/engine/network/NetworkSession.d.ts.map +1 -0
- package/src/engine/network/NetworkSession.js +1841 -0
- package/src/engine/network/PriorityFetch.d.ts.map +1 -1
- package/src/engine/network/PriorityFetch.js +3 -2
- package/src/engine/network/adapters/QuaternionInterpolationAdapter.d.ts +14 -0
- package/src/engine/network/adapters/QuaternionInterpolationAdapter.d.ts.map +1 -0
- package/src/engine/network/adapters/QuaternionInterpolationAdapter.js +44 -0
- package/src/engine/network/adapters/TransformInterpolationAdapter.d.ts +18 -0
- package/src/engine/network/adapters/TransformInterpolationAdapter.d.ts.map +1 -0
- package/src/engine/network/adapters/TransformInterpolationAdapter.js +79 -0
- package/src/engine/network/adapters/TransformReplicationAdapter.d.ts +37 -0
- package/src/engine/network/adapters/TransformReplicationAdapter.d.ts.map +1 -0
- package/src/engine/network/adapters/TransformReplicationAdapter.js +87 -0
- package/src/engine/network/adapters/Vector3InterpolationAdapter.d.ts +18 -0
- package/src/engine/network/adapters/Vector3InterpolationAdapter.d.ts.map +1 -0
- package/src/engine/network/adapters/Vector3InterpolationAdapter.js +46 -0
- package/src/engine/network/convertPathToURL.js +107 -107
- package/src/engine/network/core/quantize/quantize_float.d.ts +54 -0
- package/src/engine/network/core/quantize/quantize_float.d.ts.map +1 -0
- package/src/engine/network/core/quantize/quantize_float.js +66 -0
- package/src/engine/network/core/quantize/quantize_position.d.ts +44 -0
- package/src/engine/network/core/quantize/quantize_position.d.ts.map +1 -0
- package/src/engine/network/core/quantize/quantize_position.js +54 -0
- package/src/engine/network/core/sequence/ack_bitfield.d.ts +47 -0
- package/src/engine/network/core/sequence/ack_bitfield.d.ts.map +1 -0
- package/src/engine/network/core/sequence/ack_bitfield.js +77 -0
- package/src/engine/network/core/sequence/seq16.d.ts +53 -0
- package/src/engine/network/core/sequence/seq16.d.ts.map +1 -0
- package/src/engine/network/core/sequence/seq16.js +69 -0
- package/src/engine/network/core/sequence/seq32.d.ts +55 -0
- package/src/engine/network/core/sequence/seq32.d.ts.map +1 -0
- package/src/engine/network/core/sequence/seq32.js +73 -0
- package/src/engine/network/diagnostics/BandwidthMeter.d.ts +76 -0
- package/src/engine/network/diagnostics/BandwidthMeter.d.ts.map +1 -0
- package/src/engine/network/diagnostics/BandwidthMeter.js +155 -0
- package/src/engine/network/diagnostics/ReplayLog.d.ts +74 -0
- package/src/engine/network/diagnostics/ReplayLog.d.ts.map +1 -0
- package/src/engine/network/diagnostics/ReplayLog.js +137 -0
- package/src/engine/network/diagnostics/SyncTest.d.ts +74 -0
- package/src/engine/network/diagnostics/SyncTest.d.ts.map +1 -0
- package/src/engine/network/diagnostics/SyncTest.js +151 -0
- package/src/engine/network/ecs/NetworkSystem.d.ts +57 -0
- package/src/engine/network/ecs/NetworkSystem.d.ts.map +1 -0
- package/src/engine/network/ecs/NetworkSystem.js +84 -0
- package/src/engine/network/ecs/components/NetworkIdentity.d.ts +58 -0
- package/src/engine/network/ecs/components/NetworkIdentity.d.ts.map +1 -0
- package/src/engine/network/ecs/components/NetworkIdentity.js +73 -0
- package/src/engine/network/ecs/serialization/NetworkIdentitySerializationAdapter.d.ts +40 -0
- package/src/engine/network/ecs/serialization/NetworkIdentitySerializationAdapter.d.ts.map +1 -0
- package/src/engine/network/ecs/serialization/NetworkIdentitySerializationAdapter.js +64 -0
- package/src/engine/network/orchestrator/NetworkPeer.d.ts +389 -0
- package/src/engine/network/orchestrator/NetworkPeer.d.ts.map +1 -0
- package/src/engine/network/orchestrator/NetworkPeer.js +1107 -0
- package/src/engine/network/orchestrator/ServerAuthoritativeClient.d.ts +260 -0
- package/src/engine/network/orchestrator/ServerAuthoritativeClient.d.ts.map +1 -0
- package/src/engine/network/orchestrator/ServerAuthoritativeClient.js +425 -0
- package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts +217 -0
- package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts.map +1 -0
- package/src/engine/network/orchestrator/ServerAuthoritativeServer.js +562 -0
- package/src/engine/network/replication/Replicator.d.ts +134 -0
- package/src/engine/network/replication/Replicator.d.ts.map +1 -0
- package/src/engine/network/replication/Replicator.js +334 -0
- package/src/engine/network/replication/ScopeFilter.d.ts +64 -0
- package/src/engine/network/replication/ScopeFilter.d.ts.map +1 -0
- package/src/engine/network/replication/ScopeFilter.js +71 -0
- package/src/engine/network/sim/ActionLog.d.ts +94 -0
- package/src/engine/network/sim/ActionLog.d.ts.map +1 -0
- package/src/engine/network/sim/ActionLog.js +189 -0
- package/src/engine/network/sim/BinaryInterpolationAdapter.d.ts +58 -0
- package/src/engine/network/sim/BinaryInterpolationAdapter.d.ts.map +1 -0
- package/src/engine/network/sim/BinaryInterpolationAdapter.js +56 -0
- package/src/engine/network/sim/InterpolationLog.d.ts +165 -0
- package/src/engine/network/sim/InterpolationLog.d.ts.map +1 -0
- package/src/engine/network/sim/InterpolationLog.js +583 -0
- package/src/engine/network/sim/ReplicatedComponentRegistry.d.ts +59 -0
- package/src/engine/network/sim/ReplicatedComponentRegistry.d.ts.map +1 -0
- package/src/engine/network/sim/ReplicatedComponentRegistry.js +140 -0
- package/src/engine/network/sim/RewindEngine.d.ts +66 -0
- package/src/engine/network/sim/RewindEngine.d.ts.map +1 -0
- package/src/engine/network/sim/RewindEngine.js +182 -0
- package/src/engine/network/sim/SimAction.d.ts +133 -0
- package/src/engine/network/sim/SimAction.d.ts.map +1 -0
- package/src/engine/network/sim/SimAction.js +273 -0
- package/src/engine/network/sim/SimActionExecutor.d.ts +109 -0
- package/src/engine/network/sim/SimActionExecutor.d.ts.map +1 -0
- package/src/engine/network/sim/SimActionExecutor.js +238 -0
- package/src/engine/network/sim/SimActionRegistry.d.ts +60 -0
- package/src/engine/network/sim/SimActionRegistry.d.ts.map +1 -0
- package/src/engine/network/sim/SimActionRegistry.js +128 -0
- package/src/engine/network/sim/SmoothingState.d.ts +87 -0
- package/src/engine/network/sim/SmoothingState.d.ts.map +1 -0
- package/src/engine/network/sim/SmoothingState.js +223 -0
- package/src/engine/network/sim/Snapshotter.d.ts +98 -0
- package/src/engine/network/sim/Snapshotter.d.ts.map +1 -0
- package/src/engine/network/sim/Snapshotter.js +206 -0
- package/src/engine/network/sim/SpeculationLog.d.ts +53 -0
- package/src/engine/network/sim/SpeculationLog.d.ts.map +1 -0
- package/src/engine/network/sim/SpeculationLog.js +84 -0
- package/src/engine/network/state/Baseline.d.ts +48 -0
- package/src/engine/network/state/Baseline.d.ts.map +1 -0
- package/src/engine/network/state/Baseline.js +83 -0
- package/src/engine/network/state/ChangedEntitySet.d.ts +94 -0
- package/src/engine/network/state/ChangedEntitySet.d.ts.map +1 -0
- package/src/engine/network/state/ChangedEntitySet.js +256 -0
- package/src/engine/network/state/InputRing.d.ts +90 -0
- package/src/engine/network/state/InputRing.d.ts.map +1 -0
- package/src/engine/network/state/InputRing.js +173 -0
- package/src/engine/network/state/MutationLedger.d.ts +82 -0
- package/src/engine/network/state/MutationLedger.d.ts.map +1 -0
- package/src/engine/network/state/MutationLedger.js +182 -0
- package/src/engine/network/state/PriorityAccumulator.d.ts +104 -0
- package/src/engine/network/state/PriorityAccumulator.d.ts.map +1 -0
- package/src/engine/network/state/PriorityAccumulator.js +180 -0
- package/src/engine/network/state/ReplicationSlotTable.d.ts +78 -0
- package/src/engine/network/state/ReplicationSlotTable.d.ts.map +1 -0
- package/src/engine/network/state/ReplicationSlotTable.js +211 -0
- package/src/engine/network/time/AdaptiveRenderDelay.d.ts +128 -0
- package/src/engine/network/time/AdaptiveRenderDelay.d.ts.map +1 -0
- package/src/engine/network/time/AdaptiveRenderDelay.js +258 -0
- package/src/engine/network/time/JitterBuffer.d.ts +58 -0
- package/src/engine/network/time/JitterBuffer.d.ts.map +1 -0
- package/src/engine/network/time/JitterBuffer.js +116 -0
- package/src/engine/network/time/TimeDilation.d.ts +49 -0
- package/src/engine/network/time/TimeDilation.d.ts.map +1 -0
- package/src/engine/network/time/TimeDilation.js +62 -0
- package/src/engine/network/time/TimeSync.d.ts +68 -0
- package/src/engine/network/time/TimeSync.d.ts.map +1 -0
- package/src/engine/network/time/TimeSync.js +153 -0
- package/src/engine/network/transport/Channel.d.ts +74 -0
- package/src/engine/network/transport/Channel.d.ts.map +1 -0
- package/src/engine/network/transport/Channel.js +272 -0
- package/src/engine/network/transport/LoopbackTransport.d.ts +59 -0
- package/src/engine/network/transport/LoopbackTransport.d.ts.map +1 -0
- package/src/engine/network/transport/LoopbackTransport.js +194 -0
- package/src/engine/network/transport/ReliableCommandPipeline.d.ts +139 -0
- package/src/engine/network/transport/ReliableCommandPipeline.d.ts.map +1 -0
- package/src/engine/network/transport/ReliableCommandPipeline.js +291 -0
- package/src/engine/network/transport/Transport.d.ts +109 -0
- package/src/engine/network/transport/Transport.d.ts.map +1 -0
- package/src/engine/network/transport/Transport.js +119 -0
- package/src/engine/network/transport/adapters/NodeUDPTransport.d.ts +60 -0
- package/src/engine/network/transport/adapters/NodeUDPTransport.d.ts.map +1 -0
- package/src/engine/network/transport/adapters/NodeUDPTransport.js +206 -0
- package/src/engine/network/transport/adapters/SimulatedTransport.d.ts +110 -0
- package/src/engine/network/transport/adapters/SimulatedTransport.d.ts.map +1 -0
- package/src/engine/network/transport/adapters/SimulatedTransport.js +252 -0
- package/src/engine/network/transport/adapters/WebRTCDataChannelTransport.d.ts +33 -0
- package/src/engine/network/transport/adapters/WebRTCDataChannelTransport.d.ts.map +1 -0
- package/src/engine/network/transport/adapters/WebRTCDataChannelTransport.js +131 -0
- package/src/engine/network/transport/adapters/WebSocketTransport.d.ts +49 -0
- package/src/engine/network/transport/adapters/WebSocketTransport.d.ts.map +1 -0
- package/src/engine/network/transport/adapters/WebSocketTransport.js +180 -0
- package/src/engine/network/transport/adapters/WebTransportTransport.d.ts +73 -0
- package/src/engine/network/transport/adapters/WebTransportTransport.d.ts.map +1 -0
- package/src/engine/network/transport/adapters/WebTransportTransport.js +210 -0
- package/src/engine/network/transport/fragments/FragmentAssembler.d.ts +104 -0
- package/src/engine/network/transport/fragments/FragmentAssembler.d.ts.map +1 -0
- package/src/engine/network/transport/fragments/FragmentAssembler.js +291 -0
- package/src/engine/network/transport/fragments/FragmentRetention.d.ts +103 -0
- package/src/engine/network/transport/fragments/FragmentRetention.d.ts.map +1 -0
- package/src/engine/network/transport/fragments/FragmentRetention.js +194 -0
- package/src/engine/network/transport/fragments/fragment_send.d.ts +53 -0
- package/src/engine/network/transport/fragments/fragment_send.d.ts.map +1 -0
- package/src/engine/network/transport/fragments/fragment_send.js +147 -0
- package/src/engine/network/transport/fragments/packet_size.d.ts +93 -0
- package/src/engine/network/transport/fragments/packet_size.d.ts.map +1 -0
- package/src/engine/network/transport/fragments/packet_size.js +101 -0
- package/src/engine/network/xhr.js +23 -23
- package/src/engine/simulation/Ticker.d.ts +7 -0
- package/src/engine/simulation/Ticker.d.ts.map +1 -1
- package/src/engine/simulation/Ticker.js +15 -4
- package/src/engine/network/DataChannel.js +0 -1210
- package/src/engine/network/RemoteController.d.ts +0 -23
- package/src/engine/network/RemoteController.d.ts.map +0 -1
- package/src/engine/network/RemoteController.js +0 -114
- package/src/engine/network/remoteEditor.d.ts +0 -2
- package/src/engine/network/remoteEditor.d.ts.map +0 -1
- package/src/engine/network/remoteEditor.js +0 -142
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export class RemoteController {
|
|
2
|
-
/**
|
|
3
|
-
*
|
|
4
|
-
* @param {string} tag
|
|
5
|
-
* @param {function(BinaryBuffer):Promise} handler
|
|
6
|
-
* @param {*} thisArg
|
|
7
|
-
*/
|
|
8
|
-
addHandler(tag: string, handler: (arg0: BinaryBuffer) => Promise<any>, thisArg: any): void;
|
|
9
|
-
/**
|
|
10
|
-
* NOTE: entire buffer contents will be sent up to current position
|
|
11
|
-
* @param {string} tag
|
|
12
|
-
* @param {BinaryBuffer} data
|
|
13
|
-
*/
|
|
14
|
-
send(tag: string, data: BinaryBuffer): void;
|
|
15
|
-
/**
|
|
16
|
-
*
|
|
17
|
-
* @param {WebSocket} v
|
|
18
|
-
*/
|
|
19
|
-
set socket(arg: WebSocket);
|
|
20
|
-
#private;
|
|
21
|
-
}
|
|
22
|
-
import { BinaryBuffer } from "../../core/binary/BinaryBuffer.js";
|
|
23
|
-
//# sourceMappingURL=RemoteController.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RemoteController.d.ts","sourceRoot":"","sources":["../../../../src/engine/network/RemoteController.js"],"names":[],"mappings":"AAUA;IAWI;;;;;OAKG;IACH,gBAJW,MAAM,kBACG,YAAY,uCAc/B;IAED;;;;OAIG;IACH,UAHW,MAAM,QACN,YAAY,QActB;IAoCD;;;OAGG;IACH,2BAcC;;CAEJ;6BAjH4B,mCAAmC"}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { BinaryBuffer } from "../../core/binary/BinaryBuffer.js";
|
|
2
|
-
import { assert } from "../../core/assert.js";
|
|
3
|
-
|
|
4
|
-
/*
|
|
5
|
-
packet header structure
|
|
6
|
-
- TAG : 1 x utf8 string
|
|
7
|
-
- ID : 1 x uint32
|
|
8
|
-
- PAYLOAD : N x bytes
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
export class RemoteController {
|
|
12
|
-
/**
|
|
13
|
-
*
|
|
14
|
-
* @type {WebSocket|null}
|
|
15
|
-
*/
|
|
16
|
-
#socket = null;
|
|
17
|
-
|
|
18
|
-
#handlers = {};
|
|
19
|
-
|
|
20
|
-
#bound_event_handler = this.#handle_message_event.bind(this)
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
*
|
|
24
|
-
* @param {string} tag
|
|
25
|
-
* @param {function(BinaryBuffer):Promise} handler
|
|
26
|
-
* @param {*} thisArg
|
|
27
|
-
*/
|
|
28
|
-
addHandler(tag, handler, thisArg) {
|
|
29
|
-
const existing = this.#handlers[tag];
|
|
30
|
-
|
|
31
|
-
if (existing !== undefined) {
|
|
32
|
-
throw new Error(`Handler for tag '${tag}' already exists`);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
this.#handlers[tag] = {
|
|
36
|
-
method: handler,
|
|
37
|
-
scope: thisArg
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* NOTE: entire buffer contents will be sent up to current position
|
|
43
|
-
* @param {string} tag
|
|
44
|
-
* @param {BinaryBuffer} data
|
|
45
|
-
*/
|
|
46
|
-
send(tag, data) {
|
|
47
|
-
assert.isString(tag, 'tag');
|
|
48
|
-
|
|
49
|
-
const buffer = new BinaryBuffer();
|
|
50
|
-
|
|
51
|
-
buffer.writeUTF8String(tag);
|
|
52
|
-
|
|
53
|
-
buffer.writeBytes(data.raw_bytes, 0, data.position);
|
|
54
|
-
|
|
55
|
-
buffer.trim();
|
|
56
|
-
|
|
57
|
-
this.#socket.send(buffer.data);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
*
|
|
62
|
-
* @param {MessageEvent} event
|
|
63
|
-
* @private
|
|
64
|
-
*/
|
|
65
|
-
async #handle_message_event(event) {
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* @type {ArrayBuffer}
|
|
69
|
-
*/
|
|
70
|
-
const data = event.data;
|
|
71
|
-
|
|
72
|
-
// console.log(`received message `, data);
|
|
73
|
-
|
|
74
|
-
const buffer = BinaryBuffer.fromArrayBuffer(data);
|
|
75
|
-
|
|
76
|
-
// read packet ID
|
|
77
|
-
const packet_id = buffer.readUTF8String();
|
|
78
|
-
|
|
79
|
-
const handler = this.#handlers[packet_id];
|
|
80
|
-
|
|
81
|
-
if (handler === undefined) {
|
|
82
|
-
console.error(`No handler for packet '${packet_id}'`);
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
try {
|
|
87
|
-
await handler.method.call(handler.scope, buffer);
|
|
88
|
-
} catch (e) {
|
|
89
|
-
//
|
|
90
|
-
console.error(`Failed to process remote call to '${packet_id}':`, e);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
*
|
|
96
|
-
* @param {WebSocket} v
|
|
97
|
-
*/
|
|
98
|
-
set socket(v) {
|
|
99
|
-
if (this.#socket !== null) {
|
|
100
|
-
// TODO unbind socket
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
this.#socket = v;
|
|
104
|
-
|
|
105
|
-
this.#socket.binaryType = "arraybuffer";
|
|
106
|
-
|
|
107
|
-
this.#socket.addEventListener('open', () => {
|
|
108
|
-
console.log('socket connection open');
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
this.#socket.addEventListener('message', this.#bound_event_handler);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"remoteEditor.d.ts","sourceRoot":"","sources":["../../../../src/engine/network/remoteEditor.js"],"names":[],"mappings":""}
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { EngineHarness } from "../EngineHarness.js";
|
|
2
|
-
import { RemoteController } from "./RemoteController.js";
|
|
3
|
-
import { ShadedGeometrySystem } from "../graphics/ecs/mesh-v2/ShadedGeometrySystem.js";
|
|
4
|
-
import { initializeGameBinarySerializationRegistry } from "../../../../model/game/GameBinarySerializationRegistry.js";
|
|
5
|
-
import { BinaryObjectSerializationAdapter } from "../ecs/storage/binary/object/BinaryObjectSerializationAdapter.js";
|
|
6
|
-
import BinaryBufferDeSerializer from "../ecs/storage/BinaryBufferDeSerializer.js";
|
|
7
|
-
|
|
8
|
-
const harness = new EngineHarness();
|
|
9
|
-
|
|
10
|
-
class LocalAPI {
|
|
11
|
-
/**
|
|
12
|
-
*
|
|
13
|
-
* @type {Engine|null}
|
|
14
|
-
*/
|
|
15
|
-
engine = null;
|
|
16
|
-
|
|
17
|
-
_object_serde = new BinaryObjectSerializationAdapter();
|
|
18
|
-
|
|
19
|
-
get _registry() {
|
|
20
|
-
return this.engine.binarySerializationRegistry;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
*
|
|
25
|
-
* @return {EntityComponentDataset}
|
|
26
|
-
* @private
|
|
27
|
-
*/
|
|
28
|
-
get _current_dataset() {
|
|
29
|
-
return this.engine.entityManager.dataset;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Server sent us a new world state
|
|
34
|
-
* @param {BinaryBuffer} buffer
|
|
35
|
-
*/
|
|
36
|
-
async writeCurrentSceneDataset(buffer) {
|
|
37
|
-
const deSerializer = new BinaryBufferDeSerializer();
|
|
38
|
-
|
|
39
|
-
const engine = this.engine;
|
|
40
|
-
|
|
41
|
-
deSerializer.registry = this._registry;
|
|
42
|
-
|
|
43
|
-
const ecd = this._current_dataset;
|
|
44
|
-
|
|
45
|
-
ecd.clear();
|
|
46
|
-
|
|
47
|
-
const task = deSerializer.process(buffer, engine, ecd);
|
|
48
|
-
|
|
49
|
-
const p = task.promise();
|
|
50
|
-
|
|
51
|
-
engine.executor.run(task);
|
|
52
|
-
|
|
53
|
-
await p;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
*
|
|
58
|
-
* @param {BinaryBuffer} buffer
|
|
59
|
-
* @return {Promise<void>}
|
|
60
|
-
*/
|
|
61
|
-
async createEntity(buffer) {
|
|
62
|
-
// create entity on the current scene with a given ID
|
|
63
|
-
|
|
64
|
-
const entity_id = buffer.readUintVar();
|
|
65
|
-
|
|
66
|
-
this._current_dataset.createEntitySpecific(entity_id);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
async addComponentToEntity(buffer) {
|
|
70
|
-
const entity_id = buffer.readUintVar();
|
|
71
|
-
|
|
72
|
-
this._object_serde.registry = this._registry;
|
|
73
|
-
const component_instance = this._object_serde.deserialize(buffer);
|
|
74
|
-
|
|
75
|
-
this._current_dataset.addComponentToEntity(entity_id, component_instance);
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
*
|
|
83
|
-
* @param {RemoteController} controller
|
|
84
|
-
* @param {Object} api
|
|
85
|
-
*/
|
|
86
|
-
function attachLocalAPI(controller, api) {
|
|
87
|
-
for (const apiKey in api) {
|
|
88
|
-
|
|
89
|
-
controller.addHandler(apiKey, api[apiKey], api);
|
|
90
|
-
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
*
|
|
97
|
-
* @param {Engine} engine
|
|
98
|
-
* @return {Promise<void>}
|
|
99
|
-
*/
|
|
100
|
-
async function main(engine) {
|
|
101
|
-
|
|
102
|
-
await EngineHarness.buildBasics({
|
|
103
|
-
engine
|
|
104
|
-
});
|
|
105
|
-
|
|
106
|
-
initializeGameBinarySerializationRegistry(engine.binarySerializationRegistry);
|
|
107
|
-
|
|
108
|
-
const remote = new RemoteController();
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
const api = new LocalAPI();
|
|
112
|
-
api.engine = engine;
|
|
113
|
-
|
|
114
|
-
Object.getOwnPropertyNames(Object.getPrototypeOf(api))
|
|
115
|
-
.forEach(name => {
|
|
116
|
-
if (name.startsWith("_")) {
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
if (name === "constructor") {
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
if (typeof api[name] !== "function") {
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
remote.addHandler(name, api[name], api);
|
|
129
|
-
});
|
|
130
|
-
|
|
131
|
-
remote.socket = new WebSocket('ws://localhost:9020');
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
harness.initialize({
|
|
135
|
-
configuration(config, engine) {
|
|
136
|
-
|
|
137
|
-
config.addSystem(new ShadedGeometrySystem(engine));
|
|
138
|
-
|
|
139
|
-
}
|
|
140
|
-
}).then(main);
|
|
141
|
-
|
|
142
|
-
|