@rpgjs/server 3.3.2 → 4.0.0-beta.3

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 (152) hide show
  1. package/LICENSE +19 -0
  2. package/lib/Game/Map.d.ts +58 -5
  3. package/lib/Game/Map.js +185 -80
  4. package/lib/Game/Map.js.map +1 -1
  5. package/lib/Game/WorldMaps.d.ts +3 -2
  6. package/lib/Game/WorldMaps.js +6 -11
  7. package/lib/Game/WorldMaps.js.map +1 -1
  8. package/lib/Gui/DialogGui.d.ts +1 -1
  9. package/lib/Gui/DialogGui.js +12 -13
  10. package/lib/Gui/DialogGui.js.map +1 -1
  11. package/lib/Gui/Gui.js +2 -6
  12. package/lib/Gui/Gui.js.map +1 -1
  13. package/lib/Gui/MenuGui.js +4 -8
  14. package/lib/Gui/MenuGui.js.map +1 -1
  15. package/lib/Gui/NotificationGui.js +4 -8
  16. package/lib/Gui/NotificationGui.js.map +1 -1
  17. package/lib/Gui/ShopGui.js +4 -8
  18. package/lib/Gui/ShopGui.js.map +1 -1
  19. package/lib/Gui/index.js +6 -13
  20. package/lib/Gui/index.js.map +1 -1
  21. package/lib/Interfaces/Gui.js +1 -2
  22. package/lib/Interfaces/StateStore.js +1 -2
  23. package/lib/MatchMaker.js +28 -46
  24. package/lib/MatchMaker.js.map +1 -1
  25. package/lib/Monitor/index.js +3 -5
  26. package/lib/Monitor/index.js.map +1 -1
  27. package/lib/Player/BattleManager.js +17 -16
  28. package/lib/Player/BattleManager.js.map +1 -1
  29. package/lib/Player/ClassManager.js +6 -10
  30. package/lib/Player/ClassManager.js.map +1 -1
  31. package/lib/Player/ComponentManager.d.ts +4 -4
  32. package/lib/Player/ComponentManager.js +37 -24
  33. package/lib/Player/ComponentManager.js.map +1 -1
  34. package/lib/Player/EffectManager.js +8 -12
  35. package/lib/Player/EffectManager.js.map +1 -1
  36. package/lib/Player/ElementManager.js +5 -9
  37. package/lib/Player/ElementManager.js.map +1 -1
  38. package/lib/Player/GoldManager.js +1 -5
  39. package/lib/Player/GoldManager.js.map +1 -1
  40. package/lib/Player/GuiManager.js +17 -15
  41. package/lib/Player/GuiManager.js.map +1 -1
  42. package/lib/Player/ItemFixture.js +1 -5
  43. package/lib/Player/ItemFixture.js.map +1 -1
  44. package/lib/Player/ItemManager.d.ts +3 -3
  45. package/lib/Player/ItemManager.js +29 -31
  46. package/lib/Player/ItemManager.js.map +1 -1
  47. package/lib/Player/MoveManager.d.ts +7 -6
  48. package/lib/Player/MoveManager.js +67 -74
  49. package/lib/Player/MoveManager.js.map +1 -1
  50. package/lib/Player/ParameterManager.js +10 -14
  51. package/lib/Player/ParameterManager.js.map +1 -1
  52. package/lib/Player/Player.d.ts +7 -1
  53. package/lib/Player/Player.js +193 -191
  54. package/lib/Player/Player.js.map +1 -1
  55. package/lib/Player/SkillManager.js +18 -22
  56. package/lib/Player/SkillManager.js.map +1 -1
  57. package/lib/Player/StateManager.js +9 -13
  58. package/lib/Player/StateManager.js.map +1 -1
  59. package/lib/Player/VariableManager.js +1 -5
  60. package/lib/Player/VariableManager.js.map +1 -1
  61. package/lib/Query.d.ts +2 -1
  62. package/lib/Query.js +19 -15
  63. package/lib/Query.js.map +1 -1
  64. package/lib/RpgServer.d.ts +11 -3
  65. package/lib/RpgServer.js +1 -2
  66. package/lib/Scenes/Map.d.ts +27 -4
  67. package/lib/Scenes/Map.js +117 -122
  68. package/lib/Scenes/Map.js.map +1 -1
  69. package/lib/decorators/event.js +4 -7
  70. package/lib/decorators/event.js.map +1 -1
  71. package/lib/decorators/map.d.ts +1 -1
  72. package/lib/decorators/map.js +5 -9
  73. package/lib/decorators/map.js.map +1 -1
  74. package/lib/entry-point.js +59 -65
  75. package/lib/entry-point.js.map +1 -1
  76. package/lib/express/api.d.ts +3 -0
  77. package/lib/express/api.js +105 -0
  78. package/lib/express/api.js.map +1 -0
  79. package/lib/express/errors/NotAuthorized.d.ts +4 -0
  80. package/lib/express/errors/NotAuthorized.js +7 -0
  81. package/lib/express/errors/NotAuthorized.js.map +1 -0
  82. package/lib/express/errors/NotFound.d.ts +4 -0
  83. package/lib/express/errors/NotFound.js +7 -0
  84. package/lib/express/errors/NotFound.js.map +1 -0
  85. package/lib/express/server.js +20 -5
  86. package/lib/express/server.js.map +1 -1
  87. package/lib/index.js +15 -68
  88. package/lib/index.js.map +1 -1
  89. package/lib/logs/index.js +5 -11
  90. package/lib/logs/index.js.map +1 -1
  91. package/lib/logs/item.js +11 -15
  92. package/lib/logs/item.js.map +1 -1
  93. package/lib/logs/log.js +1 -5
  94. package/lib/logs/log.js.map +1 -1
  95. package/lib/logs/skill.js +6 -10
  96. package/lib/logs/skill.js.map +1 -1
  97. package/lib/logs/state.js +5 -9
  98. package/lib/logs/state.js.map +1 -1
  99. package/lib/models/Item.js +1 -2
  100. package/lib/presets/index.js +28 -36
  101. package/lib/presets/index.js.map +1 -1
  102. package/lib/server.d.ts +23 -2
  103. package/lib/server.js +227 -134
  104. package/lib/server.js.map +1 -1
  105. package/package.json +24 -16
  106. package/src/Game/Map.ts +513 -0
  107. package/src/Game/WorldMaps.ts +45 -0
  108. package/src/Gui/DialogGui.ts +67 -0
  109. package/src/Gui/Gui.ts +45 -0
  110. package/src/Gui/MenuGui.ts +26 -0
  111. package/src/Gui/NotificationGui.ts +10 -0
  112. package/src/Gui/ShopGui.ts +43 -0
  113. package/src/Gui/index.ts +13 -0
  114. package/src/Interfaces/Gui.ts +4 -0
  115. package/src/Interfaces/StateStore.ts +5 -0
  116. package/src/MatchMaker.ts +63 -0
  117. package/src/Monitor/index.ts +78 -0
  118. package/src/Player/BattleManager.ts +123 -0
  119. package/src/Player/ClassManager.ts +72 -0
  120. package/src/Player/ComponentManager.ts +538 -0
  121. package/src/Player/EffectManager.ts +94 -0
  122. package/src/Player/ElementManager.ts +142 -0
  123. package/src/Player/GoldManager.ts +26 -0
  124. package/src/Player/GuiManager.ts +308 -0
  125. package/src/Player/ItemFixture.ts +24 -0
  126. package/src/Player/ItemManager.ts +474 -0
  127. package/src/Player/MoveManager.ts +635 -0
  128. package/src/Player/ParameterManager.ts +468 -0
  129. package/src/Player/Player.ts +931 -0
  130. package/src/Player/SkillManager.ts +229 -0
  131. package/src/Player/StateManager.ts +230 -0
  132. package/src/Player/VariableManager.ts +55 -0
  133. package/src/Query.ts +172 -0
  134. package/src/RpgServer.ts +429 -0
  135. package/src/Scenes/Map.ts +302 -0
  136. package/src/decorators/event.ts +57 -0
  137. package/src/decorators/map.ts +223 -0
  138. package/src/entry-point.ts +102 -0
  139. package/src/express/api.ts +118 -0
  140. package/src/express/errors/NotAuthorized.ts +6 -0
  141. package/src/express/errors/NotFound.ts +6 -0
  142. package/src/express/server.ts +93 -0
  143. package/src/index.ts +28 -0
  144. package/src/logs/index.ts +11 -0
  145. package/src/logs/item.ts +31 -0
  146. package/src/logs/log.ts +3 -0
  147. package/src/logs/skill.ts +16 -0
  148. package/src/logs/state.ts +13 -0
  149. package/src/models/Item.ts +11 -0
  150. package/src/presets/index.ts +71 -0
  151. package/src/server.ts +394 -0
  152. package/tsconfig.json +27 -0
