@rpgjs/client 3.0.0-beta.5 → 3.0.0-beta.8

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 (62) hide show
  1. package/lib/Effects/Animation.d.ts +3 -4
  2. package/lib/Effects/Animation.js +1 -0
  3. package/lib/Effects/Animation.js.map +1 -1
  4. package/lib/Effects/Spinner.d.ts +6 -0
  5. package/lib/Effects/Spinner.js +21 -0
  6. package/lib/Effects/Spinner.js.map +1 -0
  7. package/lib/Effects/Timeline.d.ts +2 -2
  8. package/lib/Effects/Timeline.js.map +1 -1
  9. package/lib/Effects/TransitionScene.d.ts +16 -0
  10. package/lib/Effects/TransitionScene.js +50 -0
  11. package/lib/Effects/TransitionScene.js.map +1 -1
  12. package/lib/GameEngine.d.ts +34 -0
  13. package/lib/GameEngine.js +113 -0
  14. package/lib/GameEngine.js.map +1 -0
  15. package/lib/KeyboardControls.d.ts +1 -2
  16. package/lib/KeyboardControls.js +20 -16
  17. package/lib/KeyboardControls.js.map +1 -1
  18. package/lib/Renderer.d.ts +22 -19
  19. package/lib/Renderer.js +119 -32
  20. package/lib/Renderer.js.map +1 -1
  21. package/lib/RpgClient.d.ts +5 -3
  22. package/lib/RpgClientEngine.d.ts +37 -33
  23. package/lib/RpgClientEngine.js +115 -177
  24. package/lib/RpgClientEngine.js.map +1 -1
  25. package/lib/RpgGui.d.ts +7 -11
  26. package/lib/RpgGui.js +21 -9
  27. package/lib/RpgGui.js.map +1 -1
  28. package/lib/Scene/Map.d.ts +8 -20
  29. package/lib/Scene/Map.js +51 -21
  30. package/lib/Scene/Map.js.map +1 -1
  31. package/lib/Scene/Scene.d.ts +22 -15
  32. package/lib/Scene/Scene.js +8 -14
  33. package/lib/Scene/Scene.js.map +1 -1
  34. package/lib/Sound/RpgSound.d.ts +4 -0
  35. package/lib/Sound/RpgSound.js +24 -1
  36. package/lib/Sound/RpgSound.js.map +1 -1
  37. package/lib/Sprite/Character.d.ts +0 -10
  38. package/lib/Sprite/Character.js +6 -23
  39. package/lib/Sprite/Character.js.map +1 -1
  40. package/lib/Sprite/Spritesheet.js +1 -0
  41. package/lib/Sprite/Spritesheet.js.map +1 -1
  42. package/lib/Sprite/Spritesheets.d.ts +1 -1
  43. package/lib/Sprite/Spritesheets.js.map +1 -1
  44. package/lib/Tilemap/ImageLayer.d.ts +1 -1
  45. package/lib/Tilemap/ImageLayer.js +2 -2
  46. package/lib/Tilemap/ImageLayer.js.map +1 -1
  47. package/lib/Tilemap/Tile.d.ts +4 -3
  48. package/lib/Tilemap/Tile.js.map +1 -1
  49. package/lib/Tilemap/TileLayer.d.ts +9 -7
  50. package/lib/Tilemap/TileLayer.js +4 -0
  51. package/lib/Tilemap/TileLayer.js.map +1 -1
  52. package/lib/Tilemap/TileSet.d.ts +6 -4
  53. package/lib/Tilemap/TileSet.js +1 -0
  54. package/lib/Tilemap/TileSet.js.map +1 -1
  55. package/lib/Tilemap/index.d.ts +16 -13
  56. package/lib/Tilemap/index.js +13 -5
  57. package/lib/Tilemap/index.js.map +1 -1
  58. package/lib/clientEntryPoint.d.ts +1 -0
  59. package/lib/clientEntryPoint.js +2 -1
  60. package/lib/clientEntryPoint.js.map +1 -1
  61. package/lib/index.d.ts +1 -1
  62. package/package.json +4 -8
@@ -8,24 +8,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
11
  Object.defineProperty(exports, "__esModule", { value: true });
15
12
  exports.RpgClientEngine = void 0;
16
13
  const KeyboardControls_1 = require("./KeyboardControls");
17
- const Renderer_1 = __importDefault(require("./Renderer"));
14
+ const Renderer_1 = require("./Renderer");
18
15
  const Spritesheets_1 = require("./Sprite/Spritesheets");
19
16
  const Sounds_1 = require("./Sound/Sounds");
20
- const Player_1 = require("./Sprite/Player");
21
17
  const sync_client_1 = require("@rpgjs/sync-client");
22
18
  const rxjs_1 = require("rxjs");
23
19
  const RpgGui_1 = require("./RpgGui");
24
20
  const common_1 = require("@rpgjs/common");
25
- const lodash_merge_1 = __importDefault(require("lodash.merge"));
26
- const snapshot_interpolation_1 = require("@geckos.io/snapshot-interpolation");
27
21
  const RpgSound_1 = require("./Sound/RpgSound");
28
- const SI = new snapshot_interpolation_1.SnapshotInterpolation(15);
29
22
  class RpgClientEngine {
30
23
  constructor(gameEngine, options) {
31
24
  this.gameEngine = gameEngine;
@@ -38,20 +31,32 @@ class RpgClientEngine {
38
31
  * @memberof RpgClientEngine
39
32
  * */
40
33
  this.globalConfig = {};
41
- this._objects = new rxjs_1.BehaviorSubject({});
42
34
  this._tick = new rxjs_1.BehaviorSubject({
43
35
  timestamp: -1,
44
36
  deltaTime: 0,
45
37
  frame: 0
46
38
  });
47
39
  this.keyChange = new rxjs_1.Subject();
40
+ this.roomJoin = new rxjs_1.Subject();
48
41
  this.hasBeenDisconnected = false;
49
- this.playerVault = new snapshot_interpolation_1.Vault();
50
42
  this.isTeleported = false;
51
43
  this.lastTimestamp = 0;
52
44
  this.frame = 0;
53
45
  this.clientFrames = new Map();
54
46
  this.serverFrames = new Map();
47
+ /**
48
+ * Read objects synchronized with the server
49
+ *
50
+ * @prop {Observable< {
51
+ [id: string]: {
52
+ object: any,
53
+ paramsChanged: any
54
+ }
55
+ } >} [objects]
56
+ * @readonly
57
+ * @memberof RpgClientEngine
58
+ */
59
+ this.objects = this.gameEngine.objects;
55
60
  this.tick.subscribe(({ timestamp, deltaTime }) => {
56
61
  if (timestamp != -1)
57
62
  this.step(timestamp, deltaTime);
@@ -59,8 +64,7 @@ class RpgClientEngine {
59
64
  }
60
65
  _init() {
61
66
  return __awaiter(this, void 0, void 0, function* () {
62
- this.renderer = new Renderer_1.default(this);
63
- this.renderer.client = this;
67
+ this.renderer = new Renderer_1.RpgRenderer(this);
64
68
  const pluginLoadRessource = (hookName, type) => __awaiter(this, void 0, void 0, function* () {
65
69
  const resource = this.options[type] || [];
66
70
  this.options[type] = [
@@ -74,8 +78,7 @@ class RpgClientEngine {
74
78
  this.renderer.options = Object.assign({ selector: '#rpg', selectorCanvas: '#canvas', selectorGui: '#gui', canvas: {}, gui: [], spritesheets: [], sounds: [] }, this.options);
75
79
  this.io = this.options.io;
76
80
  this.globalConfig = this.options.globalConfig;
77
- this.gameEngine._playerClass = this.renderer.options.spriteClass || Player_1.RpgSprite;
78
- this.gameEngine.standalone = this.options['standalone'];
81
+ this.gameEngine.standalone = this.options.standalone;
79
82
  this.gameEngine.renderer = this.renderer;
80
83
  this.gameEngine.clientEngine = this;
81
84
  this.addSpriteSheet(this.renderer.options.spritesheets);
@@ -154,19 +157,6 @@ class RpgClientEngine {
154
157
  PIXI.utils.skipHello();
155
158
  yield this._init();
156
159
  yield this.renderer.init();
157
- this.gameEngine.start({
158
- getObjects: this.getObjects.bind(this),
159
- getObject: (id) => {
160
- const obj = this.getObject(id);
161
- if (!obj)
162
- return null;
163
- return obj.object;
164
- },
165
- removeObject: this.removeObject.bind(this),
166
- getObjectsOfGroup: () => {
167
- return Object.assign(Object.assign({}, this.getObjects()), this.gameEngine.events);
168
- }
169
- });
170
160
  if (options.renderLoop) {
171
161
  const loop = (timestamp) => {
172
162
  this.nextFrame(timestamp);
@@ -201,136 +191,58 @@ class RpgClientEngine {
201
191
  this.lastTimestamp = timestamp;
202
192
  this.frame++;
203
193
  }
204
- /**
205
- * Read objects synchronized with the server
206
- *
207
- * @prop {Observable< {
208
- [id: string]: {
209
- object: any,
210
- paramsChanged: any
211
- }
212
- } >} [objects]
213
- * @readonly
214
- * @memberof RpgClientEngine
215
- */
216
- get objects() {
217
- return this._objects.asObservable();
218
- }
219
- getObjects() {
220
- return this._objects.value;
221
- }
222
- getObject(id) {
223
- const objects = this._objects.value;
224
- const val = objects[id];
225
- if (!val)
226
- return null;
227
- return val;
228
- }
229
- resetObjects() {
230
- this._objects.next({});
231
- }
232
- removeObject(id) {
233
- const logic = this.getObject(id);
234
- if (logic) {
235
- const objects = Object.assign({}, this._objects.value); // clone
236
- delete objects[id];
237
- this._objects.next(objects);
238
- return true;
239
- }
240
- return false;
241
- }
242
- updateObject(obj) {
243
- const { playerId: id, params, localEvent, paramsChanged } = obj;
244
- const isMe = () => id == this.gameEngine.playerId;
245
- let logic;
246
- let teleported = false;
247
- if (localEvent) {
248
- logic = this.gameEngine.events[id];
249
- if (!logic) {
250
- logic = this.gameEngine.addEvent(common_1.RpgCommonPlayer, false);
251
- this.gameEngine.events[id] = {
252
- object: logic
253
- };
254
- }
255
- else {
256
- logic = logic.object;
257
- }
258
- }
259
- else {
260
- logic = this.gameEngine.world.getObject(id);
261
- }
262
- if (!logic) {
263
- logic = this.gameEngine.addPlayer(common_1.RpgCommonPlayer, id);
264
- }
265
- logic.prevParamsChanged = Object.assign({}, logic);
266
- for (let key in params) {
267
- if (!localEvent &&
268
- (key == 'position' ||
269
- (key == 'direction' && paramsChanged && paramsChanged.position))) {
270
- if (isMe())
271
- continue;
272
- }
273
- logic[key] = params[key];
274
- }
275
- if (paramsChanged) {
276
- if (paramsChanged.teleported) {
277
- teleported = true;
278
- logic.position = Object.assign({}, params.position); // clone
279
- }
280
- if (!logic.paramsChanged)
281
- logic.paramsChanged = {};
282
- logic.paramsChanged = lodash_merge_1.default(paramsChanged, logic.paramsChanged);
283
- }
284
- this._objects.next(Object.assign(Object.assign({}, this._objects.value), {
285
- [id]: {
286
- object: logic,
287
- paramsChanged
288
- }
289
- }));
290
- if (teleported && isMe()) {
291
- this.isTeleported = true;
292
- this.playerVault['_vault'] = [];
293
- }
294
- return logic;
295
- }
194
+ /** @internal */
296
195
  sendInput(actionName) {
297
- const inputEvent = { input: actionName, playerId: this.gameEngine.playerId };
298
- const player = this.gameEngine.world.getObject(this.gameEngine.playerId);
299
- player.pendingMove.push(inputEvent);
300
- this.gameEngine.processInput(this.gameEngine.playerId);
301
- this.clientFrames.set(this.frame, {
302
- data: player.position,
303
- time: Date.now()
196
+ return __awaiter(this, void 0, void 0, function* () {
197
+ const player = this.gameEngine.world.getObject(this.gameEngine.playerId);
198
+ if (!player)
199
+ return;
200
+ player.pendingMove.push({
201
+ input: actionName,
202
+ frame: this.frame
203
+ });
304
204
  });
305
- common_1.RpgPlugin.emit(common_1.HookClient.SendInput, [this, inputEvent], true);
306
- if (this.socket) {
307
- this.socket.emit('move', { input: actionName, frame: this.frame });
308
- }
309
205
  }
310
- serverReconciliation() {
311
- const { playerId } = this.gameEngine;
312
- const player = this.gameEngine.world.getObject(playerId);
313
- if (player) {
314
- this.serverFrames.forEach((serverData, frame) => {
315
- const { data: serverPos, time: serverTime } = serverData;
316
- const client = this.clientFrames.get(frame);
317
- if (!client || (client && client.data.x != serverPos.x || client.data.y != serverPos.y)) {
206
+ serverReconciliation(player) {
207
+ this.serverFrames.forEach((serverData, frame) => {
208
+ const { data: serverPos, time: serverTime } = serverData;
209
+ const client = this.clientFrames.get(frame);
210
+ if (!client || (client && client.data.x != serverPos.x || client.data.y != serverPos.y)) {
211
+ if (serverPos.x)
318
212
  player.position.x = serverPos.x;
213
+ if (serverPos.y)
319
214
  player.position.y = serverPos.y;
320
- }
321
- // if (client) {
322
- // const { time: clientTime } = client
323
- // console.log(serverTime - clientTime)
324
- // }
325
- this.serverFrames.delete(frame);
326
- this.clientFrames.delete(frame);
327
- });
328
- }
215
+ }
216
+ // if (client) {
217
+ // const { time: clientTime } = client
218
+ // console.log(serverTime - clientTime)
219
+ // }
220
+ this.serverFrames.delete(frame);
221
+ this.clientFrames.delete(frame);
222
+ });
329
223
  }
330
224
  step(t, dt) {
331
- this.controls.preStep();
332
- common_1.RpgPlugin.emit(common_1.HookClient.Step, [this, t, dt], true);
333
- this.serverReconciliation();
225
+ return __awaiter(this, void 0, void 0, function* () {
226
+ const { playerId } = this.gameEngine;
227
+ const player = this.gameEngine.world.getObject(playerId);
228
+ this.controls.preStep();
229
+ if (player) {
230
+ if (player.pendingMove.length > 0) {
231
+ const inputEvent = { input: player.pendingMove.map(input => input.input), playerId: this.gameEngine.playerId };
232
+ yield this.gameEngine.processInput(this.gameEngine.playerId);
233
+ this.clientFrames.set(this.frame, {
234
+ data: player.position,
235
+ time: Date.now()
236
+ });
237
+ if (this.socket) {
238
+ this.socket.emit('move', { input: inputEvent.input, frame: this.frame });
239
+ }
240
+ common_1.RpgPlugin.emit(common_1.HookClient.SendInput, [this, inputEvent], true);
241
+ }
242
+ this.serverReconciliation(player);
243
+ }
244
+ common_1.RpgPlugin.emit(common_1.HookClient.Step, [this, t, dt], true);
245
+ });
334
246
  }
335
247
  /**
336
248
  *Connect to the server
@@ -365,19 +277,24 @@ class RpgClientEngine {
365
277
  this.socket.on('connect_error', (err) => {
366
278
  common_1.RpgPlugin.emit(common_1.HookClient.ConnectedError, [this, err, this.socket], true);
367
279
  });
280
+ this.socket.on('preLoadScene', (name) => {
281
+ this.renderer.transitionScene(name);
282
+ });
368
283
  this.socket.on('loadScene', ({ name, data }) => {
369
284
  this.renderer.loadScene(name, data);
370
285
  });
371
286
  this.socket.on('changeTile', ({ tiles, x, y }) => {
372
287
  const scene = this.renderer.getScene();
373
- scene.changeTile(x, y, tiles);
288
+ scene === null || scene === void 0 ? void 0 : scene.changeTile(x, y, tiles);
374
289
  });
375
290
  this.socket.on('callMethod', ({ objectId, params, name }) => {
376
291
  const scene = this.renderer.getScene();
377
- const sprite = scene.getPlayer(objectId);
292
+ const sprite = scene === null || scene === void 0 ? void 0 : scene.getPlayer(objectId);
293
+ if (!sprite)
294
+ return;
378
295
  switch (name) {
379
296
  case 'showAnimation':
380
- scene.showAnimation({
297
+ scene === null || scene === void 0 ? void 0 : scene.showAnimation({
381
298
  attachTo: sprite,
382
299
  graphic: params[0],
383
300
  animationName: params[1],
@@ -385,7 +302,7 @@ class RpgClientEngine {
385
302
  });
386
303
  break;
387
304
  case 'playSound':
388
- RpgSound_1.RpgSound.get(params[0]).play();
305
+ RpgSound_1.RpgSound.play(params[0]);
389
306
  break;
390
307
  }
391
308
  });
@@ -393,20 +310,18 @@ class RpgClientEngine {
393
310
  this.subscriptionWorld = sync_client_1.World.listen(this.socket)
394
311
  .value
395
312
  .subscribe((val) => {
313
+ const scene = this.renderer.getScene();
396
314
  if (!val.data) {
397
315
  return;
398
316
  }
399
317
  const partialRoom = val.partial;
400
318
  if (val.roomId != lastRoomId) {
401
- this.resetObjects();
319
+ this.clientFrames.clear();
320
+ this.serverFrames.clear();
321
+ this.gameEngine.resetObjects();
402
322
  lastRoomId = val.roomId;
403
323
  this.isTeleported = false;
404
324
  }
405
- /*const snapshot: any = {
406
- id: Utils.generateUID(),
407
- time: val.time,
408
- state: []
409
- }*/
410
325
  const change = (prop, root = val, localEvent = false) => {
411
326
  const list = root.data[prop];
412
327
  const partial = val.partial[prop];
@@ -414,19 +329,25 @@ class RpgClientEngine {
414
329
  const obj = list[key];
415
330
  const paramsChanged = partial ? partial[key] : undefined;
416
331
  if (obj == null) {
417
- this.removeObject(key);
332
+ this.gameEngine.removeObject(key);
418
333
  }
419
334
  if (!obj)
420
335
  continue;
421
336
  obj.type = prop == 'users' ? common_1.PlayerType.Player : common_1.PlayerType.Event;
422
337
  if (prop == 'users' && this.gameEngine.playerId == key) {
423
338
  if (obj.events) {
424
- change('events', {
425
- data: obj,
426
- partial: paramsChanged,
427
- time: val.time,
428
- roomId: val.roomId
429
- }, true);
339
+ const nbEvents = Object.values(obj.events);
340
+ if (nbEvents.length == 0) {
341
+ this.gameEngine.events = {};
342
+ }
343
+ else {
344
+ change('events', {
345
+ data: obj,
346
+ partial: paramsChanged,
347
+ time: val.time,
348
+ roomId: val.roomId
349
+ }, true);
350
+ }
430
351
  }
431
352
  if ((paramsChanged === null || paramsChanged === void 0 ? void 0 : paramsChanged.position) && (partialRoom === null || partialRoom === void 0 ? void 0 : partialRoom.frame)) {
432
353
  this.serverFrames.set(partialRoom.frame, {
@@ -435,14 +356,7 @@ class RpgClientEngine {
435
356
  });
436
357
  }
437
358
  }
438
- // if (!localEvent) snapshot.state.push({
439
- // id: key,
440
- // x: obj.position.x,
441
- // y: obj.position.y,
442
- // z: obj.position.z,
443
- // direction: obj.direction
444
- // })
445
- this.updateObject({
359
+ this.gameEngine.updateObject({
446
360
  playerId: key,
447
361
  params: obj,
448
362
  localEvent,
@@ -450,13 +364,15 @@ class RpgClientEngine {
450
364
  });
451
365
  }
452
366
  };
367
+ if (partialRoom.join) {
368
+ this.roomJoin.next(partialRoom);
369
+ this.roomJoin.complete();
370
+ }
453
371
  change('users');
454
372
  change('events');
455
- const scene = this.renderer.getScene();
456
373
  if (scene) {
457
374
  scene.update(val);
458
375
  }
459
- //SI.snapshot.add(snapshot)
460
376
  });
461
377
  this.socket.on('disconnect', (reason) => {
462
378
  if (RpgGui_1.RpgGui.exists(common_1.PrebuiltGui.Disconnect))
@@ -501,18 +417,40 @@ class RpgClientEngine {
501
417
  * retrieves the current scene (SceneMap if you are on a map)
502
418
  *
503
419
  * @prop {RpgScene} [scene]
420
+ * @deprecated
504
421
  * @readonly
505
422
  * @memberof RpgClientEngine
506
423
  * */
507
424
  get scene() {
508
425
  return this.renderer.getScene();
509
426
  }
427
+ /**
428
+ * retrieves the current scene (SceneMap if you are on a map)
429
+ *
430
+ * @title Connect to server
431
+ * @method getScene()
432
+ * @returns {RpgScene}
433
+ * @memberof RpgClientEngine
434
+ */
435
+ getScene() {
436
+ return this.renderer.getScene();
437
+ }
438
+ get PIXI() {
439
+ return PIXI;
440
+ }
441
+ get playerId() {
442
+ return this.gameEngine.playerId;
443
+ }
510
444
  reset() {
511
445
  this.subscriptionWorld.unsubscribe();
512
446
  this.world.reset();
513
447
  Spritesheets_1.spritesheets.clear();
514
448
  Sounds_1.sounds.clear();
515
449
  PIXI.Loader.shared.reset();
450
+ PIXI.utils.clearTextureCache();
451
+ RpgGui_1.RpgGui.clear();
452
+ common_1.RpgCommonMap.bufferClient.clear();
453
+ RpgSound_1.RpgSound.clear();
516
454
  }
517
455
  }
518
456
  exports.RpgClientEngine = RpgClientEngine;
@@ -1 +1 @@
1
- {"version":3,"file":"RpgClientEngine.js","sourceRoot":"","sources":["../src/RpgClientEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RpgClientEngine.js","sourceRoot":"","sources":["../src/RpgClientEngine.ts"],"names":[],"mappings":"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"}
package/lib/RpgGui.d.ts CHANGED
@@ -1,10 +1,12 @@
1
- import { RpgClientEngine } from './index';
2
1
  interface GuiOptions {
3
2
  data: any;
4
3
  attachToSprite: boolean;
5
4
  display: boolean;
6
5
  name: string;
7
6
  }
7
+ interface GuiList {
8
+ [guiName: string]: GuiOptions;
9
+ }
8
10
  declare class Gui {
9
11
  private renderer;
10
12
  private gameEngine;
@@ -13,10 +15,6 @@ declare class Gui {
13
15
  private vm;
14
16
  private socket;
15
17
  private gui;
16
- _initalize(clientEngine: RpgClientEngine): void;
17
- update(logicObjects: any): void;
18
- _setSocket(socket: any): void;
19
- _setGui(id: any, obj: any): void;
20
18
  /**
21
19
  * Get a GUI. You retrieve GUI data and information whether it is displayed or not
22
20
  *
@@ -49,9 +47,7 @@ declare class Gui {
49
47
  * @returns { { [guiName]: { data: any, display: boolean } }}
50
48
  * @memberof RpgGui
51
49
  */
52
- getAll(): {
53
- [guiName: string]: GuiOptions;
54
- };
50
+ getAll(): GuiList;
55
51
  /**
56
52
  * Checks if the GUI exists RpgClient's gui array
57
53
  *
@@ -67,7 +63,7 @@ declare class Gui {
67
63
  * @returns {boolean}
68
64
  * @memberof RpgGui
69
65
  */
70
- exists(id: any): boolean;
66
+ exists(id: string): boolean;
71
67
  /**
72
68
  * Calls a GUI according to identifier. You can send retrievable data in the component
73
69
  *
@@ -84,7 +80,7 @@ declare class Gui {
84
80
  * @returns {void}
85
81
  * @memberof RpgGui
86
82
  */
87
- display(id: any, data?: {}): void;
83
+ display(id: string, data?: {}): void;
88
84
  /**
89
85
  * Hide a GUI according to its identifier
90
86
  *
@@ -100,7 +96,7 @@ declare class Gui {
100
96
  * @returns {void}
101
97
  * @memberof RpgGui
102
98
  */
103
- hide(id: any): void;
99
+ hide(id: string): void;
104
100
  }
105
101
  export declare const RpgGui: Gui;
106
102
  export {};
package/lib/RpgGui.js CHANGED
@@ -9,6 +9,7 @@ class Gui {
9
9
  constructor() {
10
10
  this.gui = {};
11
11
  }
12
+ /** @internal */
12
13
  _initalize(clientEngine) {
13
14
  this.clientEngine = clientEngine;
14
15
  this.renderer = clientEngine.renderer;
@@ -325,16 +326,18 @@ class Gui {
325
326
  },
326
327
  methods: {
327
328
  propagate: (type, event) => {
328
- this.renderer.renderer.view.dispatchEvent(new MouseEvent(type, event));
329
+ this.renderer.canvas.dispatchEvent(new MouseEvent(type, event));
329
330
  },
330
331
  tooltipPosition: (position) => {
331
332
  const scene = this.renderer.getScene();
332
- const viewport = scene.viewport;
333
- const left = position.x - viewport.left;
334
- const top = position.y - viewport.top;
335
- return {
336
- transform: `translate(${left}px,${top}px)`
337
- };
333
+ const viewport = scene === null || scene === void 0 ? void 0 : scene.viewport;
334
+ if (viewport) {
335
+ const left = position.x - viewport.left;
336
+ const top = position.y - viewport.top;
337
+ return {
338
+ transform: `translate(${left}px,${top}px)`
339
+ };
340
+ }
338
341
  },
339
342
  tooltipFilter(sprites, ui) {
340
343
  return sprites.filter(tooltip => tooltip.guiDisplay);
@@ -355,24 +358,29 @@ class Gui {
355
358
  this.renderer.app = this.app;
356
359
  this.renderer.vm = this.vm;
357
360
  }
361
+ /** @internal */
358
362
  update(logicObjects) {
359
363
  this.vm.tooltips = Object.values(logicObjects).map((object) => object.object);
360
364
  }
365
+ /** @internal */
361
366
  _setSocket(socket) {
362
367
  this.socket = socket;
363
368
  this.socket.on('gui.open', ({ guiId, data }) => {
364
369
  this.display(guiId, data);
365
370
  });
366
371
  this.socket.on('gui.tooltip', ({ players, display }) => {
372
+ var _a;
367
373
  for (let playerId of players) {
368
- const sprite = this.renderer.getScene().getSprite(playerId);
369
- sprite.guiDisplay = display;
374
+ const sprite = (_a = this.renderer.getScene()) === null || _a === void 0 ? void 0 : _a.getSprite(playerId);
375
+ if (sprite)
376
+ sprite.guiDisplay = display;
370
377
  }
371
378
  });
372
379
  this.socket.on('gui.exit', (guiId) => {
373
380
  this.hide(guiId);
374
381
  });
375
382
  }
383
+ /** @internal */
376
384
  _setGui(id, obj) {
377
385
  const guiObj = this.get(id);
378
386
  if (!guiObj) {
@@ -483,6 +491,10 @@ class Gui {
483
491
  display: false
484
492
  });
485
493
  }
494
+ /** @internal */
495
+ clear() {
496
+ this.gui = {};
497
+ }
486
498
  }
487
499
  exports.RpgGui = new Gui();
488
500
  //# sourceMappingURL=RpgGui.js.map