@needle-tools/engine 4.1.0-beta.2 → 4.1.0-beta.3
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/CHANGELOG.md +3 -0
- package/dist/needle-engine.bundle.js +655 -673
- package/dist/needle-engine.bundle.light.js +786 -804
- package/dist/needle-engine.bundle.light.min.js +65 -65
- package/dist/needle-engine.bundle.light.umd.cjs +44 -44
- package/dist/needle-engine.bundle.min.js +65 -65
- package/dist/needle-engine.bundle.umd.cjs +44 -44
- package/lib/engine/engine_networking_auto.js +6 -11
- package/lib/engine/engine_networking_auto.js.map +1 -1
- package/lib/engine-components-experimental/networking/PlayerSync.d.ts +4 -1
- package/lib/engine-components-experimental/networking/PlayerSync.js +16 -29
- package/lib/engine-components-experimental/networking/PlayerSync.js.map +1 -1
- package/package.json +1 -1
- package/plugins/vite/transform.js +3 -3
- package/src/engine/engine_networking_auto.ts +7 -22
- package/src/engine-components-experimental/networking/PlayerSync.ts +17 -36
|
@@ -26,13 +26,11 @@ const syncerHandler = new ComponentsSyncerManager();
|
|
|
26
26
|
class ComponentPropertiesSyncer {
|
|
27
27
|
comp;
|
|
28
28
|
constructor(comp) {
|
|
29
|
-
// console.log("CREATE NEW SYNC", comp.name, comp.guid);
|
|
30
29
|
this.comp = comp;
|
|
31
30
|
}
|
|
32
31
|
// private getters: { [key: string]: Function } = {};
|
|
33
32
|
hasChanges = false;
|
|
34
33
|
changedProperties = {};
|
|
35
|
-
// private data = {};
|
|
36
34
|
get networkingKey() {
|
|
37
35
|
return this.comp.guid;
|
|
38
36
|
}
|
|
@@ -79,30 +77,27 @@ class ComponentPropertiesSyncer {
|
|
|
79
77
|
return;
|
|
80
78
|
}
|
|
81
79
|
for (const name in this.changedProperties) {
|
|
82
|
-
const guid = this.comp.guid + "/" + name;
|
|
83
80
|
const value = this.changedProperties[name];
|
|
84
81
|
if (debug)
|
|
85
|
-
console.log("SEND", this.comp.
|
|
86
|
-
net.send(this.networkingKey, { guid, data: value }, SendQueue.Queued);
|
|
82
|
+
console.log("SEND", this.comp.guid, this.networkingKey);
|
|
83
|
+
net.send(this.networkingKey, { guid: this.comp.guid, property: name, data: value }, SendQueue.Queued);
|
|
84
|
+
delete this.changedProperties[name];
|
|
87
85
|
}
|
|
88
86
|
};
|
|
89
87
|
onHandleReceiving = (val) => {
|
|
90
88
|
if (debug)
|
|
91
|
-
console.log("RECEIVE", this.comp.name, this.comp.guid, val);
|
|
89
|
+
console.log("SYNCFIELD RECEIVE", this.comp.name, this.comp.guid, val);
|
|
92
90
|
if (!this._isInit)
|
|
93
91
|
return;
|
|
94
92
|
if (!this.comp)
|
|
95
93
|
return;
|
|
96
94
|
// check if this change belongs to this component
|
|
97
|
-
if (val.guid
|
|
95
|
+
if (val.guid !== this.comp.guid) {
|
|
98
96
|
return;
|
|
99
97
|
}
|
|
100
|
-
const [_guid, key] = val.guid.split("/");
|
|
101
|
-
if (debug)
|
|
102
|
-
console.log("RECEIVED", this.comp.name, this.comp.guid, val);
|
|
103
98
|
try {
|
|
104
99
|
this._isReceiving = true;
|
|
105
|
-
this.comp[
|
|
100
|
+
this.comp[val.property] = val.data;
|
|
106
101
|
}
|
|
107
102
|
catch (err) {
|
|
108
103
|
console.error(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine_networking_auto.js","sourceRoot":"","sources":["../../src/engine/engine_networking_auto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAsB,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE7E,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,MAAM,KAAK,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;AAExC,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AACrC,MAAM,uBAAuB;IACjB,QAAQ,GAAiD,EAAE,CAAC;IAEpE,iBAAiB,CAAC,IAAgB;QAC9B,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,IAAI,yBAAyB,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC;QAC1C,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,YAAY,CAAC,MAAiC;QAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5C,CAAC;CACJ;AACD,MAAM,aAAa,GAAG,IAAI,uBAAuB,EAAE,CAAC;AAEpD;;GAEG;AACH,MAAM,yBAAyB;IAE3B,IAAI,CAAa;IAEjB,YAAY,IAAgB;QACxB,
|
|
1
|
+
{"version":3,"file":"engine_networking_auto.js","sourceRoot":"","sources":["../../src/engine/engine_networking_auto.ts"],"names":[],"mappings":"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"}
|
|
@@ -70,11 +70,14 @@ export declare class PlayerState extends Behaviour {
|
|
|
70
70
|
dontDestroy: boolean;
|
|
71
71
|
get isLocalPlayer(): boolean;
|
|
72
72
|
private onOwnerChange;
|
|
73
|
+
/** @internal */
|
|
73
74
|
awake(): void;
|
|
74
|
-
|
|
75
|
+
/** @internal */
|
|
75
76
|
start(): Promise<void>;
|
|
76
77
|
/** this tells the server that this client has been destroyed and the networking message for the instantiate will be removed */
|
|
77
78
|
doDestroy(): void;
|
|
79
|
+
/** @internal */
|
|
78
80
|
onDestroy(): void;
|
|
81
|
+
private onUserLeftRoom;
|
|
79
82
|
}
|
|
80
83
|
export {};
|
|
@@ -92,6 +92,8 @@ export class PlayerSync extends Behaviour {
|
|
|
92
92
|
const instance = await this._localInstance;
|
|
93
93
|
if (instance) {
|
|
94
94
|
const pl = GameObject.getComponentsInChildren(instance, PlayerState);
|
|
95
|
+
if (debug)
|
|
96
|
+
console.log(`PlayerSync.createInstance: found ${pl?.length} PlayerState components. Owner: ${this.context.connection.connectionId}`);
|
|
95
97
|
if (pl?.length) {
|
|
96
98
|
for (const state of pl)
|
|
97
99
|
state.owner = this.context.connection.connectionId;
|
|
@@ -205,7 +207,7 @@ export class PlayerState extends Behaviour {
|
|
|
205
207
|
}
|
|
206
208
|
onOwnerChange(newOwner, oldOwner) {
|
|
207
209
|
if (debug)
|
|
208
|
-
console.log(
|
|
210
|
+
console.log(`PlayerSync.onOwnerChange: ${oldOwner} → ${newOwner} (me: ${this.context.connection.connectionId})`);
|
|
209
211
|
// Remove from local owner array if it was local before
|
|
210
212
|
const index = PlayerState._local.indexOf(this);
|
|
211
213
|
if (index >= 0)
|
|
@@ -233,34 +235,17 @@ export class PlayerState extends Behaviour {
|
|
|
233
235
|
this.dispatchEvent(evt);
|
|
234
236
|
PlayerState.dispatchEvent(PlayerStateEvent.OwnerChanged, evt);
|
|
235
237
|
}
|
|
238
|
+
/** @internal */
|
|
236
239
|
awake() {
|
|
237
240
|
PlayerState.all.push(this);
|
|
238
241
|
if (debug)
|
|
239
242
|
console.log("Registered new PlayerState", this.guid, PlayerState.all.length - 1, PlayerState.all);
|
|
240
243
|
this.context.connection.beginListen(RoomEvents.UserLeftRoom, this.onUserLeftRoom);
|
|
241
244
|
}
|
|
242
|
-
|
|
243
|
-
if (model.userId === this.owner) {
|
|
244
|
-
if (debug)
|
|
245
|
-
console.log("PLAYERSYNC LEFT", this.owner);
|
|
246
|
-
this.doDestroy();
|
|
247
|
-
return;
|
|
248
|
-
}
|
|
249
|
-
};
|
|
245
|
+
/** @internal */
|
|
250
246
|
async start() {
|
|
251
247
|
if (debug)
|
|
252
248
|
console.log("PLAYERSTATE.START, owner: " + this.owner, this.context.connection.usersInRoom([]));
|
|
253
|
-
// generate number from owner
|
|
254
|
-
// if (this.owner) {
|
|
255
|
-
// // string to number
|
|
256
|
-
// let num = 0;
|
|
257
|
-
// for (let i = 0; i < this.owner.length; i++) {
|
|
258
|
-
// num += this.owner.charCodeAt(i);
|
|
259
|
-
// }
|
|
260
|
-
// console.log(num)
|
|
261
|
-
// num = num / 1000
|
|
262
|
-
// this.gameObject.position.y = num;
|
|
263
|
-
// }
|
|
264
249
|
// If a player is spawned but not in the room anymore we want to destroy it
|
|
265
250
|
// this might happen in a case where all users get disconnected at once and the server
|
|
266
251
|
// still has the syncInstantiate messages that are sent to all clients
|
|
@@ -294,22 +279,16 @@ export class PlayerState extends Behaviour {
|
|
|
294
279
|
}, 2000);
|
|
295
280
|
}
|
|
296
281
|
}
|
|
297
|
-
// onEnable() {
|
|
298
|
-
// if (debug) this.startCoroutine(this.debugRoutine());
|
|
299
|
-
// }
|
|
300
|
-
// *debugRoutine() {
|
|
301
|
-
// while (!this.destroyed && this.activeAndEnabled) {
|
|
302
|
-
// Gizmos.DrawLabel(this.gameObject.worldPosition, this.owner ?? "no owner");
|
|
303
|
-
// yield;
|
|
304
|
-
// }
|
|
305
|
-
// }
|
|
306
282
|
/** this tells the server that this client has been destroyed and the networking message for the instantiate will be removed */
|
|
307
283
|
doDestroy() {
|
|
308
284
|
if (debug)
|
|
309
285
|
console.log("PlayerSync.doDestroy → syncDestroy", this.name);
|
|
310
286
|
syncDestroy(this.gameObject, this.context.connection, true, { saveInRoom: false });
|
|
311
287
|
}
|
|
288
|
+
/** @internal */
|
|
312
289
|
onDestroy() {
|
|
290
|
+
if (debug)
|
|
291
|
+
console.warn("PlayerState.onDestroy", this.owner);
|
|
313
292
|
this.context.connection.stopListen(RoomEvents.UserLeftRoom, this.onUserLeftRoom);
|
|
314
293
|
PlayerState.all.splice(PlayerState.all.indexOf(this), 1);
|
|
315
294
|
if (this.isLocalPlayer) {
|
|
@@ -318,6 +297,14 @@ export class PlayerState extends Behaviour {
|
|
|
318
297
|
PlayerState._local.splice(index, 1);
|
|
319
298
|
}
|
|
320
299
|
}
|
|
300
|
+
onUserLeftRoom = (model) => {
|
|
301
|
+
if (model.userId === this.owner) {
|
|
302
|
+
if (debug)
|
|
303
|
+
console.log("PLAYERSYNC LEFT", this.owner);
|
|
304
|
+
this.doDestroy();
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
307
|
+
};
|
|
321
308
|
}
|
|
322
309
|
__decorate([
|
|
323
310
|
syncField(PlayerState.prototype.onOwnerChange)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlayerSync.js","sourceRoot":"","sources":["../../../src/engine-components-experimental/networking/PlayerSync.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PlayerSync.js","sourceRoot":"","sources":["../../../src/engine-components-experimental/networking/PlayerSync.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@needle-tools/engine",
|
|
3
|
-
"version": "4.1.0-beta.
|
|
3
|
+
"version": "4.1.0-beta.3",
|
|
4
4
|
"description": "Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in",
|
|
5
5
|
"main": "dist/needle-engine.umd.cjs",
|
|
6
6
|
"exports": {
|
|
@@ -15,9 +15,9 @@ export const needleTransformCode = (command, config, userSettings) => {
|
|
|
15
15
|
*/
|
|
16
16
|
transform(src, id) {
|
|
17
17
|
if (id.includes("three__quarks.js") || id.includes("three.quarks")) {
|
|
18
|
-
const line1 = `console.log('%c Particle system powered by three.quarks. https://quarks.art/', 'font-size:
|
|
19
|
-
const line2 = `console.log("%c Particle system powered by three.quarks. https://quarks.art/", "font-size:
|
|
20
|
-
const replacement = `setTimeout(()=> console.
|
|
18
|
+
const line1 = `console.log('%c Particle system powered by three.quarks. https://quarks.art/', 'font-size: 14px; font-weight: bold;');`
|
|
19
|
+
const line2 = `console.log("%c Particle system powered by three.quarks. https://quarks.art/", "font-size: 14px; font-weight: bold;");`;
|
|
20
|
+
const replacement = `setTimeout(()=> console.debug("Particle system powered by three.quarks. https://quarks.art/"), 100);`
|
|
21
21
|
const content = src
|
|
22
22
|
.replace(line1, replacement)
|
|
23
23
|
.replace(line2, replacement);
|
|
@@ -32,15 +32,12 @@ class ComponentPropertiesSyncer {
|
|
|
32
32
|
comp: IComponent;
|
|
33
33
|
|
|
34
34
|
constructor(comp: IComponent) {
|
|
35
|
-
// console.log("CREATE NEW SYNC", comp.name, comp.guid);
|
|
36
35
|
this.comp = comp;
|
|
37
36
|
}
|
|
38
37
|
|
|
39
38
|
// private getters: { [key: string]: Function } = {};
|
|
40
39
|
private hasChanges: boolean = false;
|
|
41
40
|
private changedProperties: { [key: string]: any } = {};
|
|
42
|
-
// private data = {};
|
|
43
|
-
|
|
44
41
|
|
|
45
42
|
get networkingKey(): string {
|
|
46
43
|
return this.comp.guid;
|
|
@@ -89,27 +86,24 @@ class ComponentPropertiesSyncer {
|
|
|
89
86
|
return;
|
|
90
87
|
}
|
|
91
88
|
for (const name in this.changedProperties) {
|
|
92
|
-
const guid = this.comp.guid + "/" + name;
|
|
93
89
|
const value = this.changedProperties[name];
|
|
94
|
-
if (debug) console.log("SEND", this.comp.
|
|
95
|
-
net.send(this.networkingKey, { guid, data: value }, SendQueue.Queued);
|
|
90
|
+
if (debug) console.log("SEND", this.comp.guid, this.networkingKey);
|
|
91
|
+
net.send(this.networkingKey, { guid: this.comp.guid, property: name, data: value }, SendQueue.Queued);
|
|
92
|
+
delete this.changedProperties[name];
|
|
96
93
|
}
|
|
97
94
|
}
|
|
98
95
|
|
|
99
|
-
private onHandleReceiving = (val: { guid: string, data: any }) => {
|
|
100
|
-
if (debug)
|
|
101
|
-
console.log("RECEIVE", this.comp.name, this.comp.guid, val);
|
|
96
|
+
private onHandleReceiving = (val: { guid: string, property: string, data: any }) => {
|
|
97
|
+
if (debug) console.log("SYNCFIELD RECEIVE", this.comp.name, this.comp.guid, val);
|
|
102
98
|
if (!this._isInit) return;
|
|
103
99
|
if (!this.comp) return;
|
|
104
100
|
// check if this change belongs to this component
|
|
105
|
-
if (val.guid
|
|
101
|
+
if (val.guid !== this.comp.guid) {
|
|
106
102
|
return;
|
|
107
103
|
}
|
|
108
|
-
const [_guid, key] = val.guid.split("/");
|
|
109
|
-
if (debug) console.log("RECEIVED", this.comp.name, this.comp.guid, val);
|
|
110
104
|
try {
|
|
111
105
|
this._isReceiving = true;
|
|
112
|
-
this.comp[
|
|
106
|
+
this.comp[val.property] = val.data;
|
|
113
107
|
}
|
|
114
108
|
catch (err) {
|
|
115
109
|
console.error(err);
|
|
@@ -118,15 +112,6 @@ class ComponentPropertiesSyncer {
|
|
|
118
112
|
this._isReceiving = false;
|
|
119
113
|
}
|
|
120
114
|
}
|
|
121
|
-
|
|
122
|
-
// private _seen: Set<any> = new Set();
|
|
123
|
-
// private uniqBy(a, key) {
|
|
124
|
-
// this._seen.clear();
|
|
125
|
-
// return a.filter(item => {
|
|
126
|
-
// let k = key(item);
|
|
127
|
-
// return this._seen.has(k) ? false : this._seen.add(k);
|
|
128
|
-
// });
|
|
129
|
-
// }
|
|
130
115
|
}
|
|
131
116
|
|
|
132
117
|
function testValueChanged(newValue, previousValue): boolean {
|
|
@@ -20,7 +20,7 @@ declare type PlayerSyncWithAsset = PlayerSync & Required<Pick<PlayerSync, "asset
|
|
|
20
20
|
* @category Networking
|
|
21
21
|
*/
|
|
22
22
|
export class PlayerSync extends Behaviour {
|
|
23
|
-
|
|
23
|
+
|
|
24
24
|
/**
|
|
25
25
|
* This API is experimental and may change or be removed in the future.
|
|
26
26
|
* Create a PlayerSync instance at runtime from a given URL
|
|
@@ -103,6 +103,7 @@ export class PlayerSync extends Behaviour {
|
|
|
103
103
|
const instance = await this._localInstance;
|
|
104
104
|
if (instance) {
|
|
105
105
|
const pl = GameObject.getComponentsInChildren(instance, PlayerState);
|
|
106
|
+
if (debug) console.log(`PlayerSync.createInstance: found ${pl?.length} PlayerState components. Owner: ${this.context.connection.connectionId}`);
|
|
106
107
|
if (pl?.length) {
|
|
107
108
|
for (const state of pl)
|
|
108
109
|
state.owner = this.context.connection.connectionId!;
|
|
@@ -226,7 +227,7 @@ export class PlayerState extends Behaviour {
|
|
|
226
227
|
}
|
|
227
228
|
|
|
228
229
|
private onOwnerChange(newOwner: string, oldOwner: string) {
|
|
229
|
-
if (debug) console.log(
|
|
230
|
+
if (debug) console.log(`PlayerSync.onOwnerChange: ${oldOwner} → ${newOwner} (me: ${this.context.connection.connectionId})`);
|
|
230
231
|
|
|
231
232
|
// Remove from local owner array if it was local before
|
|
232
233
|
const index = PlayerState._local.indexOf(this);
|
|
@@ -259,6 +260,7 @@ export class PlayerState extends Behaviour {
|
|
|
259
260
|
PlayerState.dispatchEvent(PlayerStateEvent.OwnerChanged, evt);
|
|
260
261
|
}
|
|
261
262
|
|
|
263
|
+
/** @internal */
|
|
262
264
|
awake(): void {
|
|
263
265
|
PlayerState.all.push(this);
|
|
264
266
|
if (debug) console.log("Registered new PlayerState", this.guid, PlayerState.all.length - 1, PlayerState.all)
|
|
@@ -266,31 +268,10 @@ export class PlayerState extends Behaviour {
|
|
|
266
268
|
this.context.connection.beginListen(RoomEvents.UserLeftRoom, this.onUserLeftRoom);
|
|
267
269
|
}
|
|
268
270
|
|
|
269
|
-
|
|
270
|
-
if (model.userId === this.owner) {
|
|
271
|
-
if (debug)
|
|
272
|
-
console.log("PLAYERSYNC LEFT", this.owner)
|
|
273
|
-
this.doDestroy();
|
|
274
|
-
return;
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
|
|
271
|
+
/** @internal */
|
|
279
272
|
async start() {
|
|
280
273
|
if (debug) console.log("PLAYERSTATE.START, owner: " + this.owner, this.context.connection.usersInRoom([]))
|
|
281
274
|
|
|
282
|
-
// generate number from owner
|
|
283
|
-
// if (this.owner) {
|
|
284
|
-
// // string to number
|
|
285
|
-
// let num = 0;
|
|
286
|
-
// for (let i = 0; i < this.owner.length; i++) {
|
|
287
|
-
// num += this.owner.charCodeAt(i);
|
|
288
|
-
// }
|
|
289
|
-
// console.log(num)
|
|
290
|
-
// num = num / 1000
|
|
291
|
-
// this.gameObject.position.y = num;
|
|
292
|
-
// }
|
|
293
|
-
|
|
294
275
|
// If a player is spawned but not in the room anymore we want to destroy it
|
|
295
276
|
// this might happen in a case where all users get disconnected at once and the server
|
|
296
277
|
// still has the syncInstantiate messages that are sent to all clients
|
|
@@ -314,29 +295,20 @@ export class PlayerState extends Behaviour {
|
|
|
314
295
|
}
|
|
315
296
|
else if (debug) console.warn("PlayerState.start → owner is still undefined but dontDestroy is set to true", this.name);
|
|
316
297
|
}
|
|
317
|
-
else if(debug) console.log("PlayerState.start → owner is assigned", this.owner);
|
|
298
|
+
else if (debug) console.log("PlayerState.start → owner is assigned", this.owner);
|
|
318
299
|
}, 2000);
|
|
319
300
|
}
|
|
320
301
|
}
|
|
321
302
|
|
|
322
|
-
// onEnable() {
|
|
323
|
-
// if (debug) this.startCoroutine(this.debugRoutine());
|
|
324
|
-
// }
|
|
325
|
-
|
|
326
|
-
// *debugRoutine() {
|
|
327
|
-
// while (!this.destroyed && this.activeAndEnabled) {
|
|
328
|
-
// Gizmos.DrawLabel(this.gameObject.worldPosition, this.owner ?? "no owner");
|
|
329
|
-
// yield;
|
|
330
|
-
// }
|
|
331
|
-
// }
|
|
332
|
-
|
|
333
303
|
/** this tells the server that this client has been destroyed and the networking message for the instantiate will be removed */
|
|
334
304
|
doDestroy() {
|
|
335
305
|
if (debug) console.log("PlayerSync.doDestroy → syncDestroy", this.name);
|
|
336
306
|
syncDestroy(this.gameObject, this.context.connection, true, { saveInRoom: false });
|
|
337
307
|
}
|
|
338
308
|
|
|
309
|
+
/** @internal */
|
|
339
310
|
onDestroy() {
|
|
311
|
+
if(debug) console.warn("PlayerState.onDestroy", this.owner);
|
|
340
312
|
this.context.connection.stopListen(RoomEvents.UserLeftRoom, this.onUserLeftRoom);
|
|
341
313
|
PlayerState.all.splice(PlayerState.all.indexOf(this), 1);
|
|
342
314
|
|
|
@@ -346,4 +318,13 @@ export class PlayerState extends Behaviour {
|
|
|
346
318
|
PlayerState._local.splice(index, 1);
|
|
347
319
|
}
|
|
348
320
|
}
|
|
321
|
+
|
|
322
|
+
private onUserLeftRoom = (model: { userId: string }) => {
|
|
323
|
+
if (model.userId === this.owner) {
|
|
324
|
+
if (debug)
|
|
325
|
+
console.log("PLAYERSYNC LEFT", this.owner)
|
|
326
|
+
this.doDestroy();
|
|
327
|
+
return;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
349
330
|
}
|