package/LICENSE ADDED
@@ -0,0 +1,19 @@
1
+ Copyright (C) 2020 by Samuel Ronce
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
package/lib/Game/Map.d.ts CHANGED
@@ -1,20 +1,21 @@
1
1
  import { RpgCommonMap, RpgShape, RpgCommonGame, AbstractObject } from '@rpgjs/common';
2
+ import { TiledTileset } from '@rpgjs/tiled';
2
3
  import { EventOptions } from '../decorators/event';
3
4
  import { RpgPlayer, EventMode, RpgEvent } from '../Player/Player';
4
5
  import { RpgServerEngine } from '../server';
5
6
  import { Observable } from 'rxjs';
6
7
  import { HitBox, MovingHitbox } from '@rpgjs/types';
7
- export declare type EventPosOption = {
8
+ export type EventPosOption = {
8
9
  x: number;
9
10
  y: number;
10
11
  z?: number;
11
12
  event: EventOptions;
12
13
  };
13
- export declare type EventOption = EventPosOption | EventOptions;
14
- export declare type PlayersList = {
14
+ export type EventOption = EventPosOption | EventOptions;
15
+ export type PlayersList = {
15
16
  [eventId: string]: RpgEvent;
16
17
  };
17
- export declare type EventsList = {
18
+ export type EventsList = {
18
19
  [playerId: string]: RpgPlayer;
19
20
  };
20
21
  export declare class RpgMap extends RpgCommonMap {
@@ -28,13 +29,64 @@ export declare class RpgMap extends RpgCommonMap {
28
29
  * */
29
30
  events: EventsList;
30
31
  constructor(_server: RpgServerEngine);
32
+ /**
33
+ * @title Players list
34
+ * @prop { { [playerId: string]: RpgPlayer } } [players]
35
+ * @readonly
36
+ * @memberof Map
37
+ */
31
38
  get players(): PlayersList;
39
+ /**
40
+ * @title Number of players
41
+ * @prop {number} [nbPlayers]
42
+ * @readonly
43
+ * @memberof Map
44
+ */
32
45
  get nbPlayers(): number;
33
46
  load(): Promise<void>;
47
+ /**
48
+ * Update the map with new data. Data can be a string (TMX content) or an object (parsed TMX content)
49
+ * New Map data will be sent to all players on the map
50
+ *
51
+ * @title Update map
52
+ * @method map.update(data)
53
+ * @since 4.0.0
54
+ * @returns {Promise<void>}
55
+ * @param {object | string} data
56
+ * @memberof Map
57
+ */
58
+ update(data: object | string): Promise<void>;
59
+ /**
60
+ * Update tileset with new data. Data can be a string (TSX content) or an object (TiledTileset)
61
+ * Cache will be removed for this tileset
62
+ * New tileset data will be sent to all players on the map
63
+ * Warning: tileset is not updated for all maps, only for the current map
64
+ *
65
+ * @title Update tileset
66
+ * @method map.updateTileset(data)
67
+ * @since 4.0.0
68
+ * @returns {<void>}
69
+ * @param {TiledTileset | string} data
70
+ * @memberof Map
71
+ */
72
+ updateTileset(data: TiledTileset | string): void;
73
+ /**
74
+ * Remove the map from the server. If there are still players on the map, an error will be thrown
75
+ * Not delete the map file, only in memory
76
+ *
77
+ * @title Remove map
78
+ * @method map.remove()
79
+ * @since 4.0.0
80
+ * @returns {void}
81
+ * @throws {Error} If there are still players on the map
82
+ * @memberof Map
83
+ * */
84
+ remove(ignorePlayers?: boolean): never | void;
85
+ private parseTmx;
34
86
  private loadProperties;
35
87
  get game(): RpgCommonGame;
36
- private removeObject;
37
88
  onLeave(player: RpgPlayer): void;
89
+ private loadCommonEvents;
38
90
  autoLoadEvent(): void;
39
91
  /**
40
92
  * Edit a tile on the map. All players on the map will see the modified tile
@@ -115,6 +167,7 @@ export declare class RpgMap extends RpgCommonMap {
115
167
  removeEvent(eventId: string): boolean;
116
168
  createEvent(obj: EventPosOption, mode: EventMode, shape?: RpgShape): RpgEvent | null;
117
169
  createEvents(eventsList: EventOption[], mode: EventMode): EventsList;
170
+ private removeObject;
118
171
  /**
119
172
  * Allows to create a temporary hitbox on the map that can have a movement
120
173
  For example, you can use it to explode a bomb and find all the affected players, or during a sword strike, you can create a moving hitbox and find the affected players again
package/lib/Game/Map.js CHANGED
@@ -1,20 +1,10 @@
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
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.RpgMap = void 0;
13
- const common_1 = require("@rpgjs/common");
14
- const tiled_1 = require("@rpgjs/tiled");
15
- const Player_1 = require("../Player/Player");
16
- const MoveManager_1 = require("../Player/MoveManager");
17
- class AutoEvent extends Player_1.RpgEvent {
1
+ import { RpgCommonMap, Utils } from '@rpgjs/common';
2
+ import { TiledParserFile, TiledParser } from '@rpgjs/tiled';
3
+ import { EventMode, RpgEvent } from '../Player/Player';
4
+ import { Move } from '../Player/MoveManager';
5
+ import path from 'path';
6
+ import { World } from 'simple-room';
7
+ class AutoEvent extends RpgEvent {
18
8
  onInit() {
19
9
  const { graphic, direction, speed, frequency, move } = this.properties;
20
10
  if (graphic) {
@@ -30,22 +20,20 @@ class AutoEvent extends Player_1.RpgEvent {
30
20
  this.frequency = frequency;
31
21
  }
32
22
  if (move == 'random') {
33
- this.infiniteMoveRoute([MoveManager_1.Move.tileRandom()]);
23
+ this.infiniteMoveRoute([Move.tileRandom()]);
34
24
  }
35
25
  }
36
- onAction(player) {
37
- return __awaiter(this, void 0, void 0, function* () {
38
- const { text } = this.properties;
39
- if (text) {
40
- yield player.showText(text, {
41
- talkWith: this
42
- });
43
- }
44
- });
26
+ async onAction(player) {
27
+ const { text } = this.properties;
28
+ if (text) {
29
+ await player.showText(text, {
30
+ talkWith: this
31
+ });
32
+ }
45
33
  }
46
34
  }
47
35
  AutoEvent.hitbox = {};
48
- class RpgMap extends common_1.RpgCommonMap {
36
+ export class RpgMap extends RpgCommonMap {
49
37
  constructor(_server) {
50
38
  super();
51
39
  this._server = _server;
@@ -57,37 +45,140 @@ class RpgMap extends common_1.RpgCommonMap {
57
45
  this.events = {};
58
46
  }
59
47
  // alias of users property in simple-room package
48
+ /**
49
+ * @title Players list
50
+ * @prop { { [playerId: string]: RpgPlayer } } [players]
51
+ * @readonly
52
+ * @memberof Map
53
+ */
60
54
  get players() {
61
55
  return this['users'];
62
56
  }
57
+ /**
58
+ * @title Number of players
59
+ * @prop {number} [nbPlayers]
60
+ * @readonly
61
+ * @memberof Map
62
+ */
63
63
  get nbPlayers() {
64
64
  return Object.keys(this.players).length;
65
65
  }
66
- load() {
67
- const _super = Object.create(null, {
68
- load: { get: () => super.load }
66
+ async load() {
67
+ if (RpgCommonMap.buffer.has(this.id)) {
68
+ return;
69
+ }
70
+ const data = await this.parseTmx(this.file);
71
+ super.load(data);
72
+ this.getAllObjects().forEach(this.createShape.bind(this));
73
+ this.loadProperties(data.properties);
74
+ this._server.workers?.call('loadMap', {
75
+ id: this.id,
76
+ data
69
77
  });
70
- var _a;
71
- return __awaiter(this, void 0, void 0, function* () {
72
- if (common_1.RpgCommonMap.buffer.has(this.id)) {
73
- return;
74
- }
75
- const parser = new tiled_1.TiledParserFile(this.file, this._server.inputOptions.basePath + '/' + this._server.assetsPath);
76
- const data = yield parser.parseFilePromise({
77
- getOnlyBasename: true
78
- });
79
- _super.load.call(this, data);
80
- this.getAllObjects().forEach(this.createShape.bind(this));
81
- this.loadProperties(data.properties);
82
- (_a = this._server.workers) === null || _a === void 0 ? void 0 : _a.call('loadMap', {
83
- id: this.id,
84
- data
85
- });
86
- common_1.RpgCommonMap.buffer.set(this.id, this);
87
- this.createDynamicEvent(this._events);
88
- if (this.onLoad)
89
- this.onLoad();
78
+ RpgCommonMap.buffer.set(this.id, this);
79
+ this.loadCommonEvents(this._server.inputOptions.events);
80
+ this.createDynamicEvent(this._events);
81
+ if (this.onLoad)
82
+ this.onLoad();
83
+ }
84
+ /**
85
+ * Update the map with new data. Data can be a string (TMX content) or an object (parsed TMX content)
86
+ * New Map data will be sent to all players on the map
87
+ *
88
+ * @title Update map
89
+ * @method map.update(data)
90
+ * @since 4.0.0
91
+ * @returns {Promise<void>}
92
+ * @param {object | string} data
93
+ * @memberof Map
94
+ */
95
+ async update(data) {
96
+ let objectData;
97
+ // Data is XML (TMX content)
98
+ if (typeof data == 'string') {
99
+ objectData = await this.parseTmx(data, this.file);
100
+ }
101
+ else {
102
+ objectData = data;
103
+ }
104
+ super.load(objectData);
105
+ RpgCommonMap.buffer.set(this.id, this);
106
+ this.clearShapes();
107
+ this.getAllObjects().forEach(this.createShape.bind(this));
108
+ for (let playerId in this.players) {
109
+ const player = this.players[playerId];
110
+ player.emitSceneMap();
111
+ }
112
+ }
113
+ /**
114
+ * Update tileset with new data. Data can be a string (TSX content) or an object (TiledTileset)
115
+ * Cache will be removed for this tileset
116
+ * New tileset data will be sent to all players on the map
117
+ * Warning: tileset is not updated for all maps, only for the current map
118
+ *
119
+ * @title Update tileset
120
+ * @method map.updateTileset(data)
121
+ * @since 4.0.0
122
+ * @returns {<void>}
123
+ * @param {TiledTileset | string} data
124
+ * @memberof Map
125
+ */
126
+ updateTileset(data) {
127
+ let objectData;
128
+ // Data is XML (TMX content)
129
+ if (typeof data == 'string') {
130
+ const parser = new TiledParser(data, this.file);
131
+ objectData = parser.parseTileset();
132
+ }
133
+ else {
134
+ objectData = data;
135
+ }
136
+ this.removeCacheTileset(objectData.name);
137
+ this.update({
138
+ ...this.data,
139
+ tilesets: this.data.tilesets.map((tileset) => {
140
+ if (tileset.name == objectData.name) {
141
+ objectData.firstgid = tileset.firstgid;
142
+ return objectData;
143
+ }
144
+ return tileset;
145
+ })
146
+ });
147
+ }
148
+ /**
149
+ * Remove the map from the server. If there are still players on the map, an error will be thrown
150
+ * Not delete the map file, only in memory
151
+ *
152
+ * @title Remove map
153
+ * @method map.remove()
154
+ * @since 4.0.0
155
+ * @returns {void}
156
+ * @throws {Error} If there are still players on the map
157
+ * @memberof Map
158
+ * */
159
+ remove(ignorePlayers = false) {
160
+ const players = Object.values(this.players);
161
+ if (players.length > 0 && !ignorePlayers) {
162
+ throw new Error(`Cannot remove map ${this.id} because there are still players on it`);
163
+ }
164
+ for (let eventId in this.events) {
165
+ this.removeEvent(eventId);
166
+ }
167
+ RpgCommonMap.buffer.delete(this.id);
168
+ World.removeRoom(this.id);
169
+ }
170
+ async parseTmx(file, relativePath = '') {
171
+ // @ts-ignore
172
+ const hasAssetsPath = !!import.meta.env.VITE_BUILT;
173
+ const parser = new TiledParserFile(file, {
174
+ basePath: process.env.NODE_ENV == 'test' ? '.' : '',
175
+ staticDir: hasAssetsPath ? path.join(this._server.inputOptions.basePath, this._server.assetsPath) : '',
176
+ relativePath
177
+ });
178
+ const data = await parser.parseFilePromise({
179
+ getOnlyBasename: hasAssetsPath
90
180
  });
181
+ return data;
91
182
  }
92
183
  loadProperties(properties) {
93
184
  for (let key in properties) {
@@ -97,41 +188,32 @@ class RpgMap extends common_1.RpgCommonMap {
97
188
  get game() {
98
189
  return this._server.gameEngine;
99
190
  }
100
- removeObject(object) {
101
- var _a;
102
- this.getShapes().forEach(shape => shape.out(object));
103
- const events = Object.values(this.game.world.getObjectsOfGroup(this.id, object));
104
- for (let event of events) {
105
- object.getShapes().forEach(shape => shape.out(event));
106
- event.getShapes().forEach(shape => shape.out(object));
107
- }
108
- object.stopMoveTo();
109
- this.grid.clearObjectInCells(object.id);
110
- for (let playerId in this.players) {
111
- if (object.id == playerId)
112
- continue;
113
- const otherPlayer = this.players[playerId];
114
- if (((_a = otherPlayer.following) === null || _a === void 0 ? void 0 : _a.id) == object.id) {
115
- otherPlayer.cameraFollow(otherPlayer);
116
- }
117
- }
118
- // last player before removed of this map
119
- if (this.nbPlayers === 1) {
120
- // clear cache for this map
121
- this._server.sceneMap.removeMap(this.id);
122
- }
123
- }
124
191
  // Hook: called by simple-room package
125
192
  onLeave(player) {
126
193
  this.removeObject(player);
127
194
  }
195
+ loadCommonEvents(commonEvents) {
196
+ let events = [];
197
+ this.getShapes().forEach(shape => {
198
+ const findEvent = commonEvents.find(event => event._name == shape.name);
199
+ if (!findEvent)
200
+ return;
201
+ const { x, y, } = shape.hitbox;
202
+ events.push({
203
+ x,
204
+ y,
205
+ event: findEvent
206
+ });
207
+ });
208
+ this.createDynamicEvent(events);
209
+ }
128
210
  // TODO
129
211
  autoLoadEvent() {
130
212
  this.getShapes().forEach(shape => {
131
213
  const { properties } = shape;
132
214
  const { x, y, pos, w, h } = shape.hitbox;
133
215
  if (shape.isEvent() && !this.events[shape.name]) {
134
- const mode = properties.mode || Player_1.EventMode.Shared;
216
+ const mode = properties.mode || EventMode.Shared;
135
217
  AutoEvent.prototype['_name'] = shape.name;
136
218
  AutoEvent.mode = mode;
137
219
  AutoEvent.hitbox = {
@@ -211,17 +293,17 @@ class RpgMap extends common_1.RpgCommonMap {
211
293
  createDynamicEvent(eventsList) {
212
294
  if (!eventsList)
213
295
  return {};
214
- if (!common_1.Utils.isArray(eventsList)) {
296
+ if (!Utils.isArray(eventsList)) {
215
297
  eventsList = [eventsList];
216
298
  }
217
- const events = this.createEvents(eventsList, Player_1.EventMode.Shared);
299
+ const events = this.createEvents(eventsList, EventMode.Shared);
218
300
  let ret = {};
219
301
  for (let key in events) {
220
302
  this.events[key] = events[key];
221
303
  this.events[key].updateInVirtualGrid();
222
304
  this.events[key].execMethod('onInit');
223
305
  // force to get Proxy object to sync with client
224
- ret = Object.assign(Object.assign({}, ret), { [key]: this.events[key] });
306
+ ret = { ...ret, [key]: this.events[key] };
225
307
  }
226
308
  return ret;
227
309
  }
@@ -293,6 +375,30 @@ class RpgMap extends common_1.RpgCommonMap {
293
375
  }
294
376
  return events;
295
377
  }
378
+ removeObject(object) {
379
+ this.getShapes().forEach(shape => shape.out(object));
380
+ const events = Object.values(this.game.world.getObjectsOfGroup(this.id, object));
381
+ for (let event of events) {
382
+ object.getShapes().forEach(shape => shape.out(event));
383
+ event.getShapes().forEach(shape => shape.out(object));
384
+ }
385
+ object._destroy$.next();
386
+ object._destroy$.complete();
387
+ this.grid.clearObjectInCells(object.id);
388
+ for (let playerId in this.players) {
389
+ if (object.id == playerId)
390
+ continue;
391
+ const otherPlayer = this.players[playerId];
392
+ if (otherPlayer.following?.id == object.id) {
393
+ otherPlayer.cameraFollow(otherPlayer);
394
+ }
395
+ }
396
+ // last player before removed of this map
397
+ if (this.nbPlayers === 1 && object.type === 'player') {
398
+ // clear cache for this map
399
+ this.remove(true);
400
+ }
401
+ }
296
402
  /**
297
403
  * Allows to create a temporary hitbox on the map that can have a movement
298
404
  For example, you can use it to explode a bomb and find all the affected players, or during a sword strike, you can create a moving hitbox and find the affected players again
@@ -330,5 +436,4 @@ For example, you can use it to explode a bomb and find all the affected players,
330
436
  return this.$setSchema(schema);
331
437
  }
332
438
  }
333
- exports.RpgMap = RpgMap;
334
439
  //# sourceMappingURL=Map.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Map.js","sourceRoot":"","sources":["../../src/Game/Map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Map.js","sourceRoot":"","sources":["../../src/Game/Map.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,16 @@
1
1
  import { RpgCommonWorldMaps } from '@rpgjs/common';
2
2
  import { TiledWorld, TiledMap, TiledWorldMap } from '@rpgjs/tiled';
3
3
  import { SceneMap } from '../Scenes/Map';
4
- export declare type RpgTiledWorldMap = {
4
+ export type RpgTiledWorldMap = {
5
5
  id?: string;
6
6
  fileName: string | TiledMap;
7
7
  } & TiledWorldMap;
8
- export declare type RpgTiledWorld = {
8
+ export type RpgTiledWorld = {
9
9
  maps: RpgTiledWorldMap[];
10
10
  } & TiledWorld;
11
11
  export interface WorldMap extends RpgTiledWorld {
12
12
  id?: string;
13
+ basePath?: string;
13
14
  }
14
15
  export declare class RpgWorldMaps extends RpgCommonWorldMaps {
15
16
  load(world: WorldMap, sceneMap: SceneMap): this;
@@ -1,33 +1,28 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RpgWorldMaps = void 0;
4
- const common_1 = require("@rpgjs/common");
5
- class RpgWorldMaps extends common_1.RpgCommonWorldMaps {
1
+ import { RpgCommonWorldMaps, Utils } from '@rpgjs/common';
2
+ export class RpgWorldMaps extends RpgCommonWorldMaps {
6
3
  load(world, sceneMap) {
7
- var _a;
8
4
  for (let worldMap of world.maps) {
9
5
  const { fileName } = worldMap;
10
6
  let id, map;
11
7
  if (worldMap.id) {
12
8
  id = worldMap.id;
13
9
  }
14
- else if (common_1.Utils.isString(fileName)) {
15
- id = common_1.Utils.extractId(fileName);
10
+ else if (Utils.isString(fileName)) {
11
+ id = Utils.extractId(fileName);
16
12
  }
17
13
  const create = () => sceneMap.createDynamicMap({
18
14
  id,
19
- file: fileName
15
+ file: world.basePath ? `${world.basePath}/${fileName}` : fileName
20
16
  });
21
17
  if (!id) {
22
18
  map = create();
23
19
  }
24
20
  else {
25
- map = (_a = sceneMap.getMapBydId(id)) !== null && _a !== void 0 ? _a : create();
21
+ map = sceneMap.getMapBydId(id) ?? create();
26
22
  }
27
23
  this.addMap(worldMap, map);
28
24
  }
29
25
  return this;
30
26
  }
31
27
  }
32
- exports.RpgWorldMaps = RpgWorldMaps;
33
28
  //# sourceMappingURL=WorldMaps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorldMaps.js","sourceRoot":"","sources":["../../src/Game/WorldMaps.ts"],"names":[],"mappings":";;;AAAA,0CAAyD;AAkBzD,MAAa,YAAa,SAAQ,2BAAkB;IAChD,IAAI,CAAC,KAAe,EAAE,QAAkB;;QACpC,KAAK,IAAI,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;YAC7B,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAA;YAC7B,IAAI,EAAE,EAAE,GAAwB,CAAA;YAChC,IAAI,QAAQ,CAAC,EAAE,EAAE;gBACb,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAA;aACnB;iBACI,IAAI,cAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBAC/B,EAAE,GAAG,cAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;aACjC;YACD,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBAC3C,EAAE;gBACF,IAAI,EAAE,QAAQ;aACjB,CAAC,CAAA;YACF,IAAI,CAAC,EAAE,EAAE;gBACL,GAAG,GAAG,MAAM,EAAE,CAAA;aACjB;iBACI;gBACD,GAAG,GAAG,MAAA,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,mCAAI,MAAM,EAAE,CAAA;aAC7C;YACD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;SAC7B;QACD,OAAO,IAAI,CAAA;IACf,CAAC;CACJ;AAzBD,oCAyBC"}
1
+ {"version":3,"file":"WorldMaps.js","sourceRoot":"","sources":["../../src/Game/WorldMaps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAmBzD,MAAM,OAAO,YAAa,SAAQ,kBAAkB;IAChD,IAAI,CAAC,KAAe,EAAE,QAAkB;QACpC,KAAK,IAAI,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;YAC7B,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAA;YAC7B,IAAI,EAAE,EAAE,GAAwB,CAAA;YAChC,IAAI,QAAQ,CAAC,EAAE,EAAE;gBACb,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAA;aACnB;iBACI,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBAC/B,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;aACjC;YACD,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBAC3C,EAAE;gBACF,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ;aACpE,CAAC,CAAA;YACF,IAAI,CAAC,EAAE,EAAE;gBACL,GAAG,GAAG,MAAM,EAAE,CAAA;aACjB;iBACI;gBACD,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE,CAAA;aAC7C;YACD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;SAC7B;QACD,OAAO,IAAI,CAAA;IACf,CAAC;CACJ"}
@@ -6,7 +6,7 @@ export declare enum DialogPosition {
6
6
  Bottom = "bottom",
7
7
  Middle = "middle"
8
8
  }
9
- export declare type Choice = {
9
+ export type Choice = {
10
10
  text: string;
11
11
  value: any;
12
12
  };
@@ -1,18 +1,15 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DialogGui = exports.DialogPosition = void 0;
4
- const common_1 = require("@rpgjs/common");
5
- const Gui_1 = require("./Gui");
6
- const MoveManager_1 = require("../Player/MoveManager");
7
- var DialogPosition;
1
+ import { PrebuiltGui } from '@rpgjs/common';
2
+ import { Gui } from './Gui';
3
+ import { Move } from '../Player/MoveManager';
4
+ export var DialogPosition;
8
5
  (function (DialogPosition) {
9
6
  DialogPosition["Top"] = "top";
10
7
  DialogPosition["Bottom"] = "bottom";
11
8
  DialogPosition["Middle"] = "middle";
12
- })(DialogPosition = exports.DialogPosition || (exports.DialogPosition = {}));
13
- class DialogGui extends Gui_1.Gui {
9
+ })(DialogPosition || (DialogPosition = {}));
10
+ export class DialogGui extends Gui {
14
11
  constructor(player) {
15
- super(common_1.PrebuiltGui.Dialog, player);
12
+ super(PrebuiltGui.Dialog, player);
16
13
  }
17
14
  openDialog(message, options) {
18
15
  if (!options.choices)
@@ -30,7 +27,7 @@ class DialogGui extends Gui_1.Gui {
30
27
  if (event) {
31
28
  memoryDir = event.direction;
32
29
  event.breakRoutes(true);
33
- event.moveRoutes([MoveManager_1.Move.turnTowardPlayer(this.player)]);
30
+ event.moveRoutes([Move.turnTowardPlayer(this.player)]);
34
31
  }
35
32
  const data = {
36
33
  autoClose: options.autoClose,
@@ -42,7 +39,10 @@ class DialogGui extends Gui_1.Gui {
42
39
  text: choice.text
43
40
  }))
44
41
  };
45
- return super.open(Object.assign({ message }, data), {
42
+ return super.open({
43
+ message,
44
+ ...data
45
+ }, {
46
46
  waitingAction: true,
47
47
  blockPlayerInput: true
48
48
  }).then((val) => {
@@ -54,5 +54,4 @@ class DialogGui extends Gui_1.Gui {
54
54
  });
55
55
  }
56
56
  }
57
- exports.DialogGui = DialogGui;
58
57
  //# sourceMappingURL=DialogGui.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DialogGui.js","sourceRoot":"","sources":["../../src/Gui/DialogGui.ts"],"names":[],"mappings":";;;AAAA,0CAA2C;AAC3C,+BAA2B;AAG3B,uDAA4C;AAE5C,IAAY,cAIX;AAJD,WAAY,cAAc;IACtB,6BAAW,CAAA;IACX,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;AACrB,CAAC,EAJW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAIzB;AAcD,MAAa,SAAU,SAAQ,SAAG;IAC9B,YAAY,MAAiB;QACzB,KAAK,CAAC,oBAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,CAAC;IAED,UAAU,CAAC,OAAe,EAAE,OAAsB;QAC9C,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO,CAAC,OAAO,GAAG,EAAE,CAAA;QAC1C,IAAI,OAAO,CAAC,SAAS,IAAI,SAAS;YAAE,OAAO,CAAC,SAAS,GAAG,KAAK,CAAA;QAC7D,IAAI,CAAC,OAAO,CAAC,QAAQ;YAAE,OAAO,CAAC,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAA;QAC/D,IAAI,OAAO,CAAC,SAAS,IAAI,SAAS;YAAE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAA;QAC5D,IAAI,OAAO,CAAC,gBAAgB,IAAK,SAAS;YAAE,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAA;QAC3E,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAA;QAC9B,IAAI,SAAS,CAAA;QACb,IAAI,KAAK,EAAE;YACP,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;YAC3B,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;YACvB,KAAK,CAAC,UAAU,CAAC,CAAE,kBAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAE,CAAC,CAAA;SAC3D;QACD,MAAM,IAAI,GAAG;YACT,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,2EAA2E;YAC3E,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACpC,IAAI,EAAE,MAAM,CAAC,IAAI;aACpB,CAAC,CAAC;SACN,CAAA;QACD,OAAO,KAAK,CAAC,IAAI,iBACb,OAAO,IACJ,IAAI,GACR;YACC,aAAa,EAAE,IAAI;YACnB,gBAAgB,EAAE,IAAI;SACzB,CAAC,CAAC,IAAI,CAAC,CAAC,GAAQ,EAAE,EAAE;YACjB,IAAI,KAAK,EAAE;gBACP,KAAK,CAAC,YAAY,EAAE,CAAA;gBACpB,KAAK,CAAC,SAAS,GAAG,SAAS,CAAA;aAC9B;YACD,OAAO,GAAG,CAAA;QACd,CAAC,CAAC,CAAA;IACN,CAAC;CACJ;AA1CD,8BA0CC"}
1
+ {"version":3,"file":"DialogGui.js","sourceRoot":"","sources":["../../src/Gui/DialogGui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAG3B,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAE5C,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACtB,6BAAW,CAAA;IACX,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;AACrB,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AAcD,MAAM,OAAO,SAAU,SAAQ,GAAG;IAC9B,YAAY,MAAiB;QACzB,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,CAAC;IAED,UAAU,CAAC,OAAe,EAAE,OAAsB;QAC9C,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO,CAAC,OAAO,GAAG,EAAE,CAAA;QAC1C,IAAI,OAAO,CAAC,SAAS,IAAI,SAAS;YAAE,OAAO,CAAC,SAAS,GAAG,KAAK,CAAA;QAC7D,IAAI,CAAC,OAAO,CAAC,QAAQ;YAAE,OAAO,CAAC,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAA;QAC/D,IAAI,OAAO,CAAC,SAAS,IAAI,SAAS;YAAE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAA;QAC5D,IAAI,OAAO,CAAC,gBAAgB,IAAK,SAAS;YAAE,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAA;QAC3E,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAA;QAC9B,IAAI,SAAS,CAAA;QACb,IAAI,KAAK,EAAE;YACP,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;YAC3B,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;YACvB,KAAK,CAAC,UAAU,CAAC,CAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAE,CAAC,CAAA;SAC3D;QACD,MAAM,IAAI,GAAG;YACT,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,2EAA2E;YAC3E,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACpC,IAAI,EAAE,MAAM,CAAC,IAAI;aACpB,CAAC,CAAC;SACN,CAAA;QACD,OAAO,KAAK,CAAC,IAAI,CAAC;YACd,OAAO;YACP,GAAG,IAAI;SACV,EAAE;YACC,aAAa,EAAE,IAAI;YACnB,gBAAgB,EAAE,IAAI;SACzB,CAAC,CAAC,IAAI,CAAC,CAAC,GAAQ,EAAE,EAAE;YACjB,IAAI,KAAK,EAAE;gBACP,KAAK,CAAC,YAAY,EAAE,CAAA;gBACpB,KAAK,CAAC,SAAS,GAAG,SAAS,CAAA;aAC9B;YACD,OAAO,GAAG,CAAA;QACd,CAAC,CAAC,CAAA;IACN,CAAC;CACJ"}
package/lib/Gui/Gui.js CHANGED
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Gui = void 0;
4
- const common_1 = require("@rpgjs/common");
5
- class Gui extends common_1.EventEmitter {
1
+ import { EventEmitter } from '@rpgjs/common';
2
+ export class Gui extends EventEmitter {
6
3
  constructor(id, player) {
7
4
  super();
8
5
  this.id = id;
@@ -36,5 +33,4 @@ class Gui extends common_1.EventEmitter {
36
33
  this._close(data);
37
34
  }
38
35
  }
39
- exports.Gui = Gui;
40
36
  //# sourceMappingURL=Gui.js.map