@rpgjs/client 3.0.0-beta.3 → 3.0.0-beta.6

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.
@@ -1,7 +1,8 @@
1
+ import { Input } from '@rpgjs/common';
1
2
  import { RpgClientEngine } from './RpgClientEngine';
2
3
  export interface ControlOptions {
3
4
  repeat?: boolean;
4
- bind: string | string[];
5
+ bind: string | string[] | Input | Input[];
5
6
  method?: Function;
6
7
  }
7
8
  export interface Controls {
@@ -20,6 +21,8 @@ export declare class KeyboardControls {
20
21
  private lastKeyPressed;
21
22
  private _controlsOptions;
22
23
  constructor(clientEngine: RpgClientEngine);
24
+ preStep(): void;
25
+ private directionToAngle;
23
26
  private setupListeners;
24
27
  private bindKey;
25
28
  private applyKeyDown;
@@ -67,9 +70,10 @@ export declare class KeyboardControls {
67
70
  * @method applyControl(controlName,isDown)
68
71
  * @param {string} controlName
69
72
  * @param {boolean} [isDown]
73
+ * @returns {Promise<void>}
70
74
  * @memberof KeyboardControls
71
75
  */
72
- applyControl(controlName: string, isDown?: boolean | undefined): void;
76
+ applyControl(controlName: string | number, isDown?: boolean | undefined): Promise<void>;
73
77
  /**
74
78
  * Stop listening to the inputs. Pressing a key won't do anything
75
79
  *
@@ -1,4 +1,13 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.KeyboardControls = void 0;
4
13
  const common_1 = require("@rpgjs/common");
@@ -22,10 +31,10 @@ const keyCodeTable = {
22
31
  34: 'page down',
23
32
  35: 'end',
24
33
  36: 'home',
25
- 37: 'left',
26
- 38: 'up',
27
- 39: 'right',
28
- 40: 'down',
34
+ 37: common_1.Direction.Left,
35
+ 38: common_1.Direction.Up,
36
+ 39: common_1.Direction.Right,
37
+ 40: common_1.Direction.Down,
29
38
  41: 'select',
30
39
  42: 'print',
31
40
  43: 'execute',
@@ -167,6 +176,12 @@ const keyCodeTable = {
167
176
  244: 'kanji',
168
177
  255: 'toggle touchpad'
169
178
  };
179
+ const directionCode = {
180
+ [common_1.Direction.Up]: 1,
181
+ [common_1.Direction.Right]: 2,
182
+ [common_1.Direction.Down]: 3,
183
+ [common_1.Direction.Left]: 4
184
+ };
170
185
  const { isArray } = common_1.Utils;
171
186
  const inverse = (obj) => {
172
187
  const newObj = {};
@@ -189,28 +204,54 @@ class KeyboardControls {
189
204
  this.setupListeners();
190
205
  if (globalConfig.inputs)
191
206
  this.setInputs(globalConfig.inputs);
192
- this.gameEngine.on('client__preStep', () => {
193
- for (let keyName of Object.keys(this.boundKeys)) {
194
- if (this.keyState[keyName] && this.keyState[keyName].isDown) {
195
- const { repeat, method } = this.boundKeys[keyName].options;
196
- // handle repeat press
197
- if (repeat || this.keyState[keyName].count == 0) {
198
- // callback to get live parameters if function
199
- let parameters = this.boundKeys[keyName].parameters;
200
- if (typeof parameters === "function") {
201
- parameters = parameters();
202
- }
203
- if (method) {
204
- method(this.boundKeys[keyName]);
205
- }
206
- else {
207
- this.clientEngine.sendInput(this.boundKeys[keyName].actionName);
208
- }
209
- this.keyState[keyName].count++;
207
+ }
208
+ preStep() {
209
+ //this.directionToAngle()
210
+ const boundKeys = Object.keys(this.boundKeys);
211
+ const applyInput = (keyName) => {
212
+ if (this.keyState[keyName] && this.keyState[keyName].isDown) {
213
+ const { repeat, method } = this.boundKeys[keyName].options;
214
+ if (repeat || this.keyState[keyName].count == 0) {
215
+ let parameters = this.boundKeys[keyName].parameters;
216
+ if (typeof parameters === "function") {
217
+ parameters = parameters();
210
218
  }
219
+ if (method) {
220
+ method(this.boundKeys[keyName]);
221
+ }
222
+ else {
223
+ this.clientEngine.sendInput(this.boundKeys[keyName].actionName);
224
+ }
225
+ this.keyState[keyName].count++;
211
226
  }
212
227
  }
213
- });
228
+ };
229
+ for (let keyName of boundKeys) {
230
+ applyInput(keyName);
231
+ }
232
+ }
233
+ // TODO, merge direction
234
+ directionToAngle() {
235
+ let directionVal = 0;
236
+ let nbFound = 0;
237
+ for (let keyName of Object.keys(this.boundKeys)) {
238
+ if (this.keyState[keyName] && this.keyState[keyName].isDown) {
239
+ if (directionCode[keyName]) {
240
+ this.keyState[keyName] = null;
241
+ directionVal += directionCode[keyName];
242
+ nbFound++;
243
+ }
244
+ }
245
+ }
246
+ if (!nbFound)
247
+ return;
248
+ const index = directionVal / nbFound;
249
+ if (!this.keyState[index]) {
250
+ this.keyState[index] = {
251
+ count: 0
252
+ };
253
+ }
254
+ this.keyState[index].isDown = true;
214
255
  }
215
256
  setupListeners() {
216
257
  document.addEventListener('keydown', (e) => { this.onKeyChange(e, true); });
@@ -239,14 +280,17 @@ class KeyboardControls {
239
280
  this.onKeyChange(e, false);
240
281
  }
241
282
  applyKeyPress(name) {
242
- this.applyKeyDown(name);
243
- setTimeout(() => {
244
- this.applyKeyUp(name);
245
- }, 200);
283
+ return new Promise((resolve) => {
284
+ this.applyKeyDown(name);
285
+ setTimeout(() => {
286
+ this.applyKeyUp(name);
287
+ resolve();
288
+ }, 200);
289
+ });
246
290
  }
247
291
  onKeyChange(e, isDown) {
248
292
  e = e || window.event;
249
- let keyName = keyCodeTable[e.keyCode];
293
+ const keyName = keyCodeTable[e.keyCode];
250
294
  const isStopped = this.stop;
251
295
  if (isDown)
252
296
  this.clientEngine.keyChange.next(keyName);
@@ -311,22 +355,25 @@ class KeyboardControls {
311
355
  * @method applyControl(controlName,isDown)
312
356
  * @param {string} controlName
313
357
  * @param {boolean} [isDown]
358
+ * @returns {Promise<void>}
314
359
  * @memberof KeyboardControls
315
360
  */
316
361
  applyControl(controlName, isDown) {
317
- const control = this._controlsOptions[controlName];
318
- if (control) {
319
- const input = isArray(control.bind) ? control.bind[0] : control.bind;
320
- if (isDown === undefined) {
321
- this.applyKeyPress(input);
322
- }
323
- else if (isDown) {
324
- this.applyKeyDown(input);
325
- }
326
- else {
327
- this.applyKeyUp(input);
362
+ return __awaiter(this, void 0, void 0, function* () {
363
+ const control = this._controlsOptions[controlName];
364
+ if (control) {
365
+ const input = isArray(control.bind) ? control.bind[0] : control.bind;
366
+ if (isDown === undefined) {
367
+ yield this.applyKeyPress(input);
368
+ }
369
+ else if (isDown) {
370
+ this.applyKeyDown(input);
371
+ }
372
+ else {
373
+ this.applyKeyUp(input);
374
+ }
328
375
  }
329
- }
376
+ });
330
377
  }
331
378
  /**
332
379
  * Stop listening to the inputs. Pressing a key won't do anything
@@ -1 +1 @@
1
- {"version":3,"file":"KeyboardControls.js","sourceRoot":"","sources":["../src/KeyboardControls.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KeyboardControls.js","sourceRoot":"","sources":["../src/KeyboardControls.ts"],"names":[],"mappings":"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"}
package/lib/Renderer.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { Scene } from './Presets/Scene';
2
+ import { RpgClientEngine } from './RpgClientEngine';
1
3
  export default class RpgRenderer {
2
4
  private clientEngine;
3
5
  vm: any;
@@ -14,7 +16,7 @@ export default class RpgRenderer {
14
16
  client: any;
15
17
  gameEngine: any;
16
18
  doReset: boolean;
17
- constructor(clientEngine: any);
19
+ constructor(clientEngine: RpgClientEngine);
18
20
  init(): Promise<void>;
19
21
  _resize(w: any, h: any): void;
20
22
  get height(): number;
@@ -23,7 +25,7 @@ export default class RpgRenderer {
23
25
  set width(val: number);
24
26
  onDOMLoaded(): void;
25
27
  resize(): void;
26
- getScene(): any;
28
+ getScene(): Scene;
27
29
  draw(t: number, dt: number, frame: number): void;
28
30
  loadScene(name: any, obj: any): Promise<void>;
29
31
  }
package/lib/Renderer.js CHANGED
@@ -14,7 +14,6 @@ const common_1 = require("@rpgjs/common");
14
14
  const Map_1 = require("./Scene/Map");
15
15
  const Scene_1 = require("./Presets/Scene");
16
16
  const RpgGui_1 = require("./RpgGui");
17
- const TIME_RESET_THRESHOLD = 100;
18
17
  class RpgRenderer {
19
18
  constructor(clientEngine) {
20
19
  this.clientEngine = clientEngine;
@@ -25,6 +24,9 @@ class RpgRenderer {
25
24
  this._height = 400;
26
25
  this.doReset = false;
27
26
  this.gameEngine = clientEngine.gameEngine;
27
+ this.clientEngine.tick.subscribe(({ timestamp, deltaTime, frame }) => {
28
+ this.draw(timestamp, deltaTime, frame);
29
+ });
28
30
  }
29
31
  init() {
30
32
  return __awaiter(this, void 0, void 0, function* () {
@@ -94,17 +96,27 @@ class RpgRenderer {
94
96
  return this.scene;
95
97
  }
96
98
  draw(t, dt, frame) {
99
+ if (!this.renderer)
100
+ return;
97
101
  if (this.scene)
98
102
  this.scene.draw(t, dt, frame);
99
103
  this.renderer.render(this.stage);
100
104
  }
101
105
  loadScene(name, obj) {
102
106
  return __awaiter(this, void 0, void 0, function* () {
107
+ const currentPlayerId = this.gameEngine.playerId;
103
108
  common_1.RpgPlugin.emit(common_1.HookClient.BeforeSceneLoading, {
104
109
  name,
105
110
  obj
106
111
  });
107
- this.gameEngine.world.removeObject(this.gameEngine.playerId);
112
+ this.scene = null;
113
+ this.gameEngine.world.removeObject(currentPlayerId);
114
+ // If a scene exists, remove the current player and viewport
115
+ if (this.scene) {
116
+ this.scene.removeObject(currentPlayerId);
117
+ if (this.scene.viewport)
118
+ this.scene.viewport.plugins.remove('follow');
119
+ }
108
120
  this.stage.removeChildren();
109
121
  const scenes = this.options.scenes || {};
110
122
  if (this.scene) {
@@ -1 +1 @@
1
- {"version":3,"file":"Renderer.js","sourceRoot":"","sources":["../src/Renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Renderer.js","sourceRoot":"","sources":["../src/Renderer.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { RpgSprite } from './Sprite/Player';
2
2
  import { ModuleType } from '@rpgjs/common';
3
- import { Scene } from './Scene/Scene';
3
+ import { SceneMap } from './Scene/Map';
4
4
  import { RpgClientEngine } from './RpgClientEngine';
5
5
  export interface RpgClientEngineHooks {
6
6
  /**
@@ -48,6 +48,14 @@ export interface RpgClientEngineHooks {
48
48
  * @memberof RpgEngineHooks
49
49
  */
50
50
  onConnectError?: (engine: RpgClientEngine, err: any, socket: any) => any;
51
+ /**
52
+ * Called when window is resized
53
+ *
54
+ * @prop { () => any } [onWindowResize]
55
+ * @since 3.0.0-beta.4
56
+ * @memberof RpgEngineHooks
57
+ */
58
+ onWindowResize?: () => any;
51
59
  }
52
60
  export interface RpgSpriteHooks {
53
61
  /**
@@ -61,6 +69,7 @@ export interface RpgSpriteHooks {
61
69
  * Called when the sprite is deleted
62
70
  *
63
71
  * @prop { (sprite: RpgSprite) => any } [onDestroy]
72
+ * @memberof RpgSpriteHooks
64
73
  */
65
74
  onDestroy?: (sprite: RpgSprite) => any;
66
75
  /**
@@ -81,10 +90,12 @@ export interface RpgSpriteHooks {
81
90
  * When the x, y positions change
82
91
  *
83
92
  * @prop { (sprite: RpgSprite) => any } [onMove]
93
+ * @since 3.0.0-beta.4
94
+ * @memberof RpgSpriteHooks
84
95
  */
85
96
  onMove?: (sprite: RpgSprite) => any;
86
97
  }
87
- export interface RpgSceneHooks {
98
+ export interface RpgSceneHooks<Scene> {
88
99
  /**
89
100
  * a sprite has been added on the scene
90
101
  *
@@ -131,14 +142,14 @@ export interface RpgSceneHooks {
131
142
  */
132
143
  onDraw?: (scene: Scene, t: number) => any;
133
144
  }
134
- export interface RpgSceneMapHooks extends RpgSceneHooks {
145
+ export interface RpgSceneMapHooks extends RpgSceneHooks<SceneMap> {
135
146
  /**
136
147
  * The map and resources are being loaded
137
148
  *
138
149
  * @prop { (scene: RpgSceneMap, loader: PIXI.Loader) => any } [onMapLoading]
139
150
  * @memberof RpgSceneHooks
140
151
  */
141
- onMapLoading?: (scene: Scene, loader: PIXI.Loader) => any;
152
+ onMapLoading?: (scene: SceneMap, loader: PIXI.Loader) => any;
142
153
  }
143
154
  export interface RpgClient {
144
155
  /**
@@ -1,11 +1,17 @@
1
1
  import { KeyboardControls } from './KeyboardControls';
2
2
  import { Observable, Subject } from 'rxjs';
3
+ import { RpgCommonGame } from '@rpgjs/common';
3
4
  declare type ObjectFixture = {
4
5
  object: any;
5
6
  paramsChanged: any;
6
7
  };
8
+ declare type Tick = {
9
+ timestamp: number;
10
+ deltaTime: number;
11
+ frame: number;
12
+ };
7
13
  export declare class RpgClientEngine {
8
- gameEngine: any;
14
+ gameEngine: RpgCommonGame;
9
15
  private options;
10
16
  /**
11
17
  * Get the rendering
@@ -41,23 +47,42 @@ export declare class RpgClientEngine {
41
47
  controls: KeyboardControls;
42
48
  _options: any;
43
49
  private _objects;
50
+ private _tick;
44
51
  keyChange: Subject<string>;
45
52
  private hasBeenDisconnected;
46
- private playerVault;
47
53
  private isTeleported;
48
54
  io: any;
49
55
  private lastTimestamp;
50
- private pressInput;
51
- constructor(gameEngine: any, options: any);
56
+ private frame;
57
+ private subscriptionWorld;
58
+ private clientFrames;
59
+ private serverFrames;
60
+ constructor(gameEngine: RpgCommonGame, options: any);
52
61
  private _init;
53
62
  private addResource;
63
+ /**
64
+ * Listen to each frame
65
+ *
66
+ * @prop {Observable<{ timestamp: number, deltaTime: number, frame: number }>} tick
67
+ * @readonly
68
+ * @since 3.0.0-beta.5
69
+ * @memberof RpgClientEngine
70
+ * @example
71
+ *
72
+ * ```ts
73
+ * client.tick.subscribe(({ timestamp, deltaTime, frame }) => {
74
+ *
75
+ * })
76
+ * ```
77
+ * */
78
+ get tick(): Observable<Tick>;
54
79
  /**
55
80
  * Adds Spritesheet classes
56
81
  *
57
82
  * @title Add Spritesheet
58
- * @method addSpriteSheet(spritesheetClass | spritesheetClass[])
83
+ * @method addSpriteSheet(spritesheetClass|spritesheetClass[])
59
84
  * @returns {void}
60
- * @since beta.3
85
+ * @since 3.0.0-beta.3
61
86
  * @memberof RpgClientEngine
62
87
  */
63
88
  addSpriteSheet(spritesheetClass: any): void;
@@ -65,9 +90,9 @@ export declare class RpgClientEngine {
65
90
  * Adds Sound classes
66
91
  *
67
92
  * @title Add Sound
68
- * @method addSpriteSheet(soundClass | soundClass[])
93
+ * @method addSpriteSheet(soundClass|soundClass[])
69
94
  * @returns {void}
70
- * @since beta.3
95
+ * @since 3.0.0-beta.3
71
96
  * @memberof RpgClientEngine
72
97
  */
73
98
  addSound(soundClass: any): void;
@@ -79,7 +104,19 @@ export declare class RpgClientEngine {
79
104
  * @returns {Promise< void >}
80
105
  * @memberof RpgClientEngine
81
106
  */
82
- start(): Promise<void>;
107
+ start(options?: {
108
+ renderLoop: boolean;
109
+ }): Promise<void>;
110
+ /**
111
+ * Display the next frame. Useful for unit tests
112
+ *
113
+ * @title Next Frame
114
+ * @since 3.0.0-beta.5
115
+ * @param {number} timestamp Indicate the timestamp of the frame
116
+ * @method nextFrame()
117
+ * @memberof RpgClientEngine
118
+ */
119
+ nextFrame(timestamp: number): void;
83
120
  /**
84
121
  * Read objects synchronized with the server
85
122
  *
@@ -112,6 +149,7 @@ export declare class RpgClientEngine {
112
149
  * @memberof RpgClientEngine
113
150
  */
114
151
  connection(): void;
152
+ get world(): any;
115
153
  /**
116
154
  * VueJS Application instance
117
155
  *
@@ -140,5 +178,6 @@ export declare class RpgClientEngine {
140
178
  * @memberof RpgClientEngine
141
179
  * */
142
180
  get scene(): any;
181
+ reset(): void;
143
182
  }
144
183
  export {};