react-simple-game-engine 0.1.62 → 0.1.65

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 (82) hide show
  1. package/lib/classes/animations/animation.d.ts +14 -0
  2. package/lib/classes/animations/animation.d.ts.map +1 -0
  3. package/lib/classes/animations/animation.js +35 -0
  4. package/lib/classes/animations/avatar.animation.d.ts +16 -0
  5. package/lib/classes/animations/avatar.animation.d.ts.map +1 -0
  6. package/lib/classes/animations/avatar.animation.js +45 -0
  7. package/lib/classes/animations/color.animation.d.ts +9 -0
  8. package/lib/classes/animations/color.animation.d.ts.map +1 -0
  9. package/lib/classes/animations/color.animation.js +33 -0
  10. package/lib/classes/camera.d.ts.map +1 -0
  11. package/lib/classes/camera.js +34 -0
  12. package/lib/classes/entities/circle.entity.d.ts +15 -0
  13. package/lib/classes/entities/circle.entity.d.ts.map +1 -0
  14. package/lib/classes/entities/circle.entity.js +55 -0
  15. package/lib/classes/entities/entity-sult.d.ts +34 -0
  16. package/lib/classes/entities/entity-sult.d.ts.map +1 -0
  17. package/lib/classes/entities/entity-sult.js +108 -0
  18. package/lib/classes/entities/entity.d.ts +55 -0
  19. package/lib/classes/entities/entity.d.ts.map +1 -0
  20. package/lib/classes/entities/entity.js +180 -0
  21. package/lib/classes/entities/rect.entity.d.ts +17 -0
  22. package/lib/classes/entities/rect.entity.d.ts.map +1 -0
  23. package/lib/classes/entities/rect.entity.js +56 -0
  24. package/lib/classes/logic-component.d.ts.map +1 -0
  25. package/lib/classes/logic-component.js +77 -0
  26. package/lib/classes/p5.d.ts.map +1 -0
  27. package/lib/classes/p5.js +58 -0
  28. package/lib/classes/particle-system.d.ts.map +1 -0
  29. package/lib/classes/particle-system.js +98 -0
  30. package/lib/classes/particle.d.ts.map +1 -0
  31. package/lib/classes/particle.js +117 -0
  32. package/lib/classes/prefab.d.ts.map +1 -0
  33. package/lib/classes/prefab.js +24 -0
  34. package/lib/classes/saver.d.ts.map +1 -0
  35. package/lib/classes/saver.js +33 -0
  36. package/lib/classes/scene-management.d.ts.map +1 -0
  37. package/lib/classes/scene-management.js +58 -0
  38. package/lib/classes/scene.d.ts.map +1 -0
  39. package/lib/classes/scene.js +433 -0
  40. package/lib/classes/sound-watcher.d.ts.map +1 -0
  41. package/lib/classes/sound-watcher.js +33 -0
  42. package/lib/classes/sound.d.ts.map +1 -0
  43. package/lib/classes/sound.js +119 -0
  44. package/lib/classes/sprites/avatar.sprite.d.ts +20 -0
  45. package/lib/classes/sprites/avatar.sprite.d.ts.map +1 -0
  46. package/lib/classes/sprites/avatar.sprite.js +89 -0
  47. package/lib/classes/sprites/color.sprite.d.ts +7 -0
  48. package/lib/classes/sprites/color.sprite.d.ts.map +1 -0
  49. package/lib/classes/sprites/color.sprite.js +40 -0
  50. package/lib/classes/sprites/sprite.d.ts +26 -0
  51. package/lib/classes/sprites/sprite.d.ts.map +1 -0
  52. package/lib/classes/sprites/sprite.js +70 -0
  53. package/lib/classes/watcher.d.ts.map +1 -0
  54. package/lib/classes/watcher.js +44 -0
  55. package/lib/classes/world-management.d.ts.map +1 -0
  56. package/lib/classes/world-management.js +160 -0
  57. package/lib/decorators/scene-tag.decor.d.ts.map +1 -0
  58. package/lib/decorators/scene-tag.decor.js +5 -0
  59. package/lib/decorators/scene-ui.decor.d.ts.map +1 -0
  60. package/lib/decorators/scene-ui.decor.js +5 -0
  61. package/lib/decorators/sound-from.decor.d.ts.map +1 -0
  62. package/lib/decorators/sound-from.decor.js +17 -0
  63. package/lib/decorators/sprite-from.decor.d.ts.map +1 -0
  64. package/lib/decorators/sprite-from.decor.js +13 -0
  65. package/lib/export-enums.d.ts.map +1 -0
  66. package/lib/export-enums.js +5 -0
  67. package/lib/export-interfaces.d.ts.map +1 -0
  68. package/lib/export-interfaces.js +1 -0
  69. package/lib/export-types.d.ts.map +1 -0
  70. package/lib/export-types.js +1 -0
  71. package/lib/index.d.ts.map +1 -0
  72. package/lib/ui-components/SceneRunner.d.ts.map +1 -0
  73. package/lib/ui-components/SceneRunner.js +43 -0
  74. package/lib/ui-components/ScenesProcess.d.ts.map +1 -0
  75. package/lib/ui-components/ScenesProcess.js +46 -0
  76. package/lib/ui-components/Sketch.d.ts.map +1 -0
  77. package/lib/ui-components/Sketch.js +33 -0
  78. package/lib/utilities.d.ts.map +1 -0
  79. package/lib/utilities.js +2 -0
  80. package/lib/utils.d.ts.map +1 -0
  81. package/lib/utils.js +97 -0
  82. package/package.json +5 -8
