@rpgjs/client 3.0.0-beta.7 → 3.0.0-rc

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 (81) hide show
  1. package/lib/Components/ColorComponent.d.ts +8 -0
  2. package/lib/Components/ColorComponent.js +20 -0
  3. package/lib/Components/ColorComponent.js.map +1 -0
  4. package/lib/Components/Component.d.ts +101 -0
  5. package/lib/Components/Component.js +228 -0
  6. package/lib/Components/Component.js.map +1 -0
  7. package/lib/Components/ImageComponent.d.ts +8 -0
  8. package/lib/Components/ImageComponent.js +18 -0
  9. package/lib/Components/ImageComponent.js.map +1 -0
  10. package/lib/Components/TextComponent.d.ts +5 -0
  11. package/lib/Components/TextComponent.js +12 -0
  12. package/lib/Components/TextComponent.js.map +1 -0
  13. package/lib/Components/TileComponent.d.ts +8 -0
  14. package/lib/Components/TileComponent.js +32 -0
  15. package/lib/Components/TileComponent.js.map +1 -0
  16. package/lib/Effects/Animation.d.ts +2 -2
  17. package/lib/Effects/Animation.js +9 -6
  18. package/lib/Effects/Animation.js.map +1 -1
  19. package/lib/Effects/Spinner.d.ts +6 -0
  20. package/lib/Effects/Spinner.js +21 -0
  21. package/lib/Effects/Spinner.js.map +1 -0
  22. package/lib/Effects/TransitionScene.d.ts +16 -0
  23. package/lib/Effects/TransitionScene.js +50 -0
  24. package/lib/Effects/TransitionScene.js.map +1 -1
  25. package/lib/GameEngine.d.ts +23 -1
  26. package/lib/GameEngine.js +98 -31
  27. package/lib/GameEngine.js.map +1 -1
  28. package/lib/KeyboardControls.js +5 -6
  29. package/lib/KeyboardControls.js.map +1 -1
  30. package/lib/Renderer.d.ts +11 -0
  31. package/lib/Renderer.js +99 -19
  32. package/lib/Renderer.js.map +1 -1
  33. package/lib/Resources.js +2 -2
  34. package/lib/Resources.js.map +1 -1
  35. package/lib/RpgClient.d.ts +9 -9
  36. package/lib/RpgClientEngine.d.ts +12 -3
  37. package/lib/RpgClientEngine.js +135 -24
  38. package/lib/RpgClientEngine.js.map +1 -1
  39. package/lib/RpgGui.js +3 -3
  40. package/lib/RpgGui.js.map +1 -1
  41. package/lib/Scene/Map.d.ts +8 -6
  42. package/lib/Scene/Map.js +73 -77
  43. package/lib/Scene/Map.js.map +1 -1
  44. package/lib/Scene/Scene.d.ts +9 -7
  45. package/lib/Scene/Scene.js +9 -3
  46. package/lib/Scene/Scene.js.map +1 -1
  47. package/lib/Sound/RpgSound.d.ts +4 -0
  48. package/lib/Sound/RpgSound.js +25 -2
  49. package/lib/Sound/RpgSound.js.map +1 -1
  50. package/lib/Sound/Sounds.js +1 -1
  51. package/lib/Sound/Sounds.js.map +1 -1
  52. package/lib/Sprite/Character.d.ts +5 -74
  53. package/lib/Sprite/Character.js +22 -137
  54. package/lib/Sprite/Character.js.map +1 -1
  55. package/lib/Sprite/Spritesheets.js +1 -1
  56. package/lib/Sprite/Spritesheets.js.map +1 -1
  57. package/lib/Tilemap/CommonLayer.d.ts +8 -0
  58. package/lib/Tilemap/CommonLayer.js +20 -0
  59. package/lib/Tilemap/CommonLayer.js.map +1 -0
  60. package/lib/Tilemap/ImageLayer.d.ts +3 -2
  61. package/lib/Tilemap/ImageLayer.js +11 -7
  62. package/lib/Tilemap/ImageLayer.js.map +1 -1
  63. package/lib/Tilemap/Tile.d.ts +6 -7
  64. package/lib/Tilemap/Tile.js +29 -32
  65. package/lib/Tilemap/Tile.js.map +1 -1
  66. package/lib/Tilemap/TileLayer.d.ts +9 -5
  67. package/lib/Tilemap/TileLayer.js +29 -31
  68. package/lib/Tilemap/TileLayer.js.map +1 -1
  69. package/lib/Tilemap/TileSet.d.ts +4 -15
  70. package/lib/Tilemap/TileSet.js +11 -18
  71. package/lib/Tilemap/TileSet.js.map +1 -1
  72. package/lib/Tilemap/index.d.ts +16 -9
  73. package/lib/Tilemap/index.js +49 -29
  74. package/lib/Tilemap/index.js.map +1 -1
  75. package/lib/clientEntryPoint.d.ts +1 -0
  76. package/lib/clientEntryPoint.js +1 -1
  77. package/lib/clientEntryPoint.js.map +1 -1
  78. package/lib/index.d.ts +2 -2
  79. package/lib/index.js +9 -4
  80. package/lib/index.js.map +1 -1
  81. package/package.json +7 -6
