@rpgjs/client 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.
Files changed (65) hide show
  1. package/lib/Components/AbstractComponent.d.ts +31 -0
  2. package/lib/Components/AbstractComponent.js +104 -0
  3. package/lib/Components/AbstractComponent.js.map +1 -0
  4. package/lib/Components/BarComponent.d.ts +20 -0
  5. package/lib/Components/BarComponent.js +168 -0
  6. package/lib/Components/BarComponent.js.map +1 -0
  7. package/lib/Components/ColorComponent.d.ts +8 -6
  8. package/lib/Components/ColorComponent.js +25 -11
  9. package/lib/Components/ColorComponent.js.map +1 -1
  10. package/lib/Components/Component.d.ts +27 -6
  11. package/lib/Components/Component.js +216 -28
  12. package/lib/Components/Component.js.map +1 -1
  13. package/lib/Components/DebugComponent.d.ts +10 -0
  14. package/lib/Components/DebugComponent.js +33 -0
  15. package/lib/Components/DebugComponent.js.map +1 -0
  16. package/lib/Components/IComponent.d.ts +0 -0
  17. package/lib/Components/IComponent.js +2 -0
  18. package/lib/Components/IComponent.js.map +1 -0
  19. package/lib/Components/ImageComponent.d.ts +8 -6
  20. package/lib/Components/ImageComponent.js +19 -5
  21. package/lib/Components/ImageComponent.js.map +1 -1
  22. package/lib/Components/ShapeComponent.d.ts +10 -0
  23. package/lib/Components/ShapeComponent.js +57 -0
  24. package/lib/Components/ShapeComponent.js.map +1 -0
  25. package/lib/Components/TextComponent.d.ts +8 -3
  26. package/lib/Components/TextComponent.js +26 -4
  27. package/lib/Components/TextComponent.js.map +1 -1
  28. package/lib/Components/TileComponent.d.ts +7 -6
  29. package/lib/Components/TileComponent.js +21 -9
  30. package/lib/Components/TileComponent.js.map +1 -1
  31. package/lib/Effects/Animation.d.ts +21 -5
  32. package/lib/Effects/Animation.js +42 -15
  33. package/lib/Effects/Animation.js.map +1 -1
  34. package/lib/Effects/AnimationCharacter.d.ts +4 -1
  35. package/lib/Effects/AnimationCharacter.js +3 -0
  36. package/lib/Effects/AnimationCharacter.js.map +1 -1
  37. package/lib/GameEngine.d.ts +6 -7
  38. package/lib/GameEngine.js +31 -6
  39. package/lib/GameEngine.js.map +1 -1
  40. package/lib/KeyboardControls.d.ts +21 -10
  41. package/lib/KeyboardControls.js +29 -4
  42. package/lib/KeyboardControls.js.map +1 -1
  43. package/lib/RpgClientEngine.d.ts +22 -16
  44. package/lib/RpgClientEngine.js +40 -72
  45. package/lib/RpgClientEngine.js.map +1 -1
  46. package/lib/Scene/Map.d.ts +2 -1
  47. package/lib/Scene/Map.js.map +1 -1
  48. package/lib/Scene/Scene.d.ts +1 -1
  49. package/lib/Scene/Scene.js +0 -5
  50. package/lib/Scene/Scene.js.map +1 -1
  51. package/lib/Sound/Sound.d.ts +47 -28
  52. package/lib/Sound/Sound.js +4 -2
  53. package/lib/Sound/Sound.js.map +1 -1
  54. package/lib/Sprite/Character.d.ts +3 -0
  55. package/lib/Sprite/Character.js +14 -2
  56. package/lib/Sprite/Character.js.map +1 -1
  57. package/lib/Sprite/Spritesheet.d.ts +85 -48
  58. package/lib/Sprite/Spritesheet.js +4 -2
  59. package/lib/Sprite/Spritesheet.js.map +1 -1
  60. package/lib/Sprite/Spritesheets.d.ts +2 -1
  61. package/lib/Sprite/Spritesheets.js.map +1 -1
  62. package/lib/index.d.ts +19 -19
  63. package/lib/index.js +22 -22
  64. package/lib/index.js.map +1 -1
  65. package/package.json +6 -4
@@ -6,14 +6,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.TileComponent = void 0;
7
7
  const Tile_1 = __importDefault(require("../Tilemap/Tile"));
8
8
  const TileLayer_1 = __importDefault(require("../Tilemap/TileLayer"));
