@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.
- package/lib/Game/Map.d.ts +35 -2
- package/lib/Game/Map.js +38 -3
- package/lib/Game/Map.js.map +1 -1
- package/lib/Player/BattleManager.d.ts +2 -1
- package/lib/Player/BattleManager.js.map +1 -1
- package/lib/Player/ComponentManager.d.ts +397 -0
- package/lib/Player/ComponentManager.js +492 -0
- package/lib/Player/ComponentManager.js.map +1 -0
- package/lib/Player/MoveManager.d.ts +39 -2
- package/lib/Player/MoveManager.js +18 -0
- package/lib/Player/MoveManager.js.map +1 -1
- package/lib/Player/Player.d.ts +165 -43
- package/lib/Player/Player.js +39 -36
- package/lib/Player/Player.js.map +1 -1
- package/lib/Query.d.ts +20 -3
- package/lib/Query.js +19 -3
- package/lib/Query.js.map +1 -1
- package/lib/Scenes/Map.d.ts +1 -0
- package/lib/Scenes/Map.js +10 -0
- package/lib/Scenes/Map.js.map +1 -1
- package/lib/express/server.d.ts +7 -0
- package/lib/express/server.js +50 -0
- package/lib/express/server.js.map +1 -0
- package/lib/index.d.ts +17 -17
- package/lib/index.js +21 -19
- package/lib/index.js.map +1 -1
- package/lib/server.d.ts +4 -1
- package/lib/server.js +22 -11
- package/lib/server.js.map +1 -1
- package/package.json +7 -6
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import http from 'http';
|
|
2
|
+
import express from 'express';
|
|
3
|
+
import { Server } from 'socket.io';
|
|
4
|
+
import entryPoint from '../entry-point';
|
|
5
|
+
import PrettyError from 'pretty-error';
|
|
6
|
+
export function expressServer(modules, options) {
|
|
7
|
+
return new Promise((resolve, reject) => {
|
|
8
|
+
const dirname = options.basePath;
|
|
9
|
+
const PORT = process.env.PORT || 3000;
|
|
10
|
+
const pe = new PrettyError();
|
|
11
|
+
const app = express();
|
|
12
|
+
const server = http.createServer(app);
|
|
13
|
+
const io = new Server(server, {
|
|
14
|
+
maxHttpBufferSize: 1e10,
|
|
15
|
+
cors: {
|
|
16
|
+
origin: "*",
|
|
17
|
+
methods: ["GET", "POST"]
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
app.use(express.json());
|
|
21
|
+
app.use('/', express.static(dirname + '/../dist/client'));
|
|
22
|
+
async function start() {
|
|
23
|
+
const rpgGame = await entryPoint(modules, { io, ...options });
|
|
24
|
+
rpgGame.app = app;
|
|
25
|
+
rpgGame.start();
|
|
26
|
+
console.log(`
|
|
27
|
+
===> MMORPG is running on http://localhost:${PORT} <===
|
|
28
|
+
`);
|
|
29
|
+
resolve({
|
|
30
|
+
app,
|
|
31
|
+
server,
|
|
32
|
+
game: rpgGame
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
server.listen(PORT, start);
|
|
36
|
+
process.on('uncaughtException', function (error) {
|
|
37
|
+
console.log(pe.render(error));
|
|
38
|
+
});
|
|
39
|
+
process.on('unhandledRejection', function (reason) {
|
|
40
|
+
console.log(pe.render(reason));
|
|
41
|
+
});
|
|
42
|
+
if (import.meta.hot) {
|
|
43
|
+
import.meta.hot.on("vite:beforeFullReload", () => {
|
|
44
|
+
console.log("full reload");
|
|
45
|
+
server.close();
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/express/server.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,UAAU,MAAM,gBAAgB,CAAA;AACvC,OAAO,WAAW,MAAM,cAAc,CAAA;AAQtC,MAAM,UAAU,aAAa,CAAC,OAAqB,EAAE,OAA6B;IAC9E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAA;QAChC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAA;QACrC,MAAM,EAAE,GAAG,IAAI,WAAW,EAAE,CAAA;QAC5B,MAAM,GAAG,GAAG,OAAO,EAAE,CAAA;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;QACrC,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE;YAC1B,iBAAiB,EAAE,IAAI;YACvB,IAAI,EAAE;gBACF,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;aAC3B;SACJ,CAAC,CAAA;QAEF,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;QACvB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAA;QAEzD,KAAK,UAAU,KAAK;YAChB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAA;YAC7D,OAAO,CAAC,GAAG,GAAG,GAAG,CAAA;YACjB,OAAO,CAAC,KAAK,EAAE,CAAA;YACf,OAAO,CAAC,GAAG,CAAC;6DACqC,IAAI;aACpD,CAAC,CAAA;YACF,OAAO,CAAC;gBACJ,GAAG;gBACH,MAAM;gBACN,IAAI,EAAE,OAAO;aAChB,CAAC,CAAA;QACN,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAE1B,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,UAAU,KAAK;YAC3C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACjC,CAAC,CAAC,CAAA;QAEF,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,UAAU,MAAW;YAClD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;QAClC,CAAC,CAAC,CAAA;QAEF,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACjB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;gBAC7C,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBAC3B,MAAM,CAAC,KAAK,EAAE,CAAC;YACnB,CAAC,CAAC,CAAC;SACN;IACL,CAAC,CAAC,CAAA;AACN,CAAC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
export {
|
|
1
|
+
export { default as entryPoint } from './entry-point';
|
|
2
|
+
export { Direction, Input, Control, RpgPlugin, HookServer, HookClient, RpgModule, RpgShape, ShapePositioning, AbstractObject } from '@rpgjs/common';
|
|
3
|
+
export { RpgServer, RpgPlayerHooks, RpgServerEngineHooks } from './RpgServer';
|
|
4
|
+
export { EventData } from './decorators/event';
|
|
5
|
+
export { MapData } from './decorators/map';
|
|
6
|
+
export { RpgPlayer, RpgEvent, EventMode } from './Player/Player';
|
|
7
|
+
export { RpgMap } from './Game/Map';
|
|
8
|
+
export { RpgWorldMaps } from './Game/WorldMaps';
|
|
9
|
+
export { Query, Query as RpgWorld } from './Query';
|
|
10
|
+
export { default as Monitor } from './Monitor';
|
|
11
|
+
export * as Presets from './presets';
|
|
12
|
+
export { Move, Frequency, Speed } from './Player/MoveManager';
|
|
13
|
+
export { RpgServerEngine } from './server';
|
|
14
|
+
export { SceneMap as RpgSceneMap, RpgClassMap } from './Scenes/Map';
|
|
15
|
+
export { RpgMatchMaker } from './MatchMaker';
|
|
16
|
+
export { IStoreState } from './Interfaces/StateStore';
|
|
17
|
+
export { Components } from './Player/ComponentManager';
|
package/lib/index.js
CHANGED
|
@@ -22,10 +22,10 @@ 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.RpgMatchMaker = exports.
|
|
26
|
-
|
|
27
|
-
exports
|
|
28
|
-
|
|
25
|
+
exports.Components = exports.RpgMatchMaker = exports.RpgSceneMap = exports.RpgServerEngine = exports.Speed = exports.Frequency = exports.Move = exports.Presets = exports.Monitor = exports.RpgWorld = exports.Query = exports.RpgWorldMaps = exports.RpgMap = exports.EventMode = exports.RpgEvent = exports.RpgPlayer = exports.MapData = exports.EventData = exports.AbstractObject = exports.ShapePositioning = exports.RpgShape = exports.RpgModule = exports.HookClient = exports.HookServer = exports.RpgPlugin = exports.Control = exports.Input = exports.Direction = exports.entryPoint = void 0;
|
|
26
|
+
var entry_point_1 = require("./entry-point");
|
|
27
|
+
Object.defineProperty(exports, "entryPoint", { enumerable: true, get: function () { return __importDefault(entry_point_1).default; } });
|
|
28
|
+
var common_1 = require("@rpgjs/common");
|
|
29
29
|
Object.defineProperty(exports, "Direction", { enumerable: true, get: function () { return common_1.Direction; } });
|
|
30
30
|
Object.defineProperty(exports, "Input", { enumerable: true, get: function () { return common_1.Input; } });
|
|
31
31
|
Object.defineProperty(exports, "Control", { enumerable: true, get: function () { return common_1.Control; } });
|
|
@@ -35,33 +35,35 @@ Object.defineProperty(exports, "HookClient", { enumerable: true, get: function (
|
|
|
35
35
|
Object.defineProperty(exports, "RpgModule", { enumerable: true, get: function () { return common_1.RpgModule; } });
|
|
36
36
|
Object.defineProperty(exports, "RpgShape", { enumerable: true, get: function () { return common_1.RpgShape; } });
|
|
37
37
|
Object.defineProperty(exports, "ShapePositioning", { enumerable: true, get: function () { return common_1.ShapePositioning; } });
|
|
38
|
-
|
|
38
|
+
Object.defineProperty(exports, "AbstractObject", { enumerable: true, get: function () { return common_1.AbstractObject; } });
|
|
39
|
+
var event_1 = require("./decorators/event");
|
|
39
40
|
Object.defineProperty(exports, "EventData", { enumerable: true, get: function () { return event_1.EventData; } });
|
|
40
|
-
|
|
41
|
+
var map_1 = require("./decorators/map");
|
|
41
42
|
Object.defineProperty(exports, "MapData", { enumerable: true, get: function () { return map_1.MapData; } });
|
|
42
|
-
|
|
43
|
+
var Player_1 = require("./Player/Player");
|
|
43
44
|
Object.defineProperty(exports, "RpgPlayer", { enumerable: true, get: function () { return Player_1.RpgPlayer; } });
|
|
44
45
|
Object.defineProperty(exports, "RpgEvent", { enumerable: true, get: function () { return Player_1.RpgEvent; } });
|
|
45
46
|
Object.defineProperty(exports, "EventMode", { enumerable: true, get: function () { return Player_1.EventMode; } });
|
|
46
|
-
|
|
47
|
+
var Map_1 = require("./Game/Map");
|
|
47
48
|
Object.defineProperty(exports, "RpgMap", { enumerable: true, get: function () { return Map_1.RpgMap; } });
|
|
48
|
-
|
|
49
|
+
var WorldMaps_1 = require("./Game/WorldMaps");
|
|
49
50
|
Object.defineProperty(exports, "RpgWorldMaps", { enumerable: true, get: function () { return WorldMaps_1.RpgWorldMaps; } });
|
|
50
|
-
|
|
51
|
-
Object.defineProperty(exports, "RpgWorld", { enumerable: true, get: function () { return Query_1.Query; } });
|
|
51
|
+
var Query_1 = require("./Query");
|
|
52
52
|
Object.defineProperty(exports, "Query", { enumerable: true, get: function () { return Query_1.Query; } });
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
exports.Presets =
|
|
57
|
-
|
|
53
|
+
Object.defineProperty(exports, "RpgWorld", { enumerable: true, get: function () { return Query_1.Query; } });
|
|
54
|
+
var Monitor_1 = require("./Monitor");
|
|
55
|
+
Object.defineProperty(exports, "Monitor", { enumerable: true, get: function () { return __importDefault(Monitor_1).default; } });
|
|
56
|
+
exports.Presets = __importStar(require("./presets"));
|
|
57
|
+
var MoveManager_1 = require("./Player/MoveManager");
|
|
58
58
|
Object.defineProperty(exports, "Move", { enumerable: true, get: function () { return MoveManager_1.Move; } });
|
|
59
59
|
Object.defineProperty(exports, "Frequency", { enumerable: true, get: function () { return MoveManager_1.Frequency; } });
|
|
60
60
|
Object.defineProperty(exports, "Speed", { enumerable: true, get: function () { return MoveManager_1.Speed; } });
|
|
61
|
-
|
|
61
|
+
var server_1 = require("./server");
|
|
62
62
|
Object.defineProperty(exports, "RpgServerEngine", { enumerable: true, get: function () { return server_1.RpgServerEngine; } });
|
|
63
|
-
|
|
63
|
+
var Map_2 = require("./Scenes/Map");
|
|
64
64
|
Object.defineProperty(exports, "RpgSceneMap", { enumerable: true, get: function () { return Map_2.SceneMap; } });
|
|
65
|
-
|
|
65
|
+
var MatchMaker_1 = require("./MatchMaker");
|
|
66
66
|
Object.defineProperty(exports, "RpgMatchMaker", { enumerable: true, get: function () { return MatchMaker_1.RpgMatchMaker; } });
|
|
67
|
+
var ComponentManager_1 = require("./Player/ComponentManager");
|
|
68
|
+
Object.defineProperty(exports, "Components", { enumerable: true, get: function () { return ComponentManager_1.Components; } });
|
|
67
69
|
//# 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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAqD;AAA5C,0HAAA,OAAO,OAAc;AAC9B,wCAWsB;AAVlB,mGAAA,SAAS,OAAA;AACT,+FAAA,KAAK,OAAA;AACL,iGAAA,OAAO,OAAA;AACP,mGAAA,SAAS,OAAA;AACT,oGAAA,UAAU,OAAA;AACV,oGAAA,UAAU,OAAA;AACV,mGAAA,SAAS,OAAA;AACT,kGAAA,QAAQ,OAAA;AACR,0GAAA,gBAAgB,OAAA;AAChB,wGAAA,cAAc,OAAA;AAGlB,4CAA8C;AAArC,kGAAA,SAAS,OAAA;AAClB,wCAA0C;AAAjC,8FAAA,OAAO,OAAA;AAChB,0CAAgE;AAAvD,mGAAA,SAAS,OAAA;AAAE,kGAAA,QAAQ,OAAA;AAAE,mGAAA,SAAS,OAAA;AACvC,kCAAmC;AAA1B,6FAAA,MAAM,OAAA;AACf,8CAA+C;AAAtC,yGAAA,YAAY,OAAA;AACrB,iCAAkD;AAAzC,8FAAA,KAAK,OAAA;AAAE,iGAAA,KAAK,OAAY;AACjC,qCAA8C;AAArC,mHAAA,OAAO,OAAW;AAC3B,qDAAoC;AACpC,oDAA6D;AAApD,mGAAA,IAAI,OAAA;AAAE,wGAAA,SAAS,OAAA;AAAE,oGAAA,KAAK,OAAA;AAC/B,mCAA0C;AAAjC,yGAAA,eAAe,OAAA;AACxB,oCAAmE;AAA1D,kGAAA,QAAQ,OAAe;AAChC,2CAA4C;AAAnC,2GAAA,aAAa,OAAA;AAEtB,8DAAsD;AAA7C,8GAAA,UAAU,OAAA"}
|
package/lib/server.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { SceneMap } from './Scenes/Map';
|
|
2
2
|
import { WorldClass } from 'simple-room';
|
|
3
3
|
import { RpgCommonGame } from '@rpgjs/common';
|
|
4
|
+
import { Observable } from 'rxjs';
|
|
5
|
+
import { Tick } from '@rpgjs/types';
|
|
4
6
|
export declare class RpgServerEngine {
|
|
5
7
|
io: any;
|
|
6
8
|
gameEngine: RpgCommonGame;
|
|
@@ -39,7 +41,6 @@ export declare class RpgServerEngine {
|
|
|
39
41
|
private scenes;
|
|
40
42
|
protected totalConnected: number;
|
|
41
43
|
private scheduler;
|
|
42
|
-
private tick;
|
|
43
44
|
private playerProps;
|
|
44
45
|
world: WorldClass;
|
|
45
46
|
workers: any;
|
|
@@ -82,6 +83,7 @@ export declare class RpgServerEngine {
|
|
|
82
83
|
* @memberof RpgServerEngine
|
|
83
84
|
*/
|
|
84
85
|
start(inputOptions?: any, scheduler?: boolean): Promise<void>;
|
|
86
|
+
get tick(): Observable<Tick>;
|
|
85
87
|
/**
|
|
86
88
|
* Sends all packages to clients. The sending is done automatically but you can decide to send yourself by calling this method (for example, for unit tests)
|
|
87
89
|
*
|
|
@@ -92,6 +94,7 @@ export declare class RpgServerEngine {
|
|
|
92
94
|
*/
|
|
93
95
|
send(): void;
|
|
94
96
|
private updatePlayersMove;
|
|
97
|
+
nextTick(timestamp: number): void;
|
|
95
98
|
step(t: number, dt: number): void;
|
|
96
99
|
private loadScenes;
|
|
97
100
|
getScene<T>(name: string): T;
|
package/lib/server.js
CHANGED
|
@@ -53,7 +53,7 @@ class RpgServerEngine {
|
|
|
53
53
|
this.serverId = process.env.SERVER_ID || common_1.Utils.generateUID();
|
|
54
54
|
this.scenes = new Map();
|
|
55
55
|
this.totalConnected = 0;
|
|
56
|
-
this.
|
|
56
|
+
this.scheduler = new common_1.Scheduler();
|
|
57
57
|
this.world = simple_room_1.World;
|
|
58
58
|
if (this.inputOptions.workers) {
|
|
59
59
|
console.log('workers enabled');
|
|
@@ -130,13 +130,13 @@ class RpgServerEngine {
|
|
|
130
130
|
if (inputOptions)
|
|
131
131
|
this.inputOptions = inputOptions;
|
|
132
132
|
yield this._init();
|
|
133
|
-
this.
|
|
134
|
-
|
|
135
|
-
period: 1000 / this.inputOptions.stepRate,
|
|
136
|
-
delay: 4
|
|
133
|
+
this.tick.subscribe(({ timestamp, deltaTime }) => {
|
|
134
|
+
this.step(timestamp, deltaTime);
|
|
137
135
|
});
|
|
138
136
|
if (scheduler)
|
|
139
|
-
this.scheduler.start(
|
|
137
|
+
this.scheduler.start({
|
|
138
|
+
fps: (inputOptions === null || inputOptions === void 0 ? void 0 : inputOptions.fps) || 60
|
|
139
|
+
});
|
|
140
140
|
this.gameEngine.start({
|
|
141
141
|
getObject(id) {
|
|
142
142
|
return Query_1.Query.getPlayer(id);
|
|
@@ -145,13 +145,16 @@ class RpgServerEngine {
|
|
|
145
145
|
return Query_1.Query._getObjectsOfMap(groupId, player);
|
|
146
146
|
},
|
|
147
147
|
getShapesOfGroup(map) {
|
|
148
|
-
return Query_1.Query.
|
|
148
|
+
return Query_1.Query._getShapesOfMap(map);
|
|
149
149
|
}
|
|
150
150
|
});
|
|
151
151
|
this.io.on('connection', this.onPlayerConnected.bind(this));
|
|
152
152
|
yield common_1.RpgPlugin.emit(common_1.HookServer.Start, this);
|
|
153
153
|
});
|
|
154
154
|
}
|
|
155
|
+
get tick() {
|
|
156
|
+
return this.scheduler.tick;
|
|
157
|
+
}
|
|
155
158
|
/**
|
|
156
159
|
* Sends all packages to clients. The sending is done automatically but you can decide to send yourself by calling this method (for example, for unit tests)
|
|
157
160
|
*
|
|
@@ -169,19 +172,22 @@ class RpgServerEngine {
|
|
|
169
172
|
const obj = [];
|
|
170
173
|
let p = [];
|
|
171
174
|
for (let playerId in players) {
|
|
172
|
-
const playerInstance = players[playerId];
|
|
175
|
+
const playerInstance = players[playerId]['proxy'];
|
|
176
|
+
if (!playerInstance)
|
|
177
|
+
continue;
|
|
173
178
|
const player = (_a = playerInstance.otherPossessedPlayer) !== null && _a !== void 0 ? _a : playerInstance;
|
|
174
179
|
if (player.pendingMove.length > 0) {
|
|
175
180
|
const lastFrame = player.pendingMove[player.pendingMove.length - 1];
|
|
176
181
|
if (this.inputOptions.workers)
|
|
177
182
|
obj.push(player.toObject());
|
|
178
183
|
else {
|
|
179
|
-
p.push(this.gameEngine.processInput(player.playerId).then(() => {
|
|
184
|
+
p.push(this.gameEngine.processInput(player.playerId, this.globalConfig.inputs).then(() => {
|
|
180
185
|
player.pendingMove = [];
|
|
181
186
|
player._lastFramePositions = {
|
|
182
187
|
frame: lastFrame.frame,
|
|
183
188
|
position: Object.assign({}, player.position)
|
|
184
189
|
};
|
|
190
|
+
return player;
|
|
185
191
|
}));
|
|
186
192
|
}
|
|
187
193
|
}
|
|
@@ -205,10 +211,12 @@ class RpgServerEngine {
|
|
|
205
211
|
}
|
|
206
212
|
return Promise.all(p);
|
|
207
213
|
}
|
|
214
|
+
nextTick(timestamp) {
|
|
215
|
+
this.scheduler.nextTick(timestamp);
|
|
216
|
+
}
|
|
208
217
|
step(t, dt) {
|
|
209
|
-
this.tick++;
|
|
210
218
|
this.updatePlayersMove(1);
|
|
211
|
-
if (this.
|
|
219
|
+
if (this.scheduler.frame % 4 === 0) {
|
|
212
220
|
this.send();
|
|
213
221
|
}
|
|
214
222
|
common_1.RpgPlugin.emit(common_1.HookServer.Step, this);
|
|
@@ -239,6 +247,9 @@ class RpgServerEngine {
|
|
|
239
247
|
socket.on('move', (data) => {
|
|
240
248
|
var _a;
|
|
241
249
|
const controlPlayer = (_a = player.otherPossessedPlayer) !== null && _a !== void 0 ? _a : player;
|
|
250
|
+
if (!controlPlayer.canMove) {
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
242
253
|
for (let input of data.input) {
|
|
243
254
|
controlPlayer.pendingMove.push({
|
|
244
255
|
input,
|
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,6CAA+C;AAC/C,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.
|
|
3
|
+
"version": "3.3.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
@@ -18,17 +18,18 @@
|
|
|
18
18
|
"author": "Samuel Ronce",
|
|
19
19
|
"license": "MIT",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@rpgjs/common": "^3.
|
|
22
|
-
"@rpgjs/database": "^3.
|
|
23
|
-
"@rpgjs/tiled": "^3.
|
|
21
|
+
"@rpgjs/common": "^3.3.0",
|
|
22
|
+
"@rpgjs/database": "^3.3.0",
|
|
23
|
+
"@rpgjs/tiled": "^3.3.0",
|
|
24
|
+
"@rpgjs/types": "^3.3.0",
|
|
24
25
|
"axios": "^0.27.1",
|
|
25
26
|
"lodash.merge": "^4.6.2",
|
|
26
27
|
"pathfinding": "^0.4.18",
|
|
27
|
-
"rxjs": "
|
|
28
|
+
"rxjs": "7.5.5",
|
|
28
29
|
"sat": "^0.8.0",
|
|
29
30
|
"simple-room": "^1.0.1"
|
|
30
31
|
},
|
|
31
|
-
"gitHead": "
|
|
32
|
+
"gitHead": "076ac72a11bd90c004a3fe0659e9e2fa886db401",
|
|
32
33
|
"devDependencies": {
|
|
33
34
|
"typescript": "^4.3.5"
|
|
34
35
|
}
|