@rpgjs/common 3.0.0-beta.2 → 3.0.0-beta.5

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.
@@ -5,4 +5,5 @@ export declare class EventEmitter {
5
5
  on(name: string, cb: Function): EventEmitter;
6
6
  emit(name: string, data?: any, rest?: boolean): Promise<any[]>;
7
7
  off(name: string): void;
8
+ clear(): void;
8
9
  }
@@ -44,6 +44,10 @@ class EventEmitter {
44
44
  delete this.listeners[name];
45
45
  delete this.listenersOnce[name];
46
46
  }
47
+ clear() {
48
+ this.listeners = {};
49
+ this.listenersOnce = {};
50
+ }
47
51
  }
48
52
  exports.EventEmitter = EventEmitter;
49
53
  //# sourceMappingURL=EventEmitter.js.map
@@ -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;IAqCV,CAAC;IAnCG,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;CACJ;AA5CD,oCA4CC"}
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,16 @@
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;
6
8
  constructor(side: string);
9
+ get isWorker(): boolean;
7
10
  start(world: any): void;
11
+ createWorkers(options: any): GameWorker;
8
12
  addObject(_class: any, playerId?: any): any;
9
13
  addPlayer(playerClass: any, playerId: any): any;
10
14
  addEvent(eventClass: any): any;
11
- processInput(inputData: any, playerId: any): void;
15
+ processInput(playerId: string): RpgCommonPlayer;
12
16
  }
package/lib/Game.js CHANGED
@@ -5,15 +5,22 @@ 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)
@@ -34,24 +41,35 @@ class Game extends EventEmitter_1.EventEmitter {
34
41
  const event = this.addObject(eventClass);
35
42
  return event;
36
43
  }
37
- processInput(inputData, playerId) {
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
- if (input == Input_1.Control.Action) {
45
- player.triggerCollisionWith(Player_1.RpgCommonPlayer.ACTIONS.ACTION);
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
- else if (input == Player_1.Direction.Left ||
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,mCAAqC;AACrC,iDAA6C;AAC7C,qCAAqD;AACrD,mCAAiC;AACjC,qCAAoC;AAEpC,MAAqB,IAAK,SAAQ,2BAAY;IAK1C,YAAoB,IAAY;QAC5B,KAAK,EAAE,CAAA;QADS,SAAI,GAAJ,IAAI,CAAQ;QAE5B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA,CAAC,+BAA+B;IACpD,CAAC;IAED,KAAK,CAAC,KAAK;QACP,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACtB,CAAC;IAED,SAAS,CAAC,MAAM,EAAE,QAAS;QACvB,IAAI,KAAK,CAAA;QACT,IAAI,CAAC,QAAQ;YAAE,QAAQ,GAAG,mBAAW,EAAE,CAAA;QACvC,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,UAAU,EAAE;YACvC,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,QAAQ;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;QACpD,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,QAAQ,CAAC,UAAU;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;QACxC,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,YAAY,CAAC,SAAS,EAAE,QAAQ;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAC7C,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAA;QAE3B,IAAI,CAAC,MAAM;YAAE,OAAM;QACnB,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAM;QAE3B,IAAI,KAAK,IAAI,eAAO,CAAC,MAAM,EAAE;YACzB,MAAM,CAAC,oBAAoB,CAAC,wBAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;SAC9D;aACI,IACD,KAAK,IAAI,kBAAS,CAAC,IAAI;YACvB,KAAK,IAAI,kBAAS,CAAC,KAAK;YACxB,KAAK,IAAI,kBAAS,CAAC,EAAE;YACrB,KAAK,IAAI,kBAAS,CAAC,IAAI,EACrB;YACF,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;SAChC;QACD,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ;YAAE,kBAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,CAAA;IAC1F,CAAC;CACJ;AAxDD,uBAwDC"}
1
+ {"version":3,"file":"Game.js","sourceRoot":"","sources":["../src/Game.ts"],"names":[],"mappings":";;AAAA,mCAAqC;AACrC,iDAA6C;AAC7C,qCAAqD;AACrD,mCAAiC;AACjC,qCAAoC;AACpC,qCAAqC;AAErC,MAAqB,IAAK,SAAQ,2BAAY;IAK1C,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,QAAS;QACvB,IAAI,KAAK,CAAA;QACT,IAAI,CAAC,QAAQ;YAAE,QAAQ,GAAG,mBAAW,EAAE,CAAA;QACvC,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,UAAU,EAAE;YACvC,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,QAAQ;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;QACpD,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,QAAQ,CAAC,UAAU;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;QACxC,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;AAjFD,uBAiFC"}
package/lib/Hit.d.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  import SAT from 'sat';
2
2
  export interface HitObject {
3
- ellipse: boolean;
4
- gid: number | null;
3
+ ellipse?: boolean;
4
+ gid?: number;
5
5
  height: number;
6
- polygon: any[] | null;
7
- polyline: any[] | null;
8
- properties: object;
9
- rotation: number;
10
- visible: boolean;
6
+ polygon?: any[];
7
+ polyline?: any[];
8
+ properties?: object;
9
+ rotation?: number;
10
+ visible?: boolean;
11
11
  width: number;
12
12
  x: number;
13
13
  y: number;
@@ -15,12 +15,12 @@ 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): any;
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;
22
22
  }): {
23
- properties: object;
23
+ properties: object | undefined;
24
24
  hitbox: any;
25
25
  type: any;
26
26
  name: string | undefined;
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 = "up",
5
- Down = "down",
6
- Right = "right",
7
- Left = "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 = "left",
29
- Up = "up",
30
- Right = "right",
31
- Down = "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"] = "up";
9
- Control["Down"] = "down";
10
- Control["Right"] = "right";
11
- Control["Left"] = "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"] = "left";
34
- Input["Up"] = "up";
35
- Input["Right"] = "right";
36
- Input["Down"] = "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":"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"}
1
+ {"version":3,"file":"Input.js","sourceRoot":"","sources":["../src/Input.ts"],"names":[],"mappings":"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"}
package/lib/Map.d.ts CHANGED
@@ -1,40 +1,249 @@
1
1
  import { HitObject } from './Hit';
2
- import { Shape } from './Shape';
3
- interface TileInfo {
4
- tiles: any[];
2
+ import { RpgShape } from './Shape';
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
- layers: any[];
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;
24
- createShape(obj: HitObject): Shape;
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;
110
+ /**
111
+ * Create a shape dynamically on the map
112
+ *
113
+ * Object:
114
+ * - (number) x: Position X
115
+ * - (number) y: Position Y
116
+ * - (number) width: Width
117
+ * - (number) height: Height
118
+ * - (object) properties (optionnal):
119
+ * - (number) z: Position Z
120
+ * - (hexadecimal) color: Color (shared with client)
121
+ * - (boolean) collision
122
+ * - You can your own properties
123
+ *
124
+ * @title Create Shape
125
+ * @since 3.0.0-beta.3
126
+ * @method map.createShape(obj)
127
+ * @param {object} obj
128
+ * @returns {RpgShape}
129
+ * @memberof Map
130
+ */
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
+ */
25
141
  removeShape(name: string): void;
26
- getShapes(): Shape[];
27
- getPositionByShape(filter: any): {
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
+ */
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
+ */
162
+ getShape(name: string): RpgShape | undefined;
163
+ getPositionByShape(filter: (shape: RpgShape) => {}): {
28
164
  x: number;
29
165
  y: number;
30
166
  z: number;
31
167
  } | null;
32
- getTileIndex(x: any, y: any, [z]: [any]): number;
33
- getTileByIndex(tileIndex: any, zPlayer: any): TileInfo;
34
- getTileOriginPosition(x: any, y: any): {
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): {
35
221
  x: number;
36
222
  y: number;
37
223
  };
38
- getTileByPosition(x: any, y: any, z: any): TileInfo;
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;
39
249
  }
40
- export {};