9
- class TileComponent extends PIXI.Container {
10
- constructor(component, gid) {
11
- super();
12
- this.component = component;
13
- this.gid = gid;
14
- this.setTile();
9
+ const AbstractComponent_1 = require("./AbstractComponent");
10
+ class TileComponent extends AbstractComponent_1.AbstractComponent {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.cacheParams = [];
14
+ this.gid = 0;
15
15
  }
16
- setTile() {
16
+ onInit(cell) {
17
+ if (typeof this.value == 'number') {
18
+ this.gid = this.value;
19
+ }
20
+ else {
21
+ this.gid = this.value.gid;
22
+ }
23
+ this.updateRender({});
24
+ super.onInit(cell);
25
+ }
26
+ updateRender(object) {
27
+ var _a, _b, _c, _d;
28
+ this.removeChildren();
17
29
  const scene = this.component.getScene();
18
30
  const tilemap = scene.tilemap;
19
31
  const tileset = TileLayer_1.default.findTileSet(this.gid, tilemap.tilesets);
@@ -21,8 +33,8 @@ class TileComponent extends PIXI.Container {
21
33
  const tile = new Tile_1.default({
22
34
  gid: this.gid
23
35
  }, tileset);
24
- tile.width = this.component.w;
25
- tile.height = this.component.h;
36
+ tile.width = (_b = (_a = this.cell) === null || _a === void 0 ? void 0 : _a.width) !== null && _b !== void 0 ? _b : 0;
37
+ tile.height = (_d = (_c = this.cell) === null || _c === void 0 ? void 0 : _c.height) !== null && _d !== void 0 ? _d : 0;
26
38
  this.addChild(tile);
27
39
  }
28
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TileComponent.js","sourceRoot":"","sources":["../../src/Components/TileComponent.ts"],"names":[],"mappings":";;;;;;AACA,2DAAkC;AAClC,qEAA4C;AAG5C,MAAa,aAAc,SAAQ,IAAI,CAAC,SAAS;IAG7C,YAAoB,SAAuB,EAAU,GAAW;QAC5D,KAAK,EAAE,CAAA;QADS,cAAS,GAAT,SAAS,CAAc;QAAU,QAAG,GAAH,GAAG,CAAQ;QAE5D,IAAI,CAAC,OAAO,EAAE,CAAA;IAClB,CAAC;IAED,OAAO;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAY,CAAA;QACjD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;QAC7B,MAAM,OAAO,GAAG,mBAAS,CAAC,WAAW,CACjC,IAAI,CAAC,GAAG,EACR,OAAO,CAAC,QAAQ,CACnB,CAAA;QACD,IAAI,OAAO,EAAE;YACP,MAAM,IAAI,GAAG,IAAI,cAAI,CAAC;gBACpB,GAAG,EAAE,IAAI,CAAC,GAAG;aACT,EAAE,OAAO,CAAC,CAAA;YAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;YAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;YAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;SACtB;IACL,CAAC;;AAvBL,sCAwBC;AAvBmB,gBAAE,GAAW,MAAM,CAAA"}
1
+ {"version":3,"file":"TileComponent.js","sourceRoot":"","sources":["../../src/Components/TileComponent.ts"],"names":[],"mappings":";;;;;;AAEA,2DAAkC;AAClC,qEAA4C;AAC5C,2DAAiE;AAGjE,MAAa,aAAc,SAAQ,qCAAsD;IAAzF;;QAEI,gBAAW,GAAa,EAAE,CAAA;QAC1B,QAAG,GAAW,CAAC,CAAA;IA6BnB,CAAC;IA3BG,MAAM,CAAC,IAAc;QACjB,IAAI,OAAO,IAAI,CAAC,KAAK,IAAI,QAAQ,EAAE;YAC/B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAA;SACxB;aAAM;YACH,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAA;SAC5B;QACD,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QACrB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACtB,CAAC;IAED,YAAY,CAAC,MAAW;;QACpB,IAAI,CAAC,cAAc,EAAE,CAAA;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAY,CAAA;QACjD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;QAC7B,MAAM,OAAO,GAAG,mBAAS,CAAC,WAAW,CACjC,IAAI,CAAC,GAAG,EACR,OAAO,CAAC,QAAQ,CACnB,CAAA;QACD,IAAI,OAAO,EAAE;YACT,MAAM,IAAI,GAAG,IAAI,cAAI,CAAC;gBAClB,GAAG,EAAE,IAAI,CAAC,GAAG;aACT,EAAE,OAAO,CAAC,CAAA;YAClB,IAAI,CAAC,KAAK,GAAG,MAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,KAAK,mCAAI,CAAC,CAAA;YAClC,IAAI,CAAC,MAAM,GAAG,MAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,mCAAI,CAAC,CAAA;YACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;SACtB;IACL,CAAC;;AA/BL,sCAgCC;AA/BmB,gBAAE,GAAW,MAAM,CAAA"}
@@ -1,13 +1,24 @@
1
- import { AnimationFrames, FrameOptions } from '../Sprite/Spritesheet';
1
+ import { SpritesheetOptions, TextureOptions, AnimationFrames, FrameOptions, TransformOptions } from '../Sprite/Spritesheet';
2
2
  import { RpgComponent } from '../Components/Component';
3
+ import { Observable } from 'rxjs';
4
+ declare type Image = {
5
+ image: string;
6
+ };
7
+ declare type TextureOptionsMerging = TextureOptions & {
8
+ spriteWidth: number;
9
+ spriteHeight: number;
10
+ sound?: string;
11
+ } & Image & TransformOptions;
12
+ declare type FrameOptionsMerging = TextureOptionsMerging & FrameOptions;
13
+ declare type SpritesheetOptionsMerging = TextureOptionsMerging & SpritesheetOptions;
3
14
  declare type AnimationDataFrames = {
4
15
  container: PIXI.Container;
5
- sprites: FrameOptions[];
16
+ sprites: FrameOptionsMerging[];
6
17
  frames: PIXI.Texture[][];
7
18
  name: string;
8
19
  animations: AnimationFrames;
9
20
  params: any[];
10
- data: any;
21
+ data: TextureOptionsMerging;
11
22
  };
12
23
  export declare class Animation extends PIXI.Sprite {
13
24
  id: string;
@@ -16,21 +27,26 @@ export declare class Animation extends PIXI.Sprite {
16
27
  w: number;
17
28
  h: number;
18
29
  };
19
- applyTransform: Function;
20
- private frames;
30
+ applyTransform: (frame: FrameOptionsMerging, data: TextureOptionsMerging, spritesheet: SpritesheetOptionsMerging) => Partial<FrameOptionsMerging>;
21
31
  private spritesheet;
22
32
  private currentAnimation;
23
33
  private time;
24
34
  private frameIndex;
25
35
  private animations;
36
+ private _animation$;
37
+ readonly animation$: Observable<PIXI.Sprite | null>;
26
38
  onFinish: () => void;
27
39
  constructor(id: string);
28
40
  private createTextures;
29
41
  private createAnimations;
42
+ private getSpriteSize;
43
+ getSpriteHeight(): number;
44
+ getSpriteWidth(): number;
30
45
  has(name: string): boolean;
31
46
  get(name: string): AnimationDataFrames;
32
47
  isPlaying(name?: string): boolean;
33
48
  stop(): void;
34
49
  play(name: string, params?: any[]): void;
50
+ update(deltaRatio: number): void;
35
51
  }
36
52
  export {};
@@ -5,16 +5,19 @@ const common_1 = require("@rpgjs/common");
5
5
  const Spritesheets_1 = require("../Sprite/Spritesheets");
6
6
  const Logger_1 = require("../Logger");
7
7
  const RpgSound_1 = require("../Sound/RpgSound");
8
+ const AnimationCharacter_1 = require("./AnimationCharacter");
9
+ const rxjs_1 = require("rxjs");
8
10
  const { isFunction, arrayEquals } = common_1.Utils;
9
11
  class Animation extends PIXI.Sprite {
10
12
  constructor(id) {
11
13
  super();
12
14
  this.id = id;
13
- this.frames = [];
14
15
  this.currentAnimation = null;
15
16
  this.time = 0;
16
17
  this.frameIndex = 0;
17
18
  this.animations = new Map();
19
+ this._animation$ = new rxjs_1.BehaviorSubject(null);
20
+ this.animation$ = this._animation$.asObservable();
18
21
  this.spritesheet = Spritesheets_1.spritesheets.get(this.id);
19
22
  if (!this.spritesheet) {
20
23
  throw (0, Logger_1.log)(`Impossible to find the ${this.id} spritesheet. Did you put the right name or create the spritesheet?`);
@@ -24,8 +27,8 @@ class Animation extends PIXI.Sprite {
24
27
  createTextures(options) {
25
28
  const { width, height, framesHeight, framesWidth, image, offset } = options;
26
29
  const { baseTexture } = PIXI.Texture.from(image);
27
- const spriteWidth = options['spriteWidth'];
28
- const spriteHeight = options['spriteHeight'];
30
+ const spriteWidth = options.spriteWidth;
31
+ const spriteHeight = options.spriteHeight;
29
32
  const frames = [];
30
33
  const offsetX = (offset && offset.x) || 0;
31
34
  const offsetY = (offset && offset.y) || 0;
@@ -47,11 +50,15 @@ class Animation extends PIXI.Sprite {
47
50
  }
48
51
  createAnimations() {
49
52
  const { textures } = this.spritesheet;
53
+ if (!textures) {
54
+ return;
55
+ }
50
56
  for (let animationName in textures) {
51
- const parentObj = ['width', 'height', 'framesHeight', 'framesWidth', 'rectWidth', 'rectHeight', 'offset', 'image', 'sound']
57
+ const props = ['width', 'height', 'framesHeight', 'framesWidth', 'rectWidth', 'rectHeight', 'offset', 'image', 'sound'];
58
+ const parentObj = props
52
59
  .reduce((prev, val) => (Object.assign(Object.assign({}, prev), { [val]: this.spritesheet[val] })), {});
53
60
  const optionsTextures = Object.assign(Object.assign({}, parentObj), textures[animationName]);
54
- const { rectWidth, width, framesWidth, rectHeight, height, framesHeight } = optionsTextures;
61
+ const { rectWidth, width = 0, framesWidth = 1, rectHeight, height = 0, framesHeight = 1 } = optionsTextures;
55
62
  optionsTextures.spriteWidth = rectWidth ? rectWidth : width / framesWidth;
56
63
  optionsTextures.spriteHeight = rectHeight ? rectHeight : height / framesHeight;
57
64
  this.animations.set(animationName, {
@@ -65,6 +72,16 @@ class Animation extends PIXI.Sprite {
65
72
  });
66
73
  }
67
74
  }
75
+ getSpriteSize(name) {
76
+ var _a, _b;
77
+ return ((_b = this.animations.get(((_a = this.currentAnimation) === null || _a === void 0 ? void 0 : _a.name) || AnimationCharacter_1.Animation.Stand)) === null || _b === void 0 ? void 0 : _b.data[name]) || 0;
78
+ }
79
+ getSpriteHeight() {
80
+ return this.getSpriteSize('spriteHeight');
81
+ }
82
+ getSpriteWidth() {
83
+ return this.getSpriteSize('spriteWidth');
84
+ }
68
85
  has(name) {
69
86
  return this.animations.has(name);
70
87
  }
@@ -79,8 +96,9 @@ class Animation extends PIXI.Sprite {
79
96
  return this.currentAnimation.name == name;
80
97
  }
81
98
  stop() {
99
+ var _a;
82
100
  this.currentAnimation = null;
83
- this.parent.removeChild(this);
101
+ (_a = this.parent) === null || _a === void 0 ? void 0 : _a.removeChild(this);
84
102
  }
85
103
  play(name, params = []) {
86
104
  var _a;
@@ -108,14 +126,13 @@ class Animation extends PIXI.Sprite {
108
126
  this.currentAnimation.container.addChild(sprite);
109
127
  }
110
128
  const sound = this.currentAnimation.data.sound;
111
- if (this.currentAnimation.data.sound) {
129
+ if (sound) {
112
130
  RpgSound_1.RpgSound.get(sound).play();
113
131
  }
114
132
  this.addChild(this.currentAnimation.container);
115
133
  // Updates immediately to avoid flickering
116
134
  this.update(1);
117
135
  }
118
- /** @internal */
119
136
  update(deltaRatio) {
120
137
  if (!this.isPlaying() || !this.currentAnimation)
121
138
  return;
@@ -143,22 +160,25 @@ class Animation extends PIXI.Sprite {
143
160
  sprite[prop].set(...val);
144
161
  }
145
162
  };
146
- const applyTransformValue = (prop, alias = '') => {
163
+ function applyTransformValue(prop, alias) {
147
164
  const optionProp = alias || prop;
148
165
  const val = getVal(optionProp);
149
166
  if (val !== undefined) {
150
167
  sprite[prop] = val;
151
168
  }
152
- };
169
+ }
153
170
  if (this.applyTransform) {
154
171
  frame = Object.assign(Object.assign({}, frame), this.applyTransform(frame, data, this.spritesheet));
155
172
  }
173
+ const realSize = getVal('spriteRealSize');
174
+ const heightOfSprite = typeof realSize == 'number' ? realSize : realSize === null || realSize === void 0 ? void 0 : realSize.height;
175
+ const widthOfSprite = typeof realSize == 'number' ? realSize : realSize === null || realSize === void 0 ? void 0 : realSize.width;
156
176
  const applyAnchorBySize = () => {
157
- const prop = 'anchorBySize';
158
- const val = getVal(prop);
159
- if (val && this.hitbox) {
160
- const w = ((data.spriteWidth - this.hitbox.w) / 2) / data.spriteWidth;
161
- const h = 1 - (this.hitbox.h / (val[1] || val[0]));
177
+ if (heightOfSprite && this.hitbox) {
178
+ const { spriteWidth, spriteHeight } = data;
179
+ const w = ((spriteWidth - this.hitbox.w) / 2) / spriteWidth;
180
+ const gap = (spriteHeight - heightOfSprite) / 2;
181
+ const h = (spriteHeight - this.hitbox.h - gap) / spriteHeight;
162
182
  sprite.anchor.set(w, h);
163
183
  }
164
184
  };
@@ -176,6 +196,13 @@ class Animation extends PIXI.Sprite {
176
196
  applyTransformValue('angle');
177
197
  applyTransformValue('rotation');
178
198
  applyTransformValue('visible');
199
+ this._animation$.next({
200
+ spriteWidth: widthOfSprite || sprite.width,
201
+ spriteHeight: heightOfSprite || sprite.height,
202
+ anchor: sprite.anchor,
203
+ width: getVal('spriteWidth'),
204
+ height: getVal('spriteHeight')
205
+ });
179
206
  }
180
207
  if (!nextFrame) {
181
208
  this.time = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"Animation.js","sourceRoot":"","sources":["../../src/Effects/Animation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Animation.js","sourceRoot":"","sources":["../../src/Effects/Animation.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
1
  export declare enum Animation {
2
2
  Stand = "stand",
3
- Walk = "walk"
3
+ Walk = "walk",
4
+ Attack = "attack",
5
+ Defense = "defense",
6
+ Skill = "skill"
4
7
  }
@@ -5,5 +5,8 @@ var Animation;
5
5
  (function (Animation) {
6
6
  Animation["Stand"] = "stand";
7
7
  Animation["Walk"] = "walk";
8
+ Animation["Attack"] = "attack";
9
+ Animation["Defense"] = "defense";
10
+ Animation["Skill"] = "skill";
8
11
  })(Animation = exports.Animation || (exports.Animation = {}));
9
12
  //# sourceMappingURL=AnimationCharacter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AnimationCharacter.js","sourceRoot":"","sources":["../../src/Effects/AnimationCharacter.ts"],"names":[],"mappings":";;;AAAA,IAAY,SAGX;AAHD,WAAY,SAAS;IACjB,4BAAe,CAAA;IACf,0BAAa,CAAA;AACjB,CAAC,EAHW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAGpB"}
1
+ {"version":3,"file":"AnimationCharacter.js","sourceRoot":"","sources":["../../src/Effects/AnimationCharacter.ts"],"names":[],"mappings":";;;AAAA,IAAY,SAMX;AAND,WAAY,SAAS;IACjB,4BAAe,CAAA;IACf,0BAAa,CAAA;IACb,8BAAiB,CAAA;IACjB,gCAAmB,CAAA;IACnB,4BAAe,CAAA;AACnB,CAAC,EANW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAMpB"}
@@ -2,10 +2,7 @@ import { RpgCommonGame, RpgCommonPlayer, RpgShape } from "@rpgjs/common";
2
2
  import { Observable } from "rxjs";
3
3
  import { RpgRenderer } from "./Renderer";
4
4
  import { RpgClientEngine } from "./RpgClientEngine";
5
- export declare type ObjectFixture = {
6
- object: any;
7
- paramsChanged: any;
8
- };
5
+ import { ObjectFixture } from "@rpgjs/types";
9
6
  export declare class GameEngineClient extends RpgCommonGame {
10
7
  playerId: string;
11
8
  standalone: boolean;
@@ -13,6 +10,7 @@ export declare class GameEngineClient extends RpgCommonGame {
13
10
  renderer: RpgRenderer;
14
11
  private _objects;
15
12
  private _obsObjects;
13
+ private _obsObjectsDeleteNotifier$;
16
14
  private _shapes;
17
15
  private _objectsChanged;
18
16
  world: {
@@ -22,7 +20,7 @@ export declare class GameEngineClient extends RpgCommonGame {
22
20
  getObject: (id: string) => RpgCommonPlayer | null;
23
21
  getShape: (id: string) => RpgShape | null;
24
22
  getAll: (id: string) => RpgCommonPlayer | RpgShape | null;
25
- removeObject: (id: any) => boolean;
23
+ removeObject: (id: string) => boolean;
26
24
  getObjectsOfGroup: () => any;
27
25
  getShapesOfGroup: () => {
28
26
  [id: string]: ObjectFixture;
@@ -56,9 +54,10 @@ export declare class GameEngineClient extends RpgCommonGame {
56
54
  getShape(id: string): ObjectFixture | null;
57
55
  getObjectAndShape(id: string): ObjectFixture | null;
58
56
  resetObjects(): void;
57
+ getDeleteNotifier(id: string): Observable<void>;
59
58
  private _remove;
60
- removeObject(id: any): boolean;
61
- removeShape(id: any): boolean;
59
+ removeObject(id: string): boolean;
60
+ removeShape(id: string): boolean;
62
61
  removeObjectAndShape(id: string): boolean;
63
62
  static toArray(obj: any, prop: string): void;
64
63
  updateObject(obj: any): {
package/lib/GameEngine.js CHANGED
@@ -9,6 +9,7 @@ class GameEngineClient extends common_1.RpgCommonGame {
9
9
  super(common_1.GameSide.Client);
10
10
  this._objects = new rxjs_1.BehaviorSubject({});
11
11
  this._obsObjects = {};
12
+ this._obsObjectsDeleteNotifier$ = {};
12
13
  this._shapes = new rxjs_1.BehaviorSubject({});
13
14
  this._objectsChanged = new rxjs_1.BehaviorSubject({});
14
15
  this.world = {
@@ -92,11 +93,17 @@ class GameEngineClient extends common_1.RpgCommonGame {
92
93
  this._objects.next({});
93
94
  this._shapes.next({});
94
95
  }
96
+ getDeleteNotifier(id) {
97
+ return this._obsObjectsDeleteNotifier$[id].asObservable();
98
+ }
95
99
  _remove(prop, id) {
96
100
  const logic = prop == '_objects' ? this.getObject(id) : this.getShape(id);
97
101
  if (logic) {
98
102
  const objects = Object.assign({}, this[prop].value); // clone
99
103
  delete objects[id];
104
+ this._obsObjectsDeleteNotifier$[id].next();
105
+ this._obsObjectsDeleteNotifier$[id].complete();
106
+ this._obsObjects[id].complete();
100
107
  delete this._obsObjects[id];
101
108
  this[prop].next(objects);
102
109
  return true;
@@ -121,13 +128,31 @@ class GameEngineClient extends common_1.RpgCommonGame {
121
128
  }
122
129
  updateObject(obj) {
123
130
  const { playerId: id, params, localEvent, paramsChanged, isShape } = obj;
124
- GameEngineClient.toArray(params, 'components');
131
+ const layoutToArray = (params) => {
132
+ const layout = params.layout;
133
+ if (layout) {
134
+ ['center', 'top', 'right', 'bottom', 'left'].forEach((key) => {
135
+ if (!layout[key])
136
+ return;
137
+ GameEngineClient.toArray(layout[key], 'lines');
138
+ if (!layout[key].lines)
139
+ return;
140
+ layout[key].lines.map(layout => {
141
+ GameEngineClient.toArray(layout, 'col');
142
+ });
143
+ });
144
+ }
145
+ };
146
+ layoutToArray(params);
125
147
  GameEngineClient.toArray(params, 'polygon');
126
148
  const isMe = () => id == this.playerId;
127
149
  let logic;
128
150
  let teleported = false;
129
151
  let propName = '_objects';
130
- const createObsForObject = (data) => this._obsObjects[id] = new rxjs_1.BehaviorSubject(data);
152
+ const createObsForObject = (data) => {
153
+ this._obsObjectsDeleteNotifier$[id] = new rxjs_1.Subject();
154
+ this._obsObjects[id] = new rxjs_1.BehaviorSubject(data);
155
+ };
131
156
  if (isShape) {
132
157
  propName = '_shapes';
133
158
  logic = this.world.getShape(id);
@@ -163,15 +188,15 @@ class GameEngineClient extends common_1.RpgCommonGame {
163
188
  if (!localEvent &&
164
189
  (key == 'position' ||
165
190
  (key == 'direction' && paramsChanged && paramsChanged.position))) {
166
- if (isMe())
191
+ if (isMe() && logic.canMove)
167
192
  continue;
168
193
  }
169
194
  logic[key] = params[key];
170
195
  }
171
196
  if (paramsChanged) {
172
- GameEngineClient.toArray(paramsChanged, 'components');
173
- if (paramsChanged.components)
174
- logic.componentChanged = paramsChanged.components;
197
+ layoutToArray(paramsChanged);
198
+ if (paramsChanged.layout)
199
+ logic.componentChanged = paramsChanged.layout;
175
200
  if (paramsChanged.teleported) {
176
201
  teleported = true;
177
202
  logic.position = Object.assign({}, params.position); // clone
@@ -1 +1 @@
1
- {"version":3,"file":"GameEngine.js","sourceRoot":"","sources":["../src/GameEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GameEngine.js","sourceRoot":"","sources":["../src/GameEngine.ts"],"names":[],"mappings":";;;AAAA,0CAAmF;AACnF,+BAA2E;AAG3E,8CAAqC;AAGrC,MAAa,gBAAiB,SAAQ,sBAAa;IA6C/C;QACI,KAAK,CAAC,iBAAQ,CAAC,MAAM,CAAC,CAAA;QAxClB,aAAQ,GAAuC,IAAI,sBAAe,CAAC,EAAE,CAAC,CAAA;QACtE,gBAAW,GAEf,EAAE,CAAA;QACE,+BAA0B,GAE9B,EAAE,CAAA;QACE,YAAO,GAAuC,IAAI,sBAAe,CAAC,EAAE,CAAC,CAAA;QACrE,oBAAe,GAAuC,IAAI,sBAAe,CAAC,EAAE,CAAC,CAAA;QAErF,UAAK,GAAG;YACJ,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;YACtC,SAAS,EAAE,CAAC,EAAU,EAA0B,EAAE;gBAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;gBAC9B,IAAI,CAAC,GAAG;oBAAE,OAAO,IAAI,CAAA;gBACrB,OAAO,GAAG,CAAC,MAAM,CAAA;YACrB,CAAC;YACD,QAAQ,EAAE,CAAC,EAAU,EAAmB,EAAE;gBACtC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;gBAC7B,IAAI,CAAC,GAAG;oBAAE,OAAO,IAAI,CAAA;gBACrB,OAAO,GAAG,CAAC,MAAM,CAAA;YACrB,CAAC;YACD,MAAM,EAAE,CAAC,EAAU,EAAqC,EAAE;gBACtD,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAA;gBACtC,IAAI,CAAC,GAAG;oBAAE,OAAO,IAAI,CAAA;gBACrB,OAAO,GAAG,CAAC,MAAM,CAAA;YACrB,CAAC;YACD,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1C,iBAAiB,EAAE,GAAG,EAAE;gBACpB,uCACO,IAAI,CAAC,UAAU,EAAE,GACjB,IAAI,CAAC,MAAM,EACjB;YACL,CAAC;YACD,gBAAgB,EAAE,GAAG,EAAE;gBACnB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAA;YAC3B,CAAC;SACJ,CAAA;IAID,CAAC;IAEO,IAAI,CAAC,IAA4B,EAAE,EAAU;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAA;QAChC,MAAM,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC,CAAA;QACvB,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QACrB,OAAO,GAAG,CAAA;IACd,CAAC;IAED,IAAI,cAAc;QACd,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAA;IAC9C,CAAC;IAED,iBAAiB,CAAC,GAEjB;QACG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAClC,CAAC;IAED,YAAY,CAAC,EAAU;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE,CAAA;IAC9C,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAA;IACvC,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAA;IACtC,CAAC;IAED,IAAI,GAAG;QACH,OAAO,IAAA,oBAAa,EAAC;YACjB,IAAI,CAAC,OAAO;YACZ,IAAI,CAAC,MAAM;SACd,CAAC,CAAC,IAAI,CACH,IAAA,eAAG,EAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE;YACtB,uCACO,OAAO,GACP,MAAM,EACZ;QACL,CAAC,CAAC,CACL,CAAA;IACL,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAA;IAC7B,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAA;IAC9B,CAAC;IAED,SAAS,CAAC,EAAU;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IACpC,CAAC;IAED,QAAQ,CAAC,EAAU;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;IACnC,CAAC;IAED,iBAAiB,CAAC,EAAU;QACxB,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QAC5B,IAAI,CAAC,GAAG;YAAE,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACjC,OAAO,GAAG,CAAA;IACd,CAAC;IAED,YAAY;QACR,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACzB,CAAC;IAED,iBAAiB,CAAC,EAAU;QACxB,OAAO,IAAI,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE,CAAA;IAC7D,CAAC;IAEO,OAAO,CAAC,IAA4B,EAAE,EAAU;QACpD,MAAM,KAAK,GAAG,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACzE,IAAI,KAAK,EAAE;YACP,MAAM,OAAO,qBAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAE,CAAA,CAAC,QAAQ;YAChD,OAAO,OAAO,CAAC,EAAE,CAAC,CAAA;YAClB,IAAI,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;YAC1C,IAAI,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAA;YAC9C,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAA;YAC/B,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;YAC3B,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACxB,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,YAAY,CAAC,EAAU;QACnB,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;YACjB,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;SACzB;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IACvC,CAAC;IAED,WAAW,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;IACtC,CAAC;IAED,oBAAoB,CAAC,EAAU;QAC3B,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;IACxD,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,GAAQ,EAAE,IAAY;QACjC,IAAI,GAAG,CAAC,IAAI,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;IACvD,CAAC;IAED,YAAY,CAAC,GAAG;QACZ,MAAM,EACF,QAAQ,EAAE,EAAE,EACZ,MAAM,EACN,UAAU,EACV,aAAa,EACb,OAAO,EACV,GAAG,GAAG,CAAA;QACP,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,EAAE;YAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAuC,CAAA;YAC7D,IAAI,MAAM,EAAE;gBACR,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBACzD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;wBAAE,OAAM;oBACxB,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAA;oBAC9C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK;wBAAE,OAAM;oBAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;wBAC3B,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;oBAC3C,CAAC,CAAC,CAAA;gBACN,CAAC,CAAC,CAAA;aACL;QACL,CAAC,CAAA;QACD,aAAa,CAAC,MAAM,CAAC,CAAA;QACrB,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;QAC3C,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAA;QACtC,IAAI,KAAK,CAAA;QACT,IAAI,UAAU,GAAG,KAAK,CAAA;QACtB,IAAI,QAAQ,GAAG,UAAU,CAAA;QAEzB,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,EAAE;YAChC,IAAI,CAAC,0BAA0B,CAAC,EAAE,CAAC,GAAG,IAAI,cAAO,EAAE,CAAA;YACnD,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,IAAI,sBAAe,CAAC,IAAI,CAAC,CAAA;QACpD,CAAC,CAAA;QAED,IAAI,OAAO,EAAE;YACT,QAAQ,GAAG,SAAS,CAAA;YACpB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YAC/B,IAAI,CAAC,KAAK,EAAE;gBACR,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;gBAC7B,kBAAkB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;aAChC;SACJ;aACI;YACD,IAAI,UAAU,EAAE;gBACZ,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBACvB,IAAI,CAAC,KAAK,EAAE;oBACR,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,wBAAe,EAAE,EAAE,CAAC,CAAA;oBAC1C,kBAAkB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;oBAC7B,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG;wBACd,MAAM,EAAE,KAAK;qBAChB,CAAA;iBACJ;qBACI;oBACD,KAAK,GAAG,KAAK,CAAC,MAAM,CAAA;iBACvB;aACJ;iBACI;gBACD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;aACnC;YACD,IAAI,CAAC,KAAK,EAAE;gBACR,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,wBAAe,EAAE,EAAE,CAAC,CAAA;gBAC3C,kBAAkB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;aAChC;SACJ;QACD,KAAK,CAAC,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QAClD,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;YACpB,IAAI,CAAC,UAAU;gBACX,CAAC,GAAG,IAAI,UAAU;oBACd,CAAC,GAAG,IAAI,WAAW,IAAI,aAAa,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE;gBACtE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,OAAO;oBAAE,SAAQ;aACxC;YACD,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;SAC3B;QACD,IAAI,aAAa,EAAE;YACf,aAAa,CAAC,aAAa,CAAC,CAAA;YAC5B,IAAI,aAAa,CAAC,MAAM;gBAAE,KAAK,CAAC,gBAAgB,GAAG,aAAa,CAAC,MAAM,CAAA;YACvE,IAAI,aAAa,CAAC,UAAU,EAAE;gBAC1B,UAAU,GAAG,IAAI,CAAA;gBACjB,KAAK,CAAC,QAAQ,qBAAQ,MAAM,CAAC,QAAQ,CAAE,CAAA,CAAC,QAAQ;gBAChD,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;aACrC;YACD,IAAI,CAAC,KAAK,CAAC,aAAa;gBAAE,KAAK,CAAC,aAAa,GAAG,EAAE,CAAA;YAClD,KAAK,CAAC,aAAa,GAAG,aAAa,CAAA;SACtC;QAED,MAAM,SAAS,GAAG;YACd,MAAM,EAAE,KAAK;YACb,aAAa;SAChB,CAAA;QAED,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,iCACZ,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,GACpB;YACC,CAAC,EAAE,CAAC,EAAE,SAAS;SAClB,EACH,CAAA;QAEF,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAEpC,OAAO,SAAS,CAAA;IACpB,CAAC;CACJ;AAjQD,4CAiQC"}
@@ -1,16 +1,8 @@
1
- import { Input } from '@rpgjs/common';
1
+ import { ControlOptions, Controls } from '@rpgjs/types';
2
2
  import { RpgClientEngine } from './RpgClientEngine';
3
- export interface ControlOptions {
4
- repeat?: boolean;
5
- bind: string | string[] | Input | Input[];
6
- method?: Function;
7
- }
8
- export interface Controls {
9
- [controlName: string]: ControlOptions;
10
- }
11
3
  declare type BoundKey = {
12
4
  actionName: string;
13
- options: any;
5
+ options: ControlOptions;
14
6
  parameters?: any;
15
7
  };
16
8
  export declare class KeyboardControls {
@@ -101,6 +93,9 @@ export declare class KeyboardControls {
101
93
  * * repeat {boolean} The key can be held down to repeat the action. (false by default)
102
94
  * * bind {string | string[]} To which key is linked the control
103
95
  * * method {Function} Function to be triggered. If you do not set this property, the name of the control is sent directly to the server.
96
+ * * delay {object|number} (since v3.2.0) Indicates how long (in milliseconds) the player can press the key again to perform the action
97
+ * * delay.duration
98
+ * * delay.otherControls {string | string[]} Indicates the other controls that will also have the delay at the same time
104
99
  *
105
100
  * ```ts
106
101
  * import { Control, Input } from '@rpgjs/client'
@@ -141,6 +136,21 @@ export declare class KeyboardControls {
141
136
  method({ actionName }) {
142
137
  console.log('cool', actionName)
143
138
  }
139
+ },
140
+
141
+ // The player can redo the action after 400ms
142
+ mycustom3: {
143
+ bind: Input.C,
144
+ delay: 400 // ms
145
+ },
146
+
147
+ // The player can redo the action (mycustom4) and the directions after 400ms
148
+ mycustom4: {
149
+ bind: Input.C,
150
+ delay: {
151
+ duration: 400,
152
+ otherControls: [Control.Up, Control.Down, Control.Left, Control.Right]
153
+ }
144
154
  }
145
155
  })
146
156
  *
@@ -159,5 +169,6 @@ export declare class KeyboardControls {
159
169
  * @memberof KeyboardControls
160
170
  */
161
171
  setInputs(inputs: Controls): void;
172
+ get options(): Controls;
162
173
  }
163
174
  export {};
@@ -212,10 +212,13 @@ class KeyboardControls {
212
212
  return;
213
213
  const boundKeys = Object.keys(this.boundKeys);
214
214
  const applyInput = (keyName) => {
215
- var _a, _b;
216
- if ((_a = this.keyState[keyName]) === null || _a === void 0 ? void 0 : _a.isDown) {
215
+ const keyState = this.keyState[keyName];
216
+ if (!keyState)
217
+ return;
218
+ const { isDown, count } = keyState;
219
+ if (isDown) {
217
220
  const { repeat, method } = this.boundKeys[keyName].options;
218
- if (repeat || ((_b = this.keyState[keyName]) === null || _b === void 0 ? void 0 : _b.count) == 0) {
221
+ if ((repeat || count == 0)) {
219
222
  let parameters = this.boundKeys[keyName].parameters;
220
223
  if (typeof parameters === "function") {
221
224
  parameters = parameters();
@@ -306,8 +309,9 @@ class KeyboardControls {
306
309
  }
307
310
  this.keyState[keyName].isDown = isDown;
308
311
  // key up, reset press count
309
- if (!isDown)
312
+ if (!isDown) {
310
313
  this.keyState[keyName].count = 0;
314
+ }
311
315
  // keep reference to the last key pressed to avoid duplicates
312
316
  this.lastKeyPressed = isDown ? e.keyCode : null;
313
317
  }
@@ -410,6 +414,9 @@ class KeyboardControls {
410
414
  * * repeat {boolean} The key can be held down to repeat the action. (false by default)
411
415
  * * bind {string | string[]} To which key is linked the control
412
416
  * * method {Function} Function to be triggered. If you do not set this property, the name of the control is sent directly to the server.
417
+ * * delay {object|number} (since v3.2.0) Indicates how long (in milliseconds) the player can press the key again to perform the action
418
+ * * delay.duration
419
+ * * delay.otherControls {string | string[]} Indicates the other controls that will also have the delay at the same time
413
420
  *
414
421
  * ```ts
415
422
  * import { Control, Input } from '@rpgjs/client'
@@ -450,6 +457,21 @@ class KeyboardControls {
450
457
  method({ actionName }) {
451
458
  console.log('cool', actionName)
452
459
  }
460
+ },
461
+
462
+ // The player can redo the action after 400ms
463
+ mycustom3: {
464
+ bind: Input.C,
465
+ delay: 400 // ms
466
+ },
467
+
468
+ // The player can redo the action (mycustom4) and the directions after 400ms
469
+ mycustom4: {
470
+ bind: Input.C,
471
+ delay: {
472
+ duration: 400,
473
+ otherControls: [Control.Up, Control.Down, Control.Left, Control.Right]
474
+ }
453
475
  }
454
476
  })
455
477
  *
@@ -487,6 +509,9 @@ class KeyboardControls {
487
509
  }
488
510
  this._controlsOptions = inputs;
489
511
  }
512
+ get options() {
513
+ return this._controlsOptions;
514
+ }
490
515
  }
491
516
  exports.KeyboardControls = KeyboardControls;
492
517
  //# sourceMappingURL=KeyboardControls.js.map