@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.
- package/lib/Components/ColorComponent.d.ts +8 -0
- package/lib/Components/ColorComponent.js +20 -0
- package/lib/Components/ColorComponent.js.map +1 -0
- package/lib/Components/Component.d.ts +101 -0
- package/lib/Components/Component.js +228 -0
- package/lib/Components/Component.js.map +1 -0
- package/lib/Components/ImageComponent.d.ts +8 -0
- package/lib/Components/ImageComponent.js +18 -0
- package/lib/Components/ImageComponent.js.map +1 -0
- package/lib/Components/TextComponent.d.ts +5 -0
- package/lib/Components/TextComponent.js +12 -0
- package/lib/Components/TextComponent.js.map +1 -0
- package/lib/Components/TileComponent.d.ts +8 -0
- package/lib/Components/TileComponent.js +32 -0
- package/lib/Components/TileComponent.js.map +1 -0
- package/lib/Effects/Animation.d.ts +2 -2
- package/lib/Effects/Animation.js +9 -6
- package/lib/Effects/Animation.js.map +1 -1
- package/lib/Effects/Spinner.d.ts +6 -0
- package/lib/Effects/Spinner.js +21 -0
- package/lib/Effects/Spinner.js.map +1 -0
- package/lib/Effects/TransitionScene.d.ts +16 -0
- package/lib/Effects/TransitionScene.js +50 -0
- package/lib/Effects/TransitionScene.js.map +1 -1
- package/lib/GameEngine.d.ts +23 -1
- package/lib/GameEngine.js +98 -31
- package/lib/GameEngine.js.map +1 -1
- package/lib/KeyboardControls.js +5 -6
- package/lib/KeyboardControls.js.map +1 -1
- package/lib/Renderer.d.ts +11 -0
- package/lib/Renderer.js +99 -19
- package/lib/Renderer.js.map +1 -1
- package/lib/Resources.js +2 -2
- package/lib/Resources.js.map +1 -1
- package/lib/RpgClient.d.ts +9 -9
- package/lib/RpgClientEngine.d.ts +12 -3
- package/lib/RpgClientEngine.js +135 -24
- package/lib/RpgClientEngine.js.map +1 -1
- package/lib/RpgGui.js +3 -3
- package/lib/RpgGui.js.map +1 -1
- package/lib/Scene/Map.d.ts +8 -6
- package/lib/Scene/Map.js +73 -77
- package/lib/Scene/Map.js.map +1 -1
- package/lib/Scene/Scene.d.ts +9 -7
- package/lib/Scene/Scene.js +9 -3
- package/lib/Scene/Scene.js.map +1 -1
- package/lib/Sound/RpgSound.d.ts +4 -0
- package/lib/Sound/RpgSound.js +25 -2
- package/lib/Sound/RpgSound.js.map +1 -1
- package/lib/Sound/Sounds.js +1 -1
- package/lib/Sound/Sounds.js.map +1 -1
- package/lib/Sprite/Character.d.ts +5 -74
- package/lib/Sprite/Character.js +22 -137
- package/lib/Sprite/Character.js.map +1 -1
- package/lib/Sprite/Spritesheets.js +1 -1
- package/lib/Sprite/Spritesheets.js.map +1 -1
- package/lib/Tilemap/CommonLayer.d.ts +8 -0
- package/lib/Tilemap/CommonLayer.js +20 -0
- package/lib/Tilemap/CommonLayer.js.map +1 -0
- package/lib/Tilemap/ImageLayer.d.ts +3 -2
- package/lib/Tilemap/ImageLayer.js +11 -7
- package/lib/Tilemap/ImageLayer.js.map +1 -1
- package/lib/Tilemap/Tile.d.ts +6 -7
- package/lib/Tilemap/Tile.js +29 -32
- package/lib/Tilemap/Tile.js.map +1 -1
- package/lib/Tilemap/TileLayer.d.ts +9 -5
- package/lib/Tilemap/TileLayer.js +29 -31
- package/lib/Tilemap/TileLayer.js.map +1 -1
- package/lib/Tilemap/TileSet.d.ts +4 -15
- package/lib/Tilemap/TileSet.js +11 -18
- package/lib/Tilemap/TileSet.js.map +1 -1
- package/lib/Tilemap/index.d.ts +16 -9
- package/lib/Tilemap/index.js +49 -29
- package/lib/Tilemap/index.js.map +1 -1
- package/lib/clientEntryPoint.d.ts +1 -0
- package/lib/clientEntryPoint.js +1 -1
- package/lib/clientEntryPoint.js.map +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.js +9 -4
- package/lib/index.js.map +1 -1
- 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
|
|
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(
|
|
51
|
-
const loader = PIXI.Loader
|
|
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.
|
|
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.
|
|
58
|
-
|
|
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
|
-
|
|
73
|
+
}
|
|
74
|
+
loader.add(tileset.name, spritesheet.image);
|
|
61
75
|
nbLoad++;
|
|
62
76
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
-
|
|
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.
|
|
79
|
-
worldHeight: obj.height * obj.
|
|
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 (
|
|
86
|
-
|
|
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.
|
|
116
|
+
loader.onError.once(() => {
|
|
93
117
|
reject();
|
|
94
118
|
});
|
|
95
|
-
loader.onComplete.
|
|
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
|
|
193
|
-
|
|
194
|
-
inner.addChild(
|
|
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,
|
|
197
|
-
(_a = this.tilemap.getEventLayer()) === null || _a === void 0 ? void 0 : _a.addChild(wrapper);
|
|
198
|
-
if (
|
|
199
|
-
(_b = this.viewport) === null || _b === void 0 ? void 0 : _b.follow(
|
|
200
|
-
|
|
201
|
-
common_1.RpgPlugin.emit(common_1.HookClient.SceneAddSprite, [this,
|
|
202
|
-
common_1.RpgPlugin.emit(common_1.HookClient.AddSprite,
|
|
203
|
-
return
|
|
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
|
*
|
package/lib/Scene/Map.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Map.js","sourceRoot":"","sources":["../../src/Scene/Map.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"Map.js","sourceRoot":"","sources":["../../src/Scene/Map.ts"],"names":[],"mappings":"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"}
|
package/lib/Scene/Scene.d.ts
CHANGED
|
@@ -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
|
-
|
|
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:
|
|
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:
|
|
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?:
|
|
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):
|
|
132
|
-
getPlayer(id: string):
|
|
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
|
*
|
package/lib/Scene/Scene.js
CHANGED
|
@@ -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
|
-
|
|
162
|
+
attachTo.showAnimation(graphic, animationName);
|
|
163
|
+
return;
|
|
158
164
|
}
|
|
159
165
|
const animation = new Animation_1.Animation(graphic);
|
|
160
166
|
this.animationLayer.addChild(animation);
|
package/lib/Scene/Scene.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scene.js","sourceRoot":"","sources":["../../src/Scene/Scene.ts"],"names":[],"mappings":";;;AAAA,0CAAqD;AAGrD,oDAAgD;AAChD,+BAAkD;AAClD,sCAAkC;
|
|
1
|
+
{"version":3,"file":"Scene.js","sourceRoot":"","sources":["../../src/Scene/Scene.ts"],"names":[],"mappings":"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"}
|
package/lib/Sound/RpgSound.d.ts
CHANGED
|
@@ -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;
|
package/lib/Sound/RpgSound.js
CHANGED
|
@@ -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
|
-
|
|
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;
|
|
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"}
|
package/lib/Sound/Sounds.js
CHANGED
|
@@ -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
|
package/lib/Sound/Sounds.js.map
CHANGED
|
@@ -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,
|
|
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
|
|
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
|
|
17
|
-
|
|
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
|
}
|