@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.
- package/lib/KeyboardControls.d.ts +6 -2
- package/lib/KeyboardControls.js +87 -40
- package/lib/KeyboardControls.js.map +1 -1
- package/lib/Renderer.d.ts +4 -2
- package/lib/Renderer.js +13 -2
- package/lib/Renderer.js.map +1 -1
- package/lib/Resources.d.ts +22 -1
- package/lib/Resources.js +22 -2
- package/lib/Resources.js.map +1 -1
- package/lib/RpgClient.d.ts +15 -4
- package/lib/RpgClientEngine.d.ts +62 -2
- package/lib/RpgClientEngine.js +163 -84
- package/lib/RpgClientEngine.js.map +1 -1
- package/lib/RpgGui.d.ts +11 -9
- package/lib/RpgGui.js +46 -5
- package/lib/RpgGui.js.map +1 -1
- package/lib/Scene/Map.d.ts +64 -2
- package/lib/Scene/Map.js +90 -8
- package/lib/Scene/Map.js.map +1 -1
- package/lib/Scene/Scene.d.ts +28 -17
- package/lib/Scene/Scene.js +30 -17
- package/lib/Scene/Scene.js.map +1 -1
- package/lib/Sound/Sounds.d.ts +1 -1
- package/lib/Sound/Sounds.js +2 -2
- package/lib/Sound/Sounds.js.map +1 -1
- package/lib/Sprite/Character.d.ts +19 -2
- package/lib/Sprite/Character.js +33 -14
- package/lib/Sprite/Character.js.map +1 -1
- package/lib/Sprite/Spritesheets.d.ts +1 -1
- package/lib/Sprite/Spritesheets.js +2 -2
- package/lib/Sprite/Spritesheets.js.map +1 -1
- package/lib/Tilemap/Tile.d.ts +1 -0
- package/lib/Tilemap/Tile.js +1 -1
- package/lib/Tilemap/Tile.js.map +1 -1
- package/lib/Tilemap/TileLayer.d.ts +4 -0
- package/lib/Tilemap/TileLayer.js +53 -7
- package/lib/Tilemap/TileLayer.js.map +1 -1
- package/lib/Tilemap/TileSet.js +4 -0
- package/lib/Tilemap/TileSet.js.map +1 -1
- package/lib/Tilemap/index.d.ts +3 -0
- package/lib/Tilemap/index.js +13 -3
- package/lib/Tilemap/index.js.map +1 -1
- package/lib/clientEntryPoint.js +4 -2
- package/lib/clientEntryPoint.js.map +1 -1
- package/lib/index.d.ts +3 -3
- package/lib/index.js +6 -3
- package/lib/index.js.map +1 -1
- package/package.json +6 -5
|
@@ -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
|
*
|
package/lib/KeyboardControls.js
CHANGED
|
@@ -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:
|
|
26
|
-
38:
|
|
27
|
-
39:
|
|
28
|
-
40:
|
|
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
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
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
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
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
|
-
|
|
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
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
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":"
|
|
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:
|
|
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():
|
|
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,26 @@ 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(
|
|
112
|
+
this.gameEngine.world.removeObject(currentPlayerId);
|
|
113
|
+
// If a scene exists, remove the current player and viewport
|
|
114
|
+
if (this.scene) {
|
|
115
|
+
this.scene.removeObject(currentPlayerId);
|
|
116
|
+
if (this.scene.viewport)
|
|
117
|
+
this.scene.viewport.plugins.remove('follow');
|
|
118
|
+
}
|
|
108
119
|
this.stage.removeChildren();
|
|
109
120
|
const scenes = this.options.scenes || {};
|
|
110
121
|
if (this.scene) {
|
package/lib/Renderer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Renderer.js","sourceRoot":"","sources":["../src/Renderer.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;AAEhC,0CAAqD;AACrD,qCAAsC;AACtC,2CAAuC;AACvC,qCAAiC;
|
|
1
|
+
{"version":3,"file":"Renderer.js","sourceRoot":"","sources":["../src/Renderer.ts"],"names":[],"mappings":"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"}
|
package/lib/Resources.d.ts
CHANGED
|
@@ -1 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
import { RpgClientEngine } from "./RpgClientEngine";
|
|
2
|
+
/**
|
|
3
|
+
* Get/Set images in resources
|
|
4
|
+
```ts
|
|
5
|
+
import { RpgResource } from '@rpg/client'
|
|
6
|
+
const fileLink = RpgResource.spritesheets.get('resource_id')
|
|
7
|
+
```
|
|
8
|
+
* @title Get/Set image link
|
|
9
|
+
* @prop { Map< string, string > } spritesheets
|
|
10
|
+
* @memberof Resources
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Get/Set sounds in resources
|
|
14
|
+
```ts
|
|
15
|
+
import { RpgResource } from '@rpg/client'
|
|
16
|
+
const fileLink = RpgResource.sounds.get('resource_id')
|
|
17
|
+
```
|
|
18
|
+
* @title Get/Set sound link
|
|
19
|
+
* @prop { Map< string, string > } sounds
|
|
20
|
+
* @memberof Resources
|
|
21
|
+
*/
|
|
22
|
+
export declare function _initResource(memory: Map<string, any>, _resources: any, prop: string, engine: RpgClientEngine): void;
|
package/lib/Resources.js
CHANGED
|
@@ -1,7 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports._initResource = void 0;
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Get/Set images in resources
|
|
6
|
+
```ts
|
|
7
|
+
import { RpgResource } from '@rpg/client'
|
|
8
|
+
const fileLink = RpgResource.spritesheets.get('resource_id')
|
|
9
|
+
```
|
|
10
|
+
* @title Get/Set image link
|
|
11
|
+
* @prop { Map< string, string > } spritesheets
|
|
12
|
+
* @memberof Resources
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Get/Set sounds in resources
|
|
16
|
+
```ts
|
|
17
|
+
import { RpgResource } from '@rpg/client'
|
|
18
|
+
const fileLink = RpgResource.sounds.get('resource_id')
|
|
19
|
+
```
|
|
20
|
+
* @title Get/Set sound link
|
|
21
|
+
* @prop { Map< string, string > } sounds
|
|
22
|
+
* @memberof Resources
|
|
23
|
+
*/
|
|
24
|
+
function _initResource(memory, _resources, prop, engine) {
|
|
5
25
|
for (let resource of _resources) {
|
|
6
26
|
const pluralProp = prop + 's';
|
|
7
27
|
if (resource[pluralProp]) {
|
|
@@ -12,7 +32,7 @@ function _initResource(memory, _resources, prop) {
|
|
|
12
32
|
}
|
|
13
33
|
}
|
|
14
34
|
else {
|
|
15
|
-
const instance = new resource();
|
|
35
|
+
const instance = new resource(engine);
|
|
16
36
|
instance[prop] = instance[prop];
|
|
17
37
|
memory.set(resource.id, instance);
|
|
18
38
|
}
|
package/lib/Resources.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Resources.js","sourceRoot":"","sources":["../src/Resources.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Resources.js","sourceRoot":"","sources":["../src/Resources.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;EASE;AACF;;;;;;;;;EASE;AACF,SAAgB,aAAa,CAAC,MAAwB,EAAE,UAAU,EAAE,IAAY,EAAE,MAAuB;IACrG,KAAK,IAAI,QAAQ,IAAI,UAAU,EAAE;QAC7B,MAAM,UAAU,GAAG,IAAI,GAAG,GAAG,CAAA;QAC7B,IAAI,QAAQ,CAAC,UAAU,CAAC,EAAE;YACtB,KAAK,IAAI,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,EAAE;gBAClC,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAA;gBAC/B,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAA;gBAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;aAC5B;SACJ;aACI;YACD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAA;YACrC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;YAC/B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;SACpC;KACJ;AACL,CAAC;AAhBD,sCAgBC"}
|
package/lib/RpgClient.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { RpgSprite } from './Sprite/Player';
|
|
2
2
|
import { ModuleType } from '@rpgjs/common';
|
|
3
|
-
import {
|
|
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:
|
|
152
|
+
onMapLoading?: (scene: SceneMap, loader: PIXI.Loader) => any;
|
|
142
153
|
}
|
|
143
154
|
export interface RpgClient {
|
|
144
155
|
/**
|
package/lib/RpgClientEngine.d.ts
CHANGED
|
@@ -4,6 +4,11 @@ declare type ObjectFixture = {
|
|
|
4
4
|
object: any;
|
|
5
5
|
paramsChanged: any;
|
|
6
6
|
};
|
|
7
|
+
declare type Tick = {
|
|
8
|
+
timestamp: number;
|
|
9
|
+
deltaTime: number;
|
|
10
|
+
frame: number;
|
|
11
|
+
};
|
|
7
12
|
export declare class RpgClientEngine {
|
|
8
13
|
gameEngine: any;
|
|
9
14
|
private options;
|
|
@@ -41,15 +46,56 @@ export declare class RpgClientEngine {
|
|
|
41
46
|
controls: KeyboardControls;
|
|
42
47
|
_options: any;
|
|
43
48
|
private _objects;
|
|
49
|
+
private _tick;
|
|
44
50
|
keyChange: Subject<string>;
|
|
45
51
|
private hasBeenDisconnected;
|
|
46
52
|
private playerVault;
|
|
47
53
|
private isTeleported;
|
|
48
54
|
io: any;
|
|
49
55
|
private lastTimestamp;
|
|
50
|
-
private
|
|
56
|
+
private frame;
|
|
57
|
+
private subscriptionWorld;
|
|
58
|
+
private clientFrames;
|
|
59
|
+
private serverFrames;
|
|
51
60
|
constructor(gameEngine: any, options: any);
|
|
52
61
|
private _init;
|
|
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>;
|
|
79
|
+
/**
|
|
80
|
+
* Adds Spritesheet classes
|
|
81
|
+
*
|
|
82
|
+
* @title Add Spritesheet
|
|
83
|
+
* @method addSpriteSheet(spritesheetClass|spritesheetClass[])
|
|
84
|
+
* @returns {void}
|
|
85
|
+
* @since 3.0.0-beta.3
|
|
86
|
+
* @memberof RpgClientEngine
|
|
87
|
+
*/
|
|
88
|
+
addSpriteSheet(spritesheetClass: any): void;
|
|
89
|
+
/**
|
|
90
|
+
* Adds Sound classes
|
|
91
|
+
*
|
|
92
|
+
* @title Add Sound
|
|
93
|
+
* @method addSpriteSheet(soundClass|soundClass[])
|
|
94
|
+
* @returns {void}
|
|
95
|
+
* @since 3.0.0-beta.3
|
|
96
|
+
* @memberof RpgClientEngine
|
|
97
|
+
*/
|
|
98
|
+
addSound(soundClass: any): void;
|
|
53
99
|
/**
|
|
54
100
|
* Starts the client side and connects to the server
|
|
55
101
|
*
|
|
@@ -58,7 +104,19 @@ export declare class RpgClientEngine {
|
|
|
58
104
|
* @returns {Promise< void >}
|
|
59
105
|
* @memberof RpgClientEngine
|
|
60
106
|
*/
|
|
61
|
-
start(
|
|
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;
|
|
62
120
|
/**
|
|
63
121
|
* Read objects synchronized with the server
|
|
64
122
|
*
|
|
@@ -91,6 +149,7 @@ export declare class RpgClientEngine {
|
|
|
91
149
|
* @memberof RpgClientEngine
|
|
92
150
|
*/
|
|
93
151
|
connection(): void;
|
|
152
|
+
get world(): any;
|
|
94
153
|
/**
|
|
95
154
|
* VueJS Application instance
|
|
96
155
|
*
|
|
@@ -119,5 +178,6 @@ export declare class RpgClientEngine {
|
|
|
119
178
|
* @memberof RpgClientEngine
|
|
120
179
|
* */
|
|
121
180
|
get scene(): any;
|
|
181
|
+
reset(): void;
|
|
122
182
|
}
|
|
123
183
|
export {};
|