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.
@@ -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, SoundDecor, SoundManagement, SpriteDecor } from "../export-types";
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":"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"}
1
+ {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../src/classes/scene.ts"],"names":[],"mappings":"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"}
@@ -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(Scene.spritesDecor.map(function (decor) { return __awaiter(_this, void 0, void 0, function () {
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(Scene.soundsDecor.map(function (decor) { return __awaiter(_this, void 0, void 0, function () {
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*/, Promise.all(srcables.map(function (srcable) { return __awaiter(_this, void 0, void 0, function () {
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*/, Promise.all(srcables.map(function (srcable) { return __awaiter(_this, void 0, void 0, function () {
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 = Scene.spritesDecor.filter(function (decor) { return !decor.src; });
300
- return [4 /*yield*/, Promise.all(srcs.map(function (src, index) { return __awaiter(_this, void 0, void 0, function () {
301
- var decor, sprite;
302
- return __generator(this, function (_a) {
303
- switch (_a.label) {
304
- case 0:
305
- decor = spritesDecor[index];
306
- if (!decor) return [3 /*break*/, 2];
307
- return [4 /*yield*/, createAssetImage(src)];
308
- case 1:
309
- sprite = _a.sent();
310
- this[decor.propertyKey] = sprite;
311
- this.sprites.push(sprite);
312
- _a.label = 2;
313
- case 2: return [2 /*return*/];
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 = Scene.soundsDecor.filter(function (decor) { return !decor.src; });
336
- return [4 /*yield*/, Promise.all(srcs.map(function (src, index) { return __awaiter(_this, void 0, void 0, function () {
337
- var decor, sound;
338
- return __generator(this, function (_a) {
339
- switch (_a.label) {
340
- case 0:
341
- decor = soundsDecor[index];
342
- if (!decor) return [3 /*break*/, 2];
343
- return [4 /*yield*/, createAssetSound(src, decor.type)];
344
- case 1:
345
- sound = _a.sent();
346
- if (decor.volumn) {
347
- sound.volumn = decor.volumn;
348
- }
349
- this[decor.propertyKey] = sound;
350
- this.sounds.push(sound);
351
- _a.label = 2;
352
- case 2: return [2 /*return*/];
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,UAclD"}
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.constructor.soundsDecor.push({
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,UAYlD"}
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.constructor.spritesDecor.push({
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
@@ -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
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-simple-game-engine",
3
- "version": "0.1.65",
3
+ "version": "0.1.68",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib",