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

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 (48) hide show
  1. package/lib/KeyboardControls.d.ts +6 -2
  2. package/lib/KeyboardControls.js +87 -40
  3. package/lib/KeyboardControls.js.map +1 -1
  4. package/lib/Renderer.d.ts +4 -2
  5. package/lib/Renderer.js +13 -2
  6. package/lib/Renderer.js.map +1 -1
  7. package/lib/Resources.d.ts +22 -1
  8. package/lib/Resources.js +22 -2
  9. package/lib/Resources.js.map +1 -1
  10. package/lib/RpgClient.d.ts +15 -4
  11. package/lib/RpgClientEngine.d.ts +62 -2
  12. package/lib/RpgClientEngine.js +163 -84
  13. package/lib/RpgClientEngine.js.map +1 -1
  14. package/lib/RpgGui.d.ts +11 -9
  15. package/lib/RpgGui.js +46 -5
  16. package/lib/RpgGui.js.map +1 -1
  17. package/lib/Scene/Map.d.ts +64 -2
  18. package/lib/Scene/Map.js +90 -8
  19. package/lib/Scene/Map.js.map +1 -1
  20. package/lib/Scene/Scene.d.ts +28 -17
  21. package/lib/Scene/Scene.js +30 -17
  22. package/lib/Scene/Scene.js.map +1 -1
  23. package/lib/Sound/Sounds.d.ts +1 -1
  24. package/lib/Sound/Sounds.js +2 -2
  25. package/lib/Sound/Sounds.js.map +1 -1
  26. package/lib/Sprite/Character.d.ts +19 -2
  27. package/lib/Sprite/Character.js +33 -14
  28. package/lib/Sprite/Character.js.map +1 -1
  29. package/lib/Sprite/Spritesheets.d.ts +1 -1
  30. package/lib/Sprite/Spritesheets.js +2 -2
  31. package/lib/Sprite/Spritesheets.js.map +1 -1
  32. package/lib/Tilemap/Tile.d.ts +1 -0
  33. package/lib/Tilemap/Tile.js +1 -1
  34. package/lib/Tilemap/Tile.js.map +1 -1
  35. package/lib/Tilemap/TileLayer.d.ts +4 -0
  36. package/lib/Tilemap/TileLayer.js +53 -7
  37. package/lib/Tilemap/TileLayer.js.map +1 -1
  38. package/lib/Tilemap/TileSet.js +4 -0
  39. package/lib/Tilemap/TileSet.js.map +1 -1
  40. package/lib/Tilemap/index.d.ts +3 -0
  41. package/lib/Tilemap/index.js +13 -3
  42. package/lib/Tilemap/index.js.map +1 -1
  43. package/lib/clientEntryPoint.js +4 -2
  44. package/lib/clientEntryPoint.js.map +1 -1
  45. package/lib/index.d.ts +3 -3
  46. package/lib/index.js +6 -3
  47. package/lib/index.js.map +1 -1
  48. package/package.json +6 -5
@@ -25,7 +25,7 @@ const common_1 = require("@rpgjs/common");
25
25
  const lodash_merge_1 = __importDefault(require("lodash.merge"));
26
26
  const snapshot_interpolation_1 = require("@geckos.io/snapshot-interpolation");
27
27
  const RpgSound_1 = require("./Sound/RpgSound");
