react-simple-game-engine 0.1.44 → 0.1.47

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,5 +1,6 @@
1
1
  import { Initialler } from "../../export-interfaces";
2
2
  import { Camera } from "../camera";
3
+ import { LogicComponent } from "../logic-component";
3
4
  import { Scene } from "../scene";
4
5
  import { WorldManagement } from "../world-management";
5
6
  export declare abstract class EntitySult<P = any> implements Initialler<P> {
@@ -9,14 +10,21 @@ export declare abstract class EntitySult<P = any> implements Initialler<P> {
9
10
  private _name;
10
11
  private _scene;
11
12
  private _worldManagement;
13
+ private _children;
14
+ private _parent?;
12
15
  abstract update(): void;
13
16
  abstract draw(): void;
17
+ get children(): EntitySult<any>[];
14
18
  get layerIndex(): number;
15
19
  get name(): string;
16
20
  set layerIndex(_layerIndex: number);
17
21
  set name(_name: string);
22
+ get parent(): EntitySult<any> | undefined;
18
23
  get scene(): Scene<any>;
19
24
  get worldManagement(): WorldManagement;
25
+ addChild(target: EntitySult | LogicComponent<EntitySult>): void;
26
+ removeChild(entity: EntitySult): void;
27
+ unChild(entity: EntitySult): void;
20
28
  getProperty<T>(name: string): T;
21
29
  preInitial(worldManagement: WorldManagement): void;
22
30
  active(worldManagement: WorldManagement): void;
@@ -1 +1 @@
1
- {"version":3,"file":"entity-sult.d.ts","sourceRoot":"","sources":["../../../src/classes/entities/entity-sult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,8BAAsB,UAAU,CAAC,CAAC,GAAG,GAAG,CAAE,YAAW,UAAU,CAAC,CAAC,CAAC;IACzD,MAAM,EAAG,MAAM,CAAC;IACvB,SAAgB,EAAE,EAAE,MAAM,CAA8C;IAExE,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,gBAAgB,CAAmB;IAE3C,QAAQ,CAAC,MAAM,IAAI,IAAI;IACvB,QAAQ,CAAC,IAAI,IAAI,IAAI;IAErB,IAAI,UAAU,IAQc,MAAM,CANjC;IAED,IAAI,IAAI,IAWQ,MAAM,CATrB;IAED,IAAI,UAAU,CAAC,WAAW,EAAE,MAAM,EAKjC;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAUrB;IAED,IAAI,KAAK,eAER;IAED,IAAI,eAAe,oBAElB;IAED,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAI/B,UAAU,CAAC,eAAe,EAAE,eAAe;IAM3C,MAAM,CAAC,eAAe,EAAE,eAAe;IAUvC,QAAQ;IACR,OAAO,CAAC,MAAM,EAAE,CAAC;CAClB"}
1
+ {"version":3,"file":"entity-sult.d.ts","sourceRoot":"","sources":["../../../src/classes/entities/entity-sult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,8BAAsB,UAAU,CAAC,CAAC,GAAG,GAAG,CAAE,YAAW,UAAU,CAAC,CAAC,CAAC;IACzD,MAAM,EAAG,MAAM,CAAC;IACvB,SAAgB,EAAE,EAAE,MAAM,CAA8C;IAExE,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,OAAO,CAAC,CAAa;IAE7B,QAAQ,CAAC,MAAM,IAAI,IAAI;IACvB,QAAQ,CAAC,IAAI,IAAI,IAAI;IAErB,IAAI,QAAQ,sBAEX;IAED,IAAI,UAAU,IAQc,MAAM,CANjC;IAED,IAAI,IAAI,IAWQ,MAAM,CATrB;IAED,IAAI,UAAU,CAAC,WAAW,EAAE,MAAM,EAKjC;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAUrB;IAED,IAAI,MAAM,gCAET;IAED,IAAI,KAAK,eAER;IAED,IAAI,eAAe,oBAElB;IAED,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC;IAWxD,WAAW,CAAC,MAAM,EAAE,UAAU;IAK9B,OAAO,CAAC,MAAM,EAAE,UAAU;IAO1B,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAI/B,UAAU,CAAC,eAAe,EAAE,eAAe;IAM3C,MAAM,CAAC,eAAe,EAAE,eAAe;IAUvC,QAAQ;IACR,OAAO,CAAC,MAAM,EAAE,CAAC;CAClB"}
@@ -3,7 +3,15 @@ var EntitySult = /** @class */ (function () {
3
3
  this.id = "".concat(Math.random(), "-").concat(new Date().getTime());
4
4
  this._layerIndex = 0;
5
5
  this._name = this.id;
6
+ this._children = [];
6
7
  }
8
+ Object.defineProperty(EntitySult.prototype, "children", {
9
+ get: function () {
10
+ return this._children;
11
+ },
12
+ enumerable: false,
13
+ configurable: true
14
+ });
7
15
  Object.defineProperty(EntitySult.prototype, "layerIndex", {
8
16
  get: function () {
9
17
  return this._layerIndex;
@@ -37,6 +45,13 @@ var EntitySult = /** @class */ (function () {
37
45
  enumerable: false,
38
46
  configurable: true
39
47
  });
48
+ Object.defineProperty(EntitySult.prototype, "parent", {
49
+ get: function () {
50
+ return this._parent;
51
+ },
52
+ enumerable: false,
53
+ configurable: true
54
+ });
40
55
  Object.defineProperty(EntitySult.prototype, "scene", {
41
56
  get: function () {
42
57
  return this._scene;
@@ -51,6 +66,24 @@ var EntitySult = /** @class */ (function () {
51
66
  enumerable: false,
52
67
  configurable: true
53
68
  });
69
+ EntitySult.prototype.addChild = function (target) {
70
+ var entity = target instanceof EntitySult
71
+ ? target
72
+ : target.output({ worldManagement: this.worldManagement });
73
+ entity._parent = this;
74
+ this.children.push(entity);
75
+ this.worldManagement.addEntity(entity);
76
+ };
77
+ EntitySult.prototype.removeChild = function (entity) {
78
+ this.unChild(entity);
79
+ this.worldManagement.removeEntity(entity);
80
+ };
81
+ EntitySult.prototype.unChild = function (entity) {
82
+ var delIndex = this.children.indexOf(entity);
83
+ if (delIndex > -1) {
84
+ this.children.splice(delIndex, 1);
85
+ }
86
+ };
54
87
  EntitySult.prototype.getProperty = function (name) {
55
88
  return this[name];
56
89
  };
@@ -1,8 +1,9 @@
1
1
  import Matter from "matter-js";
2
2
  import { Sprite } from "../sprites/sprite";
3
- import { CreateBodyDefine, EntityInitial, EntityPrepare, MasterBody, Sound } from "../../export-types";
3
+ import { CreateBodyDefine, EntityInitial, EntityPrepare, MasterBody } from "../../export-types";
4
4
  import { EntitySult } from "./entity-sult";
5
5
  import { LogicComponent } from "../logic-component";
6
+ import { Sound } from "../sound";
6
7
  declare type TimerJobListener = () => void;
7
8
  declare type TerminateOptions = {
8
9
  duration?: number;
@@ -11,7 +12,6 @@ declare type TerminateOptions = {
11
12
  export declare abstract class Entity<P extends Record<string, any> = Record<string, any>> extends EntitySult<EntityInitial<Entity>> {
12
13
  private _body;
13
14
  private _sprite;
14
- private _children;
15
15
  private _props;
16
16
  private timerJobListeners;
17
17
  private isTerminate;
@@ -21,7 +21,6 @@ export declare abstract class Entity<P extends Record<string, any> = Record<stri
21
21
  get sprite(): Sprite<any>;
22
22
  get position(): Matter.Vector;
23
23
  get body(): MasterBody;
24
- get children(): EntitySult<any>[];
25
24
  get props(): P;
26
25
  /**
27
26
  * @param {TerminateOptions} options
@@ -36,8 +35,6 @@ export declare abstract class Entity<P extends Record<string, any> = Record<stri
36
35
  * @void
37
36
  */
38
37
  onTimer(interval: number, job: TimerJobListener, defaultRun?: boolean): () => void;
39
- addChild(target: EntitySult | LogicComponent<EntitySult>): void;
40
- removeChild(entity: EntitySult): void;
41
38
  createBody(transform: CreateBodyDefine["transform"], options?: CreateBodyDefine["bodyOptions"]): MasterBody;
42
39
  protected abstract onCreateBody(transform: CreateBodyDefine["transform"], options?: CreateBodyDefine["bodyOptions"]): Matter.Body;
43
40
  initial({ transform, sprite: spriteComponent, bodyOptions, props, ...params }: EntityInitial<this>): void;
@@ -1 +1 @@
1
- {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/classes/entities/entity.ts"],"names":[],"mappings":"AAAA,OAAO,MAAwB,MAAM,WAAW,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,UAAU,EACV,KAAK,EACN,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,aAAK,gBAAgB,GAAG,MAAM,IAAI,CAAC;AAEnC,aAAK,gBAAgB,GAAG;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;CACjD,CAAC;AAEF,8BAAsB,MAAM,CAC1B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACnD,SAAQ,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,iBAAiB,CAKhB;IACT,OAAO,CAAC,WAAW,CAAS;IAErB,cAAc,EAAE,OAAO,CAAQ;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAC;IAErB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAG7B;IAED,IAAI,MAAM,IALS,MAAM,CAAC,GAAG,CAAC,CAO7B;IAED,IAAI,QAAQ,kBAEX;IAED,IAAI,IAAI,eAEP;IAED,IAAI,QAAQ,sBAEX;IAED,IAAI,KAAK,MAER;IAED;;;;;OAKG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,gBAAgB;IAkBpC;;;;OAIG;IACH,OAAO,CACL,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,gBAAgB,EACrB,UAAU,UAAQ,GACjB,MAAM,IAAI;IAiBb,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC;IASxD,WAAW,CAAC,MAAM,EAAE,UAAU;IAQ9B,UAAU,CACR,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,EACxC,OAAO,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC;IAO3C,SAAS,CAAC,QAAQ,CAAC,YAAY,CAC7B,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,EACxC,OAAO,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,GACxC,MAAM,CAAC,IAAI;IAEd,OAAO,CAAC,EACN,SAAS,EACT,MAAM,EAAE,eAAe,EACvB,WAAW,EACX,KAAU,EACV,GAAG,MAAM,EACV,EAAE,aAAa,CAAC,IAAI,CAAC;IAiDtB,SAAS,CAAC,QAAQ,CAAC,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC;IACnD,SAAS,CAAC,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC;IAI1C,MAAM;IAeN,QAAQ;IAER,IAAI;IAMJ,QAAQ,CAAC,0BAA0B,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAExE,WAAW,CAAC,MAAM,EAAE,MAAM;IAC1B,cAAc,CAAC,MAAM,EAAE,MAAM;IAC7B,iBAAiB,CAAC,MAAM,EAAE,MAAM;CACjC"}
1
+ {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/classes/entities/entity.ts"],"names":[],"mappings":"AAAA,OAAO,MAAwB,MAAM,WAAW,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,UAAU,EACX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,aAAK,gBAAgB,GAAG,MAAM,IAAI,CAAC;AAEnC,aAAK,gBAAgB,GAAG;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;CACjD,CAAC;AAEF,8BAAsB,MAAM,CAC1B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACnD,SAAQ,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,iBAAiB,CAKhB;IACT,OAAO,CAAC,WAAW,CAAS;IAErB,cAAc,EAAE,OAAO,CAAQ;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAC;IAErB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAG7B;IAED,IAAI,MAAM,IALS,MAAM,CAAC,GAAG,CAAC,CAO7B;IAED,IAAI,QAAQ,kBAEX;IAED,IAAI,IAAI,eAEP;IAED,IAAI,KAAK,MAER;IAED;;;;;OAKG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,gBAAgB;IAkBpC;;;;OAIG;IACH,OAAO,CACL,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,gBAAgB,EACrB,UAAU,UAAQ,GACjB,MAAM,IAAI;IAiBb,UAAU,CACR,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,EACxC,OAAO,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC;IAO3C,SAAS,CAAC,QAAQ,CAAC,YAAY,CAC7B,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,EACxC,OAAO,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,GACxC,MAAM,CAAC,IAAI;IAEd,OAAO,CAAC,EACN,SAAS,EACT,MAAM,EAAE,eAAe,EACvB,WAAW,EACX,KAAU,EACV,GAAG,MAAM,EACV,EAAE,aAAa,CAAC,IAAI,CAAC;IAiDtB,SAAS,CAAC,QAAQ,CAAC,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC;IACnD,SAAS,CAAC,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC;IAI1C,MAAM;IAeN,QAAQ;IAER,IAAI;IAMJ,QAAQ,CAAC,0BAA0B,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAExE,WAAW,CAAC,MAAM,EAAE,MAAM;IAC1B,cAAc,CAAC,MAAM,EAAE,MAAM;IAC7B,iBAAiB,CAAC,MAAM,EAAE,MAAM;CACjC"}
@@ -43,7 +43,6 @@ var Entity = /** @class */ (function (_super) {
43
43
  __extends(Entity, _super);
44
44
  function Entity() {
45
45
  var _this = _super !== null && _super.apply(this, arguments) || this;
46
- _this._children = [];
47
46
  _this._props = {};
48
47
  _this.timerJobListeners = [];
49
48
  _this.isTerminate = false;
@@ -75,13 +74,6 @@ var Entity = /** @class */ (function (_super) {
75
74
  enumerable: false,
76
75
  configurable: true
77
76
  });
78
- Object.defineProperty(Entity.prototype, "children", {
79
- get: function () {
80
- return this._children;
81
- },
82
- enumerable: false,
83
- configurable: true
84
- });
85
77
  Object.defineProperty(Entity.prototype, "props", {
86
78
  get: function () {
87
79
  return this._props;
@@ -135,20 +127,6 @@ var Entity = /** @class */ (function (_super) {
135
127
  }
136
128
  };
137
129
  };
138
- Entity.prototype.addChild = function (target) {
139
- var entity = target instanceof EntitySult
140
- ? target
141
- : target.output({ worldManagement: this.worldManagement });
142
- this.children.push(entity);
143
- this.worldManagement.addEntity(entity);
144
- };
145
- Entity.prototype.removeChild = function (entity) {
146
- var delIndex = this.children.indexOf(entity);
147
- if (delIndex > -1) {
148
- this.children.splice(delIndex, 1);
149
- this.worldManagement.removeEntity(entity);
150
- }
151
- };
152
130
  Entity.prototype.createBody = function (transform, options) {
153
131
  this._body = this.onCreateBody(transform, options);
154
132
  this._body.entity = this;
@@ -4,6 +4,9 @@ import { LogicComponent } from "./logic-component";
4
4
  import { SceneManagement } from "./scene-management";
5
5
  import { EntitySult } from "./entities/entity-sult";
6
6
  import { Prefab } from "./prefab";
7
+ import { SoundManagement } from "../export-types";
8
+ import { SoundType } from "../export-enums";
9
+ declare type SoundOptionsChangeListener<O extends SoundType> = (options: SoundManagement[O]) => void;
7
10
  declare type LoadAssetsListener = (loadedAssets: boolean) => void;
8
11
  declare type EntityPropsChangeListener<V = any> = (value: V) => void;
9
12
  export declare abstract class Scene<UIP = any> {
@@ -11,7 +14,9 @@ export declare abstract class Scene<UIP = any> {
11
14
  private worldManagement;
12
15
  private _loadedAssets;
13
16
  private loadAssetsListener;
14
- private entityPropsChangeListeners;
17
+ private readonly entityPropsChangeListeners;
18
+ private readonly soundBackgroundOptionsChangeListeners;
19
+ private readonly soundOnceOptionsChangeListeners;
15
20
  private readonly prefabs;
16
21
  assetsDelay: number;
17
22
  tag: string;
@@ -21,6 +26,14 @@ export declare abstract class Scene<UIP = any> {
21
26
  constructor();
22
27
  get UI(): ComponentType<UIP>;
23
28
  get UIProps(): UIP;
29
+ get soundBackgroundOptions(): SoundManagement[SoundType.BACKGROUND];
30
+ get soundOnceOptions(): SoundManagement[SoundType.ONCE];
31
+ set soundBackgroundOptions(options: SoundManagement[SoundType.BACKGROUND]);
32
+ set soundOnceOptions(options: SoundManagement[SoundType.ONCE]);
33
+ onSoundOnceOptionsChange(func: SoundOptionsChangeListener<SoundType.ONCE>): () => void;
34
+ onSoundBackgroundOptionsChange(func: SoundOptionsChangeListener<SoundType.BACKGROUND>): () => void;
35
+ private bootSoundOptions;
36
+ protected getSoundOptions(): Partial<SoundManagement>;
24
37
  protected onBorn(): void;
25
38
  protected getUIProps(): UIP;
26
39
  get loadedAssets(): boolean;
@@ -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;AAIlC,aAAK,kBAAkB,GAAG,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;AAC1D,aAAK,yBAAyB,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;AAE7D,8BAAsB,KAAK,CAAC,GAAG,GAAG,GAAG;IACnC,OAAO,CAAC,EAAE,CAAqB;IAC/B,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,aAAa,CAAW;IAChC,OAAO,CAAC,kBAAkB,CAAsB;IAChD,OAAO,CAAC,0BAA0B,CAG3B;IACP,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IAEjC,WAAW,EAAE,MAAM,CAAK;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAG,eAAe,CAAC;IACjC,SAAgB,SAAS,EAAE,MAAM,CAA8C;aAC/D,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC,EAAE;;IAS3E,IAAI,EAAE,uBAGL;IAED,IAAI,OAAO,QAEV;IAED,SAAS,CAAC,MAAM;IAEhB,SAAS,CAAC,UAAU;IAIpB,IAAI,YAAY,IAIuB,OAAO,CAF7C;IAED,OAAO,KAAK,YAAY,QAGvB;IAED,6BAA6B,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAO7D,2BAA2B,CAAC,CAAC,GAAG,GAAG,EACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAepC,iBAAiB,CAAC,IAAI,EAAE,kBAAkB;IAI1C,UAAU;IAIV,aAAa,CAAC,GAAG,EAAE,MAAM;IAInB,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM;IAczB,YAAY;IAElB,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE;QACrC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;KACjC,GAAG,MAAM,CAAC,CAAC,CAAC;IAIb,SAAS,CAAC,MAAM,EAAE,MAAM;IAiBxB,SAAS,CAAC,MAAM;IAChB,SAAS,CAAC,QAAQ;IAElB,MAAM;CAUP"}
1
+ {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../src/classes/scene.ts"],"names":[],"mappings":"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"}
@@ -35,10 +35,14 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
35
35
  }
36
36
  };
37
37
  import { WorldManagement } from "./world-management";
38
- import { tick } from "../utils";
38
+ import { copyProperties, tick } from "../utils";
39
+ import { Sound } from "./sound";
40
+ import { SoundType } from "../export-enums";
39
41
  var Scene = /** @class */ (function () {
40
42
  function Scene() {
41
43
  this.entityPropsChangeListeners = {};
44
+ this.soundBackgroundOptionsChangeListeners = [];
45
+ this.soundOnceOptionsChangeListeners = [];
42
46
  this.prefabs = [];
43
47
  this.assetsDelay = 0;
44
48
  this.sessionId = "".concat(Math.random(), "-").concat(new Date().getTime());
@@ -62,6 +66,62 @@ var Scene = /** @class */ (function () {
62
66
  enumerable: false,
63
67
  configurable: true
64
68
  });
69
+ Object.defineProperty(Scene.prototype, "soundBackgroundOptions", {
70
+ get: function () {
71
+ return Sound.Management[SoundType.BACKGROUND];
72
+ },
73
+ set: function (options) {
74
+ copyProperties(Sound.Management[SoundType.BACKGROUND], options);
75
+ for (var _i = 0, _a = this.soundBackgroundOptionsChangeListeners; _i < _a.length; _i++) {
76
+ var listener = _a[_i];
77
+ listener(Sound.Management[SoundType.BACKGROUND]);
78
+ }
79
+ },
80
+ enumerable: false,
81
+ configurable: true
82
+ });
83
+ Object.defineProperty(Scene.prototype, "soundOnceOptions", {
84
+ get: function () {
85
+ return Sound.Management[SoundType.ONCE];
86
+ },
87
+ set: function (options) {
88
+ copyProperties(Sound.Management[SoundType.ONCE], options);
89
+ for (var _i = 0, _a = this.soundOnceOptionsChangeListeners; _i < _a.length; _i++) {
90
+ var listener = _a[_i];
91
+ listener(Sound.Management[SoundType.ONCE]);
92
+ }
93
+ },
94
+ enumerable: false,
95
+ configurable: true
96
+ });
97
+ Scene.prototype.onSoundOnceOptionsChange = function (func) {
98
+ var listeners = this.soundOnceOptionsChangeListeners;
99
+ listeners.push(func);
100
+ return function () {
101
+ var index = listeners.indexOf(func);
102
+ if (index > -1) {
103
+ listeners.splice(index, 1);
104
+ }
105
+ };
106
+ };
107
+ Scene.prototype.onSoundBackgroundOptionsChange = function (func) {
108
+ var listeners = this.soundBackgroundOptionsChangeListeners;
109
+ listeners.push(func);
110
+ return function () {
111
+ var index = listeners.indexOf(func);
112
+ if (index > -1) {
113
+ listeners.splice(index, 1);
114
+ }
115
+ };
116
+ };
117
+ Scene.prototype.bootSoundOptions = function () {
118
+ var options = this.getSoundOptions();
119
+ copyProperties(Sound.Management[SoundType.ONCE], options[SoundType.ONCE] || {});
120
+ copyProperties(Sound.Management[SoundType.BACKGROUND], options[SoundType.BACKGROUND] || {});
121
+ };
122
+ Scene.prototype.getSoundOptions = function () {
123
+ return {};
124
+ };
65
125
  Scene.prototype.onBorn = function () { };
66
126
  Scene.prototype.getUIProps = function () {
67
127
  return {};
@@ -139,6 +199,7 @@ var Scene = /** @class */ (function () {
139
199
  return this.prefabs.find(function (pf) { return pf instanceof Class; });
140
200
  };
141
201
  Scene.prototype.bootstrap = function (camera) {
202
+ this.bootSoundOptions();
142
203
  this.worldManagement = new WorldManagement(camera, this);
143
204
  var components = this.getComponents(camera);
144
205
  var layerIndex = 0;
@@ -0,0 +1,16 @@
1
+ import { ReactNode } from "react";
2
+ import { SoundType } from "../export-enums";
3
+ import { SoundManagement } from "../export-types";
4
+ import { Scene } from "./scene";
5
+ declare type SoundOnceWatcherProps = {
6
+ scene: Scene;
7
+ children: (value: SoundManagement[SoundType.ONCE]) => ReactNode;
8
+ };
9
+ export declare function SoundOnceWatcher({ scene, children }: SoundOnceWatcherProps): JSX.Element;
10
+ declare type SoundBackgroundWatcherProps = {
11
+ scene: Scene;
12
+ children: (value: SoundManagement[SoundType.BACKGROUND]) => ReactNode;
13
+ };
14
+ export declare function SoundBackgroundWatcher({ scene, children, }: SoundBackgroundWatcherProps): JSX.Element;
15
+ export {};
16
+ //# sourceMappingURL=sound-watcher.d.ts.map
@@ -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,22 @@
1
+ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect, useState } from "react";
3
+ export function SoundOnceWatcher(_a) {
4
+ var scene = _a.scene, children = _a.children;
5
+ var _b = useState(scene.soundOnceOptions), values = _b[0], setValues = _b[1];
6
+ useEffect(function () {
7
+ return scene.onSoundOnceOptionsChange(function (options) {
8
+ setValues(options);
9
+ });
10
+ }, [scene]);
11
+ return _jsx(_Fragment, { children: children(values) });
12
+ }
13
+ export function SoundBackgroundWatcher(_a) {
14
+ var scene = _a.scene, children = _a.children;
15
+ var _b = useState(scene.soundBackgroundOptions), values = _b[0], setValues = _b[1];
16
+ useEffect(function () {
17
+ return scene.onSoundBackgroundOptionsChange(function (options) {
18
+ setValues(options);
19
+ });
20
+ }, [scene]);
21
+ return _jsx(_Fragment, { children: children(values) });
22
+ }
@@ -0,0 +1,11 @@
1
+ import { SoundType } from "../export-enums";
2
+ import { SoundManagement } from "../export-types";
3
+ export declare class Sound {
4
+ private readonly type;
5
+ static Management: SoundManagement;
6
+ readonly native: HTMLAudioElement;
7
+ constructor(type?: SoundType);
8
+ playNow(): Promise<void>;
9
+ play(): Promise<void>;
10
+ }
11
+ //# sourceMappingURL=sound.d.ts.map
@@ -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;IAWJ,OAAO,CAAC,QAAQ,CAAC,IAAI;IAVjC,MAAM,CAAC,UAAU,EAAE,eAAe,CAOhC;IACF,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAe;gBAEnB,IAAI,GAAE,SAA0B;IAEvD,OAAO;IAKP,IAAI;CAMX"}
@@ -0,0 +1,82 @@
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
+ var _a;
38
+ import { SoundType } from "../export-enums";
39
+ // cant not Sound extends Audio, because TS complite, make call new Audio like a function
40
+ var Sound = /** @class */ (function () {
41
+ function Sound(type) {
42
+ if (type === void 0) { type = SoundType.ONCE; }
43
+ this.type = type;
44
+ this.native = new Audio();
45
+ }
46
+ Sound.prototype.playNow = function () {
47
+ return __awaiter(this, void 0, void 0, function () {
48
+ return __generator(this, function (_a) {
49
+ switch (_a.label) {
50
+ case 0:
51
+ this.native.currentTime = 0;
52
+ return [4 /*yield*/, this.play()];
53
+ case 1:
54
+ _a.sent();
55
+ return [2 /*return*/];
56
+ }
57
+ });
58
+ });
59
+ };
60
+ Sound.prototype.play = function () {
61
+ return __awaiter(this, void 0, void 0, function () {
62
+ var canPlay;
63
+ return __generator(this, function (_a) {
64
+ canPlay = Sound.Management[this.type].canPlay;
65
+ if (canPlay) {
66
+ this.native.play();
67
+ }
68
+ return [2 /*return*/];
69
+ });
70
+ });
71
+ };
72
+ Sound.Management = (_a = {},
73
+ _a[SoundType.ONCE] = {
74
+ canPlay: true,
75
+ },
76
+ _a[SoundType.BACKGROUND] = {
77
+ canPlay: true,
78
+ },
79
+ _a);
80
+ return Sound;
81
+ }());
82
+ export { Sound };
@@ -1 +1 @@
1
- {"version":3,"file":"world-management.d.ts","sourceRoot":"","sources":["../../src/classes/world-management.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAuB,MAAM,WAAW,CAAC;AAIxD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,qBAAa,eAAe;IAWd,OAAO,CAAC,OAAO;IAAU,OAAO,CAAC,MAAM;IAVnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAGtB;IACP,OAAO,CAAC,QAAQ,CAAC,YAAY,CACxB;IAEL,OAAO,CAAC,OAAO,CAAU;gBAEL,OAAO,EAAE,MAAM,EAAU,MAAM,EAAE,KAAK;IAgD1D,IAAI,MAAM,WAET;IAED,IAAI,MAAM,WAET;IAED,IAAI,KAAK,eAER;IAED,OAAO,CAAC,eAAe;IAuBvB,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,OAAO;IAWf,UAAU;IAKV,sBAAsB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM;IAK3D,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM;IAKpD,SAAS,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAK7D,SAAS,CAAC,MAAM,EAAE,UAAU;IAW5B,YAAY,CAAC,MAAM,EAAE,UAAU;IAY/B,MAAM;IAON,IAAI;CAKL"}
1
+ {"version":3,"file":"world-management.d.ts","sourceRoot":"","sources":["../../src/classes/world-management.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAuB,MAAM,WAAW,CAAC;AAIxD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,qBAAa,eAAe;IAWd,OAAO,CAAC,OAAO;IAAU,OAAO,CAAC,MAAM;IAVnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAGtB;IACP,OAAO,CAAC,QAAQ,CAAC,YAAY,CACxB;IAEL,OAAO,CAAC,OAAO,CAAU;gBAEL,OAAO,EAAE,MAAM,EAAU,MAAM,EAAE,KAAK;IAgD1D,IAAI,MAAM,WAET;IAED,IAAI,MAAM,WAET;IAED,IAAI,KAAK,eAER;IAED,OAAO,CAAC,eAAe;IAuBvB,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,OAAO;IAWf,UAAU;IAKV,sBAAsB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM;IAK3D,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM;IAKpD,SAAS,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAK7D,SAAS,CAAC,MAAM,EAAE,UAAU;IAW5B,YAAY,CAAC,MAAM,EAAE,UAAU;IAe/B,MAAM;IAON,IAAI;CAKL"}
@@ -132,10 +132,13 @@ var WorldManagement = /** @class */ (function () {
132
132
  WorldManagement.prototype.removeEntity = function (entity) {
133
133
  if (entity instanceof Entity) {
134
134
  World.remove(this.engine.world, entity.body);
135
- for (var _i = 0, _a = entity.children; _i < _a.length; _i++) {
136
- var child = _a[_i];
137
- this.removeEntity(child);
138
- }
135
+ }
136
+ for (var _i = 0, _a = entity.children; _i < _a.length; _i++) {
137
+ var child = _a[_i];
138
+ this.removeEntity(child);
139
+ }
140
+ if (entity.parent) {
141
+ entity.parent.unChild(entity);
139
142
  }
140
143
  delete this.entitiesName[entity.name];
141
144
  delete this.entitiesHash[entity.id];
@@ -0,0 +1,5 @@
1
+ export declare enum SoundType {
2
+ ONCE = 0,
3
+ BACKGROUND = 1
4
+ }
5
+ //# sourceMappingURL=export-enums.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-enums.d.ts","sourceRoot":"","sources":["../src/export-enums.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IACnB,IAAI,IAAA;IACJ,UAAU,IAAA;CACX"}
@@ -0,0 +1,5 @@
1
+ export var SoundType;
2
+ (function (SoundType) {
3
+ SoundType[SoundType["ONCE"] = 0] = "ONCE";
4
+ SoundType[SoundType["BACKGROUND"] = 1] = "BACKGROUND";
5
+ })(SoundType || (SoundType = {}));
@@ -2,8 +2,9 @@ import { Entity } from "./classes/entities/entity";
2
2
  import { Sprite } from "./classes/sprites/sprite";
3
3
  import type { Body, IChamferableBodyDefinition } from "matter-js";
4
4
  import { Initialler } from "./export-interfaces";
5
+ import { Sound } from "./classes/sound";
6
+ import { SoundType } from "./export-enums";
5
7
  export type { Collection } from "./classes/p5";
6
- export declare type Sound = HTMLAudioElement;
7
8
  export declare type Avatar = ReturnType<import("./classes/p5").P5["loadImage"]>;
8
9
  export declare type Color = [number, number, number, number?];
9
10
  export declare type EntityPrepare<E extends Entity> = EntityInitial<E>;
@@ -34,4 +35,7 @@ export declare type Configable<C extends Initialler = Initialler> = {
34
35
  } | [{
35
36
  new (): C;
36
37
  }, Configation<C>];
38
+ export declare type SoundManagement = Record<SoundType, {
39
+ canPlay: boolean;
40
+ }>;
37
41
  //# 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;AAEjD,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,oBAAY,KAAK,GAAG,gBAAgB,CAAC;AACrC,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"}
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;CAClB,CACF,CAAC"}
package/lib/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export { Sound } from "./classes/sound";
1
2
  export { P5 } from "./classes/p5";
2
3
  export { ParticleSystem } from "./classes/particle-system";
3
4
  export { Particle } from "./classes/particle";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,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,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,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,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
@@ -1,3 +1,4 @@
1
+ export { Sound } from "./classes/sound";
1
2
  export { P5 } from "./classes/p5";
2
3
  export { ParticleSystem } from "./classes/particle-system";
3
4
  export { Particle } from "./classes/particle";
@@ -1 +1 @@
1
- {"version":3,"file":"SceneRunner.d.ts","sourceRoot":"","sources":["../../src/ui-components/SceneRunner.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAEb,SAAS,EAGV,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGzC,oBAAY,sBAAsB,GAAG;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,aAAK,gBAAgB,GAAG,sBAAsB,GAAG;IAC/C,OAAO,EAAE,KAAK,CAAC;CAChB,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAC1B,WAAW,EACX,OAAO,EACP,KAAK,EACL,MAAM,EACN,YAAY,EAAE,YAAY,GAC3B,EAAE,gBAAgB,eAwClB"}
1
+ {"version":3,"file":"SceneRunner.d.ts","sourceRoot":"","sources":["../../src/ui-components/SceneRunner.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAEb,SAAS,EAIV,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGzC,oBAAY,sBAAsB,GAAG;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,aAAK,gBAAgB,GAAG,sBAAsB,GAAG;IAC/C,OAAO,EAAE,KAAK,CAAC;CAChB,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAC1B,WAAW,EACX,OAAO,EACP,KAAK,EACL,MAAM,EACN,YAAY,EAAE,YAAY,GAC3B,EAAE,gBAAgB,eA+ClB"}
@@ -10,15 +10,17 @@ var __assign = (this && this.__assign) || function () {
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
- import { useEffect, useMemo, } from "react";
13
+ import { useEffect, useMemo, useState, } from "react";
14
14
  import { Sketch } from "./Sketch";
15
15
  export function SceneRunner(_a) {
16
16
  var assetsDelay = _a.assetsDelay, current = _a.current, width = _a.width, height = _a.height, AssetsLoader = _a.assetsLoader;
17
+ var _b = useState(false), isBootDone = _b[0], setBootDone = _b[1];
17
18
  useEffect(function () {
18
19
  current.loadAssets(assetsDelay);
19
20
  }, [current, assetsDelay]);
20
21
  var setup = function (camera) {
21
22
  current.bootstrap(camera);
23
+ setBootDone(true);
22
24
  };
23
25
  var draw = function () {
24
26
  current.action();
@@ -37,5 +39,5 @@ export function SceneRunner(_a) {
37
39
  right: 0,
38
40
  userSelect: "none",
39
41
  zIndex: 2,
40
- } }, { children: _jsx(current.UI, __assign({ scene: current }, current.UIProps)) }))] }))) : (assetsLoader);
42
+ } }, { children: isBootDone ? (_jsx(current.UI, __assign({ scene: current }, current.UIProps))) : (_jsx("div", {})) }))] }))) : (assetsLoader);
41
43
  }
@@ -1,3 +1,4 @@
1
- export { Watcher } from "./classes/watcher";
1
+ export * from "./classes/watcher";
2
+ export * from "./classes/sound-watcher";
2
3
  export { createAssetImage, createAssetSound } from "./utils";
3
4
  //# sourceMappingURL=utilities.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC"}
package/lib/utilities.js CHANGED
@@ -1,2 +1,3 @@
1
- export { Watcher } from "./classes/watcher";
1
+ export * from "./classes/watcher";
2
+ export * from "./classes/sound-watcher";
2
3
  export { createAssetImage, createAssetSound } from "./utils";
package/lib/utils.d.ts CHANGED
@@ -1,6 +1,8 @@
1
- import { Avatar, Sound } from "./export-types";
1
+ import { Sound } from "./classes/sound";
2
+ import { SoundType } from "./export-enums";
3
+ import { Avatar } from "./export-types";
2
4
  export declare function createAssetImage(src: string): Promise<Avatar>;
3
- export declare function createAssetSound(src: string): Promise<Sound>;
5
+ export declare function createAssetSound(src: string, type?: SoundType): Promise<Sound>;
4
6
  export declare function tick(delay?: number): Promise<unknown>;
5
7
  export declare function copyProperties(source: Record<string, any>, target: Record<string, any>): void;
6
8
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAiB/C,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAInE;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAWlE;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"}
package/lib/utils.js CHANGED
@@ -35,6 +35,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
35
35
  }
36
36
  };
37
37
  import OutofScopeP5 from "p5";
38
+ import { Sound } from "./classes/sound";
38
39
  var outofScopeP5;
39
40
  document.addEventListener("DOMContentLoaded", function () {
40
41
  var noop = document.createElement("div");
@@ -56,19 +57,19 @@ export function createAssetImage(src) {
56
57
  });
57
58
  });
58
59
  }
59
- export function createAssetSound(src) {
60
+ export function createAssetSound(src, type) {
60
61
  return __awaiter(this, void 0, void 0, function () {
61
62
  var media;
62
63
  return __generator(this, function (_a) {
63
- media = new Audio();
64
+ media = new Sound(type);
64
65
  return [2 /*return*/, new Promise(function (res, rej) {
65
- media.onloadedmetadata = function () {
66
+ media.native.onloadedmetadata = function () {
66
67
  res(media);
67
68
  };
68
- media.onerror = function (error) {
69
+ media.native.onerror = function (error) {
69
70
  rej(error);
70
71
  };
71
- media.src = src;
72
+ media.native.src = src;
72
73
  })];
73
74
  });
74
75
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-simple-game-engine",
3
- "version": "0.1.44",
3
+ "version": "0.1.47",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib",