react-simple-game-engine 0.1.42 → 0.1.45

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,24 +1,30 @@
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> {
6
7
  camera: Camera;
7
- readonly tag: string;
8
8
  readonly id: string;
9
9
  private _layerIndex;
10
10
  private _name;
11
11
  private _scene;
12
12
  private _worldManagement;
13
- constructor();
13
+ private _children;
14
+ private _parent?;
14
15
  abstract update(): void;
15
16
  abstract draw(): void;
17
+ get children(): EntitySult<any>[];
16
18
  get layerIndex(): number;
17
19
  get name(): string;
18
20
  set layerIndex(_layerIndex: number);
19
21
  set name(_name: string);
22
+ get parent(): EntitySult<any> | undefined;
20
23
  get scene(): Scene<any>;
21
24
  get worldManagement(): WorldManagement;
25
+ addChild(target: EntitySult | LogicComponent<EntitySult>): void;
26
+ removeChild(entity: EntitySult): void;
27
+ unChild(entity: EntitySult): void;
22
28
  getProperty<T>(name: string): T;
23
29
  preInitial(worldManagement: WorldManagement): void;
24
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,GAAG,EAAG,MAAM,CAAC;IAC7B,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;;IAM3C,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,8 +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.tag = this.constructor.tag;
6
+ this._children = [];
7
7
  }
8
+ Object.defineProperty(EntitySult.prototype, "children", {
9
+ get: function () {
10
+ return this._children;
11
+ },
12
+ enumerable: false,
13
+ configurable: true
14
+ });
8
15
  Object.defineProperty(EntitySult.prototype, "layerIndex", {
9
16
  get: function () {
10
17
  return this._layerIndex;
@@ -38,6 +45,13 @@ var EntitySult = /** @class */ (function () {
38
45
  enumerable: false,
39
46
  configurable: true
40
47
  });
48
+ Object.defineProperty(EntitySult.prototype, "parent", {
49
+ get: function () {
50
+ return this._parent;
51
+ },
52
+ enumerable: false,
53
+ configurable: true
54
+ });
41
55
  Object.defineProperty(EntitySult.prototype, "scene", {
42
56
  get: function () {
43
57
  return this._scene;
@@ -52,6 +66,24 @@ var EntitySult = /** @class */ (function () {
52
66
  enumerable: false,
53
67
  configurable: true
54
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
+ };
55
87
  EntitySult.prototype.getProperty = function (name) {
56
88
  return this[name];
57
89
  };
@@ -66,7 +98,7 @@ var EntitySult = /** @class */ (function () {
66
98
  this._scene = worldManagement.scene;
67
99
  this.camera = worldManagement.camera;
68
100
  }
69
- console.log("Active ".concat(this.tag, " entity (name : ").concat(this._name, ")"));
101
+ console.log("Active entity (name : ".concat(this._name, ")"));
70
102
  this.onActive();
71
103
  };
72
104
  EntitySult.prototype.onActive = function () { };
@@ -11,7 +11,6 @@ declare type TerminateOptions = {
11
11
  export declare abstract class Entity<P extends Record<string, any> = Record<string, any>> extends EntitySult<EntityInitial<Entity>> {
12
12
  private _body;
13
13
  private _sprite;
14
- private _children;
15
14
  private _props;
16
15
  private timerJobListeners;
17
16
  private isTerminate;
@@ -21,7 +20,6 @@ export declare abstract class Entity<P extends Record<string, any> = Record<stri
21
20
  get sprite(): Sprite<any>;
22
21
  get position(): Matter.Vector;
23
22
  get body(): MasterBody;
24
- get children(): EntitySult<any>[];
25
23
  get props(): P;
26
24
  /**
27
25
  * @param {TerminateOptions} options
@@ -31,14 +29,11 @@ export declare abstract class Entity<P extends Record<string, any> = Record<stri
31
29
  */
32
30
  terminate(options?: TerminateOptions): void;
33
31
  /**
34
- * @param {string} name
35
32
  * @param {number} interval in seconds
36
33
  * @param {TimerJobListener} job function that run per #interval
37
34
  * @void
38
35
  */
39
- onTimer(name: string, interval: number, job: TimerJobListener, defaultRun?: boolean): void;
40
- addChild(target: EntitySult | LogicComponent<EntitySult>): void;
41
- removeChild(entity: EntitySult): void;
36
+ onTimer(interval: number, job: TimerJobListener, defaultRun?: boolean): () => void;
42
37
  createBody(transform: CreateBodyDefine["transform"], options?: CreateBodyDefine["bodyOptions"]): MasterBody;
43
38
  protected abstract onCreateBody(transform: CreateBodyDefine["transform"], options?: CreateBodyDefine["bodyOptions"]): Matter.Body;
44
39
  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,CAQlB;IACP,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;;;;;OAKG;IACH,OAAO,CACL,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,gBAAgB,EACrB,UAAU,UAAQ;IAcpB,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;IAiBN,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,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,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,9 +43,8 @@ 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
- _this.timerJobListeners = {};
47
+ _this.timerJobListeners = [];
49
48
  _this.isTerminate = false;
50
49
  _this.enabledGravity = true;
51
50
  return _this;
@@ -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;
@@ -114,38 +106,26 @@ var Entity = /** @class */ (function (_super) {
114
106
  }
115
107
  };
116
108
  /**
117
- * @param {string} name
118
109
  * @param {number} interval in seconds
119
110
  * @param {TimerJobListener} job function that run per #interval
120
111
  * @void
121
112
  */
122
- Entity.prototype.onTimer = function (name, interval, job, defaultRun) {
113
+ Entity.prototype.onTimer = function (interval, job, defaultRun) {
114
+ var _this = this;
123
115
  if (defaultRun === void 0) { defaultRun = false; }
124
- if (!this.timerJobListeners[name]) {
125
- this.timerJobListeners[name] = {
126
- timeCounter: 0,
127
- interval: interval,
128
- job: job,
129
- defaultRun: defaultRun,
130
- };
131
- }
132
- else {
133
- console.warn("Job with name ".concat(name, " is already assigned"));
134
- }
135
- };
136
- Entity.prototype.addChild = function (target) {
137
- var entity = target instanceof EntitySult
138
- ? target
139
- : target.output({ worldManagement: this.worldManagement });
140
- this.children.push(entity);
141
- this.worldManagement.addEntity(entity);
142
- };
143
- Entity.prototype.removeChild = function (entity) {
144
- var delIndex = this.children.indexOf(entity);
145
- if (delIndex > -1) {
146
- this.children.splice(delIndex, 1);
147
- this.worldManagement.removeEntity(entity);
148
- }
116
+ var listener = {
117
+ timeCounter: 0,
118
+ interval: interval,
119
+ job: job,
120
+ defaultRun: defaultRun,
121
+ };
122
+ this.timerJobListeners.push(listener);
123
+ return function () {
124
+ var index = _this.timerJobListeners.indexOf(listener);
125
+ if (index > -1) {
126
+ _this.timerJobListeners.splice(index, 1);
127
+ }
128
+ };
149
129
  };
150
130
  Entity.prototype.createBody = function (transform, options) {
151
131
  this._body = this.onCreateBody(transform, options);
@@ -174,15 +154,16 @@ var Entity = /** @class */ (function (_super) {
174
154
  if (!this.isTerminate) {
175
155
  this.onUpdate();
176
156
  }
177
- for (var name_1 in this.timerJobListeners) {
178
- var _a = this.timerJobListeners[name_1], timeCounter = _a.timeCounter, interval = _a.interval, job = _a.job, defaultRun = _a.defaultRun;
157
+ for (var _i = 0, _a = this.timerJobListeners; _i < _a.length; _i++) {
158
+ var jobListener = _a[_i];
159
+ var timeCounter = jobListener.timeCounter, interval = jobListener.interval, job = jobListener.job, defaultRun = jobListener.defaultRun;
179
160
  if (defaultRun || timeCounter / 1000 >= interval) {
180
161
  timeCounter = 0;
181
162
  job();
182
- this.timerJobListeners[name_1].defaultRun = false;
163
+ jobListener.defaultRun = false;
183
164
  }
184
165
  timeCounter += Renderer.deltaTime;
185
- this.timerJobListeners[name_1].timeCounter = timeCounter;
166
+ jobListener.timeCounter = timeCounter;
186
167
  }
187
168
  };
188
169
  Entity.prototype.onUpdate = function () { };
@@ -1 +1 @@
1
- {"version":3,"file":"particle-system.d.ts","sourceRoot":"","sources":["../../src/classes/particle-system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,aAAK,aAAa,GAAG;IACnB,KAAK,GAAG,IAAI,EAAE,qBAAqB,CAAC,OAAO,QAAQ,CAAC,GAAG,QAAQ,CAAC;CACjE,CAAC;AAEF,aAAK,eAAe,GAAG,IAAI,CACzB,qBAAqB,EACrB,KAAK,GAAG,OAAO,GAAG,QAAQ,CAC3B,GAAG;IACF,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,aAAK,2BAA2B,GAAG;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,qBACa,cAAe,SAAQ,UAAU,CAAC,2BAA2B,CAAC;IACzE,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,eAAe,CAGrB;IACF,OAAO,CAAC,aAAa,CAA2B;IAEzC,gBAAgB,EAAE,MAAM,CAAM;IAC9B,SAAS,EAAE,MAAM,CAAK;IAE7B,OAAO,CAAC,EACN,MAAM,EACN,eAAoB,EACpB,GAAG,MAAM,EACV,EAAE,2BAA2B;IAS9B,MAAM;IAyBN,IAAI;CAKL"}
1
+ {"version":3,"file":"particle-system.d.ts","sourceRoot":"","sources":["../../src/classes/particle-system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,aAAK,aAAa,GAAG;IACnB,KAAK,GAAG,IAAI,EAAE,qBAAqB,CAAC,OAAO,QAAQ,CAAC,GAAG,QAAQ,CAAC;CACjE,CAAC;AAEF,aAAK,eAAe,GAAG,IAAI,CACzB,qBAAqB,EACrB,KAAK,GAAG,OAAO,GAAG,QAAQ,CAC3B,GAAG;IACF,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,aAAK,2BAA2B,GAAG;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,qBAAa,cAAe,SAAQ,UAAU,CAAC,2BAA2B,CAAC;IACzE,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,eAAe,CAGrB;IACF,OAAO,CAAC,aAAa,CAA2B;IAEzC,gBAAgB,EAAE,MAAM,CAAM;IAC9B,SAAS,EAAE,MAAM,CAAK;IAE7B,OAAO,CAAC,EACN,MAAM,EACN,eAAoB,EACpB,GAAG,MAAM,EACV,EAAE,2BAA2B;IAS9B,MAAM;IAyBN,IAAI;CAKL"}
@@ -24,12 +24,6 @@ var __assign = (this && this.__assign) || function () {
24
24
  };
25
25
  return __assign.apply(this, arguments);
26
26
  };
27
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
28
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
29
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
30
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
31
- return c > 3 && r && Object.defineProperty(target, key, r), r;
32
- };
33
27
  var __rest = (this && this.__rest) || function (s, e) {
34
28
  var t = {};
35
29
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -45,7 +39,6 @@ import p5 from "p5";
45
39
  import { copyProperties } from "../utils";
46
40
  import { Particle } from "./particle";
47
41
  import { EntitySult } from "./entities/entity-sult";
48
- import { EntityTag } from "../decorators/entity-tag.decor";
49
42
  var ParticleSystem = /** @class */ (function (_super) {
50
43
  __extends(ParticleSystem, _super);
51
44
  function ParticleSystem() {
@@ -100,9 +93,6 @@ var ParticleSystem = /** @class */ (function (_super) {
100
93
  particle.draw();
101
94
  }
102
95
  };
103
- ParticleSystem = __decorate([
104
- EntityTag("particle-system")
105
- ], ParticleSystem);
106
96
  return ParticleSystem;
107
97
  }(EntitySult));
108
98
  export { ParticleSystem };
@@ -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];
package/lib/index.d.ts CHANGED
@@ -14,7 +14,6 @@ export { Camera } from "./classes/camera";
14
14
  export { Sprite } from "./classes/sprites/sprite";
15
15
  export { AvatarSprite } from "./classes/sprites/avatar.sprite";
16
16
  export { ColorSprite } from "./classes/sprites/color.sprite";
17
- export { EntityTag } from "./decorators/entity-tag.decor";
18
17
  export { SceneTag } from "./decorators/scene-tag.decor";
19
18
  export { SceneUI } from "./decorators/scene-ui.decor";
20
19
  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,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"}
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"}
package/lib/index.js CHANGED
@@ -14,7 +14,6 @@ export { Camera } from "./classes/camera";
14
14
  export { Sprite } from "./classes/sprites/sprite";
15
15
  export { AvatarSprite } from "./classes/sprites/avatar.sprite";
16
16
  export { ColorSprite } from "./classes/sprites/color.sprite";
17
- export { EntityTag } from "./decorators/entity-tag.decor";
18
17
  export { SceneTag } from "./decorators/scene-tag.decor";
19
18
  export { SceneUI } from "./decorators/scene-ui.decor";
20
19
  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.42",
3
+ "version": "0.1.45",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib",
@@ -1,6 +0,0 @@
1
- import { EntitySult } from "../classes/entities/entity-sult";
2
- export declare function EntityTag(tag: string): (target: {
3
- tag?: string;
4
- new (): EntitySult;
5
- }) => void;
6
- //# sourceMappingURL=entity-tag.decor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entity-tag.decor.d.ts","sourceRoot":"","sources":["../../src/decorators/entity-tag.decor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,YACV;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,UAAU,CAAA;CAAE,UAG9D"}
@@ -1,5 +0,0 @@
1
- export function EntityTag(tag) {
2
- return function (target) {
3
- target.tag = tag;
4
- };
5
- }