@@ -0,0 +1,33 @@
1
+ var _Saver = /** @class */ (function () {
2
+ function _Saver() {
3
+ this.store = window.localStorage;
4
+ this.store
5
+ ? console.log("Initial saver success")
6
+ : console.log("Initial saver fail");
7
+ }
8
+ _Saver.prototype.set = function (key, value) {
9
+ this.store.setItem(key, JSON.stringify(value));
10
+ };
11
+ _Saver.prototype.get = function (key, type) {
12
+ var raw = this.store.getItem(key);
13
+ var parsed = (raw == null ? raw : JSON.parse(raw));
14
+ if (type === Boolean) {
15
+ return (parsed === "0" || parsed === "false" || !parsed
16
+ ? false
17
+ : true);
18
+ }
19
+ if (type === Number) {
20
+ return (parsed == null || isNaN(parsed)
21
+ ? parsed
22
+ : +parsed);
23
+ }
24
+ if (type === String) {
25
+ return (parsed == null || typeof type === "string"
26
+ ? parsed
27
+ : parsed.toString());
28
+ }
29
+ return parsed;
30
+ };
31
+ return _Saver;
32
+ }());
33
+ export var Saver = new _Saver();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-management.d.ts","sourceRoot":"","sources":["../../src/classes/scene-management.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,oBAAY,UAAU,GAAG;IAAE,QAAQ,KAAK,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACzD,aAAK,mBAAmB,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;AAElD,qBAAa,eAAe;IAOd,OAAO,CAAC,MAAM;IAN1B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,mBAAmB,CAAuB;IAClD,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU;gBAIX,MAAM,EAAE,UAAU,EAAE;IAKxC,IAAI,YAAY,eAEf;IAED,aAAa,CAAC,IAAI,EAAE,mBAAmB;IAIvC,OAAO;IAQP,IAAI;IAUJ,MAAM;IAIN,SAAS,CAAC,GAAG,EAAE,MAAM;IAarB,OAAO,CAAC,UAAU;CAKnB"}
@@ -0,0 +1,58 @@
1
+ var SceneManagement = /** @class */ (function () {
2
+ function SceneManagement(Scenes) {
3
+ this.Scenes = Scenes;
4
+ this._currentScene = new Scenes[0]();
5
+ this._currentScene.manager = this;
6
+ }
7
+ SceneManagement.getTag = function (Scene) {
8
+ return Scene.tag;
9
+ };
10
+ Object.defineProperty(SceneManagement.prototype, "currentScene", {
11
+ get: function () {
12
+ return this._currentScene;
13
+ },
14
+ enumerable: false,
15
+ configurable: true
16
+ });
17
+ SceneManagement.prototype.onChangeScene = function (func) {
18
+ this.changeSceneListener = func;
19
+ };
20
+ SceneManagement.prototype.canNext = function () {
21
+ var _this = this;
22
+ var currentIndex = this.Scenes.findIndex(function (Scene) { return _this._currentScene instanceof Scene; });
23
+ var NextScene = this.Scenes[currentIndex + 1];
24
+ return !!NextScene;
25
+ };
26
+ SceneManagement.prototype.next = function () {
27
+ var _this = this;
28
+ var currentIndex = this.Scenes.findIndex(function (Scene) { return _this._currentScene instanceof Scene; });
29
+ var NextScene = this.Scenes[currentIndex + 1];
30
+ if (NextScene) {
31
+ this.startScene(NextScene);
32
+ }
33
+ };
34
+ SceneManagement.prototype.replay = function () {
35
+ this.gotoScene(this._currentScene.tag);
36
+ };
37
+ SceneManagement.prototype.gotoScene = function (tag) {
38
+ for (var _i = 0, _a = this.Scenes; _i < _a.length; _i++) {
39
+ var Scene_1 = _a[_i];
40
+ var _tag = SceneManagement.getTag(Scene_1);
41
+ if (_tag === tag) {
42
+ if (this._currentScene) {
43
+ this._currentScene.destructor();
44
+ }
45
+ this.startScene(Scene_1);
46
+ break;
47
+ }
48
+ }
49
+ };
50
+ SceneManagement.prototype.startScene = function (Scene) {
51
+ var _a;
52
+ this._currentScene = new Scene();
53
+ this._currentScene.manager = this;
54
+ (_a = this.changeSceneListener) === null || _a === void 0 ? void 0 : _a.call(this, this._currentScene);
55
+ };
56
+ return SceneManagement;
57
+ }());
58
+ export { SceneManagement };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../src/classes/scene.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,433 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (_) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { WorldManagement } from "./world-management";
38
+ import { copyProperties, createAssetImage, createAssetSound, tick, } from "../utils";
39
+ import { Sound } from "./sound";
40
+ import { SoundType } from "../export-enums";
41
+ var Scene = /** @class */ (function () {
42
+ function Scene() {
43
+ this.entityPropsChangeListeners = {};
44
+ this.soundBackgroundOptionsChangeListeners = [];
45
+ this.soundOnceOptionsChangeListeners = [];
46
+ this.prefabs = [];
47
+ this.sounds = [];
48
+ this.sprites = [];
49
+ this.assetsDelay = 0;
50
+ this.sessionId = "".concat(Math.random(), "-").concat(new Date().getTime());
51
+ this.tag = this.constructor.tag;
52
+ this.ui = this.constructor.ui;
53
+ this._loadedAssets = false;
54
+ this.onBorn();
55
+ }
56
+ Object.defineProperty(Scene.prototype, "UI", {
57
+ get: function () {
58
+ var Ui = this.ui || (function () { return null; });
59
+ return Ui;
60
+ },
61
+ enumerable: false,
62
+ configurable: true
63
+ });
64
+ Object.defineProperty(Scene.prototype, "UIProps", {
65
+ get: function () {
66
+ return this.getUIProps();
67
+ },
68
+ enumerable: false,
69
+ configurable: true
70
+ });
71
+ Object.defineProperty(Scene.prototype, "soundBackgroundOptions", {
72
+ get: function () {
73
+ return Sound.Management[SoundType.BACKGROUND];
74
+ },
75
+ set: function (options) {
76
+ copyProperties(Sound.Management[SoundType.BACKGROUND], options);
77
+ for (var _i = 0, _a = this.soundBackgroundOptionsChangeListeners; _i < _a.length; _i++) {
78
+ var listener = _a[_i];
79
+ listener(Sound.Management[SoundType.BACKGROUND]);
80
+ }
81
+ },
82
+ enumerable: false,
83
+ configurable: true
84
+ });
85
+ Object.defineProperty(Scene.prototype, "soundOnceOptions", {
86
+ get: function () {
87
+ return Sound.Management[SoundType.ONCE];
88
+ },
89
+ set: function (options) {
90
+ copyProperties(Sound.Management[SoundType.ONCE], options);
91
+ for (var _i = 0, _a = this.soundOnceOptionsChangeListeners; _i < _a.length; _i++) {
92
+ var listener = _a[_i];
93
+ listener(Sound.Management[SoundType.ONCE]);
94
+ }
95
+ },
96
+ enumerable: false,
97
+ configurable: true
98
+ });
99
+ Scene.prototype.onSoundOnceOptionsChange = function (func) {
100
+ var listeners = this.soundOnceOptionsChangeListeners;
101
+ listeners.push(func);
102
+ return function () {
103
+ var index = listeners.indexOf(func);
104
+ if (index > -1) {
105
+ listeners.splice(index, 1);
106
+ }
107
+ };
108
+ };
109
+ Scene.prototype.onSoundBackgroundOptionsChange = function (func) {
110
+ var listeners = this.soundBackgroundOptionsChangeListeners;
111
+ listeners.push(func);
112
+ return function () {
113
+ var index = listeners.indexOf(func);
114
+ if (index > -1) {
115
+ listeners.splice(index, 1);
116
+ }
117
+ };
118
+ };
119
+ Scene.prototype.bootSoundOptions = function () {
120
+ var options = this.getSoundOptions();
121
+ copyProperties(Sound.Management[SoundType.ONCE], options[SoundType.ONCE] || {});
122
+ copyProperties(Sound.Management[SoundType.BACKGROUND], options[SoundType.BACKGROUND] || {});
123
+ };
124
+ Scene.prototype.getSoundOptions = function () {
125
+ return {};
126
+ };
127
+ Scene.prototype.onBorn = function () { };
128
+ Scene.prototype.getUIProps = function () {
129
+ return {};
130
+ };
131
+ Object.defineProperty(Scene.prototype, "loadedAssets", {
132
+ get: function () {
133
+ return this._loadedAssets;
134
+ },
135
+ set: function (loadedAssets) {
136
+ var _a;
137
+ this._loadedAssets = loadedAssets;
138
+ (_a = this.loadAssetsListener) === null || _a === void 0 ? void 0 : _a.call(this, loadedAssets);
139
+ },
140
+ enumerable: false,
141
+ configurable: true
142
+ });
143
+ Scene.prototype.emitEntityPropsChange = function (name, value) {
144
+ var listeners = this.entityPropsChangeListeners[name] || [];
145
+ for (var _i = 0, listeners_1 = listeners; _i < listeners_1.length; _i++) {
146
+ var listener = listeners_1[_i];
147
+ listener(value);
148
+ }
149
+ };
150
+ Scene.prototype.onEntityPropsChange = function (name, func) {
151
+ var listeners = (this.entityPropsChangeListeners[name] =
152
+ this.entityPropsChangeListeners[name] || []);
153
+ listeners.push(func);
154
+ return function () {
155
+ var index = listeners.indexOf(func);
156
+ if (index > -1) {
157
+ listeners.splice(index, 1);
158
+ }
159
+ };
160
+ };
161
+ Scene.prototype.onLoadAssetNotify = function (func) {
162
+ this.loadAssetsListener = func;
163
+ };
164
+ Scene.prototype.destructor = function () {
165
+ this.worldManagement.destructor();
166
+ for (var _i = 0, _a = this.sounds; _i < _a.length; _i++) {
167
+ var sound = _a[_i];
168
+ sound.stop();
169
+ }
170
+ };
171
+ Scene.prototype.switchToScene = function (tag) {
172
+ this.manager.gotoScene(tag);
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
+ };
202
+ Scene.prototype.loadSounds = function () {
203
+ return __awaiter(this, void 0, void 0, function () {
204
+ var _this = this;
205
+ return __generator(this, function (_a) {
206
+ switch (_a.label) {
207
+ case 0: return [4 /*yield*/, Promise.all(Scene.soundsDecor.map(function (decor) { return __awaiter(_this, void 0, void 0, function () {
208
+ var sound;
209
+ return __generator(this, function (_a) {
210
+ switch (_a.label) {
211
+ case 0:
212
+ if (!decor.src) return [3 /*break*/, 2];
213
+ return [4 /*yield*/, createAssetSound(decor.src, decor.type)];
214
+ case 1:
215
+ sound = _a.sent();
216
+ if (decor.volumn) {
217
+ sound.volumn = decor.volumn;
218
+ }
219
+ this[decor.propertyKey] = sound;
220
+ this.sounds.push(sound);
221
+ _a.label = 2;
222
+ case 2: return [2 /*return*/];
223
+ }
224
+ });
225
+ }); }))];
226
+ case 1:
227
+ _a.sent();
228
+ return [2 /*return*/];
229
+ }
230
+ });
231
+ });
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
+ };
363
+ Scene.prototype.loadAssets = function (delay) {
364
+ return __awaiter(this, void 0, void 0, function () {
365
+ return __generator(this, function (_a) {
366
+ switch (_a.label) {
367
+ case 0:
368
+ if (delay != null) {
369
+ this.assetsDelay = delay;
370
+ }
371
+ // if delay less than 0, it will wait forever
372
+ return [4 /*yield*/, tick(this.assetsDelay < 0 ? undefined : this.assetsDelay)];
373
+ case 1:
374
+ // if delay less than 0, it will wait forever
375
+ _a.sent();
376
+ this.loadedAssets = false;
377
+ return [4 /*yield*/, Promise.all([
378
+ this.loadSounds(),
379
+ this.loadSprites(),
380
+ this.onLoadAssets(),
381
+ ]).catch(function (err) {
382
+ console.warn("Load assets fail", err.toString());
383
+ })];
384
+ case 2:
385
+ _a.sent();
386
+ this.loadedAssets = true;
387
+ return [2 /*return*/];
388
+ }
389
+ });
390
+ });
391
+ };
392
+ Scene.prototype.onLoadAssets = function () {
393
+ return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {
394
+ return [2 /*return*/];
395
+ }); });
396
+ };
397
+ Scene.prototype.getPrefab = function (Class) {
398
+ return this.prefabs.find(function (pf) { return pf instanceof Class; });
399
+ };
400
+ Scene.prototype.bootstrap = function (camera) {
401
+ this.bootSoundOptions();
402
+ this.worldManagement = new WorldManagement(camera, this);
403
+ var components = this.getComponents(camera);
404
+ var layerIndex = 0;
405
+ for (var _i = 0, components_1 = components; _i < components_1.length; _i++) {
406
+ var component = components_1[_i];
407
+ component.worldManagement = this.worldManagement;
408
+ component.layerIndex = layerIndex++;
409
+ if (component.isPrefab) {
410
+ this.prefabs.push(component);
411
+ }
412
+ else {
413
+ var entity = component.output();
414
+ this.worldManagement.addEntity(entity);
415
+ }
416
+ }
417
+ };
418
+ Scene.prototype.onDraw = function () { };
419
+ Scene.prototype.onUpdate = function () { };
420
+ Scene.prototype.action = function () {
421
+ if (Renderer.running) {
422
+ this.onUpdate();
423
+ this.worldManagement.update();
424
+ }
425
+ Renderer.background(41, 41, 41);
426
+ this.onDraw();
427
+ this.worldManagement.draw();
428
+ };
429
+ Scene.soundsDecor = [];
430
+ Scene.spritesDecor = [];
431
+ return Scene;
432
+ }());
433
+ export { Scene };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sound-watcher.d.ts","sourceRoot":"","sources":["../../src/classes/sound-watcher.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAuB,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,aAAK,qBAAqB,GAAG;IAC3B,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;CACjE,CAAC;AACF,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,qBAAqB,eAS1E;AAED,aAAK,2BAA2B,GAAG;IACjC,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,SAAS,CAAC;CACvE,CAAC;AACF,wBAAgB,sBAAsB,CAAC,EACrC,KAAK,EACL,QAAQ,GACT,EAAE,2BAA2B,eAU7B"}
@@ -0,0 +1,33 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
13
+ import { useEffect, useState } from "react";
14
+ export function SoundOnceWatcher(_a) {
15
+ var scene = _a.scene, children = _a.children;
16
+ var _b = useState(scene.soundOnceOptions), values = _b[0], setValues = _b[1];
17
+ useEffect(function () {
18
+ return scene.onSoundOnceOptionsChange(function (options) {
19
+ setValues(__assign({}, options));
20
+ });
21
+ }, [scene]);
22
+ return _jsx(_Fragment, { children: children(values) });
23
+ }
24
+ export function SoundBackgroundWatcher(_a) {
25
+ var scene = _a.scene, children = _a.children;
26
+ var _b = useState(scene.soundBackgroundOptions), values = _b[0], setValues = _b[1];
27
+ useEffect(function () {
28
+ return scene.onSoundBackgroundOptionsChange(function (options) {
29
+ setValues(__assign({}, options));
30
+ });
31
+ }, [scene]);
32
+ return _jsx(_Fragment, { children: children(values) });
33
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sound.d.ts","sourceRoot":"","sources":["../../src/classes/sound.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlD,qBAAa,KAAK;IAaJ,OAAO,CAAC,QAAQ,CAAC,IAAI;IAZjC,MAAM,CAAC,UAAU,EAAE,eAAe,CAShC;IACF,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAe;gBAEnB,IAAI,GAAE,SAA0B;IAE7D,IAAI,MAAM,IAIM,MAAM,CAFrB;IAED,IAAI,MAAM,CAAC,GAAG,EAAE,MAAM,EAErB;IAEK,OAAO;IAQP,IAAI;IAMJ,IAAI;CAWX"}