@rpgjs/server 3.0.0-beta.7 → 3.0.0-beta.9.1
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/Event.d.ts +2 -1
- package/lib/Event.js +2 -1
- package/lib/Event.js.map +1 -1
- package/lib/Game/Map.d.ts +4 -7
- package/lib/Game/Map.js +6 -0
- package/lib/Game/Map.js.map +1 -1
- package/lib/Game/WorldMaps.d.ts +16 -0
- package/lib/Game/WorldMaps.js +33 -0
- package/lib/Game/WorldMaps.js.map +1 -0
- package/lib/Interfaces/StateStore.d.ts +5 -0
- package/lib/Interfaces/StateStore.js +3 -0
- package/lib/Interfaces/StateStore.js.map +1 -0
- package/lib/MatchMaker.d.ts +24 -0
- package/lib/MatchMaker.js +58 -0
- package/lib/MatchMaker.js.map +1 -0
- package/lib/Player/Player.d.ts +53 -18
- package/lib/Player/Player.js +145 -67
- package/lib/Player/Player.js.map +1 -1
- package/lib/RpgServer.d.ts +142 -5
- package/lib/Scenes/Map.d.ts +76 -7
- package/lib/Scenes/Map.js +129 -11
- package/lib/Scenes/Map.js.map +1 -1
- package/lib/decorators/map.d.ts +6 -3
- package/lib/decorators/map.js.map +1 -1
- package/lib/entry-point.d.ts +1 -1
- package/lib/entry-point.js +61 -27
- package/lib/entry-point.js.map +1 -1
- package/lib/index.d.ts +5 -1
- package/lib/index.js +7 -1
- package/lib/index.js.map +1 -1
- package/lib/server.d.ts +2 -0
- package/lib/server.js +23 -4
- package/lib/server.js.map +1 -1
- package/package.json +8 -5
- package/LICENSE +0 -19
package/lib/Scenes/Map.js
CHANGED
|
@@ -18,13 +18,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
exports.SceneMap = void 0;
|
|
19
19
|
const common_1 = require("@rpgjs/common");
|
|
20
20
|
const sync_server_1 = require("@rpgjs/sync-server");
|
|
21
|
+
const tiled_1 = require("@rpgjs/tiled");
|
|
21
22
|
const map_1 = require("../decorators/map");
|
|
22
23
|
const Map_1 = require("../Game/Map");
|
|
24
|
+
const WorldMaps_1 = require("../Game/WorldMaps");
|
|
25
|
+
const Player_1 = require("../Player/Player");
|
|
23
26
|
class SceneMap {
|
|
24
|
-
constructor(maps, server) {
|
|
27
|
+
constructor(maps, worldMaps, server) {
|
|
25
28
|
this.maps = maps;
|
|
26
29
|
this.server = server;
|
|
27
30
|
this.mapsById = {};
|
|
31
|
+
this.worldMaps = new Map();
|
|
28
32
|
this.mapsById = {};
|
|
29
33
|
common_1.RpgCommonMap.buffer.clear();
|
|
30
34
|
if (this.maps) {
|
|
@@ -32,12 +36,16 @@ class SceneMap {
|
|
|
32
36
|
this.createDynamicMap(map);
|
|
33
37
|
}
|
|
34
38
|
}
|
|
39
|
+
if (this.worldMaps) {
|
|
40
|
+
for (let worldMap of worldMaps) {
|
|
41
|
+
this.createDynamicWorldMaps(worldMap);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
35
44
|
}
|
|
36
45
|
getMapBydId(id) {
|
|
37
46
|
let mapClass = this.mapsById[id];
|
|
38
47
|
if (!mapClass) {
|
|
39
|
-
|
|
40
|
-
return false;
|
|
48
|
+
return null;
|
|
41
49
|
}
|
|
42
50
|
if (!common_1.Utils.isClass(mapClass))
|
|
43
51
|
mapClass = common_1.Utils.createConstructor(mapClass);
|
|
@@ -46,27 +54,97 @@ class SceneMap {
|
|
|
46
54
|
loadMap(id) {
|
|
47
55
|
return __awaiter(this, void 0, void 0, function* () {
|
|
48
56
|
const mapClass = this.getMapBydId(id);
|
|
57
|
+
if (!mapClass) {
|
|
58
|
+
console.log(`Map ${id} not exists`);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
49
61
|
let mapInstance;
|
|
50
|
-
if (mapClass
|
|
51
|
-
return mapClass
|
|
62
|
+
if (mapClass['buffer'].has(id)) {
|
|
63
|
+
return mapClass['buffer'].get(id);
|
|
52
64
|
}
|
|
53
65
|
if (common_1.RpgCommonMap.buffer.has(id)) {
|
|
54
66
|
mapInstance = common_1.RpgCommonMap.buffer.get(id);
|
|
55
67
|
}
|
|
56
68
|
else {
|
|
57
|
-
|
|
69
|
+
const room = new mapClass(this.server);
|
|
70
|
+
room.$schema.users = [
|
|
71
|
+
Object.assign(Object.assign({}, Player_1.RpgPlayer.schemas), this.server['playerProps'])
|
|
72
|
+
];
|
|
73
|
+
mapInstance = sync_server_1.World.addRoom(id, room);
|
|
58
74
|
yield mapInstance.load();
|
|
59
75
|
}
|
|
60
76
|
return mapInstance;
|
|
61
77
|
});
|
|
62
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Loads the content of a `.world` file from Tiled Map Editor into the map scene
|
|
81
|
+
*
|
|
82
|
+
* > Note, that if the map already exists (i.e. you have already defined an RpgMap), the world will retrieve the already existing map. Otherwise it will create a new map
|
|
83
|
+
*
|
|
84
|
+
* @title Create worlds dynamically
|
|
85
|
+
* @method sceneMap.createDynamicWorldMaps(world)
|
|
86
|
+
* @param {object} world
|
|
87
|
+
* object is
|
|
88
|
+
* ```ts
|
|
89
|
+
* {
|
|
90
|
+
* id?: string
|
|
91
|
+
* maps: {
|
|
92
|
+
* id?: string
|
|
93
|
+
* properties?: object
|
|
94
|
+
* fileName: string;
|
|
95
|
+
height: number;
|
|
96
|
+
width: number;
|
|
97
|
+
x: number;
|
|
98
|
+
y: number;
|
|
99
|
+
* }[],
|
|
100
|
+
onlyShowAdjacentMaps: boolean, // only for Tiled Map Editor
|
|
101
|
+
type: 'world' // only for Tiled Map Editor
|
|
102
|
+
* }
|
|
103
|
+
* ```
|
|
104
|
+
*
|
|
105
|
+
* @since 3.0.0-beta.8
|
|
106
|
+
* @memberof SceneMap
|
|
107
|
+
*/
|
|
108
|
+
createDynamicWorldMaps(world) {
|
|
109
|
+
world.id = world.id || common_1.Utils.generateUID();
|
|
110
|
+
const worldMap = new WorldMaps_1.RpgWorldMaps(world.id).load(world, this);
|
|
111
|
+
this.worldMaps.set(world.id, worldMap);
|
|
112
|
+
return worldMap;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Recover a world
|
|
116
|
+
*
|
|
117
|
+
* @title Recover a world
|
|
118
|
+
* @method sceneMap.getWorldMaps(id)
|
|
119
|
+
* @param {string} id world id
|
|
120
|
+
* @return { RpgWorldMaps | undefined }
|
|
121
|
+
* @since 3.0.0-beta.8
|
|
122
|
+
* @memberof SceneMap
|
|
123
|
+
*/
|
|
124
|
+
getWorldMaps(id) {
|
|
125
|
+
return this.worldMaps.get(id);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Delete a world
|
|
129
|
+
*
|
|
130
|
+
* @title Delete a world
|
|
131
|
+
* @method sceneMap.deleteWorldMaps(id)
|
|
132
|
+
* @param {string} id world id
|
|
133
|
+
* @since 3.0.0-beta.8
|
|
134
|
+
* @memberof SceneMap
|
|
135
|
+
*/
|
|
136
|
+
deleteWorldMaps(id) {
|
|
137
|
+
this.worldMaps.delete(id);
|
|
138
|
+
}
|
|
63
139
|
/**
|
|
64
140
|
* Create a dynamic map
|
|
65
141
|
*
|
|
142
|
+
* Since version 3.0.0-beta.8, you can just pass the path to the file. The identifier will then be the name of the file
|
|
143
|
+
*
|
|
66
144
|
* @method sceneMap.createDynamicMap(mapData)
|
|
67
145
|
* @title Create a dynamic map
|
|
68
|
-
* @param {object | RpgMap} mapData The same property as [@MapData decorator](https://docs.rpgjs.dev/classes/map.html#mapdata-decorator)
|
|
69
|
-
* @returns {
|
|
146
|
+
* @param {object | RpgMap | string} mapData The same property as [@MapData decorator](https://docs.rpgjs.dev/classes/map.html#mapdata-decorator)
|
|
147
|
+
* @returns {RpgMap}
|
|
70
148
|
* @since 3.0.0-beta.4
|
|
71
149
|
* @memberof SceneMap
|
|
72
150
|
* @example
|
|
@@ -82,8 +160,34 @@ class SceneMap {
|
|
|
82
160
|
* ```ts
|
|
83
161
|
* player.changeMap('myid')
|
|
84
162
|
* ```
|
|
163
|
+
*
|
|
164
|
+
* ---
|
|
165
|
+
*
|
|
166
|
+
* since beta.8
|
|
167
|
+
*
|
|
168
|
+
* ```ts
|
|
169
|
+
* sceneMap.createDynamicMap(require('./tmx/mymap.tmx')) // id is "mymap"
|
|
170
|
+
* ```
|
|
85
171
|
*/
|
|
86
172
|
createDynamicMap(mapData) {
|
|
173
|
+
if (common_1.Utils.isString(mapData)) {
|
|
174
|
+
const id = common_1.Utils.extractId(mapData);
|
|
175
|
+
if (!id) {
|
|
176
|
+
throw new Error('Unable to extract the file identifier. Check that the file has only the following characters: [a-zA-Z0-9-_$!]+');
|
|
177
|
+
}
|
|
178
|
+
mapData = {
|
|
179
|
+
id: id[1],
|
|
180
|
+
file: mapData
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
if (tiled_1.isTiledFormat(mapData)) {
|
|
184
|
+
const tiledData = mapData;
|
|
185
|
+
mapData = {
|
|
186
|
+
file: Object.assign({}, tiledData)
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
if (!mapData.id)
|
|
190
|
+
mapData.id = common_1.Utils.generateUID();
|
|
87
191
|
if (!common_1.Utils.isClass(mapData)) {
|
|
88
192
|
let DynamicMap = class DynamicMap extends Map_1.RpgMap {
|
|
89
193
|
};
|
|
@@ -92,19 +196,33 @@ class SceneMap {
|
|
|
92
196
|
], DynamicMap);
|
|
93
197
|
mapData = DynamicMap;
|
|
94
198
|
}
|
|
95
|
-
|
|
96
|
-
this.mapsById[
|
|
199
|
+
const map = mapData;
|
|
200
|
+
this.mapsById[map.id] = map;
|
|
201
|
+
return map;
|
|
97
202
|
}
|
|
98
203
|
changeMap(mapId, player, positions) {
|
|
99
204
|
return __awaiter(this, void 0, void 0, function* () {
|
|
205
|
+
const boolArray = yield common_1.RpgPlugin.emit(common_1.HookServer.PlayerCanChangeMap, [player, this.getMapBydId(mapId)], true);
|
|
206
|
+
if (boolArray.some(el => el === false)) {
|
|
207
|
+
return null;
|
|
208
|
+
}
|
|
209
|
+
player.emit('preLoadScene', mapId);
|
|
100
210
|
player.prevMap = player.map;
|
|
101
211
|
if (player.prevMap) {
|
|
102
|
-
player.execMethod('onLeaveMap', [player.getCurrentMap()]);
|
|
212
|
+
yield player.execMethod('onLeaveMap', [player.getCurrentMap()]);
|
|
103
213
|
sync_server_1.World.leaveRoom(player.prevMap, player.id);
|
|
104
214
|
}
|
|
105
215
|
player.map = mapId;
|
|
106
216
|
player.events = {};
|
|
217
|
+
player.tmpPositions = positions;
|
|
218
|
+
const scalabilityArray = yield common_1.RpgPlugin.emit(common_1.HookServer.ScalabilityChangeServer, player);
|
|
219
|
+
if (scalabilityArray.some(el => el === true)) {
|
|
220
|
+
return true;
|
|
221
|
+
}
|
|
222
|
+
player.tmpPositions = null;
|
|
107
223
|
const mapInstance = yield this.loadMap(mapId);
|
|
224
|
+
if (!mapInstance)
|
|
225
|
+
return null;
|
|
108
226
|
if (!player.height)
|
|
109
227
|
player.height = mapInstance.tileHeight;
|
|
110
228
|
if (!player.width)
|
package/lib/Scenes/Map.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Map.js","sourceRoot":"","sources":["../../src/Scenes/Map.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,
|
|
1
|
+
{"version":3,"file":"Map.js","sourceRoot":"","sources":["../../src/Scenes/Map.ts"],"names":[],"mappings":"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"}
|
package/lib/decorators/map.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { TiledMap } from '@rpgjs/tiled';
|
|
1
2
|
export interface MapOptions {
|
|
2
3
|
/**
|
|
3
4
|
* Map identifier. Allows to go to the map (for example with player.changeMap())
|
|
@@ -23,7 +24,7 @@ export interface MapOptions {
|
|
|
23
24
|
* @prop {string} file
|
|
24
25
|
* @memberof MapData
|
|
25
26
|
* */
|
|
26
|
-
file: string;
|
|
27
|
+
file: string | TiledMap;
|
|
27
28
|
/**
|
|
28
29
|
* The name of the map.
|
|
29
30
|
* @prop {string} [name]
|
|
@@ -131,8 +132,10 @@ export interface MapOptions {
|
|
|
131
132
|
* import { MapData, RpgMap, RpgPlayer } from '@rpgjs/server'
|
|
132
133
|
*
|
|
133
134
|
*
|
|
134
|
-
*
|
|
135
|
-
*
|
|
135
|
+
* declare module '@rpgjs/server' {
|
|
136
|
+
* export interface RpgPlayer {
|
|
137
|
+
* customProp: string
|
|
138
|
+
* }
|
|
136
139
|
* }
|
|
137
140
|
*
|
|
138
141
|
* @MapData({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/decorators/map.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/decorators/map.ts"],"names":[],"mappings":";;;AACA,6CAA4C;AAqK5C,SAAgB,OAAO,CAAC,OAAmB;IACvC,OAAO,CAAC,MAAM,EAAE,EAAE;QACd,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QAC1B,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAA;QACtB,MAAM,CAAC,IAAI,GAAG,KAAK,CAAA;QACnB,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QACpC,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QACpC,MAAM,CAAC,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAA;QAChC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAExC,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,CAAA;QAE7B,IAAI,OAAO,CAAC,UAAU,EAAE;YACpB,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU,CAAA;SAChD;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE;YAClC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG;gBAC9B;oBACI,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE;wBACJ,GAAG,EAAE;4BACD,CAAC,EAAE,MAAM;4BACT,CAAC,EAAE,MAAM;yBACZ;wBACD,CAAC,EAAE,MAAM;wBACT,CAAC,EAAE,MAAM;qBACZ;oBACD,UAAU,EAAE;wBACR,SAAS,EAAE,OAAO;wBAClB,KAAK,EAAE,MAAM;qBAChB;iBACJ;aACJ,CAAA;SACJ;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE;YACjC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,kBAAS,CAAC,OAAO,CAAC,CAAA;SACvD;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE;YAClC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,kBAAS,CAAC,OAAO,CAAC,CAAA;SACxD;QAED,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAA;IAC7C,CAAC,CAAA;AACL,CAAC;AA5CD,0BA4CC"}
|
package/lib/entry-point.d.ts
CHANGED
|
@@ -29,5 +29,5 @@ interface RpgServerEntryPointOptions {
|
|
|
29
29
|
globalConfig?: any;
|
|
30
30
|
workers?: any;
|
|
31
31
|
}
|
|
32
|
-
export default function (modules: ModuleType[], options: RpgServerEntryPointOptions): RpgServerEngine
|
|
32
|
+
export default function (modules: ModuleType[], options: RpgServerEntryPointOptions): Promise<RpgServerEngine>;
|
|
33
33
|
export {};
|
package/lib/entry-point.js
CHANGED
|
@@ -1,36 +1,70 @@
|
|
|
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
|
const common_1 = require("@rpgjs/common");
|
|
4
13
|
const server_1 = require("./server");
|
|
14
|
+
const MatchMaker_1 = require("./MatchMaker");
|
|
5
15
|
function default_1(modules, options) {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
options.globalConfig
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
16
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
17
|
+
const gameEngine = new common_1.RpgCommonGame(common_1.GameSide.Server);
|
|
18
|
+
if (!options.globalConfig)
|
|
19
|
+
options.globalConfig = {};
|
|
20
|
+
const relations = {
|
|
21
|
+
onConnected: common_1.HookServer.PlayerConnected,
|
|
22
|
+
onInput: common_1.HookServer.PlayerInput,
|
|
23
|
+
onJoinMap: common_1.HookServer.PlayerJoinMap,
|
|
24
|
+
onLeaveMap: common_1.HookServer.PlayerLeaveMap,
|
|
25
|
+
onLevelUp: common_1.HookServer.PlayerLevelUp,
|
|
26
|
+
onDead: common_1.HookServer.PlayerDead,
|
|
27
|
+
onDisconnected: common_1.HookServer.PlayerDisconnected,
|
|
28
|
+
onInShape: common_1.HookServer.PlayerInShape,
|
|
29
|
+
onOutShape: common_1.HookServer.PlayerOutShape,
|
|
30
|
+
onMove: common_1.HookServer.PlayerMove,
|
|
31
|
+
canChangeMap: common_1.HookServer.PlayerCanChangeMap
|
|
32
|
+
};
|
|
33
|
+
const relationsEngine = {
|
|
34
|
+
onStart: common_1.HookServer.Start,
|
|
35
|
+
onStep: common_1.HookServer.Step
|
|
36
|
+
};
|
|
37
|
+
const { playerProps } = yield common_1.loadModules(modules, {
|
|
38
|
+
side: 'server',
|
|
39
|
+
relations: {
|
|
40
|
+
player: relations,
|
|
41
|
+
engine: relationsEngine,
|
|
42
|
+
scalability: {
|
|
43
|
+
onConnected: common_1.HookServer.ScalabilityPlayerConnected,
|
|
44
|
+
doChangeServer: common_1.HookServer.ScalabilityChangeServer
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}, (mod) => {
|
|
48
|
+
const { scalability } = mod;
|
|
49
|
+
if (scalability) {
|
|
50
|
+
const { hooks, stateStore, matchMaker } = scalability;
|
|
51
|
+
const matchMakerInstance = new MatchMaker_1.RpgMatchMaker(matchMaker);
|
|
52
|
+
common_1.RpgPlugin.on(common_1.HookServer.Start, () => {
|
|
53
|
+
return stateStore.connect();
|
|
54
|
+
});
|
|
55
|
+
mod.scalability._hooks = {};
|
|
56
|
+
for (let hookName in hooks) {
|
|
57
|
+
let originalHook = mod.scalability.hooks[hookName];
|
|
58
|
+
mod.scalability._hooks[hookName] = function (player) {
|
|
59
|
+
return originalHook(stateStore, matchMakerInstance, player);
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return mod;
|
|
64
|
+
});
|
|
65
|
+
const serverEngine = new server_1.RpgServerEngine(options.io, gameEngine, Object.assign({ debug: {}, updateRate: 10, stepRate: 60, timeoutInterval: 0, countConnections: false, playerProps }, options));
|
|
66
|
+
return serverEngine;
|
|
31
67
|
});
|
|
32
|
-
const serverEngine = new server_1.RpgServerEngine(options.io, gameEngine, Object.assign({ debug: {}, updateRate: 10, stepRate: 60, timeoutInterval: 0, countConnections: false }, options));
|
|
33
|
-
return serverEngine;
|
|
34
68
|
}
|
|
35
69
|
exports.default = default_1;
|
|
36
70
|
//# sourceMappingURL=entry-point.js.map
|
package/lib/entry-point.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-point.js","sourceRoot":"","sources":["../src/entry-point.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"entry-point.js","sourceRoot":"","sources":["../src/entry-point.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,0CAAuG;AACvG,qCAA0C;AAE1C,6CAA4C;AAmC5C,mBAA8B,OAAqB,EAAE,OAAmC;;QACpF,MAAM,UAAU,GAAG,IAAI,sBAAa,CAAC,iBAAQ,CAAC,MAAM,CAAC,CAAA;QAErD,IAAI,CAAC,OAAO,CAAC,YAAY;YAAE,OAAO,CAAC,YAAY,GAAG,EAAE,CAAA;QAEpD,MAAM,SAAS,GAAG;YACd,WAAW,EAAE,mBAAU,CAAC,eAAe;YACvC,OAAO,EAAE,mBAAU,CAAC,WAAW;YAC/B,SAAS,EAAE,mBAAU,CAAC,aAAa;YACnC,UAAU,EAAE,mBAAU,CAAC,cAAc;YACrC,SAAS,EAAE,mBAAU,CAAC,aAAa;YACnC,MAAM,EAAE,mBAAU,CAAC,UAAU;YAC7B,cAAc,EAAE,mBAAU,CAAC,kBAAkB;YAC7C,SAAS,EAAE,mBAAU,CAAC,aAAa;YACnC,UAAU,EAAE,mBAAU,CAAC,cAAc;YACrC,MAAM,EAAE,mBAAU,CAAC,UAAU;YAC7B,YAAY,EAAE,mBAAU,CAAC,kBAAkB;SAC9C,CAAA;QAED,MAAM,eAAe,GAAG;YACpB,OAAO,EAAE,mBAAU,CAAC,KAAK;YACzB,MAAM,EAAE,mBAAU,CAAC,IAAI;SAC1B,CAAA;QAED,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,oBAAW,CAAC,OAAO,EAAE;YAC/C,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE;gBACP,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,eAAe;gBACvB,WAAW,EAAE;oBACT,WAAW,EAAE,mBAAU,CAAC,0BAA0B;oBAClD,cAAc,EAAE,mBAAU,CAAC,uBAAuB;iBACrD;aACJ;SACJ,EAAE,CAAC,GAAG,EAAE,EAAE;YACP,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAA;YAC3B,IAAI,WAAW,EAAE;gBACb,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,WAAW,CAAA;gBACrD,MAAM,kBAAkB,GAAG,IAAI,0BAAa,CAAC,UAAU,CAAC,CAAA;gBACxD,kBAAS,CAAC,EAAE,CAAC,mBAAU,CAAC,KAAK,EAAE,GAAG,EAAE;oBAChC,OAAO,UAAU,CAAC,OAAO,EAAE,CAAA;gBAC/B,CAAC,CAAC,CAAA;gBACF,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE,CAAA;gBAC3B,KAAK,IAAI,QAAQ,IAAI,KAAK,EAAE;oBACxB,IAAI,YAAY,GAAG,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;oBAClD,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,UAAS,MAAiB;wBACzD,OAAO,YAAY,CAAC,UAAU,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAA;oBAC/D,CAAC,CAAA;iBACJ;aACJ;YACD,OAAO,GAAG,CAAA;QACd,CAAC,CAAC,CAAA;QAEF,MAAM,YAAY,GAAG,IAAI,wBAAe,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,kBAC3D,KAAK,EAAE,EAAE,EACT,UAAU,EAAE,EAAE,EACd,QAAQ,EAAE,EAAE,EACZ,eAAe,EAAE,CAAC,EAClB,gBAAgB,EAAE,KAAK,EACvB,WAAW,IACR,OAAO,EACZ,CAAA;QACF,OAAO,YAAY,CAAA;IACvB,CAAC;CAAA;AA/DD,4BA+DC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -5,9 +5,13 @@ import { EventData } from './decorators/event';
|
|
|
5
5
|
import { MapData } from './decorators/map';
|
|
6
6
|
import { RpgPlayer, RpgEvent, EventMode } from './Player/Player';
|
|
7
7
|
import { RpgMap } from './Game/Map';
|
|
8
|
+
import { RpgWorldMaps } from './Game/WorldMaps';
|
|
8
9
|
import { Query } from './Query';
|
|
9
10
|
import Monitor from './Monitor';
|
|
10
11
|
import * as Presets from './presets';
|
|
11
12
|
import { Move, Frequency, Speed } from './Player/MoveManager';
|
|
12
13
|
import { RpgServerEngine } from './server';
|
|
13
|
-
|
|
14
|
+
import { SceneMap as RpgSceneMap, RpgClassMap } from './Scenes/Map';
|
|
15
|
+
import { RpgMatchMaker } from './MatchMaker';
|
|
16
|
+
import { IStoreState } from './Interfaces/StateStore';
|
|
17
|
+
export { RpgServer, RpgEvent, RpgPlayer, RpgPlugin, RpgMap, RpgSceneMap, MapData, EventData, Query as RpgWorld, Query, entryPoint, Presets, Monitor, Move, EventMode, Direction, Input, Control, HookServer, HookClient, RpgModule, RpgPlayerHooks, RpgServerEngineHooks, RpgServerEngine, RpgShape, ShapePositioning, Frequency, Speed, RpgWorldMaps, RpgClassMap, IStoreState, RpgMatchMaker };
|
package/lib/index.js
CHANGED
|
@@ -22,7 +22,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
22
22
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
23
|
};
|
|
24
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports.Speed = exports.Frequency = exports.ShapePositioning = exports.RpgShape = exports.RpgServerEngine = exports.RpgModule = exports.HookClient = exports.HookServer = exports.Control = exports.Input = exports.Direction = exports.EventMode = exports.Move = exports.Monitor = exports.Presets = exports.entryPoint = exports.Query = exports.RpgWorld = exports.EventData = exports.MapData = exports.RpgMap = exports.RpgPlugin = exports.RpgPlayer = exports.RpgEvent = void 0;
|
|
25
|
+
exports.RpgMatchMaker = exports.RpgWorldMaps = exports.Speed = exports.Frequency = exports.ShapePositioning = exports.RpgShape = exports.RpgServerEngine = exports.RpgModule = exports.HookClient = exports.HookServer = exports.Control = exports.Input = exports.Direction = exports.EventMode = exports.Move = exports.Monitor = exports.Presets = exports.entryPoint = exports.Query = exports.RpgWorld = exports.EventData = exports.MapData = exports.RpgSceneMap = exports.RpgMap = exports.RpgPlugin = exports.RpgPlayer = exports.RpgEvent = void 0;
|
|
26
26
|
const entry_point_1 = __importDefault(require("./entry-point"));
|
|
27
27
|
exports.entryPoint = entry_point_1.default;
|
|
28
28
|
const common_1 = require("@rpgjs/common");
|
|
@@ -45,6 +45,8 @@ Object.defineProperty(exports, "RpgEvent", { enumerable: true, get: function ()
|
|
|
45
45
|
Object.defineProperty(exports, "EventMode", { enumerable: true, get: function () { return Player_1.EventMode; } });
|
|
46
46
|
const Map_1 = require("./Game/Map");
|
|
47
47
|
Object.defineProperty(exports, "RpgMap", { enumerable: true, get: function () { return Map_1.RpgMap; } });
|
|
48
|
+
const WorldMaps_1 = require("./Game/WorldMaps");
|
|
49
|
+
Object.defineProperty(exports, "RpgWorldMaps", { enumerable: true, get: function () { return WorldMaps_1.RpgWorldMaps; } });
|
|
48
50
|
const Query_1 = require("./Query");
|
|
49
51
|
Object.defineProperty(exports, "RpgWorld", { enumerable: true, get: function () { return Query_1.Query; } });
|
|
50
52
|
Object.defineProperty(exports, "Query", { enumerable: true, get: function () { return Query_1.Query; } });
|
|
@@ -58,4 +60,8 @@ Object.defineProperty(exports, "Frequency", { enumerable: true, get: function ()
|
|
|
58
60
|
Object.defineProperty(exports, "Speed", { enumerable: true, get: function () { return MoveManager_1.Speed; } });
|
|
59
61
|
const server_1 = require("./server");
|
|
60
62
|
Object.defineProperty(exports, "RpgServerEngine", { enumerable: true, get: function () { return server_1.RpgServerEngine; } });
|
|
63
|
+
const Map_2 = require("./Scenes/Map");
|
|
64
|
+
Object.defineProperty(exports, "RpgSceneMap", { enumerable: true, get: function () { return Map_2.SceneMap; } });
|
|
65
|
+
const MatchMaker_1 = require("./MatchMaker");
|
|
66
|
+
Object.defineProperty(exports, "RpgMatchMaker", { enumerable: true, get: function () { return MatchMaker_1.RpgMatchMaker; } });
|
|
61
67
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gEAAsC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gEAAsC;AAsClC,qBAtCG,qBAAU,CAsCH;AArCd,0CAUsB;AAgClB,0FAzCA,kBAAS,OAyCA;AACT,sFAzCA,cAAK,OAyCA;AACL,wFAzCA,gBAAO,OAyCA;AAdP,0FA1BA,kBAAS,OA0BA;AAeT,2FAxCA,mBAAU,OAwCA;AACV,2FAxCA,mBAAU,OAwCA;AACV,0FAxCA,kBAAS,OAwCA;AAIT,yFA3CA,iBAAQ,OA2CA;AACR,iGA3CA,yBAAgB,OA2CA;AAxCpB,8CAA8C;AAsB1C,0FAtBK,iBAAS,OAsBL;AArBb,0CAA0C;AAoBtC,wFApBK,aAAO,OAoBL;AAnBX,4CAAgE;AAe5D,0FAfK,kBAAS,OAeL;AADT,yFAdgB,iBAAQ,OAchB;AAaR,0FA3B0B,kBAAS,OA2B1B;AA1Bb,oCAAmC;AAgB/B,uFAhBK,YAAM,OAgBL;AAfV,gDAA+C;AAuC3C,6FAvCK,wBAAY,OAuCL;AAtChB,mCAA+B;AAkBlB,yFAlBJ,aAAK,OAkBO;AACjB,sFAnBK,aAAK,OAmBL;AAlBT,wDAA+B;AAqB3B,kBArBG,iBAAO,CAqBH;AApBX,mDAAoC;AAmBhC,0BAAO;AAlBX,sDAA6D;AAoBzD,qFApBK,kBAAI,OAoBL;AAaJ,0FAjCW,uBAAS,OAiCX;AACT,sFAlCsB,mBAAK,OAkCtB;AAjCT,qCAA0C;AA6BtC,gGA7BK,wBAAe,OA6BL;AA5BnB,sCAAmE;AAU/D,4FAViB,cAAW,OAUjB;AATf,6CAA4C;AAmCxC,8FAnCK,0BAAa,OAmCL"}
|
package/lib/server.d.ts
CHANGED
|
@@ -34,10 +34,12 @@ export declare class RpgServerEngine {
|
|
|
34
34
|
* @memberof RpgServerEngine
|
|
35
35
|
*/
|
|
36
36
|
damageFormulas: any;
|
|
37
|
+
serverId: string;
|
|
37
38
|
private scenes;
|
|
38
39
|
protected totalConnected: number;
|
|
39
40
|
private scheduler;
|
|
40
41
|
private tick;
|
|
42
|
+
private playerProps;
|
|
41
43
|
world: WorldClass;
|
|
42
44
|
workers: any;
|
|
43
45
|
/**
|
package/lib/server.js
CHANGED
|
@@ -49,6 +49,7 @@ class RpgServerEngine {
|
|
|
49
49
|
* @memberof RpgServerEngine
|
|
50
50
|
*/
|
|
51
51
|
this.damageFormulas = {};
|
|
52
|
+
this.serverId = process.env.SERVER_ID || common_1.Utils.generateUID();
|
|
52
53
|
this.scenes = new Map();
|
|
53
54
|
this.totalConnected = 0;
|
|
54
55
|
this.tick = 0;
|
|
@@ -65,10 +66,17 @@ class RpgServerEngine {
|
|
|
65
66
|
this.globalConfig = this.inputOptions.globalConfig;
|
|
66
67
|
if (!this.inputOptions.maps)
|
|
67
68
|
this.inputOptions.maps = [];
|
|
69
|
+
if (!this.inputOptions.worldMaps)
|
|
70
|
+
this.inputOptions.worldMaps = [];
|
|
71
|
+
this.playerProps = this.inputOptions.playerProps;
|
|
68
72
|
this.inputOptions.maps = [
|
|
69
73
|
...common_1.Utils.arrayFlat(yield common_1.RpgPlugin.emit(common_1.HookServer.AddMap, this.inputOptions.maps)) || [],
|
|
70
74
|
...this.inputOptions.maps
|
|
71
75
|
];
|
|
76
|
+
this.inputOptions.worldMaps = [
|
|
77
|
+
...common_1.Utils.arrayFlat(yield common_1.RpgPlugin.emit(common_1.HookServer.AddWorldMaps, this.inputOptions.worldMaps)) || [],
|
|
78
|
+
...this.inputOptions.worldMaps
|
|
79
|
+
];
|
|
72
80
|
if (!this.inputOptions.database)
|
|
73
81
|
this.inputOptions.database = {};
|
|
74
82
|
const datas = (yield common_1.RpgPlugin.emit(common_1.HookServer.AddDatabase, this.inputOptions.database)) || [];
|
|
@@ -135,7 +143,7 @@ class RpgServerEngine {
|
|
|
135
143
|
}
|
|
136
144
|
});
|
|
137
145
|
this.io.on('connection', this.onPlayerConnected.bind(this));
|
|
138
|
-
common_1.RpgPlugin.emit(common_1.HookServer.Start, this);
|
|
146
|
+
yield common_1.RpgPlugin.emit(common_1.HookServer.Start, this);
|
|
139
147
|
});
|
|
140
148
|
}
|
|
141
149
|
/**
|
|
@@ -195,7 +203,7 @@ class RpgServerEngine {
|
|
|
195
203
|
common_1.RpgPlugin.emit(common_1.HookServer.Step, this);
|
|
196
204
|
}
|
|
197
205
|
loadScenes() {
|
|
198
|
-
this.scenes.set(Map_1.SceneMap.id, new Map_1.SceneMap(this.inputOptions.maps, this));
|
|
206
|
+
this.scenes.set(Map_1.SceneMap.id, new Map_1.SceneMap(this.inputOptions.maps, this.inputOptions.worldMaps, this));
|
|
199
207
|
}
|
|
200
208
|
getScene(name) {
|
|
201
209
|
return this.scenes.get(name);
|
|
@@ -213,8 +221,10 @@ class RpgServerEngine {
|
|
|
213
221
|
currentPlayer._socket.emit(eventName, data);
|
|
214
222
|
}
|
|
215
223
|
onPlayerConnected(socket) {
|
|
224
|
+
const { token } = socket.handshake.auth;
|
|
216
225
|
const playerId = common_1.Utils.generateUID();
|
|
217
226
|
const player = new Player_1.RpgPlayer(this.gameEngine, playerId);
|
|
227
|
+
player.session = token;
|
|
218
228
|
socket.on('move', (data) => {
|
|
219
229
|
for (let input of data.input) {
|
|
220
230
|
player.pendingMove.push({
|
|
@@ -227,10 +237,19 @@ class RpgServerEngine {
|
|
|
227
237
|
this.onPlayerDisconnected(socket.id, playerId);
|
|
228
238
|
});
|
|
229
239
|
this.world.setUser(player, socket);
|
|
230
|
-
socket.emit('playerJoined', { playerId });
|
|
231
240
|
player.server = this;
|
|
232
241
|
player._init();
|
|
233
|
-
|
|
242
|
+
if (!token) {
|
|
243
|
+
const newToken = common_1.Utils.generateUID() + '-' + common_1.Utils.generateUID() + '-' + common_1.Utils.generateUID();
|
|
244
|
+
player.session = newToken;
|
|
245
|
+
}
|
|
246
|
+
socket.emit('playerJoined', { playerId, session: player.session });
|
|
247
|
+
if (!token) {
|
|
248
|
+
player.execMethod('onConnected');
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
common_1.RpgPlugin.emit(common_1.HookServer.ScalabilityPlayerConnected, player);
|
|
252
|
+
}
|
|
234
253
|
}
|
|
235
254
|
/**
|
|
236
255
|
*
|
package/lib/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sCAAwC;AACxC,4CAA2C;AAC3C,mCAA+B;AAC/B,uCAA8F;AAC9F,oDAAsD;AACtD,0CAAsF;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rpgjs/server",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.9.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
@@ -18,14 +18,17 @@
|
|
|
18
18
|
"author": "Samuel Ronce",
|
|
19
19
|
"license": "MIT",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@rpgjs/common": "^3.0.0-beta.
|
|
22
|
-
"@rpgjs/database": "^3.0.0-beta.
|
|
23
|
-
"@rpgjs/sync-server": "^3.0.0-beta.
|
|
21
|
+
"@rpgjs/common": "^3.0.0-beta.9",
|
|
22
|
+
"@rpgjs/database": "^3.0.0-beta.9",
|
|
23
|
+
"@rpgjs/sync-server": "^3.0.0-beta.9",
|
|
24
|
+
"@rpgjs/tiled": "^3.0.0-beta.9",
|
|
25
|
+
"axios": "^0.27.1",
|
|
24
26
|
"lodash.merge": "^4.6.2",
|
|
25
27
|
"pathfinding": "^0.4.18",
|
|
28
|
+
"rxjs": "^7.5.5",
|
|
26
29
|
"sat": "^0.8.0"
|
|
27
30
|
},
|
|
28
|
-
"gitHead": "
|
|
31
|
+
"gitHead": "7bb0326cc3216764a4bfc86f53e7b24464a2040f",
|
|
29
32
|
"devDependencies": {
|
|
30
33
|
"typescript": "^4.3.5"
|
|
31
34
|
}
|
package/LICENSE
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
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.
|