28
- const SI = new snapshot_interpolation_1.SnapshotInterpolation(60);
28
+ const SI = new snapshot_interpolation_1.SnapshotInterpolation(15);
29
29
  class RpgClientEngine {
30
30
  constructor(gameEngine, options) {
31
31
  this.gameEngine = gameEngine;
@@ -39,12 +39,23 @@ class RpgClientEngine {
39
39
  * */
40
40
  this.globalConfig = {};
41
41
  this._objects = new rxjs_1.BehaviorSubject({});
42
+ this._tick = new rxjs_1.BehaviorSubject({
43
+ timestamp: -1,
44
+ deltaTime: 0,
45
+ frame: 0
46
+ });
42
47
  this.keyChange = new rxjs_1.Subject();
43
48
  this.hasBeenDisconnected = false;
44
49
  this.playerVault = new snapshot_interpolation_1.Vault();
45
50
  this.isTeleported = false;
46
51
  this.lastTimestamp = 0;
47
- this.pressInput = false;
52
+ this.frame = 0;
53
+ this.clientFrames = new Map();
54
+ this.serverFrames = new Map();
55
+ this.tick.subscribe(({ timestamp, deltaTime }) => {
56
+ if (timestamp != -1)
57
+ this.step(timestamp, deltaTime);
58
+ });
48
59
  }
49
60
  _init() {
50
61
  return __awaiter(this, void 0, void 0, function* () {
@@ -67,8 +78,8 @@ class RpgClientEngine {
67
78
  this.gameEngine.standalone = this.options['standalone'];
68
79
  this.gameEngine.renderer = this.renderer;
69
80
  this.gameEngine.clientEngine = this;
70
- Spritesheets_1._initSpritesheet(this.renderer.options.spritesheets);
71
- Sounds_1._initSound(this.renderer.options.sounds);
81
+ this.addSpriteSheet(this.renderer.options.spritesheets);
82
+ this.addSound(this.renderer.options.sounds);
72
83
  if (typeof __RPGJS_PRODUCTION__ != 'undefined' && __RPGJS_PRODUCTION__) {
73
84
  if ('serviceWorker' in navigator) {
74
85
  window.addEventListener('load', () => {
@@ -76,12 +87,58 @@ class RpgClientEngine {
76
87
  });
77
88
  }
78
89
  }
79
- else {
80
- console.log('> RPGJS is in development mode <');
81
- }
82
90
  this.controls = new KeyboardControls_1.KeyboardControls(this);
83
91
  });
84
92
  }
93
+ addResource(resourceClass, cb) {
94
+ let array = resourceClass;
95
+ if (!common_1.Utils.isArray(resourceClass)) {
96
+ array = [resourceClass];
97
+ }
98
+ cb(array, this);
99
+ }
100
+ /**
101
+ * Listen to each frame
102
+ *
103
+ * @prop {Observable<{ timestamp: number, deltaTime: number, frame: number }>} tick
104
+ * @readonly
105
+ * @since 3.0.0-beta.5
106
+ * @memberof RpgClientEngine
107
+ * @example
108
+ *
109
+ * ```ts
110
+ * client.tick.subscribe(({ timestamp, deltaTime, frame }) => {
111
+ *
112
+ * })
113
+ * ```
114
+ * */
115
+ get tick() {
116
+ return this._tick.asObservable();
117
+ }
118
+ /**
119
+ * Adds Spritesheet classes
120
+ *
121
+ * @title Add Spritesheet
122
+ * @method addSpriteSheet(spritesheetClass|spritesheetClass[])
123
+ * @returns {void}
124
+ * @since 3.0.0-beta.3
125
+ * @memberof RpgClientEngine
126
+ */
127
+ addSpriteSheet(spritesheetClass) {
128
+ this.addResource(spritesheetClass, Spritesheets_1._initSpritesheet);
129
+ }
130
+ /**
131
+ * Adds Sound classes
132
+ *
133
+ * @title Add Sound
134
+ * @method addSpriteSheet(soundClass|soundClass[])
135
+ * @returns {void}
136
+ * @since 3.0.0-beta.3
137
+ * @memberof RpgClientEngine
138
+ */
139
+ addSound(soundClass) {
140
+ this.addResource(soundClass, Sounds_1._initSound);
141
+ }
85
142
  /**
86
143
  * Starts the client side and connects to the server
87
144
  *
@@ -90,18 +147,12 @@ class RpgClientEngine {
90
147
  * @returns {Promise< void >}
91
148
  * @memberof RpgClientEngine
92
149
  */
93
- start() {
150
+ start(options = {
151
+ renderLoop: true
152
+ }) {
94
153
  return __awaiter(this, void 0, void 0, function* () {
154
+ PIXI.utils.skipHello();
95
155
  yield this._init();
96
- let frame = 0;
97
- let renderLoop = (timestamp) => {
98
- this.lastTimestamp = this.lastTimestamp || timestamp;
99
- this.renderer.draw(timestamp, timestamp - this.lastTimestamp, frame);
100
- this.lastTimestamp = timestamp;
101
- this.step(timestamp, 0);
102
- frame++;
103
- window.requestAnimationFrame(renderLoop);
104
- };
105
156
  yield this.renderer.init();
106
157
  this.gameEngine.start({
107
158
  getObjects: this.getObjects.bind(this),
@@ -113,10 +164,16 @@ class RpgClientEngine {
113
164
  },
114
165
  removeObject: this.removeObject.bind(this),
115
166
  getObjectsOfGroup: () => {
116
- return Object.values(Object.assign(Object.assign({}, this.getObjects()), this.gameEngine.events)).map((ev) => ev.object);
167
+ return Object.assign(Object.assign({}, this.getObjects()), this.gameEngine.events);
117
168
  }
118
169
  });
119
- window.requestAnimationFrame(renderLoop);
170
+ if (options.renderLoop) {
171
+ const loop = (timestamp) => {
172
+ this.nextFrame(timestamp);
173
+ window.requestAnimationFrame(loop);
174
+ };
175
+ window.requestAnimationFrame(loop);
176
+ }
120
177
  common_1.RpgPlugin.emit(common_1.HookClient.Start, this)
121
178
  .then((ret) => {
122
179
  const hasFalseValue = ret.findIndex(el => el === false) != -1;
@@ -125,6 +182,25 @@ class RpgClientEngine {
125
182
  });
126
183
  });
127
184
  }
185
+ /**
186
+ * Display the next frame. Useful for unit tests
187
+ *
188
+ * @title Next Frame
189
+ * @since 3.0.0-beta.5
190
+ * @param {number} timestamp Indicate the timestamp of the frame
191
+ * @method nextFrame()
192
+ * @memberof RpgClientEngine
193
+ */
194
+ nextFrame(timestamp) {
195
+ this.lastTimestamp = this.lastTimestamp || timestamp;
196
+ this._tick.next({
197
+ timestamp,
198
+ deltaTime: timestamp - this.lastTimestamp,
199
+ frame: this.frame
200
+ });
201
+ this.lastTimestamp = timestamp;
202
+ this.frame++;
203
+ }
128
204
  /**
129
205
  * Read objects synchronized with the server
130
206
  *
@@ -191,7 +267,7 @@ class RpgClientEngine {
191
267
  if (!localEvent &&
192
268
  (key == 'position' ||
193
269
  (key == 'direction' && paramsChanged && paramsChanged.position))) {
194
- if ((isMe() && this.pressInput) || !isMe())
270
+ if (isMe())
195
271
  continue;
196
272
  }
197
273
  logic[key] = params[key];
@@ -218,62 +294,43 @@ class RpgClientEngine {
218
294
  return logic;
219
295
  }
220
296
  sendInput(actionName) {
221
- this.pressInput = true;
222
297
  const inputEvent = { input: actionName, playerId: this.gameEngine.playerId };
223
- this.gameEngine.processInput(inputEvent, 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()
304
+ });
224
305
  common_1.RpgPlugin.emit(common_1.HookClient.SendInput, [this, inputEvent], true);
225
- if (this.socket)
226
- this.socket.emit('move', inputEvent);
306
+ if (this.socket) {
307
+ this.socket.emit('move', { input: actionName, frame: this.frame });
308
+ }
227
309
  }
228
310
  serverReconciliation() {
229
311
  const { playerId } = this.gameEngine;
230
312
  const player = this.gameEngine.world.getObject(playerId);
231
313
  if (player) {
232
- const serverSnapshot = SI.vault.get();
233
- if (!serverSnapshot)
234
- return;
235
- const playerSnapshot = this.playerVault.get(serverSnapshot.time, true);
236
- if (serverSnapshot && playerSnapshot) {
237
- const serverPos = serverSnapshot.state.filter(s => s.id === playerId)[0];
238
- const playerState = playerSnapshot.state[0];
239
- if (playerState) {
240
- const offsetX = playerState.x - serverPos.x;
241
- const offsetY = playerState.y - serverPos.y;
242
- const correction = 60;
243
- player.position.x -= offsetX / correction;
244
- player.position.y -= offsetY / correction;
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)) {
318
+ player.position.x = serverPos.x;
319
+ player.position.y = serverPos.y;
245
320
  }
246
- }
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
+ });
247
328
  }
248
329
  }
249
330
  step(t, dt) {
250
- this.gameEngine.emit('client__preStep');
331
+ this.controls.preStep();
251
332
  common_1.RpgPlugin.emit(common_1.HookClient.Step, [this, t, dt], true);
252
- const { playerId } = this.gameEngine;
253
- const player = this.gameEngine.world.getObject(playerId);
254
- if (player && this.isTeleported && this.pressInput) {
255
- const { x, y } = player.position;
256
- this.playerVault.add(SI.snapshot.create([{ id: playerId, x, y }]));
257
- this.serverReconciliation();
258
- }
259
- const snapshot = SI.calcInterpolation('x y');
260
- if (snapshot) {
261
- const { state } = snapshot;
262
- state.forEach(s => {
263
- const { id, x, y, direction } = s;
264
- const player = this.gameEngine.world.getObject(id);
265
- if (player) {
266
- if (id === this.gameEngine.playerId)
267
- return;
268
- player.position.x = Math.round(x);
269
- player.position.y = Math.round(y);
270
- player.direction = direction;
271
- }
272
- });
273
- }
274
- else {
275
- this.pressInput = false;
276
- }
333
+ this.serverReconciliation();
277
334
  }
278
335
  /**
279
336
  *Connect to the server
@@ -311,6 +368,10 @@ class RpgClientEngine {
311
368
  this.socket.on('loadScene', ({ name, data }) => {
312
369
  this.renderer.loadScene(name, data);
313
370
  });
371
+ this.socket.on('changeTile', ({ tiles, x, y }) => {
372
+ const scene = this.renderer.getScene();
373
+ scene.changeTile(x, y, tiles);
374
+ });
314
375
  this.socket.on('callMethod', ({ objectId, params, name }) => {
315
376
  const scene = this.renderer.getScene();
316
377
  const sprite = scene.getPlayer(objectId);
@@ -329,22 +390,23 @@ class RpgClientEngine {
329
390
  }
330
391
  });
331
392
  let lastRoomId = '';
332
- sync_client_1.World.listen(this.socket)
393
+ this.subscriptionWorld = sync_client_1.World.listen(this.socket)
333
394
  .value
334
395
  .subscribe((val) => {
335
396
  if (!val.data) {
336
397
  return;
337
398
  }
399
+ const partialRoom = val.partial;
338
400
  if (val.roomId != lastRoomId) {
339
401
  this.resetObjects();
340
402
  lastRoomId = val.roomId;
341
403
  this.isTeleported = false;
342
404
  }
343
- const snapshot = {
344
- id: common_1.Utils.generateUID(),
405
+ /*const snapshot: any = {
406
+ id: Utils.generateUID(),
345
407
  time: val.time,
346
408
  state: []
347
- };
409
+ }*/
348
410
  const change = (prop, root = val, localEvent = false) => {
349
411
  const list = root.data[prop];
350
412
  const partial = val.partial[prop];
@@ -357,22 +419,29 @@ class RpgClientEngine {
357
419
  if (!obj)
358
420
  continue;
359
421
  obj.type = prop == 'users' ? common_1.PlayerType.Player : common_1.PlayerType.Event;
360
- if (prop == 'users' && this.gameEngine.playerId == key && obj.events) {
361
- change('events', {
362
- data: obj,
363
- partial: paramsChanged,
364
- time: val.time,
365
- roomId: val.roomId
366
- }, true);
422
+ if (prop == 'users' && this.gameEngine.playerId == key) {
423
+ if (obj.events) {
424
+ change('events', {
425
+ data: obj,
426
+ partial: paramsChanged,
427
+ time: val.time,
428
+ roomId: val.roomId
429
+ }, true);
430
+ }
431
+ if ((paramsChanged === null || paramsChanged === void 0 ? void 0 : paramsChanged.position) && (partialRoom === null || partialRoom === void 0 ? void 0 : partialRoom.frame)) {
432
+ this.serverFrames.set(partialRoom.frame, {
433
+ data: paramsChanged.position,
434
+ time: Date.now()
435
+ });
436
+ }
367
437
  }
368
- if (!localEvent)
369
- snapshot.state.push({
370
- id: key,
371
- x: obj.position.x,
372
- y: obj.position.y,
373
- z: obj.position.z,
374
- direction: obj.direction
375
- });
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
+ // })
376
445
  this.updateObject({
377
446
  playerId: key,
378
447
  params: obj,
@@ -387,7 +456,7 @@ class RpgClientEngine {
387
456
  if (scene) {
388
457
  scene.update(val);
389
458
  }
390
- SI.snapshot.add(snapshot);
459
+ //SI.snapshot.add(snapshot)
391
460
  });
392
461
  this.socket.on('disconnect', (reason) => {
393
462
  if (RpgGui_1.RpgGui.exists(common_1.PrebuiltGui.Disconnect))
@@ -400,6 +469,9 @@ class RpgClientEngine {
400
469
  this.socket.connection();
401
470
  }
402
471
  }
472
+ get world() {
473
+ return sync_client_1.World;
474
+ }
403
475
  // shortcuts
404
476
  /**
405
477
  * VueJS Application instance
@@ -435,6 +507,13 @@ class RpgClientEngine {
435
507
  get scene() {
436
508
  return this.renderer.getScene();
437
509
  }
510
+ reset() {
511
+ this.subscriptionWorld.unsubscribe();
512
+ this.world.reset();
513
+ Spritesheets_1.spritesheets.clear();
514
+ Sounds_1.sounds.clear();
515
+ PIXI.Loader.shared.reset();
516
+ }
438
517
  }
439
518
  exports.RpgClientEngine = RpgClientEngine;
440
519
  //# sourceMappingURL=RpgClientEngine.js.map
@@ -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,3 +1,10 @@
1
+ import { RpgClientEngine } from './index';
2
+ interface GuiOptions {
3
+ data: any;
4
+ attachToSprite: boolean;
5
+ display: boolean;
6
+ name: string;
7
+ }
1
8
  declare class Gui {
2
9
  private renderer;
3
10
  private gameEngine;
@@ -6,7 +13,8 @@ declare class Gui {
6
13
  private vm;
7
14
  private socket;
8
15
  private gui;
9
- _initalize(clientEngine: any): void;
16
+ _initalize(clientEngine: RpgClientEngine): void;
17
+ update(logicObjects: any): void;
10
18
  _setSocket(socket: any): void;
11
19
  _setGui(id: any, obj: any): void;
12
20
  /**
@@ -25,10 +33,7 @@ declare class Gui {
25
33
  * @returns { { data: any, display: boolean } }
26
34
  * @memberof RpgGui
27
35
  */
28
- get(id: any): {
29
- data: any;
30
- display: boolean;
31
- };
36
+ get(id: any): GuiOptions;
32
37
  /**
33
38
  * Get all GUI. You retrieve GUI data and information whether it is displayed or not
34
39
  *
@@ -45,10 +50,7 @@ declare class Gui {
45
50
  * @memberof RpgGui
46
51
  */
47
52
  getAll(): {
48
- [guiName: string]: {
49
- data: any;
50
- display: boolean;
51
- };
53
+ [guiName: string]: GuiOptions;
52
54
  };
53
55
  /**
54
56
  * Checks if the GUI exists RpgClient's gui array
package/lib/RpgGui.js CHANGED
@@ -26,14 +26,24 @@ class Gui {
26
26
  @pointercancel="propagate('pointercancel', $event)"
27
27
  @pointerup="propagate('pointerup', $event)"
28
28
  >
29
- <template v-for="(ui, name) in gui">
30
- <component :is="name" v-bind="ui.data" v-if="ui.display"></component>
31
- </template>
29
+ <template v-for="ui in fixedGui">
30
+ <component :is="ui.name" v-bind="ui.data" v-if="ui.display"></component>
31
+ </template>
32
+ <div id="tooltips" style="position: absolute; top: 0; left: 0;">
33
+ <template v-for="ui in attachedGui">
34
+ <template v-if="ui.display">
35
+ <div v-for="tooltip of tooltipFilter(tooltips, ui)" :style="tooltipPosition(tooltip.position)">
36
+ <component :is="ui.name" v-bind="{ ...ui.data, spriteData: tooltip }" :ref="ui.name"></component>
37
+ </div>
38
+ </template>
39
+ </template>
40
+ </div>
32
41
  </div>
33
42
  `,
34
43
  data() {
35
44
  return {
36
- gui
45
+ gui,
46
+ tooltips: []
37
47
  };
38
48
  },
39
49
  provide: () => {
@@ -305,9 +315,29 @@ class Gui {
305
315
  rpgEngine: this.clientEngine
306
316
  };
307
317
  },
318
+ computed: {
319
+ fixedGui() {
320
+ return Object.values(this.gui).filter((gui) => !gui.attachToSprite);
321
+ },
322
+ attachedGui() {
323
+ return Object.values(this.gui).filter((gui) => gui.attachToSprite);
324
+ }
325
+ },
308
326
  methods: {
309
327
  propagate: (type, event) => {
310
328
  this.renderer.renderer.view.dispatchEvent(new MouseEvent(type, event));
329
+ },
330
+ tooltipPosition: (position) => {
331
+ 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
+ };
338
+ },
339
+ tooltipFilter(sprites, ui) {
340
+ return sprites.filter(tooltip => tooltip.guiDisplay);
311
341
  }
312
342
  }
313
343
  });
@@ -315,7 +345,9 @@ class Gui {
315
345
  this.app.component(ui.name, ui);
316
346
  this.gui[ui.name] = {
317
347
  data: ui.data,
318
- display: false
348
+ attachToSprite: ui.rpgAttachToSprite,
349
+ display: false,
350
+ name: ui.name
319
351
  };
320
352
  }
321
353
  this.vm = this.app.mount(selectorGui);
@@ -323,11 +355,20 @@ class Gui {
323
355
  this.renderer.app = this.app;
324
356
  this.renderer.vm = this.vm;
325
357
  }
358
+ update(logicObjects) {
359
+ this.vm.tooltips = Object.values(logicObjects).map((object) => object.object);
360
+ }
326
361
  _setSocket(socket) {
327
362
  this.socket = socket;
328
363
  this.socket.on('gui.open', ({ guiId, data }) => {
329
364
  this.display(guiId, data);
330
365
  });
366
+ this.socket.on('gui.tooltip', ({ players, display }) => {
367
+ for (let playerId of players) {
368
+ const sprite = this.renderer.getScene().getSprite(playerId);
369
+ sprite.guiDisplay = display;
370
+ }
371
+ });
331
372
  this.socket.on('gui.exit', (guiId) => {
332
373
  this.hide(guiId);
333
374
  });
package/lib/RpgGui.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"RpgGui.js","sourceRoot":"","sources":["../src/RpgGui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RpgGui.js","sourceRoot":"","sources":["../src/RpgGui.ts"],"names":[],"mappings":"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"}