react-simple-game-engine 0.1.55 → 0.1.58

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.
@@ -1,16 +1,19 @@
1
+ /// <reference types="p5" />
1
2
  import { ComponentType } from "react";
2
3
  import { Camera } from "./camera";
3
4
  import { LogicComponent } from "./logic-component";
4
5
  import { SceneManagement } from "./scene-management";
5
6
  import { EntitySult } from "./entities/entity-sult";
6
7
  import { Prefab } from "./prefab";
7
- import { GetSoundOptions, SoundDecor, SoundManagement } from "../export-types";
8
+ import { Sound } from "./sound";
9
+ import { Avatar, GetSoundOptions, SoundDecor, SoundManagement, SpriteDecor } from "../export-types";
8
10
  import { SoundType } from "../export-enums";
9
11
  declare type SoundOptionsChangeListener<O extends SoundType> = (options: SoundManagement[O]) => void;
10
12
  declare type LoadAssetsListener = (loadedAssets: boolean) => void;
11
13
  declare type EntityPropsChangeListener<V = any> = (value: V) => void;
12
14
  export declare abstract class Scene<UIP = any> {
13
15
  static soundsDecor: SoundDecor[];
16
+ static spritesDecor: SpriteDecor[];
14
17
  private ui;
15
18
  private worldManagement;
16
19
  private _loadedAssets;
@@ -19,6 +22,8 @@ export declare abstract class Scene<UIP = any> {
19
22
  private readonly soundBackgroundOptionsChangeListeners;
20
23
  private readonly soundOnceOptionsChangeListeners;
21
24
  private readonly prefabs;
25
+ readonly sounds: Sound[];
26
+ readonly sprites: Avatar[];
22
27
  assetsDelay: number;
23
28
  tag: string;
24
29
  manager: SceneManagement;
@@ -44,7 +49,18 @@ export declare abstract class Scene<UIP = any> {
44
49
  onLoadAssetNotify(func: LoadAssetsListener): void;
45
50
  destructor(): void;
46
51
  switchToScene(tag: string): void;
47
- loadSounds(): Promise<void>;
52
+ private loadSprites;
53
+ private loadSounds;
54
+ createSprites(...srcables: (string | {
55
+ src: string;
56
+ })[]): Promise<import("p5").Image[]>;
57
+ createSounds(...srcables: (string | {
58
+ src: string;
59
+ volumn?: number;
60
+ type?: SoundType;
61
+ })[]): Promise<Sound[]>;
62
+ mapSprites(...srcs: string[]): Promise<void>;
63
+ mapSounds(...srcs: string[]): Promise<void>;
48
64
  loadAssets(delay?: number): Promise<void>;
49
65
  onLoadAssets(): Promise<void>;
50
66
  getPrefab<C extends EntitySult>(Class: {
@@ -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, createAssetSound, tick } from "../utils";
38
+ import { copyProperties, createAssetImage, createAssetSound, tick, } from "../utils";
39
39
  import { Sound } from "./sound";
40
40
  import { SoundType } from "../export-enums";
41
41
  var Scene = /** @class */ (function () {
@@ -44,6 +44,8 @@ var Scene = /** @class */ (function () {
44
44
  this.soundBackgroundOptionsChangeListeners = [];
45
45
  this.soundOnceOptionsChangeListeners = [];
46
46
  this.prefabs = [];
47
+ this.sounds = [];
48
+ this.sprites = [];
47
49
  this.assetsDelay = 0;
48
50
  this.sessionId = "".concat(Math.random(), "-").concat(new Date().getTime());
49
51
  this.tag = this.constructor.tag;
@@ -161,15 +163,42 @@ var Scene = /** @class */ (function () {
161
163
  };
162
164
  Scene.prototype.destructor = function () {
163
165
  this.worldManagement.destructor();
164
- for (var _i = 0, _a = Scene.soundsDecor; _i < _a.length; _i++) {
165
- var propertyKey = _a[_i].propertyKey;
166
- var sound = this[propertyKey];
167
- sound === null || sound === void 0 ? void 0 : sound.stop();
166
+ for (var _i = 0, _a = this.sounds; _i < _a.length; _i++) {
167
+ var sound = _a[_i];
168
+ sound.stop();
168
169
  }
169
170
  };
170
171
  Scene.prototype.switchToScene = function (tag) {
171
172
  this.manager.gotoScene(tag);
172
173
  };
174
+ Scene.prototype.loadSprites = function () {
175
+ return __awaiter(this, void 0, void 0, function () {
176
+ var _this = this;
177
+ return __generator(this, function (_a) {
178
+ switch (_a.label) {
179
+ case 0: return [4 /*yield*/, Promise.all(Scene.spritesDecor.map(function (decor) { return __awaiter(_this, void 0, void 0, function () {
180
+ var sprite;
181
+ return __generator(this, function (_a) {
182
+ switch (_a.label) {
183
+ case 0:
184
+ if (!decor.src) return [3 /*break*/, 2];
185
+ return [4 /*yield*/, createAssetImage(decor.src)];
186
+ case 1:
187
+ sprite = _a.sent();
188
+ this[decor.propertyKey] = sprite;
189
+ this.sprites.push(sprite);
190
+ _a.label = 2;
191
+ case 2: return [2 /*return*/];
192
+ }
193
+ });
194
+ }); }))];
195
+ case 1:
196
+ _a.sent();
197
+ return [2 /*return*/];
198
+ }
199
+ });
200
+ });
201
+ };
173
202
  Scene.prototype.loadSounds = function () {
174
203
  return __awaiter(this, void 0, void 0, function () {
175
204
  var _this = this;
@@ -179,12 +208,18 @@ var Scene = /** @class */ (function () {
179
208
  var sound;
180
209
  return __generator(this, function (_a) {
181
210
  switch (_a.label) {
182
- case 0: return [4 /*yield*/, createAssetSound(decor.src, decor.type)];
211
+ case 0:
212
+ if (!decor.src) return [3 /*break*/, 2];
213
+ return [4 /*yield*/, createAssetSound(decor.src, decor.type)];
183
214
  case 1:
184
215
  sound = _a.sent();
185
- sound.volumn = decor.volumn;
216
+ if (decor.volumn) {
217
+ sound.volumn = decor.volumn;
218
+ }
186
219
  this[decor.propertyKey] = sound;
187
- return [2 /*return*/];
220
+ this.sounds.push(sound);
221
+ _a.label = 2;
222
+ case 2: return [2 /*return*/];
188
223
  }
189
224
  });
190
225
  }); }))];
@@ -195,6 +230,136 @@ var Scene = /** @class */ (function () {
195
230
  });
196
231
  });
197
232
  };
233
+ Scene.prototype.createSprites = function () {
234
+ var srcables = [];
235
+ for (var _i = 0; _i < arguments.length; _i++) {
236
+ srcables[_i] = arguments[_i];
237
+ }
238
+ return __awaiter(this, void 0, void 0, function () {
239
+ var _this = this;
240
+ return __generator(this, function (_a) {
241
+ return [2 /*return*/, Promise.all(srcables.map(function (srcable) { return __awaiter(_this, void 0, void 0, function () {
242
+ var src, sprite;
243
+ return __generator(this, function (_a) {
244
+ switch (_a.label) {
245
+ case 0:
246
+ src = (typeof srcable === "string" ? { src: srcable } : srcable).src;
247
+ return [4 /*yield*/, createAssetImage(src)];
248
+ case 1:
249
+ sprite = _a.sent();
250
+ this.sprites.push(sprite);
251
+ return [2 /*return*/, sprite];
252
+ }
253
+ });
254
+ }); }))];
255
+ });
256
+ });
257
+ };
258
+ Scene.prototype.createSounds = function () {
259
+ var srcables = [];
260
+ for (var _i = 0; _i < arguments.length; _i++) {
261
+ srcables[_i] = arguments[_i];
262
+ }
263
+ return __awaiter(this, void 0, void 0, function () {
264
+ var _this = this;
265
+ return __generator(this, function (_a) {
266
+ return [2 /*return*/, Promise.all(srcables.map(function (srcable) { return __awaiter(_this, void 0, void 0, function () {
267
+ var _a, volumn, src, _b, type, sound;
268
+ return __generator(this, function (_c) {
269
+ switch (_c.label) {
270
+ case 0:
271
+ _a = typeof srcable === "string"
272
+ ? { src: srcable, volumn: undefined, type: undefined }
273
+ : srcable, volumn = _a.volumn, src = _a.src, _b = _a.type, type = _b === void 0 ? SoundType.ONCE : _b;
274
+ return [4 /*yield*/, createAssetSound(src, type)];
275
+ case 1:
276
+ sound = _c.sent();
277
+ if (volumn) {
278
+ sound.volumn = volumn;
279
+ }
280
+ this.sounds.push(sound);
281
+ return [2 /*return*/, sound];
282
+ }
283
+ });
284
+ }); }))];
285
+ });
286
+ });
287
+ };
288
+ Scene.prototype.mapSprites = function () {
289
+ var srcs = [];
290
+ for (var _i = 0; _i < arguments.length; _i++) {
291
+ srcs[_i] = arguments[_i];
292
+ }
293
+ return __awaiter(this, void 0, void 0, function () {
294
+ var spritesDecor;
295
+ var _this = this;
296
+ return __generator(this, function (_a) {
297
+ switch (_a.label) {
298
+ 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
+ }
315
+ });
316
+ }); }))];
317
+ case 1:
318
+ _a.sent();
319
+ return [2 /*return*/];
320
+ }
321
+ });
322
+ });
323
+ };
324
+ Scene.prototype.mapSounds = function () {
325
+ var srcs = [];
326
+ for (var _i = 0; _i < arguments.length; _i++) {
327
+ srcs[_i] = arguments[_i];
328
+ }
329
+ return __awaiter(this, void 0, void 0, function () {
330
+ var soundsDecor;
331
+ var _this = this;
332
+ return __generator(this, function (_a) {
333
+ switch (_a.label) {
334
+ 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
+ }
354
+ });
355
+ }); }))];
356
+ case 1:
357
+ _a.sent();
358
+ return [2 /*return*/];
359
+ }
360
+ });
361
+ });
362
+ };
198
363
  Scene.prototype.loadAssets = function (delay) {
199
364
  return __awaiter(this, void 0, void 0, function () {
200
365
  return __generator(this, function (_a) {
@@ -209,7 +374,11 @@ var Scene = /** @class */ (function () {
209
374
  // if delay less than 0, it will wait forever
210
375
  _a.sent();
211
376
  this.loadedAssets = false;
212
- return [4 /*yield*/, Promise.all([this.loadSounds(), this.onLoadAssets()]).catch(function (err) {
377
+ return [4 /*yield*/, Promise.all([
378
+ this.loadSounds(),
379
+ this.loadSprites(),
380
+ this.onLoadAssets(),
381
+ ]).catch(function (err) {
213
382
  console.warn("Load assets fail", err.toString());
214
383
  })];
215
384
  case 2:
@@ -258,6 +427,7 @@ var Scene = /** @class */ (function () {
258
427
  this.worldManagement.draw();
259
428
  };
260
429
  Scene.soundsDecor = [];
430
+ Scene.spritesDecor = [];
261
431
  return Scene;
262
432
  }());
263
433
  export { Scene };
@@ -1,6 +1,6 @@
1
1
  import { SoundType } from "../export-enums";
2
- export declare function SceneSound({ src, volumn }: {
3
- src: string;
2
+ export declare function SoundFrom(srcable?: string | {
3
+ src?: string;
4
4
  volumn?: number;
5
5
  }, type?: SoundType): (target: any, propertyKey: string) => void;
6
- //# sourceMappingURL=scene-sound.decor.d.ts.map
6
+ //# sourceMappingURL=sound-from.decor.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,17 @@
1
+ import { SoundType } from "../export-enums";
2
+ export function SoundFrom(srcable, type) {
3
+ if (type === void 0) { type = SoundType.ONCE; }
4
+ return function (target, propertyKey) {
5
+ var _a = srcable
6
+ ? typeof srcable === "string"
7
+ ? { src: srcable, volumn: undefined }
8
+ : srcable
9
+ : { volumn: undefined, src: undefined }, volumn = _a.volumn, src = _a.src;
10
+ target.constructor.soundsDecor.push({
11
+ volumn: volumn,
12
+ propertyKey: propertyKey,
13
+ src: src,
14
+ type: type,
15
+ });
16
+ };
17
+ }
@@ -0,0 +1,4 @@
1
+ export declare function SpriteFrom(srcable?: string | {
2
+ src?: string;
3
+ }): (target: any, propertyKey: string) => void;
4
+ //# sourceMappingURL=sprite-from.decor.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,13 @@
1
+ export function SpriteFrom(srcable) {
2
+ return function (target, propertyKey) {
3
+ var src = (srcable
4
+ ? typeof srcable === "string"
5
+ ? { src: srcable }
6
+ : srcable
7
+ : { src: undefined }).src;
8
+ target.constructor.spritesDecor.push({
9
+ propertyKey: propertyKey,
10
+ src: src,
11
+ });
12
+ };
13
+ }
@@ -41,9 +41,13 @@ export declare type SoundManagement = Record<SoundType, {
41
41
  }>;
42
42
  export declare type SoundDecor = {
43
43
  propertyKey: string;
44
- src: string;
44
+ src?: string;
45
45
  type: SoundType;
46
- volumn: number;
46
+ volumn?: number;
47
+ };
48
+ export declare type SpriteDecor = {
49
+ propertyKey: string;
50
+ src?: string;
47
51
  };
48
52
  export declare type GetSoundOptions = DeepPartial<SoundManagement>;
49
53
  //# sourceMappingURL=export-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"export-types.d.ts","sourceRoot":"","sources":["../src/export-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,KAAK,EAAE,IAAI,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,oBAAY,MAAM,GAAG,UAAU,CAAC,OAAO,cAAc,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;AACxE,oBAAY,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAEtD,oBAAY,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;AAC/D,oBAAY,UAAU,GAAG,IAAI,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,oBAAY,gBAAgB,CAC1B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IACjD;IACF,SAAS,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,CAAC,CAAC;IAC3C,WAAW,CAAC,EAAE,0BAA0B,CAAC;CAC1C,CAAC;AAGF,aAAK,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAGxE,aAAK,eAAe,CAAC,CAAC,SAAS,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1E,oBAAY,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI;IAC5C,SAAS,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAC7B,WAAW,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,OAAO,2BAA2B,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACzE,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;CAC7B,CAAC;AAEF,oBAAY,WAAW,CAAC,CAAC,SAAS,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE5E,oBAAY,UAAU,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,IACpD;IACE,QAAQ,CAAC,CAAC;CACX,GACD,CAAC;IAAE,QAAQ,CAAC,CAAA;CAAE,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpC,oBAAY,eAAe,GAAG,MAAM,CAClC,SAAS,EACT;IACE,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;CACf,CACF,CAAC;AAEF,oBAAY,UAAU,GAAG;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,oBAAY,eAAe,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC"}
1
+ {"version":3,"file":"export-types.d.ts","sourceRoot":"","sources":["../src/export-types.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -16,7 +16,7 @@ export { Camera } from "./classes/camera";
16
16
  export { Sprite } from "./classes/sprites/sprite";
17
17
  export { AvatarSprite } from "./classes/sprites/avatar.sprite";
18
18
  export { ColorSprite } from "./classes/sprites/color.sprite";
19
- export { SceneSound } from "./decorators/scene-sound.decor";
19
+ export { SoundFrom } from "./decorators/sound-from.decor";
20
20
  export { SceneTag } from "./decorators/scene-tag.decor";
21
21
  export { SceneUI } from "./decorators/scene-ui.decor";
22
22
  export { ScenesProcess } from "./ui-components/ScenesProcess";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAE5E,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAE5E,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,WAAW,CAAC"}
package/lib/index.js CHANGED
@@ -16,7 +16,7 @@ export { Camera } from "./classes/camera";
16
16
  export { Sprite } from "./classes/sprites/sprite";
17
17
  export { AvatarSprite } from "./classes/sprites/avatar.sprite";
18
18
  export { ColorSprite } from "./classes/sprites/color.sprite";
19
- export { SceneSound } from "./decorators/scene-sound.decor";
19
+ export { SoundFrom } from "./decorators/sound-from.decor";
20
20
  export { SceneTag } from "./decorators/scene-tag.decor";
21
21
  export { SceneUI } from "./decorators/scene-ui.decor";
22
22
  export { ScenesProcess } from "./ui-components/ScenesProcess";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-simple-game-engine",
3
- "version": "0.1.55",
3
+ "version": "0.1.58",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib",
@@ -1 +0,0 @@
1
- {"version":3,"file":"scene-sound.decor.d.ts","sourceRoot":"","sources":["../../src/decorators/scene-sound.decor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,wBAAgB,UAAU,CACxB,EAAE,GAAG,EAAE,MAAU,EAAE,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EACrD,IAAI,GAAE,SAA0B,YAEP,GAAG,eAAe,MAAM,UAQlD"}
@@ -1,14 +0,0 @@
1
- import { SoundType } from "../export-enums";
2
- // import { SoundDecor } from "../export-types";
3
- export function SceneSound(_a, type) {
4
- var src = _a.src, _b = _a.volumn, volumn = _b === void 0 ? 1 : _b;
5
- if (type === void 0) { type = SoundType.ONCE; }
6
- return function (target, propertyKey) {
7
- target.soundsDecor.push({
8
- volumn: volumn,
9
- propertyKey: propertyKey,
10
- src: src,
11
- type: type,
12
- });
13
- };
14
- }