@rpgjs/server 3.1.0 → 3.3.0

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.
@@ -0,0 +1,492 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ComponentManager = exports.Components = void 0;
4
+ const common_1 = require("@rpgjs/common");
5
+ const defaultStyle = (style) => (Object.assign({ borderColor: '#000000', borderWidth: 2, bgColor: '#000000', borderRadius: 5 }, style));
6
+ const bar = (current, max, style, text) => {
7
+ return {
8
+ id: 'bar',
9
+ value: {
10
+ current,
11
+ max,
12
+ text: text === null ? '' : text || '{$current}/{$max}',
13
+ style
14
+ }
15
+ };
16
+ };
17
+ exports.Components = {
18
+ /**
19
+ * Displays a bar
20
+ *
21
+ * Example:
22
+ *
23
+ * ```ts
24
+ * import { Components } from '@rpgjs/server'
25
+ * Components.bar('hp', 'param.maxHp', {
26
+ * bgColor: '#ab0606'
27
+ * })
28
+ * ```
29
+ *
30
+ * For text, you can use the following variables:
31
+ * - {$current} current value
32
+ * - {$max} maximum value
33
+ * - {$percent} percentage
34
+ *
35
+ * Example:
36
+ *
37
+ * ```ts
38
+ * import { Components } from '@rpgjs/server'
39
+ * Components.bar('hp', 'param.maxHp', {
40
+ * bgColor: '#ab0606'
41
+ * }, 'HP: {$current}/{$max}')
42
+ * ```
43
+ *
44
+ * and you can also use the variables of player:
45
+ *
46
+ * ```ts
47
+ * import { Components } from '@rpgjs/server'
48
+ * Components.bar('hp', 'param.maxHp', {
49
+ * bgColor: '#ab0606'
50
+ * }, 'HP: {$current}/{$max} - {name}') // HP: 100/100 - John
51
+ * ```
52
+ *
53
+ * @title Bar Component
54
+ * @param {string} current Parameter that corresponds to the current value
55
+ * @param {string} max Parameter that corresponds to the maximum value
56
+ * @param {object} [style] style
57
+ * @param {string} [style.bgColor] background color. Hexadecimal format.
58
+ * @param {string} [style.fillColor] fill color. Hexadecimal format.
59
+ * @param {string} [style.borderColor] border color. Hexadecimal format.
60
+ * @param {number} [style.borderWidth] border width
61
+ * @param {number} [style.height] height
62
+ * @param {number} [style.width] width
63
+ * @param {number} [style.borderRadius] border radius
64
+ * @param {number} [style.opacity] opacity
65
+ * @param {string | null} [text] text above bar. if null, no text will be displayed. You can use the variables
66
+ * @returns {BarComponentObject}
67
+ * @memberof Components
68
+ * @since 3.3.0
69
+ */
70
+ bar,
71
+ /**
72
+ * Displays a life bar
73
+ *
74
+ * @title HP Bar Component
75
+ * @param {object} [style] style. See bar style (Components.bar())
76
+ * @param {string | null} [text] test above bar (Components.bar())
77
+ * @returns {BarComponentObject}
78
+ * @memberof Components
79
+ * @since 3.3.0
80
+ */
81
+ hpBar(style, text) {
82
+ return bar('hp', 'param.maxHp', Object.assign(Object.assign({}, defaultStyle({
83
+ fillColor: '#ab0606'
84
+ })), (style || {})), text);
85
+ },
86
+ /**
87
+ * Displays a SP bar
88
+ *
89
+ * @title SP Bar Component
90
+ * @param {object} [style] style. See bar style (Components.bar())
91
+ * @param {string | null} [text] test above bar (Components.bar())
92
+ * @returns {BarComponentObject}
93
+ * @memberof Components
94
+ * @since 3.3.0
95
+ */
96
+ spBar(style, text) {
97
+ return bar('sp', 'param.maxSp', Object.assign(Object.assign({}, defaultStyle({
98
+ fillColor: '#0fa38c'
99
+ })), (style || {})), text);
100
+ },
101
+ /**
102
+ * Put on the text. You can read the content of a variable with {} format (see example below)
103
+ *
104
+ * Example:
105
+ *
106
+ * ```ts
107
+ * import { Components } from '@rpgjs/server'
108
+ * Components.text('Hello World')
109
+ * ```
110
+ *
111
+ * Example with variable:
112
+ *
113
+ * ```ts
114
+ * import { Components } from '@rpgjs/server'
115
+ * Components.text('{name}')
116
+ * ```
117
+ *
118
+ * Other example with position:
119
+ *
120
+ * ```ts
121
+ * import { Components } from '@rpgjs/server'
122
+ * Components.text('X: {position.x} Y: {position.y}')
123
+ * ```
124
+ *
125
+ * With style:
126
+ *
127
+ * ```ts
128
+ * import { Components } from '@rpgjs/server'
129
+ * Components.text('Hello World', {
130
+ * fill: '#ffffff',
131
+ * fontSize: 20,
132
+ * fontFamily: 'Arial',
133
+ * stroke: '#000000',
134
+ * fontStyle: 'italic',
135
+ * fontWeight: 'bold'
136
+ * })
137
+ * ```
138
+ *
139
+ * @title Text Component
140
+ * @param {string} value source
141
+ * @param {object} [style] style
142
+ * @param {string} [style.fill] color. Hexadecimal format.
143
+ * @param {number} [style.fontSize] font size
144
+ * @param {string} [style.fontFamily] font family
145
+ * @param {string} [style.stroke] stroke color. Hexadecimal format.
146
+ * @param {'normal' | 'italic' | 'oblique'} [style.fontStyle] font style
147
+ * @param {'normal' | 'bold' | 'bolder' | 'lighter' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900'} [style.fontWeight] font weight
148
+ * @param {number} [style.opacity] opacity. Between 0 and 1
149
+ * @param {boolean} [style.wordWrap] word wrap
150
+ * @param {'left' | 'center' | 'right' | 'justify'} [style.align] align
151
+ * @returns {TextComponentObject}
152
+ * @memberof Components
153
+ * @since 3.3.0
154
+ */
155
+ text(value, style) {
156
+ return {
157
+ id: 'text',
158
+ value: {
159
+ text: value,
160
+ style: Object.assign({ fill: '#ffffff', fontSize: 15 }, (style || {}))
161
+ }
162
+ };
163
+ },
164
+ /**
165
+ * Add a shape
166
+ *
167
+ * Example:
168
+ *
169
+ * ```ts
170
+ * import { Components } from '@rpgjs/server'
171
+ * Components.shape({
172
+ * fill: '#ffffff',
173
+ * type: 'circle',
174
+ * radius: 10
175
+ * })
176
+ * ```
177
+ *
178
+ * You can use parameters:
179
+ *
180
+ * ```ts
181
+ * import { Components } from '@rpgjs/server'
182
+ * Components.shape({
183
+ * fill: '#ffffff',
184
+ * type: 'circle',
185
+ * radius: 'hp'
186
+ * })
187
+ * ```
188
+ *
189
+ * Here, the radius will be the same as the hp value
190
+ *
191
+ * @title Shape Component
192
+ * @param {object} value
193
+ * @param {string} value.fill color. Hexadecimal format.
194
+ * @param {number | string} [value.opacity] opacity. Between 0 and 1
195
+ * @param {string} value.type type of shape. Can be 'circle' or 'rectangle', 'ellipse' or 'polygon', 'line' or 'rounded-rectangle'
196
+ * @param {number | string} [value.radius] if type is circle, radius of the circle
197
+ * @param {number | string} [value.width] if type is rectangle or ellipse, width of the rectangle
198
+ * @param {number | string} [value.height] if type is rectangle or ellipse, height of the rectangle
199
+ * @param {number | string} [value.x1] if type is line, x1 position of the line
200
+ * @param {number | string} [value.y1] if type is line, y1 position of the line
201
+ * @param {number | string} [value.x2] if type is line, x2 position of the line
202
+ * @param {number | string} [value.y2] if type is line, y2 position of the line
203
+ * @param {number[]} [value.points] if type is polygon, points of the polygon
204
+ * @param {object} [value.line] border style
205
+ * @param {string} [value.line.color] border color. Hexadecimal format.
206
+ * @param {number} [value.line.width] border width
207
+ * @param {number} [value.line.alpha] border opacity. Between 0 and 1
208
+ * @returns {ShapeComponentObject}
209
+ * @memberof Components
210
+ * @since 3.3.0
211
+ */
212
+ shape(value) {
213
+ return {
214
+ id: 'shape',
215
+ value
216
+ };
217
+ },
218
+ /**
219
+ * Put the link to an image or the identifier of an image (if the spritesheet exists)
220
+ *
221
+ * Example:
222
+ *
223
+ * ```ts
224
+ * import { Components } from '@rpgjs/server'
225
+ * Components.image('mygraphic.png')
226
+ * ```
227
+ *
228
+ * @title Image Component
229
+ * @param {string} value source
230
+ * @returns {ImageComponentObject}
231
+ * @memberof Components
232
+ * @since 3.3.0
233
+ */
234
+ image(value) {
235
+ return {
236
+ id: 'image',
237
+ value
238
+ };
239
+ },
240
+ /**
241
+ * Indicates the tile ID
242
+ *
243
+ * Example:
244
+ *
245
+ * ```ts
246
+ * import { Components } from '@rpgjs/server'
247
+ * Components.tile(3)
248
+ * ```
249
+ *
250
+ * @title Tile Component
251
+ * @param {number} value tile ID
252
+ * @returns {TileComponentObject}
253
+ * @memberof Components
254
+ * @since 3.3.0
255
+ */
256
+ tile(value) {
257
+ return {
258
+ id: 'tile',
259
+ value
260
+ };
261
+ },
262
+ debug() {
263
+ return {
264
+ id: 'debug',
265
+ value: ''
266
+ };
267
+ }
268
+ };
269
+ class ComponentManager {
270
+ /**
271
+ * Give the spritesheet identifier
272
+ *
273
+ * Since version 3.0.0-rc, you can define several graphic elements. If you put a number, it represents the tile ID in the tileset
274
+ *
275
+ * Example 1:
276
+ * ```ts
277
+ * player.setGraphic(['body', 'shield'])
278
+ * ```
279
+ *
280
+ * Example 2:
281
+ * ```ts
282
+ * player.setGraphic(3) // Use tile #3
283
+ * ```
284
+ *
285
+ * > You must, on the client side, create the spritesheet in question. Guide: [Create Sprite](/guide/create-sprite.html)
286
+ *
287
+ * @title Set Graphic
288
+ * @method player.setGraphic(graphic)
289
+ * @param {string | number | (string | number)[]} graphic
290
+ * @returns {void}
291
+ * @memberof ComponentManager
292
+ */
293
+ setGraphic(graphic) {
294
+ const components = (common_1.Utils.isArray(graphic) ? graphic : [graphic]);
295
+ const col = [...components.map(value => ({ id: common_1.Utils.isString(value) ? 'graphic' : 'tile', value }))];
296
+ this.removeComponentById('center', 'graphic');
297
+ this.mergeComponent('center', col);
298
+ }
299
+ /**
300
+ * Delete components
301
+ *
302
+ * @title Remove Components
303
+ * @param {string} position Position of the components. Can be: `top`, `center`, `bottom`, `left`, `right`
304
+ * @memberof ComponentManager
305
+ * @since 3.3.0
306
+ */
307
+ removeComponents(position) {
308
+ this.layout[position].lines = [];
309
+ }
310
+ /**
311
+ * Delete components by id.
312
+ *
313
+ * @title Remove Component By Id
314
+ * @param {string} position Position of the components. Can be: `top`, `center`, `bottom`, `left`, `right`
315
+ * @param {string} id Id of the component
316
+ * @since 3.3.0
317
+ */
318
+ removeComponentById(position, id) {
319
+ var _a;
320
+ let lines = ((_a = this.layout[position]) === null || _a === void 0 ? void 0 : _a.lines) || [];
321
+ lines = lines.map(line => {
322
+ line.col = line.col.filter(c => c.id !== id);
323
+ return line;
324
+ });
325
+ lines = lines.filter(line => line.col.length > 0);
326
+ this.layout[position].lines = lines;
327
+ }
328
+ /**
329
+ * Merges components with existing components
330
+ *
331
+ * For use layout and options, see [setComponentsTop](/api/player.html#setcomponentstop)
332
+ *
333
+ * @title Merge Components
334
+ * @param {string} position Position of the components. Can be: `top`, `center`, `bottom`, `left`, `right`
335
+ * @param {Object} layout
336
+ * @param {Object} options
337
+ * @memberof ComponentManager
338
+ * @since 3.3.0
339
+ */
340
+ mergeComponent(position, layout, options = {}) {
341
+ var _a;
342
+ if (!(layout instanceof Array)) {
343
+ layout = [layout];
344
+ }
345
+ this.layout[position] = Object.assign({ lines: [
346
+ ...(((_a = this.layout[position]) === null || _a === void 0 ? void 0 : _a.lines) || []),
347
+ ...layout.map(col => {
348
+ if (!common_1.Utils.isArray(col)) {
349
+ col = [col];
350
+ }
351
+ return { col };
352
+ })
353
+ ] }, options);
354
+ }
355
+ setComponents(position, layout, options = {}) {
356
+ this.layout[position].lines = [];
357
+ this.mergeComponent(position, layout, options);
358
+ }
359
+ /**
360
+ * Add components to the center of the graphic.
361
+ *
362
+ * View [setComponentsTop](/api/player.html#setcomponentstop) for more information
363
+ *
364
+ * > Be careful, because if you assign, it deletes the graphics and if the lines are superimposed (unlike the other locations)
365
+ *
366
+ * @title Set Components Center
367
+ * @method player.setComponentsCenter(layout,options)
368
+ * @param {Object} layout
369
+ * @param {Object} options
370
+ * @memberof ComponentManager
371
+ * @since 3.3.0
372
+ */
373
+ setComponentsCenter(layout, options = {}) {
374
+ this.setComponents('center', layout, options);
375
+ }
376
+ /**
377
+ * Add components to the top of the graphic. e.g. text, life bar etc. The block will be centred
378
+ * The first array corresponds to the rows, and the nested table to the array in the row
379
+ *
380
+ * Example:
381
+ *
382
+ * ```ts
383
+ * import { Components } from '@rpgjs/server'
384
+ *
385
+ * player.setComponentsTop([
386
+ * [Components.text('Hello World')],
387
+ * [Components.hpBar()]
388
+ * ]) // 2 lines with 1 component each
389
+ * ```
390
+ *
391
+ * or
392
+ *
393
+ * ```ts
394
+ * import { Components } from '@rpgjs/server'
395
+ *
396
+ * player.setComponentsTop([
397
+ * [Components.text('Hello World'), Components.hpBar()]
398
+ * ]) // 1 line with 2 components
399
+ * ```
400
+ *
401
+ * You can be faster if you only have lines
402
+ *
403
+ * ```ts
404
+ * player.setComponentsTop([
405
+ * Components.text('Hello World'),
406
+ * Components.hpBar()
407
+ * ]) // 2 lines with 1 component each
408
+ * ```
409
+ *
410
+ * or one component:
411
+ *
412
+ * ```ts
413
+ * player.setComponentsTop(Components.text('Hello World')) // 1 line with 1 component
414
+ * ```
415
+ *
416
+ * You can add options to manage the style
417
+ *
418
+ * ```ts
419
+ * player.setComponentsTop([
420
+ * Components.text('Hello World'),
421
+ * Components.hpBar()
422
+ * ], {
423
+ * width: 100,
424
+ * height: 20,
425
+ * marginTop: 10,
426
+ * })
427
+ * ```
428
+ *
429
+ * @title Set Components Top
430
+ * @method player.setComponentsTop(layout,options)
431
+ * @param {ComponentObject[][] | ComponentObject[] | ComponentObject} layout Components
432
+ * @param {Object} [options = {}] Options
433
+ * @param {number} [options.width] Width of the block
434
+ * @param {number} [options.height = 20] Height of the block
435
+ * @param {number} [options.marginTop] Margin top
436
+ * @param {number} [options.marginBottom] Margin bottom
437
+ * @param {number} [options.marginLeft] Margin left
438
+ * @param {number} [options.marginRight] Margin right
439
+ * @memberof ComponentManager
440
+ * @since 3.3.0
441
+ */
442
+ setComponentsTop(layout, options = {}) {
443
+ this.setComponents('top', layout, options);
444
+ }
445
+ /**
446
+ * Add components to the bottom of the graphic.
447
+ *
448
+ * View [setComponentsTop](/api/player.html#setcomponentstop) for more information
449
+ *
450
+ * @title Set Components Bottom
451
+ * @method player.setComponentsBottom(layout,options)
452
+ * @param {Object} layout
453
+ * @param {Object} options
454
+ * @memberof ComponentManager
455
+ * @since 3.3.0
456
+ */
457
+ setComponentsBottom(layout, options = {}) {
458
+ this.setComponents('bottom', layout, options);
459
+ }
460
+ /**
461
+ * Add components to the left of the graphic.
462
+ *
463
+ * View [setComponentsTop](/api/player.html#setcomponentstop) for more information
464
+ *
465
+ * @title Set Components Left
466
+ * @method player.setComponentsLeft(layout,options)
467
+ * @param {Object} layout
468
+ * @param {Object} options
469
+ * @memberof ComponentManager
470
+ * @since 3.3.0
471
+ */
472
+ setComponentsLeft(layout, options = {}) {
473
+ this.setComponents('left', layout, options);
474
+ }
475
+ /**
476
+ * Add components to the right of the graphic.
477
+ *
478
+ * View [setComponentsTop](/api/player.html#setcomponentstop) for more information
479
+ *
480
+ * @title Set Components Right
481
+ * @method player.setComponentsRight(layout,options)
482
+ * @param {Object} layout
483
+ * @param {Object} options
484
+ * @memberof ComponentManager
485
+ * @since 3.3.0
486
+ */
487
+ setComponentsRight(layout, options = {}) {
488
+ this.setComponents('right', layout, options);
489
+ }
490
+ }
491
+ exports.ComponentManager = ComponentManager;
492
+ //# sourceMappingURL=ComponentManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentManager.js","sourceRoot":"","sources":["../../src/Player/ComponentManager.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
- import { Direction } from '@rpgjs/common';
2
- import { RpgPlayer } from './Player';
1
+ import { Direction, RpgShape, Vector2d } from '@rpgjs/common';
2
+ import { Behavior, ClientMode, MoveMode, MoveTo, PositionXY, SocketEvents } from '@rpgjs/types';
3
+ import { Observable } from 'rxjs';
4
+ import { RpgServerEngine } from '../server';
5
+ import { RpgEvent, RpgPlayer } from './Player';
3
6
  declare type CallbackTileMove = (player: RpgPlayer, map: any) => Direction[];
4
7
  declare type CallbackTurnMove = (player: RpgPlayer, map: any) => string;
5
8
  declare type Routes = (string | Promise<any> | Direction | Direction[] | Function)[];
@@ -286,10 +289,44 @@ export declare class MoveManager {
286
289
  * ```
287
290
  */
288
291
  replayRoutes(): void;
292
+ /**
293
+ * Move the event to another event, a player, a shape or a specific position.
294
+ * The event will avoid obstacles, but you can tell if it is stuck or has completed its path
295
+ *
296
+ * @title Move To
297
+ * @method player.moveTo()
298
+ * @param {RpgPlayer|RpgEvent|RpgShape|Position} target the target
299
+ * @param {object} [options] - animate. Set a boolean to use default parameters
300
+ * @param {boolean} [options.infinite=false] - moves infinitely towards the target, you have to stop its movement manually with the method `stopMoveTo()`
301
+ * @param {() => void} [options.onComplete] - Callback when the event arrives at the destination
302
+ * @param {(duration:number) => void} [options.onStuck] - callback when the event is blocked against a wall. Duration gives you the duration (in frames) of the blocking time
303
+ * @returns {Observable<void>}
304
+ * @since 3.2.0
305
+ * @memberof MoveManager
306
+ * @example
307
+ *
308
+ * ```ts
309
+ * import { Move } from '@rpgjs/server'
310
+ *
311
+ * player.moveTo(otherPlayer).subscribe()
312
+ * ```
313
+ */
314
+ moveTo(event: RpgEvent, options?: MoveTo): Observable<void>;
315
+ moveTo(player: RpgPlayer, options?: MoveTo): Observable<void>;
316
+ moveTo(position: PositionXY, options?: MoveTo): Observable<void>;
317
+ moveTo(shape: RpgShape, options?: MoveTo): Observable<void>;
318
+ setMoveMode(mode: MoveMode): void;
289
319
  }
290
320
  export interface MoveManager {
291
321
  moveByDirection: (direction: Direction, deltaTimeInt: number) => boolean;
292
322
  changeDirection: (direction: Direction) => boolean;
293
323
  getCurrentMap: any;
324
+ checkCollision: boolean;
325
+ clientModeMove: ClientMode;
326
+ behavior: Behavior;
327
+ emit(name: SocketEvents, params: any): any;
328
+ id: string;
329
+ server: RpgServerEngine;
330
+ position: Vector2d;
294
331
  }
295
332
  export {};
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.MoveManager = exports.Move = exports.Speed = exports.Frequency = void 0;
13
13
  const common_1 = require("@rpgjs/common");
14
14
  const common_2 = require("@rpgjs/common");
15
+ const types_1 = require("@rpgjs/types");
15
16
  const { arrayFlat, random, isFunction, capitalize } = common_2.Utils;
16
17
  function wait(sec) {
17
18
  return new Promise((resolve) => {
@@ -421,6 +422,23 @@ class MoveManager {
421
422
  if (this._infiniteRoutes)
422
423
  this.infiniteMoveRoute(this._infiniteRoutes);
423
424
  }
425
+ moveTo(position, options) {
426
+ return this['_moveTo'](this.server.tick, position, options);
427
+ }
428
+ // TODO
429
+ setMoveMode(mode) {
430
+ if (mode.checkCollision)
431
+ this.checkCollision = mode.checkCollision;
432
+ if (mode.clientMode)
433
+ this.clientModeMove = mode.clientMode;
434
+ if (mode.behavior)
435
+ this.behavior = mode.behavior;
436
+ this.emit(types_1.SocketEvents.CallMethod, {
437
+ objectId: this.id,
438
+ name: types_1.SocketMethods.ModeMove,
439
+ params: [mode]
440
+ });
441
+ }
424
442
  }
425
443
  exports.MoveManager = MoveManager;
426
444
  //# sourceMappingURL=MoveManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MoveManager.js","sourceRoot":"","sources":["../../src/Player/MoveManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MoveManager.js","sourceRoot":"","sources":["../../src/Player/MoveManager.ts"],"names":[],"mappings":"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"}