react-simple-game-engine 0.1.65 → 0.1.68
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/classes/scene.d.ts +3 -3
- package/lib/classes/scene.d.ts.map +1 -1
- package/lib/classes/scene.js +52 -46
- package/lib/decorators/sound-from.decor.d.ts.map +1 -1
- package/lib/decorators/sound-from.decor.js +4 -1
- package/lib/decorators/sprite-from.decor.d.ts.map +1 -1
- package/lib/decorators/sprite-from.decor.js +4 -1
- package/lib/utils.d.ts +4 -0
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +43 -0
- package/package.json +1 -1
package/lib/classes/scene.d.ts
CHANGED
@@ -6,14 +6,12 @@ import { SceneManagement } from "./scene-management";
|
|
6
6
|
import { EntitySult } from "./entities/entity-sult";
|
7
7
|
import { Prefab } from "./prefab";
|
8
8
|
import { Sound } from "./sound";
|
9
|
-
import { Avatar, GetSoundOptions,
|
9
|
+
import { Avatar, GetSoundOptions, SoundManagement } from "../export-types";
|
10
10
|
import { SoundType } from "../export-enums";
|
11
11
|
declare type SoundOptionsChangeListener<O extends SoundType> = (options: SoundManagement[O]) => void;
|
12
12
|
declare type LoadAssetsListener = (loadedAssets: boolean) => void;
|
13
13
|
declare type EntityPropsChangeListener<V = any> = (value: V) => void;
|
14
14
|
export declare abstract class Scene<UIP = any> {
|
15
|
-
static soundsDecor: SoundDecor[];
|
16
|
-
static spritesDecor: SpriteDecor[];
|
17
15
|
private ui;
|
18
16
|
private worldManagement;
|
19
17
|
private _loadedAssets;
|
@@ -22,6 +20,8 @@ export declare abstract class Scene<UIP = any> {
|
|
22
20
|
private readonly soundBackgroundOptionsChangeListeners;
|
23
21
|
private readonly soundOnceOptionsChangeListeners;
|
24
22
|
private readonly prefabs;
|
23
|
+
private readonly soundsDecor;
|
24
|
+
private readonly spritesDecor;
|
25
25
|
readonly sounds: Sound[];
|
26
26
|
readonly sprites: Avatar[];
|
27
27
|
assetsDelay: number;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../src/classes/scene.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;
|
1
|
+
{"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../src/classes/scene.ts"],"names":[],"mappings":"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"}
|
package/lib/classes/scene.js
CHANGED
@@ -35,7 +35,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
35
35
|
}
|
36
36
|
};
|
37
37
|
import { WorldManagement } from "./world-management";
|
38
|
-
import { copyProperties, createAssetImage, createAssetSound, tick, } from "../utils";
|
38
|
+
import { copyProperties, createAssetImage, createAssetSound, parallel, tick, } from "../utils";
|
39
39
|
import { Sound } from "./sound";
|
40
40
|
import { SoundType } from "../export-enums";
|
41
41
|
var Scene = /** @class */ (function () {
|
@@ -50,6 +50,8 @@ var Scene = /** @class */ (function () {
|
|
50
50
|
this.sessionId = "".concat(Math.random(), "-").concat(new Date().getTime());
|
51
51
|
this.tag = this.constructor.tag;
|
52
52
|
this.ui = this.constructor.ui;
|
53
|
+
this.soundsDecor = this.__proto__.soundsDecor || [];
|
54
|
+
this.spritesDecor = this.__proto__.spritesDecor || [];
|
53
55
|
this._loadedAssets = false;
|
54
56
|
this.onBorn();
|
55
57
|
}
|
@@ -176,7 +178,7 @@ var Scene = /** @class */ (function () {
|
|
176
178
|
var _this = this;
|
177
179
|
return __generator(this, function (_a) {
|
178
180
|
switch (_a.label) {
|
179
|
-
case 0: return [4 /*yield*/, Promise.all(
|
181
|
+
case 0: return [4 /*yield*/, Promise.all(this.spritesDecor.map(function (decor) { return __awaiter(_this, void 0, void 0, function () {
|
180
182
|
var sprite;
|
181
183
|
return __generator(this, function (_a) {
|
182
184
|
switch (_a.label) {
|
@@ -204,7 +206,7 @@ var Scene = /** @class */ (function () {
|
|
204
206
|
var _this = this;
|
205
207
|
return __generator(this, function (_a) {
|
206
208
|
switch (_a.label) {
|
207
|
-
case 0: return [4 /*yield*/, Promise.all(
|
209
|
+
case 0: return [4 /*yield*/, Promise.all(this.soundsDecor.map(function (decor) { return __awaiter(_this, void 0, void 0, function () {
|
208
210
|
var sound;
|
209
211
|
return __generator(this, function (_a) {
|
210
212
|
switch (_a.label) {
|
@@ -238,7 +240,7 @@ var Scene = /** @class */ (function () {
|
|
238
240
|
return __awaiter(this, void 0, void 0, function () {
|
239
241
|
var _this = this;
|
240
242
|
return __generator(this, function (_a) {
|
241
|
-
return [2 /*return*/,
|
243
|
+
return [2 /*return*/, parallel(srcables, function (srcable) { return __awaiter(_this, void 0, void 0, function () {
|
242
244
|
var src, sprite;
|
243
245
|
return __generator(this, function (_a) {
|
244
246
|
switch (_a.label) {
|
@@ -251,7 +253,7 @@ var Scene = /** @class */ (function () {
|
|
251
253
|
return [2 /*return*/, sprite];
|
252
254
|
}
|
253
255
|
});
|
254
|
-
}); })
|
256
|
+
}); }, 5)];
|
255
257
|
});
|
256
258
|
});
|
257
259
|
};
|
@@ -263,7 +265,7 @@ var Scene = /** @class */ (function () {
|
|
263
265
|
return __awaiter(this, void 0, void 0, function () {
|
264
266
|
var _this = this;
|
265
267
|
return __generator(this, function (_a) {
|
266
|
-
return [2 /*return*/,
|
268
|
+
return [2 /*return*/, parallel(srcables, function (srcable) { return __awaiter(_this, void 0, void 0, function () {
|
267
269
|
var _a, volumn, src, _b, type, sound;
|
268
270
|
return __generator(this, function (_c) {
|
269
271
|
switch (_c.label) {
|
@@ -281,7 +283,7 @@ var Scene = /** @class */ (function () {
|
|
281
283
|
return [2 /*return*/, sound];
|
282
284
|
}
|
283
285
|
});
|
284
|
-
}); })
|
286
|
+
}); }, 5)];
|
285
287
|
});
|
286
288
|
});
|
287
289
|
};
|
@@ -296,24 +298,27 @@ var Scene = /** @class */ (function () {
|
|
296
298
|
return __generator(this, function (_a) {
|
297
299
|
switch (_a.label) {
|
298
300
|
case 0:
|
299
|
-
spritesDecor =
|
300
|
-
return [4 /*yield*/,
|
301
|
-
var
|
302
|
-
return
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
301
|
+
spritesDecor = this.spritesDecor.filter(function (decor) { return !decor.src; });
|
302
|
+
return [4 /*yield*/, parallel(srcs, function (src, _a) {
|
303
|
+
var realIndex = _a.realIndex;
|
304
|
+
return __awaiter(_this, void 0, void 0, function () {
|
305
|
+
var decor, sprite;
|
306
|
+
return __generator(this, function (_b) {
|
307
|
+
switch (_b.label) {
|
308
|
+
case 0:
|
309
|
+
decor = spritesDecor[realIndex];
|
310
|
+
if (!decor) return [3 /*break*/, 2];
|
311
|
+
return [4 /*yield*/, createAssetImage(src)];
|
312
|
+
case 1:
|
313
|
+
sprite = _b.sent();
|
314
|
+
this[decor.propertyKey] = sprite;
|
315
|
+
this.sprites.push(sprite);
|
316
|
+
_b.label = 2;
|
317
|
+
case 2: return [2 /*return*/];
|
318
|
+
}
|
319
|
+
});
|
315
320
|
});
|
316
|
-
}
|
321
|
+
}, 5)];
|
317
322
|
case 1:
|
318
323
|
_a.sent();
|
319
324
|
return [2 /*return*/];
|
@@ -332,27 +337,30 @@ var Scene = /** @class */ (function () {
|
|
332
337
|
return __generator(this, function (_a) {
|
333
338
|
switch (_a.label) {
|
334
339
|
case 0:
|
335
|
-
soundsDecor =
|
336
|
-
return [4 /*yield*/,
|
337
|
-
var
|
338
|
-
return
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
sound
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
340
|
+
soundsDecor = this.soundsDecor.filter(function (decor) { return !decor.src; });
|
341
|
+
return [4 /*yield*/, parallel(srcs, function (src, _a) {
|
342
|
+
var realIndex = _a.realIndex;
|
343
|
+
return __awaiter(_this, void 0, void 0, function () {
|
344
|
+
var decor, sound;
|
345
|
+
return __generator(this, function (_b) {
|
346
|
+
switch (_b.label) {
|
347
|
+
case 0:
|
348
|
+
decor = soundsDecor[realIndex];
|
349
|
+
if (!decor) return [3 /*break*/, 2];
|
350
|
+
return [4 /*yield*/, createAssetSound(src, decor.type)];
|
351
|
+
case 1:
|
352
|
+
sound = _b.sent();
|
353
|
+
if (decor.volumn) {
|
354
|
+
sound.volumn = decor.volumn;
|
355
|
+
}
|
356
|
+
this[decor.propertyKey] = sound;
|
357
|
+
this.sounds.push(sound);
|
358
|
+
_b.label = 2;
|
359
|
+
case 2: return [2 /*return*/];
|
360
|
+
}
|
361
|
+
});
|
354
362
|
});
|
355
|
-
}
|
363
|
+
}, 5)];
|
356
364
|
case 1:
|
357
365
|
_a.sent();
|
358
366
|
return [2 /*return*/];
|
@@ -426,8 +434,6 @@ var Scene = /** @class */ (function () {
|
|
426
434
|
this.onDraw();
|
427
435
|
this.worldManagement.draw();
|
428
436
|
};
|
429
|
-
Scene.soundsDecor = [];
|
430
|
-
Scene.spritesDecor = [];
|
431
437
|
return Scene;
|
432
438
|
}());
|
433
439
|
export { Scene };
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"sound-from.decor.d.ts","sourceRoot":"","sources":["../../src/decorators/sound-from.decor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,wBAAgB,SAAS,CACvB,OAAO,CAAC,EAAE,MAAM,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EACpD,IAAI,GAAE,SAA0B,YAEP,GAAG,eAAe,MAAM,
|
1
|
+
{"version":3,"file":"sound-from.decor.d.ts","sourceRoot":"","sources":["../../src/decorators/sound-from.decor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,wBAAgB,SAAS,CACvB,OAAO,CAAC,EAAE,MAAM,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EACpD,IAAI,GAAE,SAA0B,YAEP,GAAG,eAAe,MAAM,UAiBlD"}
|
@@ -7,7 +7,10 @@ export function SoundFrom(srcable, type) {
|
|
7
7
|
? { src: srcable, volumn: undefined }
|
8
8
|
: srcable
|
9
9
|
: { volumn: undefined, src: undefined }, volumn = _a.volumn, src = _a.src;
|
10
|
-
target.
|
10
|
+
if (!target.soundsDecor) {
|
11
|
+
target.soundsDecor = [];
|
12
|
+
}
|
13
|
+
target.soundsDecor.push({
|
11
14
|
volumn: volumn,
|
12
15
|
propertyKey: propertyKey,
|
13
16
|
src: src,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"sprite-from.decor.d.ts","sourceRoot":"","sources":["../../src/decorators/sprite-from.decor.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,YACnC,GAAG,eAAe,MAAM,
|
1
|
+
{"version":3,"file":"sprite-from.decor.d.ts","sourceRoot":"","sources":["../../src/decorators/sprite-from.decor.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,YACnC,GAAG,eAAe,MAAM,UAelD"}
|
@@ -5,7 +5,10 @@ export function SpriteFrom(srcable) {
|
|
5
5
|
? { src: srcable }
|
6
6
|
: srcable
|
7
7
|
: { src: undefined }).src;
|
8
|
-
target.
|
8
|
+
if (!target.spritesDecor) {
|
9
|
+
target.spritesDecor = [];
|
10
|
+
}
|
11
|
+
target.spritesDecor.push({
|
9
12
|
propertyKey: propertyKey,
|
10
13
|
src: src,
|
11
14
|
});
|
package/lib/utils.d.ts
CHANGED
@@ -5,4 +5,8 @@ export declare function createAssetImage(src: string): Promise<Avatar>;
|
|
5
5
|
export declare function createAssetSound(src: string, type?: SoundType): Promise<Sound>;
|
6
6
|
export declare function tick(delay?: number): Promise<unknown>;
|
7
7
|
export declare function copyProperties(source: Record<string, any>, target: Record<string, any>): void;
|
8
|
+
export declare function parallel<T = any, S = T>(items: T[], each: (t: T, iter: {
|
9
|
+
index: number;
|
10
|
+
realIndex: number;
|
11
|
+
}) => Promise<S>, limit?: number): Promise<S[]>;
|
8
12
|
//# sourceMappingURL=utils.d.ts.map
|
package/lib/utils.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAiBxC,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAInE;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,SAAS,GACf,OAAO,CAAC,KAAK,CAAC,CAWhB;AAED,wBAAsB,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,oBAQxC;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAO5B"}
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAiBxC,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAInE;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,SAAS,GACf,OAAO,CAAC,KAAK,CAAC,CAWhB;AAED,wBAAsB,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,oBAQxC;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAO5B;AAED,wBAAsB,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAC3C,KAAK,EAAE,CAAC,EAAE,EACV,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,CAAC,CAAC,EACtE,KAAK,SAAI,GACR,OAAO,CAAC,CAAC,EAAE,CAAC,CAkBd"}
|
package/lib/utils.js
CHANGED
@@ -95,3 +95,46 @@ export function copyProperties(source, target) {
|
|
95
95
|
}
|
96
96
|
}
|
97
97
|
}
|
98
|
+
export function parallel(items, each, limit) {
|
99
|
+
if (limit === void 0) { limit = 3; }
|
100
|
+
return __awaiter(this, void 0, void 0, function () {
|
101
|
+
var queue, results, _loop_1, _i, queue_1, index;
|
102
|
+
return __generator(this, function (_a) {
|
103
|
+
switch (_a.label) {
|
104
|
+
case 0:
|
105
|
+
queue = Array.from({ length: Math.ceil(items.length / limit) }).map(function (_, i) { return i; });
|
106
|
+
results = [];
|
107
|
+
_loop_1 = function (index) {
|
108
|
+
var start, end, _items, _b, _c, _d;
|
109
|
+
return __generator(this, function (_e) {
|
110
|
+
switch (_e.label) {
|
111
|
+
case 0:
|
112
|
+
start = index * limit;
|
113
|
+
end = start + limit;
|
114
|
+
_items = items.slice(start, end);
|
115
|
+
_c = (_b = results.push).apply;
|
116
|
+
_d = [results];
|
117
|
+
return [4 /*yield*/, Promise.all(_items.map(function (item, i) { return each(item, { index: i, realIndex: start + i }); }))];
|
118
|
+
case 1:
|
119
|
+
_c.apply(_b, _d.concat([(_e.sent())]));
|
120
|
+
return [2 /*return*/];
|
121
|
+
}
|
122
|
+
});
|
123
|
+
};
|
124
|
+
_i = 0, queue_1 = queue;
|
125
|
+
_a.label = 1;
|
126
|
+
case 1:
|
127
|
+
if (!(_i < queue_1.length)) return [3 /*break*/, 4];
|
128
|
+
index = queue_1[_i];
|
129
|
+
return [5 /*yield**/, _loop_1(index)];
|
130
|
+
case 2:
|
131
|
+
_a.sent();
|
132
|
+
_a.label = 3;
|
133
|
+
case 3:
|
134
|
+
_i++;
|
135
|
+
return [3 /*break*/, 1];
|
136
|
+
case 4: return [2 /*return*/, results];
|
137
|
+
}
|
138
|
+
});
|
139
|
+
});
|
140
|
+
}
|