package/lib/Scene/Map.js CHANGED
@@ -10,7 +10,7 @@ const pixi_viewport_1 = require("pixi-viewport");
10
10
  const Scene_1 = require("./Scene");
11
11
  const Spritesheets_1 = require("../Sprite/Spritesheets");
12
12
  const RpgSound_1 = require("../Sound/RpgSound");
13
- const Player_1 = require("../Sprite/Player");
13
+ const Component_1 = require("../Components/Component");
14
14
  class SceneMap extends Scene_1.Scene {
15
15
  constructor(game, options = {}) {
16
16
  super(game);
@@ -19,6 +19,8 @@ class SceneMap extends Scene_1.Scene {
19
19
  this.players = {};
20
20
  this.isLoaded = false;
21
21
  this.shapes = {};
22
+ if (options.drawMap === undefined)
23
+ this.options.drawMap = true;
22
24
  this.onInit();
23
25
  }
24
26
  constructMethods() {
@@ -27,8 +29,6 @@ class SceneMap extends Scene_1.Scene {
27
29
  'getTileByIndex',
28
30
  'getTileOriginPosition',
29
31
  'getTileByPosition',
30
- 'getShapes',
31
- 'getShape',
32
32
  'getLayerByName'
33
33
  ].forEach(method => this[method] = this.gameMap[method].bind(this.gameMap));
34
34
  [
@@ -42,57 +42,81 @@ class SceneMap extends Scene_1.Scene {
42
42
  ].forEach(prop => this[prop] = this.gameMap[prop]);
43
43
  }
44
44
  /** @internal */
45
- load(obj) {
45
+ load(obj, prevObj) {
46
+ let { sounds } = obj;
47
+ const { clientEngine } = this.game;
48
+ if (sounds) {
49
+ if (!common_1.Utils.isArray(sounds))
50
+ sounds = obj.sounds = [sounds];
51
+ }
46
52
  this.gameMap = new common_1.RpgCommonMap();
47
53
  this.gameMap.load(obj);
48
54
  this.constructMethods();
49
55
  common_1.RpgCommonMap.bufferClient.set(obj.id, this.gameMap);
50
- this.tilemap = new Tilemap_1.default(obj, this.game.renderer);
51
- const loader = PIXI.Loader.shared;
56
+ this.tilemap = new Tilemap_1.default(this.gameMap.getData(), this.game.renderer);
57
+ const loader = new PIXI.Loader();
52
58
  let nbLoad = 0;
53
59
  this.objects.forEach((object) => {
54
- object.logic.updateInVirtualGrid();
60
+ if (common_1.Utils.isInstanceOf(object.logic, common_1.RpgCommonPlayer) && object.logic) {
61
+ object.logic.updateInVirtualGrid();
62
+ }
55
63
  });
56
64
  loader.reset();
57
- for (let tileset of this.tilemap.tileSets) {
58
- if (tileset.spritesheet.resource)
65
+ for (let tileset of this.tilemap.tilesets) {
66
+ let spritesheet = Spritesheets_1.spritesheets.get(tileset.name);
67
+ if (!spritesheet) {
68
+ clientEngine.addSpriteSheet(tileset.image.source, tileset.name);
69
+ spritesheet = Spritesheets_1.spritesheets.get(tileset.name);
70
+ }
71
+ if (spritesheet === null || spritesheet === void 0 ? void 0 : spritesheet.resource) {
59
72
  continue;
60
- loader.add(tileset.name, tileset.spritesheet.image);
73
+ }
74
+ loader.add(tileset.name, spritesheet.image);
61
75
  nbLoad++;
62
76
  }
63
- loader.load((loader, resources) => {
64
- for (let tileset of this.tilemap.tileSets) {
65
- const spritesheet = Spritesheets_1.spritesheets.get(tileset.name);
66
- if (resources[tileset.name])
67
- spritesheet.resource = resources[tileset.name];
68
- }
69
- });
70
- RpgSound_1.RpgSound.global.stop();
77
+ if (nbLoad > 0) {
78
+ loader.load((loader, resources) => {
79
+ for (let tileset of this.tilemap.tilesets) {
80
+ const spritesheet = Spritesheets_1.spritesheets.get(tileset.name);
81
+ if (resources[tileset.name])
82
+ spritesheet.resource = resources[tileset.name];
83
+ }
84
+ });
85
+ }
71
86
  common_1.RpgPlugin.emit(common_1.HookClient.SceneMapLoading, loader);
72
87
  return new Promise((resolve, reject) => {
73
88
  const complete = () => {
74
- this.tilemap.load();
89
+ let { sounds } = obj;
90
+ this.tilemap.load({
91
+ drawTiles: this.options.drawMap
92
+ });
75
93
  this.viewport = new pixi_viewport_1.Viewport({
76
94
  screenWidth: this.options.screenWidth,
77
95
  screenHeight: this.options.screenHeight,
78
- worldWidth: obj.width * obj.tileWidth,
79
- worldHeight: obj.height * obj.tileHeight
96
+ worldWidth: obj.width * obj.tilewidth,
97
+ worldHeight: obj.height * obj.tileheight
80
98
  });
81
99
  this.tilemap.addChild(this.animationLayer);
82
100
  this.viewport.clamp({ direction: 'all' });
83
101
  this.viewport.addChild(this.tilemap);
84
102
  this.isLoaded = true;
85
- if (obj.sounds) {
86
- obj.sounds.forEach(soundId => RpgSound_1.RpgSound.get(soundId).play());
103
+ if (prevObj.sounds && prevObj.sounds instanceof Array) {
104
+ prevObj.sounds.forEach(soundId => {
105
+ const continueSound = (obj.sounds || []).find(id => id == soundId);
106
+ if (!continueSound)
107
+ RpgSound_1.RpgSound.stop(soundId);
108
+ });
87
109
  }
110
+ if (sounds)
111
+ sounds.forEach(soundId => RpgSound_1.RpgSound.play(soundId));
88
112
  resolve(this.viewport);
89
113
  if (this.onLoad)
90
114
  this.onLoad();
91
115
  };
92
- loader.onError.add(() => {
116
+ loader.onError.once(() => {
93
117
  reject();
94
118
  });
95
- loader.onComplete.add(complete);
119
+ loader.onComplete.once(complete);
96
120
  if (nbLoad == 0) {
97
121
  complete();
98
122
  }
@@ -100,9 +124,10 @@ class SceneMap extends Scene_1.Scene {
100
124
  }
101
125
  /** @internal */
102
126
  changeTile(x, y, layers) {
127
+ var _a;
103
128
  for (let layerName in layers) {
104
129
  const layerInfo = layers[layerName];
105
- this.gameMap.setTile(x, y, layerName, layerInfo);
130
+ (_a = this.gameMap) === null || _a === void 0 ? void 0 : _a.setTile(x, y, layerName, layerInfo);
106
131
  this.tilemap.changeTile(x, y, layerName);
107
132
  }
108
133
  }
@@ -116,6 +141,8 @@ class SceneMap extends Scene_1.Scene {
116
141
  }
117
142
  onUpdateObject(logic, sprite, moving) {
118
143
  const { paramsChanged } = logic;
144
+ if (!this.gameMap)
145
+ return sprite;
119
146
  if (moving || (paramsChanged && (paramsChanged.width || paramsChanged.height))) {
120
147
  const { tileWidth, tileHeight } = this.gameMap;
121
148
  const { tilesOverlay } = sprite;
@@ -144,63 +171,24 @@ class SceneMap extends Scene_1.Scene {
144
171
  this.players[id].y = y;
145
172
  }
146
173
  /** @internal */
147
- updateScene(obj) {
148
- const shapes = obj.partial.shapes;
149
- const fullShapesObj = obj.data.shapes;
150
- const createShapeContainer = (instanceShape, shape) => {
151
- instanceShape.clientContainer = new PIXI.Container();
152
- if (shape.properties.color) {
153
- const graphics = new PIXI.Graphics();
154
- graphics.beginFill(shape.properties.color);
155
- graphics.drawRect(0, 0, shape.width, shape.height);
156
- graphics.endFill();
157
- instanceShape.clientContainer.addChild(graphics);
158
- }
159
- instanceShape.clientContainer.x = shape.x;
160
- instanceShape.clientContainer.y = shape.y;
161
- this.tilemap.shapeLayer.addChild(instanceShape.clientContainer);
162
- this.shapes[shape.name] = instanceShape.clientContainer;
163
- };
164
- if (shapes) {
165
- for (let i in shapes) {
166
- let shape = fullShapesObj[i];
167
- const { name } = shape;
168
- const shapeMap = this.gameMap.getShape(name);
169
- if (shape == null) {
170
- this.gameMap.removeShape(name);
171
- continue;
172
- }
173
- shape = Object.assign(Object.assign({}, shape), { x: shape.hitbox.pos.x, y: shape.hitbox.pos.y, width: shape.hitbox.w, height: shape.hitbox.h, properties: shape.properties });
174
- if (shapeMap) {
175
- if (!shapeMap.clientContainer) {
176
- createShapeContainer(shapeMap, shape);
177
- }
178
- shapeMap.set(shape);
179
- }
180
- if (!this.shapes[name]) {
181
- const instanceShape = this.gameMap.createShape(shape);
182
- createShapeContainer(instanceShape, shape);
183
- }
184
- }
185
- }
186
- }
174
+ updateScene(obj) { }
187
175
  addObject(obj, id) {
188
176
  var _a, _b;
189
177
  const wrapper = new PIXI.Container();
190
178
  const inner = new PIXI.Container();
191
179
  const tilesOverlay = new PIXI.Container();
192
- const sprite = new Player_1.RpgSprite(obj, this);
193
- sprite.tilesOverlay = tilesOverlay;
194
- inner.addChild(sprite);
180
+ const component = new Component_1.RpgComponent(obj, this);
181
+ component.tilesOverlay = tilesOverlay;
182
+ inner.addChild(component);
195
183
  wrapper.addChild(inner, tilesOverlay);
196
- this.objects.set(id, sprite);
197
- (_a = this.tilemap.getEventLayer()) === null || _a === void 0 ? void 0 : _a.addChild(wrapper);
198
- if (sprite.isCurrentPlayer)
199
- (_b = this.viewport) === null || _b === void 0 ? void 0 : _b.follow(sprite);
200
- sprite.onInit();
201
- common_1.RpgPlugin.emit(common_1.HookClient.SceneAddSprite, [this, sprite], true);
202
- common_1.RpgPlugin.emit(common_1.HookClient.AddSprite, sprite);
203
- return sprite;
184
+ this.objects.set(id, component);
185
+ (_a = this.tilemap.getEventLayer(obj.id)) === null || _a === void 0 ? void 0 : _a.addChild(wrapper);
186
+ if (component.isCurrentPlayer)
187
+ (_b = this.viewport) === null || _b === void 0 ? void 0 : _b.follow(component);
188
+ component.onInit();
189
+ common_1.RpgPlugin.emit(common_1.HookClient.SceneAddSprite, [this, component], true);
190
+ common_1.RpgPlugin.emit(common_1.HookClient.AddSprite, component);
191
+ return component;
204
192
  }
205
193
  removeObject(id) {
206
194
  let sprite = this.objects.get(id);
@@ -211,6 +199,14 @@ class SceneMap extends Scene_1.Scene {
211
199
  sprite.destroy();
212
200
  }
213
201
  }
202
+ getShape(name) {
203
+ var _a;
204
+ return (_a = this.game.getShape(name)) === null || _a === void 0 ? void 0 : _a.object;
205
+ }
206
+ getShapes() {
207
+ const shapes = Object.values(this.game.getShapes());
208
+ return shapes.map(shape => shape.object);
209
+ }
214
210
  /**
215
211
  * Listen to the events of the smile on the stage
216
212
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Map.js","sourceRoot":"","sources":["../../src/Scene/Map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Map.js","sourceRoot":"","sources":["../../src/Scene/Map.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@ import { Controls } from '../KeyboardControls';
2
2
  import RpgSprite from '../Sprite/Character';
3
3
  import { Animation } from '../Effects/Animation';
4
4
  import { Observable } from 'rxjs';
5
+ import { GameEngineClient } from '../GameEngine';
6
+ import { RpgComponent } from '../Components/Component';
5
7
  export declare type SceneObservableData = {
6
8
  data: {
7
9
  [key: string]: any;
@@ -17,14 +19,14 @@ export interface SceneSpriteLogic {
17
19
  prevParamsChanged: object;
18
20
  }
19
21
  export declare abstract class Scene {
20
- protected game: any;
22
+ game: GameEngineClient;
21
23
  protected objects: Map<string, any>;
22
24
  protected loader: PIXI.Loader;
23
25
  protected animationLayer: PIXI.Container;
24
26
  private controls;
25
27
  private animations;
26
28
  private _data;
27
- constructor(game: any);
29
+ constructor(game: GameEngineClient);
28
30
  /**
29
31
  * Listen to all the synchronized values of the scene with the server
30
32
  *
@@ -57,7 +59,7 @@ export declare abstract class Scene {
57
59
  */
58
60
  get valuesChange(): Observable<SceneObservableData>;
59
61
  private triggerSpriteChanges;
60
- abstract onUpdateObject(logic: SceneSpriteLogic, sprite: RpgSprite, moving: boolean): void;
62
+ abstract onUpdateObject(logic: SceneSpriteLogic, sprite: RpgComponent, moving: boolean): void;
61
63
  abstract addObject(obj: any, id: string): any;
62
64
  abstract removeObject(id: string): any;
63
65
  /**
@@ -113,12 +115,12 @@ export declare abstract class Scene {
113
115
  showAnimation({ graphic, animationName, attachTo, x, y, loop, replaceGraphic }: {
114
116
  graphic: string;
115
117
  animationName: string;
116
- attachTo?: RpgSprite;
118
+ attachTo?: RpgComponent;
117
119
  x?: number;
118
120
  y?: number;
119
121
  loop?: boolean;
120
122
  replaceGraphic?: boolean;
121
- }): Animation;
123
+ }): Animation | undefined;
122
124
  /**
123
125
  * Retrieve a sprite according to its identifier
124
126
  *
@@ -128,8 +130,8 @@ export declare abstract class Scene {
128
130
  * @returns {RpgSprite | undefined}
129
131
  * @memberof RpgScene
130
132
  */
131
- getSprite(id: string): RpgSprite | undefined;
132
- getPlayer(id: string): RpgSprite | undefined;
133
+ getSprite(id: string): RpgComponent<any> | undefined;
134
+ getPlayer(id: string): RpgComponent | undefined;
133
135
  /**
134
136
  * Retrieve a sprite that the player controls
135
137
  *
@@ -65,17 +65,22 @@ class Scene {
65
65
  }
66
66
  /** @internal */
67
67
  update(obj) {
68
+ if (!obj) {
69
+ this.updateScene(this._data.value);
70
+ return;
71
+ }
68
72
  this.updateScene(obj);
69
73
  common_1.RpgPlugin.emit(common_1.HookClient.SceneOnChanges, [this, obj], true);
70
74
  this._data.next(obj);
71
75
  }
72
76
  /** @internal */
73
77
  draw(t, dt, frame) {
74
- const logicObjects = Object.assign(Object.assign({}, this.game.world.getObjects()), this.game.events);
78
+ const logicObjects = Object.assign(Object.assign(Object.assign({}, this.game.world.getObjects()), this.game.events), this.game.getShapes());
75
79
  const renderObjects = this.objects;
76
80
  const sizeLogic = Object.values(logicObjects).length;
77
81
  for (let key in logicObjects) {
78
82
  const val = logicObjects[key].object;
83
+ const valueChanged = logicObjects[key].paramsChanged;
79
84
  if (!renderObjects.has(key)) {
80
85
  const sprite = this.addObject(val, key);
81
86
  this.triggerSpriteChanges(val, sprite, true);
@@ -84,7 +89,7 @@ class Scene {
84
89
  const object = renderObjects.get(key);
85
90
  if (!object.update)
86
91
  return;
87
- const ret = object.update(val, t);
92
+ const ret = object.update(val, valueChanged, t);
88
93
  this.triggerSpriteChanges(val, object, ret.moving);
89
94
  }
90
95
  }
@@ -154,7 +159,8 @@ class Scene {
154
159
  */
155
160
  showAnimation({ graphic, animationName, attachTo, x = 0, y = 0, loop = false, replaceGraphic = false }) {
156
161
  if (replaceGraphic && attachTo) {
157
- return attachTo.showAnimation(graphic, animationName);
162
+ attachTo.showAnimation(graphic, animationName);
163
+ return;
158
164
  }
159
165
  const animation = new Animation_1.Animation(graphic);
160
166
  this.animationLayer.addChild(animation);
@@ -1 +1 @@
1
- {"version":3,"file":"Scene.js","sourceRoot":"","sources":["../../src/Scene/Scene.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Scene.js","sourceRoot":"","sources":["../../src/Scene/Scene.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,10 @@
1
1
  import { Howl, Howler } from 'howler';
2
2
  declare class RpgSoundClass {
3
+ private sounds;
3
4
  get(id: string): Howl;
5
+ stop(id: string): void;
6
+ play(id: string): boolean;
7
+ clear(): void;
4
8
  get global(): typeof Howler;
5
9
  }
6
10
  export declare const RpgSound: RpgSoundClass;
@@ -5,18 +5,41 @@ const howler_1 = require("howler");
5
5
  const Logger_1 = require("../Logger");
6
6
  const Sounds_1 = require("./Sounds");
7
7
  class RpgSoundClass {
8
+ constructor() {
9
+ this.sounds = new Map();
10
+ }
8
11
  get(id) {
12
+ if (this.sounds.has(id)) {
13
+ return this.sounds.get(id);
14
+ }
9
15
  const resource = Sounds_1.sounds.get(id);
10
16
  if (!resource) {
11
- throw Logger_1.log(`Impossible to find the ${id} sound. Did you put the right name or create the sound?`);
17
+ throw (0, Logger_1.log)(`Impossible to find the ${id} sound. Did you put the right name or create the sound?`);
12
18
  }
13
- return new howler_1.Howl({
19
+ const howl = new howler_1.Howl({
14
20
  src: [resource.sound],
15
21
  loop: resource.loop,
16
22
  autoplay: resource.autoplay,
17
23
  volume: resource.volume,
18
24
  sprite: resource.sprite
19
25
  });
26
+ this.sounds.set(id, howl);
27
+ return howl;
28
+ }
29
+ stop(id) {
30
+ this.get(id).stop();
31
+ }
32
+ play(id) {
33
+ const sound = this.get(id);
34
+ if (!sound.playing()) {
35
+ sound.play();
36
+ return true;
37
+ }
38
+ return false;
39
+ }
40
+ clear() {
41
+ this.sounds.clear();
42
+ this.global.stop();
20
43
  }
21
44
  get global() {
22
45
  return howler_1.Howler;
@@ -1 +1 @@
1
- {"version":3,"file":"RpgSound.js","sourceRoot":"","sources":["../../src/Sound/RpgSound.ts"],"names":[],"mappings":";;;AAAA,mCAAqC;AACrC,sCAA+B;AAC/B,qCAAiC;AAEjC,MAAM,aAAa;IACf,GAAG,CAAC,EAAU;QACV,MAAM,QAAQ,GAAG,eAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC/B,IAAI,CAAC,QAAQ,EAAE;YACX,MAAM,YAAG,CAAC,0BAA0B,EAAE,yDAAyD,CAAC,CAAA;SACnG;QACD,OAAO,IAAI,aAAI,CAAC;YACZ,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;SAC1B,CAAC,CAAA;IACN,CAAC;IACD,IAAI,MAAM;QACN,OAAO,eAAM,CAAA;IACjB,CAAC;CACJ;AAEY,QAAA,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAA"}
1
+ {"version":3,"file":"RpgSound.js","sourceRoot":"","sources":["../../src/Sound/RpgSound.ts"],"names":[],"mappings":";;;AAAA,mCAAqC;AACrC,sCAA+B;AAC/B,qCAAiC;AAEjC,MAAM,aAAa;IAAnB;QACY,WAAM,GAAsB,IAAI,GAAG,EAAE,CAAA;IA0CjD,CAAC;IAxCG,GAAG,CAAC,EAAU;QACV,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YACrB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAS,CAAA;SACrC;QACD,MAAM,QAAQ,GAAG,eAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC/B,IAAI,CAAC,QAAQ,EAAE;YACX,MAAM,IAAA,YAAG,EAAC,0BAA0B,EAAE,yDAAyD,CAAC,CAAA;SACnG;QACD,MAAM,IAAI,GAAG,IAAI,aAAI,CAAC;YAClB,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;SAC1B,CAAC,CAAA;QACF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;QACzB,OAAO,IAAI,CAAA;IACf,CAAC;IAED,IAAI,CAAC,EAAU;QACX,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IACvB,CAAC;IAED,IAAI,CAAC,EAAU;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE;YAClB,KAAK,CAAC,IAAI,EAAE,CAAA;YACZ,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,KAAK;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;QACnB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IACtB,CAAC;IAED,IAAI,MAAM;QACN,OAAO,eAAM,CAAA;IACjB,CAAC;CACJ;AAEY,QAAA,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAA"}
@@ -4,7 +4,7 @@ exports._initSound = exports.sounds = void 0;
4
4
  const Resources_1 = require("../Resources");
5
5
  exports.sounds = new Map();
6
6
  function _initSound(_sounds, engine) {
7
- return Resources_1._initResource(exports.sounds, _sounds, 'sound', engine);
7
+ return (0, Resources_1._initResource)(exports.sounds, _sounds, 'sound', engine);
8
8
  }
9
9
  exports._initSound = _initSound;
10
10
  //# sourceMappingURL=Sounds.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Sounds.js","sourceRoot":"","sources":["../../src/Sound/Sounds.ts"],"names":[],"mappings":";;;AAAA,4CAA4C;AAE/B,QAAA,MAAM,GAAG,IAAI,GAAG,EAAE,CAAA;AAE/B,SAAgB,UAAU,CAAC,OAAO,EAAE,MAAM;IACtC,OAAO,yBAAa,CAAC,cAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;AAC1D,CAAC;AAFD,gCAEC"}
1
+ {"version":3,"file":"Sounds.js","sourceRoot":"","sources":["../../src/Sound/Sounds.ts"],"names":[],"mappings":";;;AAAA,4CAA4C;AAE/B,QAAA,MAAM,GAAG,IAAI,GAAG,EAAE,CAAA;AAE/B,SAAgB,UAAU,CAAC,OAAO,EAAE,MAAM;IACtC,OAAO,IAAA,yBAAa,EAAC,cAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;AAC1D,CAAC;AAFD,gCAEC"}
@@ -1,83 +1,14 @@
1
- import { Direction, RpgCommonPlayer } from '@rpgjs/common';
2
1
  import { Animation } from '../Effects/Animation';
2
+ import { RpgComponent } from '../Components/Component';
3
3
  export default class Character extends PIXI.Sprite {
4
- private data;
5
- protected scene: any;
6
- protected direction: number;
4
+ private component;
7
5
  private graphic;
6
+ static readonly id: string;
8
7
  private spritesheet;
9
- private _x;
10
- private _y;
11
- z: number;
12
- private fixed;
13
8
  private playStandardAnimation;
14
9
  animation: Animation;
15
10
  private objSaved;
16
- private teleported;
17
- private map;
18
- /**
19
- * the direction of the sprite
20
- *
21
- * @prop {Direction} dir
22
- * @readonly
23
- * @memberof RpgSprite
24
- * */
25
- get dir(): Direction;
26
- /**
27
- * To know if the sprite is a player
28
- *
29
- * @prop {boolean} isPlayer
30
- * @readonly
31
- * @memberof RpgSprite
32
- * */
33
- get isPlayer(): boolean;
34
- /**
35
- * To know if the sprite is an event
36
- *
37
- * @prop {boolean} isEvent
38
- * @readonly
39
- * @memberof RpgSprite
40
- * */
41
- get isEvent(): boolean;
42
- /**
43
- * To know if the sprite is the sprite controlled by the player
44
- *
45
- * @prop {boolean} isCurrentPlayer
46
- * @readonly
47
- * @memberof RpgSprite
48
- * */
49
- get isCurrentPlayer(): boolean;
50
- /**
51
- * Retrieves the logic of the sprite
52
- *
53
- * @prop {RpgSpriteLogic} logic
54
- * @readonly
55
- * @since 3.0.0-beta.4
56
- * @memberof RpgSprite
57
- * */
58
- get logic(): RpgCommonPlayer;
59
- get guiDisplay(): boolean;
60
- set guiDisplay(val: boolean);
61
- constructor(data: any, scene: any);
62
- /**
63
- * Recover the position according to the graphic
64
- * Normally, the position is that of the hitbox but, we retrieve the top left corner of the graphic
65
- *
66
- * You can also pass the `middle` value as first parameter to retrieve the positions from the middle of the sprite
67
- *
68
- * @title Get Positions of Graphic
69
- * @method sprite.getPositionsOfGraphic(align)
70
- * @param {string} [align] middle
71
- * @returns { x: number, y: number }
72
- * @memberof RpgSprite
73
- */
74
- getPositionsOfGraphic(align?: string): {
75
- x: number;
76
- y: number;
77
- };
11
+ private data;
12
+ constructor(component: RpgComponent, graphic: string);
78
13
  private setAnimationAnchor;
79
- onInit(): void;
80
- onUpdate(obj: any): void;
81
- onMove(): void;
82
- onChanges(data: any, old: any): void;
83
14
  }