@rpgjs/common 3.0.0-beta.3 → 3.0.0-beta.6
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/EventEmitter.d.ts +1 -0
- package/lib/EventEmitter.js +4 -0
- package/lib/EventEmitter.js.map +1 -1
- package/lib/Game.d.ts +13 -4
- package/lib/Game.js +35 -17
- package/lib/Game.js.map +1 -1
- package/lib/Hit.d.ts +1 -1
- package/lib/Input.d.ts +8 -8
- package/lib/Input.js +8 -8
- package/lib/Input.js.map +1 -1
- package/lib/Map.d.ts +198 -10
- package/lib/Map.js +208 -8
- package/lib/Map.js.map +1 -1
- package/lib/Player.d.ts +107 -18
- package/lib/Player.js +160 -82
- package/lib/Player.js.map +1 -1
- package/lib/Plugin.d.ts +5 -2
- package/lib/Plugin.js +3 -0
- package/lib/Plugin.js.map +1 -1
- package/lib/Scheduler.d.ts +14 -4
- package/lib/Scheduler.js +16 -6
- package/lib/Scheduler.js.map +1 -1
- package/lib/Shape.d.ts +20 -2
- package/lib/Shape.js +34 -3
- package/lib/Shape.js.map +1 -1
- package/lib/Utils.d.ts +11 -15
- package/lib/Utils.js +27 -49
- package/lib/Utils.js.map +1 -1
- package/lib/VirtualGrid.d.ts +27 -0
- package/lib/VirtualGrid.js +75 -0
- package/lib/VirtualGrid.js.map +1 -0
- package/lib/Worker.d.ts +7 -0
- package/lib/Worker.js +21 -0
- package/lib/Worker.js.map +1 -0
- package/lib/index.d.ts +2 -1
- package/lib/index.js +3 -1
- package/lib/index.js.map +1 -1
- package/lib/transports/io.d.ts +6 -5
- package/lib/transports/io.js +14 -0
- package/lib/transports/io.js.map +1 -1
- package/lib/workers/move.d.ts +1 -0
- package/lib/workers/move.js +62 -0
- package/lib/workers/move.js.map +1 -0
- package/package.json +4 -3
package/lib/EventEmitter.d.ts
CHANGED
package/lib/EventEmitter.js
CHANGED
package/lib/EventEmitter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventEmitter.js","sourceRoot":"","sources":["../src/EventEmitter.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AAEnC,MAAa,YAAY;IAAzB;QACY,cAAS,GAEb,EAAE,CAAA;QAEE,kBAAa,GAEjB,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"EventEmitter.js","sourceRoot":"","sources":["../src/EventEmitter.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AAEnC,MAAa,YAAY;IAAzB;QACY,cAAS,GAEb,EAAE,CAAA;QAEE,kBAAa,GAEjB,EAAE,CAAA;IA0CV,CAAC;IAxCG,IAAI,CAAC,IAAY,EAAE,EAAY;QAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;QAC7B,OAAO,IAAI,CAAA;IACf,CAAC;IAED,EAAE,CAAC,IAAY,EAAE,EAAY;QACzB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;QACpD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC7B,OAAO,IAAI,CAAA;IACf,CAAC;IAED,IAAI,CAAC,IAAY,EAAE,IAAU,EAAE,OAAgB,KAAK;QAChD,MAAM,GAAG,GAAQ,EAAE,CAAA;QACnB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACtB,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACvC,IAAI,IAAI;oBAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;;oBAChC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;aAChC;SACJ;aACI,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;YAC/B,IAAI,IAAI;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;;gBAChD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;SAChD;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC7B,IAAI,CAAC,iBAAS,CAAC,GAAG,CAAC,EAAE;gBACjB,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;aAC9B;YACD,OAAO,GAAG,CAAA;QACd,CAAC,CAAC,CAAC,CAAA;IACP,CAAC;IAED,GAAG,CAAC,IAAY;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;IAED,KAAK;QACD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;QACnB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;IAC3B,CAAC;CACJ;AAjDD,oCAiDC"}
|
package/lib/Game.d.ts
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
import { EventEmitter } from './EventEmitter';
|
|
2
|
+
import { RpgCommonPlayer } from './Player';
|
|
3
|
+
import { GameWorker } from './Worker';
|
|
2
4
|
export default class Game extends EventEmitter {
|
|
3
5
|
private side;
|
|
4
6
|
events: any;
|
|
5
7
|
world: any;
|
|
8
|
+
playerId: string;
|
|
9
|
+
standalone: boolean;
|
|
10
|
+
clientEngine: any;
|
|
11
|
+
renderer: any;
|
|
12
|
+
_playerClass: any;
|
|
6
13
|
constructor(side: string);
|
|
14
|
+
get isWorker(): boolean;
|
|
7
15
|
start(world: any): void;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
16
|
+
createWorkers(options: any): GameWorker;
|
|
17
|
+
addObject(_class: any, playerId?: string): any;
|
|
18
|
+
addPlayer(playerClass: any, playerId?: string): any;
|
|
19
|
+
addEvent(eventClass: any, eventId?: string): any;
|
|
20
|
+
processInput(playerId: string): RpgCommonPlayer;
|
|
12
21
|
}
|
package/lib/Game.js
CHANGED
|
@@ -5,20 +5,27 @@ const EventEmitter_1 = require("./EventEmitter");
|
|
|
5
5
|
const Player_1 = require("./Player");
|
|
6
6
|
const Input_1 = require("./Input");
|
|
7
7
|
const Plugin_1 = require("./Plugin");
|
|
8
|
+
const Worker_1 = require("./Worker");
|
|
8
9
|
class Game extends EventEmitter_1.EventEmitter {
|
|
9
10
|
constructor(side) {
|
|
10
11
|
super();
|
|
11
12
|
this.side = side;
|
|
12
13
|
this.events = {}; // events for all player in map
|
|
13
14
|
}
|
|
15
|
+
get isWorker() {
|
|
16
|
+
return this.side == 'worker';
|
|
17
|
+
}
|
|
14
18
|
start(world) {
|
|
15
19
|
this.world = world;
|
|
16
20
|
}
|
|
21
|
+
createWorkers(options) {
|
|
22
|
+
return new Worker_1.GameWorker(options);
|
|
23
|
+
}
|
|
17
24
|
addObject(_class, playerId) {
|
|
18
25
|
let event;
|
|
19
26
|
if (!playerId)
|
|
20
27
|
playerId = Utils_1.generateUID();
|
|
21
|
-
if (_class
|
|
28
|
+
if (Utils_1.isClass(_class)) {
|
|
22
29
|
event = new _class(this, playerId);
|
|
23
30
|
}
|
|
24
31
|
else {
|
|
@@ -30,28 +37,39 @@ class Game extends EventEmitter_1.EventEmitter {
|
|
|
30
37
|
const player = this.addObject(playerClass, playerId);
|
|
31
38
|
return player;
|
|
32
39
|
}
|
|
33
|
-
addEvent(eventClass) {
|
|
34
|
-
const event = this.addObject(eventClass);
|
|
40
|
+
addEvent(eventClass, eventId) {
|
|
41
|
+
const event = this.addObject(eventClass, eventId);
|
|
35
42
|
return event;
|
|
36
43
|
}
|
|
37
|
-
processInput(
|
|
44
|
+
processInput(playerId) {
|
|
38
45
|
const player = this.world.getObject(playerId);
|
|
39
|
-
const { input } = inputData;
|
|
40
46
|
if (!player)
|
|
41
|
-
return;
|
|
47
|
+
return player;
|
|
42
48
|
if (!player.canMove)
|
|
43
|
-
return;
|
|
44
|
-
|
|
45
|
-
|
|
49
|
+
return player;
|
|
50
|
+
const routesMove = [];
|
|
51
|
+
while (player.pendingMove.length > 0) {
|
|
52
|
+
const inputData = player.pendingMove.shift();
|
|
53
|
+
let { input, deltaTimeInt } = inputData;
|
|
54
|
+
let moving = false;
|
|
55
|
+
if (input == Input_1.Control.Action) {
|
|
56
|
+
player.triggerCollisionWith(Player_1.RpgCommonPlayer.ACTIONS.ACTION);
|
|
57
|
+
}
|
|
58
|
+
else if (input == Player_1.Direction.Left ||
|
|
59
|
+
input == Player_1.Direction.Right ||
|
|
60
|
+
input == Player_1.Direction.Up ||
|
|
61
|
+
input == Player_1.Direction.Down) {
|
|
62
|
+
moving = true;
|
|
63
|
+
const isMove = player.moveByDirection(+input, deltaTimeInt || 1);
|
|
64
|
+
if (isMove) {
|
|
65
|
+
routesMove.push(inputData);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
// TODO, is Worker
|
|
69
|
+
if (this.side == 'server')
|
|
70
|
+
Plugin_1.RpgPlugin.emit('Server.onInput', [player, Object.assign(Object.assign({}, inputData), { moving })], true);
|
|
46
71
|
}
|
|
47
|
-
|
|
48
|
-
input == Player_1.Direction.Right ||
|
|
49
|
-
input == Player_1.Direction.Up ||
|
|
50
|
-
input == Player_1.Direction.Down) {
|
|
51
|
-
player.moveByDirection(input);
|
|
52
|
-
}
|
|
53
|
-
if (this.side == 'server')
|
|
54
|
-
Plugin_1.RpgPlugin.emit('Server.onInput', [player, inputData], true);
|
|
72
|
+
return player;
|
|
55
73
|
}
|
|
56
74
|
}
|
|
57
75
|
exports.default = Game;
|
package/lib/Game.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Game.js","sourceRoot":"","sources":["../src/Game.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"Game.js","sourceRoot":"","sources":["../src/Game.ts"],"names":[],"mappings":";;AAAA,mCAA8C;AAC9C,iDAA6C;AAC7C,qCAAqD;AACrD,mCAAiC;AACjC,qCAAoC;AACpC,qCAAqC;AAErC,MAAqB,IAAK,SAAQ,2BAAY;IAY1C,YAAoB,IAAY;QAC5B,KAAK,EAAE,CAAA;QADS,SAAI,GAAJ,IAAI,CAAQ;QAE5B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA,CAAC,+BAA+B;IACpD,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,KAAK;QACP,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACtB,CAAC;IAED,aAAa,CAAC,OAAY;QACtB,OAAO,IAAI,mBAAU,CAAC,OAAO,CAAC,CAAA;IAClC,CAAC;IAED,SAAS,CAAC,MAAM,EAAE,QAAiB;QAC/B,IAAI,KAAK,CAAA;QACT,IAAI,CAAC,QAAQ;YAAE,QAAQ,GAAG,mBAAW,EAAE,CAAA;QACvC,IAAI,eAAO,CAAC,MAAM,CAAC,EAAE;YACjB,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;SACrC;aACI;YACD,KAAK,GAAG,MAAM,CAAA;SACjB;QACD,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,SAAS,CAAC,WAAW,EAAE,QAAiB;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;QACpD,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,QAAQ,CAAC,UAAU,EAAE,OAAgB;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QACjD,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,YAAY,CAAC,QAAgB;QACzB,MAAM,MAAM,GAAoB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAE9D,IAAI,CAAC,MAAM;YAAE,OAAO,MAAM,CAAA;QAC1B,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,MAAM,CAAA;QAElC,MAAM,UAAU,GAAQ,EAAE,CAAA;QAE1B,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAClC,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;YAC5C,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,SAAgB,CAAA;YAC9C,IAAI,MAAM,GAAG,KAAK,CAAA;YAElB,IAAI,KAAK,IAAI,eAAO,CAAC,MAAM,EAAE;gBACzB,MAAM,CAAC,oBAAoB,CAAC,wBAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;aAC9D;iBACI,IACD,KAAK,IAAI,kBAAS,CAAC,IAAI;gBACvB,KAAK,IAAI,kBAAS,CAAC,KAAK;gBACxB,KAAK,IAAI,kBAAS,CAAC,EAAE;gBACrB,KAAK,IAAI,kBAAS,CAAC,IAAI,EACzB;gBACE,MAAM,GAAG,IAAI,CAAA;gBACb,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,CAAC,CAAA;gBAChE,IAAI,MAAM,EAAE;oBACR,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;iBAC7B;aACJ;YACD,kBAAkB;YAClB,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ;gBAAE,kBAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,MAAM,kCAC5D,SAAS,KACZ,MAAM,IACR,EAAE,IAAI,CAAC,CAAA;SAEZ;QACD,OAAO,MAAM,CAAA;IACjB,CAAC;CACJ;AAxFD,uBAwFC"}
|
package/lib/Hit.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export interface HitObject {
|
|
|
15
15
|
name?: string;
|
|
16
16
|
}
|
|
17
17
|
declare class HitClass {
|
|
18
|
-
createObjectHitbox(x: number, y: number, z: number, w: number, h: number):
|
|
18
|
+
createObjectHitbox(x: number, y: number, z: number, w: number, h: number): SAT.Box;
|
|
19
19
|
getHitbox(obj: HitObject, offset?: {
|
|
20
20
|
x: number;
|
|
21
21
|
y: number;
|
package/lib/Input.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export declare enum Control {
|
|
2
2
|
Action = "action",
|
|
3
3
|
Back = "back",
|
|
4
|
-
Up =
|
|
5
|
-
Down =
|
|
6
|
-
Right =
|
|
7
|
-
Left =
|
|
4
|
+
Up = 1,
|
|
5
|
+
Down = 3,
|
|
6
|
+
Right = 2,
|
|
7
|
+
Left = 4
|
|
8
8
|
}
|
|
9
9
|
export declare enum Input {
|
|
10
10
|
Break = "break",
|
|
@@ -25,10 +25,10 @@ export declare enum Input {
|
|
|
25
25
|
PageDown = "page down",
|
|
26
26
|
End = "end",
|
|
27
27
|
Home = "home",
|
|
28
|
-
Left =
|
|
29
|
-
Up =
|
|
30
|
-
Right =
|
|
31
|
-
Down =
|
|
28
|
+
Left = 4,
|
|
29
|
+
Up = 1,
|
|
30
|
+
Right = 2,
|
|
31
|
+
Down = 3,
|
|
32
32
|
Select = "select",
|
|
33
33
|
Print = "print",
|
|
34
34
|
Execute = "execute",
|
package/lib/Input.js
CHANGED
|
@@ -5,10 +5,10 @@ var Control;
|
|
|
5
5
|
(function (Control) {
|
|
6
6
|
Control["Action"] = "action";
|
|
7
7
|
Control["Back"] = "back";
|
|
8
|
-
Control["Up"] = "
|
|
9
|
-
Control["Down"] = "
|
|
10
|
-
Control["Right"] = "
|
|
11
|
-
Control["Left"] = "
|
|
8
|
+
Control[Control["Up"] = 1] = "Up";
|
|
9
|
+
Control[Control["Down"] = 3] = "Down";
|
|
10
|
+
Control[Control["Right"] = 2] = "Right";
|
|
11
|
+
Control[Control["Left"] = 4] = "Left";
|
|
12
12
|
})(Control = exports.Control || (exports.Control = {}));
|
|
13
13
|
var Input;
|
|
14
14
|
(function (Input) {
|
|
@@ -30,10 +30,10 @@ var Input;
|
|
|
30
30
|
Input["PageDown"] = "page down";
|
|
31
31
|
Input["End"] = "end";
|
|
32
32
|
Input["Home"] = "home";
|
|
33
|
-
Input["Left"] = "
|
|
34
|
-
Input["Up"] = "
|
|
35
|
-
Input["Right"] = "
|
|
36
|
-
Input["Down"] = "
|
|
33
|
+
Input[Input["Left"] = 4] = "Left";
|
|
34
|
+
Input[Input["Up"] = 1] = "Up";
|
|
35
|
+
Input[Input["Right"] = 2] = "Right";
|
|
36
|
+
Input[Input["Down"] = 3] = "Down";
|
|
37
37
|
Input["Select"] = "select";
|
|
38
38
|
Input["Print"] = "print";
|
|
39
39
|
Input["Execute"] = "execute";
|
package/lib/Input.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","sourceRoot":"","sources":["../src/Input.ts"],"names":[],"mappings":";;;AAAA,IAAY,OAOX;AAPD,WAAY,OAAO;IACf,4BAAiB,CAAA;IACjB,wBAAa,CAAA;IACb,
|
|
1
|
+
{"version":3,"file":"Input.js","sourceRoot":"","sources":["../src/Input.ts"],"names":[],"mappings":"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"}
|
package/lib/Map.d.ts
CHANGED
|
@@ -1,26 +1,112 @@
|
|
|
1
1
|
import { HitObject } from './Hit';
|
|
2
2
|
import { RpgShape } from './Shape';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
import { VirtualGrid } from './VirtualGrid';
|
|
4
|
+
export interface Tile {
|
|
5
|
+
id: number;
|
|
6
|
+
terrain: any[];
|
|
7
|
+
probability: any;
|
|
8
|
+
properties: any;
|
|
9
|
+
animations: any[];
|
|
10
|
+
objectGroups: any[];
|
|
11
|
+
image: any;
|
|
12
|
+
gid: number;
|
|
13
|
+
}
|
|
14
|
+
export interface TileInfo {
|
|
15
|
+
tiles: Tile[];
|
|
5
16
|
hasCollision: boolean;
|
|
6
17
|
isClimbable?: boolean;
|
|
7
18
|
isOverlay: boolean;
|
|
8
19
|
objectGroups: HitObject[];
|
|
20
|
+
tileIndex: number;
|
|
21
|
+
}
|
|
22
|
+
export interface LayerInfo {
|
|
23
|
+
type: string;
|
|
24
|
+
name: string;
|
|
25
|
+
opacity: number;
|
|
26
|
+
visible: boolean;
|
|
27
|
+
properties: any;
|
|
28
|
+
objects: HitObject[];
|
|
29
|
+
tiles: Tile[];
|
|
9
30
|
}
|
|
10
31
|
export default class RpgCommonMap {
|
|
32
|
+
grid: VirtualGrid;
|
|
33
|
+
/**
|
|
34
|
+
* @title Data of map
|
|
35
|
+
* @prop {object} [data]
|
|
36
|
+
* @readonly
|
|
37
|
+
* @memberof Map
|
|
38
|
+
* @memberof RpgSceneMap
|
|
39
|
+
* */
|
|
11
40
|
data: any;
|
|
12
41
|
width: number;
|
|
13
42
|
height: number;
|
|
43
|
+
/**
|
|
44
|
+
* @title Width of a tile
|
|
45
|
+
* @prop {number} [tileWidth]
|
|
46
|
+
* @readonly
|
|
47
|
+
* @memberof Map
|
|
48
|
+
* @memberof RpgSceneMap
|
|
49
|
+
* */
|
|
14
50
|
tileWidth: number;
|
|
51
|
+
/**
|
|
52
|
+
* @title Height of a tile
|
|
53
|
+
* @prop {number} [tileHeight]
|
|
54
|
+
* @readonly
|
|
55
|
+
* @memberof Map
|
|
56
|
+
* @memberof RpgSceneMap
|
|
57
|
+
* */
|
|
15
58
|
tileHeight: number;
|
|
16
|
-
|
|
59
|
+
/**
|
|
60
|
+
* @title Layers of map
|
|
61
|
+
* @prop {object[]} [layers]
|
|
62
|
+
* @readonly
|
|
63
|
+
* @memberof Map
|
|
64
|
+
* @memberof RpgSceneMap
|
|
65
|
+
* */
|
|
66
|
+
layers: LayerInfo[];
|
|
17
67
|
private shapes;
|
|
18
68
|
static get buffer(): Map<any, any>;
|
|
19
69
|
load(data: any): void;
|
|
70
|
+
/**
|
|
71
|
+
* @title Width of the map in pixels
|
|
72
|
+
* @prop {number} [widthPx]
|
|
73
|
+
* @readonly
|
|
74
|
+
* @memberof Map
|
|
75
|
+
* @memberof RpgSceneMap
|
|
76
|
+
* */
|
|
20
77
|
get widthPx(): number;
|
|
78
|
+
/**
|
|
79
|
+
* @title Height of the map in pixels
|
|
80
|
+
* @prop {number} [heightPx]
|
|
81
|
+
* @readonly
|
|
82
|
+
* @memberof Map
|
|
83
|
+
* @memberof RpgSceneMap
|
|
84
|
+
* */
|
|
21
85
|
get heightPx(): number;
|
|
86
|
+
/**
|
|
87
|
+
* @title The depth of the map in pixels (this is the height of a tile ;))
|
|
88
|
+
* @prop {number} map.zTileHeight
|
|
89
|
+
* @readonly
|
|
90
|
+
* @memberof Map
|
|
91
|
+
* @memberof RpgSceneMap
|
|
92
|
+
* */
|
|
22
93
|
get zTileHeight(): number;
|
|
23
94
|
_extractShapes(): void;
|
|
95
|
+
/**
|
|
96
|
+
* Find a layer by name. Returns `undefined` is the layer is not found
|
|
97
|
+
|
|
98
|
+
* @title Get Layer by name
|
|
99
|
+
* @method map.getLayerByName(name)
|
|
100
|
+
* @param {string} name layer name
|
|
101
|
+
* @returns {LayerInfo | undefined}
|
|
102
|
+
* @example
|
|
103
|
+
* ```ts
|
|
104
|
+
* const tiles = map.getLayerByName(0, 0)
|
|
105
|
+
* ```
|
|
106
|
+
* @memberof Map
|
|
107
|
+
* @memberof RpgSceneMap
|
|
108
|
+
*/
|
|
109
|
+
getLayerByName(name: string): LayerInfo | undefined;
|
|
24
110
|
/**
|
|
25
111
|
* Create a shape dynamically on the map
|
|
26
112
|
*
|
|
@@ -36,26 +122,128 @@ export default class RpgCommonMap {
|
|
|
36
122
|
* - You can your own properties
|
|
37
123
|
*
|
|
38
124
|
* @title Create Shape
|
|
39
|
-
* @since beta.3
|
|
125
|
+
* @since 3.0.0-beta.3
|
|
40
126
|
* @method map.createShape(obj)
|
|
127
|
+
* @param {object} obj
|
|
41
128
|
* @returns {RpgShape}
|
|
42
129
|
* @memberof Map
|
|
43
130
|
*/
|
|
44
131
|
createShape(obj: HitObject): RpgShape;
|
|
132
|
+
/**
|
|
133
|
+
* Delete a shape
|
|
134
|
+
*
|
|
135
|
+
* @title Delete Shape
|
|
136
|
+
* @method map.removeShape(name)
|
|
137
|
+
* @param {string} name Name of shape
|
|
138
|
+
* @returns {void}
|
|
139
|
+
* @memberof Map
|
|
140
|
+
*/
|
|
45
141
|
removeShape(name: string): void;
|
|
142
|
+
/**
|
|
143
|
+
* Return all shapes on the map
|
|
144
|
+
*
|
|
145
|
+
* @title Get Shapes
|
|
146
|
+
* @method map.getShapes()
|
|
147
|
+
* @returns {RpgShape[]}
|
|
148
|
+
* @memberof Map
|
|
149
|
+
* @memberof RpgSceneMap
|
|
150
|
+
*/
|
|
46
151
|
getShapes(): RpgShape[];
|
|
152
|
+
/**
|
|
153
|
+
* Returns a shape by its name. Returns undefined is nothing is found
|
|
154
|
+
*
|
|
155
|
+
* @title Get Shape by name
|
|
156
|
+
* @method map.getShape(name)
|
|
157
|
+
* @param {string} name Name of shape
|
|
158
|
+
* @returns {RpgShape[] | undefined}
|
|
159
|
+
* @memberof Map
|
|
160
|
+
* @memberof RpgSceneMap
|
|
161
|
+
*/
|
|
47
162
|
getShape(name: string): RpgShape | undefined;
|
|
48
|
-
getPositionByShape(filter:
|
|
163
|
+
getPositionByShape(filter: (shape: RpgShape) => {}): {
|
|
49
164
|
x: number;
|
|
50
165
|
y: number;
|
|
51
166
|
z: number;
|
|
52
167
|
} | null;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
168
|
+
setTile(x: number, y: number, layerFilter: string | ((layer: any) => boolean), tileInfo: any): {
|
|
169
|
+
x: number;
|
|
170
|
+
y: number;
|
|
171
|
+
tiles: {
|
|
172
|
+
[tileIndex: number]: object;
|
|
173
|
+
};
|
|
174
|
+
};
|
|
175
|
+
/**
|
|
176
|
+
* Get the tile index on the tileset
|
|
177
|
+
*
|
|
178
|
+
* @title Get index of tile
|
|
179
|
+
* @method map.getTileIndex(x,y)
|
|
180
|
+
* @param {number} x Position X
|
|
181
|
+
* @param {number} x Position Y
|
|
182
|
+
* @returns {number}
|
|
183
|
+
* @memberof Map
|
|
184
|
+
* @memberof RpgSceneMap
|
|
185
|
+
*/
|
|
186
|
+
getTileIndex(x: number, y: number, [z]?: [number]): number;
|
|
187
|
+
/**
|
|
188
|
+
* Retrieves tiles according to its index
|
|
189
|
+
|
|
190
|
+
* @title Get tile by index
|
|
191
|
+
* @method map.getTileByIndex(tileIndex)
|
|
192
|
+
* @param {number} tileIndex tile index
|
|
193
|
+
* @returns {TileInfo}
|
|
194
|
+
* @example
|
|
195
|
+
* ```ts
|
|
196
|
+
* const index = map.getTileIndex(0, 0)
|
|
197
|
+
* const tiles = map.getTileByIndex(index)
|
|
198
|
+
* ```
|
|
199
|
+
* @memberof Map
|
|
200
|
+
* @memberof RpgSceneMap
|
|
201
|
+
*/
|
|
202
|
+
getTileByIndex(tileIndex: number, zPlayer?: [number, number]): TileInfo;
|
|
203
|
+
/**
|
|
204
|
+
* Find the point of origin (top left) of a tile. Of course, its position depends on the size of the tile
|
|
205
|
+
|
|
206
|
+
* @title Get origin position of tile
|
|
207
|
+
* @method map.getTileOriginPosition(x,y)
|
|
208
|
+
* @param {number} x Position X
|
|
209
|
+
* @param {number} x Position Y
|
|
210
|
+
* @returns { {x: number, y: number }}
|
|
211
|
+
* @example
|
|
212
|
+
* ```ts
|
|
213
|
+
* // If the size of a tile is 32x32px
|
|
214
|
+
* const position = map.getTileOriginPosition(35, 12)
|
|
215
|
+
* console.log(position) // { x: 32, y: 0 }
|
|
216
|
+
* ```
|
|
217
|
+
* @memberof Map
|
|
218
|
+
* @memberof RpgSceneMap
|
|
219
|
+
*/
|
|
220
|
+
getTileOriginPosition(x: number, y: number): {
|
|
56
221
|
x: number;
|
|
57
222
|
y: number;
|
|
58
223
|
};
|
|
59
|
-
|
|
224
|
+
/**
|
|
225
|
+
* Recover tiles according to a position
|
|
226
|
+
|
|
227
|
+
* @title Get tile by position
|
|
228
|
+
* @method map.getTileByPosition(x,y)
|
|
229
|
+
* @param {number} x Position X
|
|
230
|
+
* @param {number} x Position Y
|
|
231
|
+
* @returns {TileInfo}
|
|
232
|
+
* @example
|
|
233
|
+
* ```ts
|
|
234
|
+
* const tiles = map.getTileByPosition(0, 0)
|
|
235
|
+
* ```
|
|
236
|
+
* @memberof Map
|
|
237
|
+
* @memberof RpgSceneMap
|
|
238
|
+
*/
|
|
239
|
+
getTileByPosition(x: number, y: number, z?: [number, number]): TileInfo;
|
|
240
|
+
/**
|
|
241
|
+
* Get tile and verify collision with hitbox
|
|
242
|
+
* @param hitbox
|
|
243
|
+
* @param x
|
|
244
|
+
* @param y
|
|
245
|
+
* @param z
|
|
246
|
+
* @returns TileInfo
|
|
247
|
+
*/
|
|
248
|
+
getTile(hitbox: any, x: number, y: number, z?: [number, number]): TileInfo;
|
|
60
249
|
}
|
|
61
|
-
export {};
|