custom-pixi-particles 8.15.2 → 8.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,6 +6,7 @@ import AbstractEmission from './AbstractEmission';
6
6
  export default class PersistentFillEmission extends AbstractEmission {
7
7
  _maxParticles: number;
8
8
  _burstPerFrame: number;
9
+ _carry: number;
9
10
  /**
10
11
  * @param deltaTime - unused; API matches other emission controllers
11
12
  * @param particlesCount - current live particle count
@@ -9,6 +9,7 @@ export default class PersistentFillEmission extends AbstractEmission {
9
9
  super(...arguments);
10
10
  this._maxParticles = 0;
11
11
  this._burstPerFrame = 500;
12
+ this._carry = 0;
12
13
  this.getName = () => {
13
14
  return EmissionTypes.PERSISTENT_FILL;
14
15
  };
@@ -21,15 +22,23 @@ export default class PersistentFillEmission extends AbstractEmission {
21
22
  if (particlesCount >= this._maxParticles) {
22
23
  return 0;
23
24
  }
25
+ this._carry += this._burstPerFrame;
26
+ const wholeParticles = Math.floor(this._carry + 1e-9);
27
+ if (wholeParticles <= 0) {
28
+ return 0;
29
+ }
24
30
  const capacity = this._maxParticles - particlesCount;
25
- return Math.min(capacity, this._burstPerFrame);
31
+ const toEmit = Math.min(capacity, wholeParticles);
32
+ this._carry -= toEmit;
33
+ return toEmit;
26
34
  }
27
35
  reset() {
28
- //
36
+ this._carry = 0;
29
37
  }
30
38
  validate() {
31
39
  this._maxParticles = Math.max(0, this._maxParticles);
32
- this._burstPerFrame = Math.max(1, Math.floor(this._burstPerFrame));
40
+ this._burstPerFrame = Math.max(0, this._burstPerFrame);
41
+ this._carry = 0;
33
42
  }
34
43
  set maxParticles(value) {
35
44
  this._maxParticles = Math.max(value, 0);
@@ -38,7 +47,7 @@ export default class PersistentFillEmission extends AbstractEmission {
38
47
  return this._maxParticles;
39
48
  }
40
49
  set burstPerFrame(value) {
41
- this._burstPerFrame = Math.max(1, Math.floor(value));
50
+ this._burstPerFrame = Math.max(value, 0);
42
51
  }
43
52
  get burstPerFrame() {
44
53
  return this._burstPerFrame;
@@ -1 +1 @@
1
- {"version":3,"file":"PersistentFillEmission.js","sourceRoot":"","sources":["../../../src/lib/emission/PersistentFillEmission.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,oBAAoB,CAAA;AACjD,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAE3C;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,gBAAgB;IAApE;;QACE,kBAAa,GAAG,CAAC,CAAA;QACjB,mBAAc,GAAG,GAAG,CAAA;QAuCpB,YAAO,GAAG,GAAG,EAAE;YACb,OAAO,aAAa,CAAC,eAAe,CAAA;QACtC,CAAC,CAAA;IACH,CAAC;IAxCC;;;OAGG;IACH,OAAO,CAAC,UAAkB,EAAE,cAAsB;QAChD,IAAI,cAAc,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACzC,OAAO,CAAC,CAAA;QACV,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,GAAG,cAAc,CAAA;QACpD,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;IAChD,CAAC;IAED,KAAK;QACH,EAAE;IACJ,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QACpD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAA;IACpE,CAAC;IAED,IAAI,YAAY,CAAC,KAAa;QAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IACzC,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAA;IAC3B,CAAC;IAED,IAAI,aAAa,CAAC,KAAa;QAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IACtD,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAA;IAC5B,CAAC;CAKF"}
1
+ {"version":3,"file":"PersistentFillEmission.js","sourceRoot":"","sources":["../../../src/lib/emission/PersistentFillEmission.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,oBAAoB,CAAA;AACjD,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAE3C;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,gBAAgB;IAApE;;QACE,kBAAa,GAAG,CAAC,CAAA;QACjB,mBAAc,GAAG,GAAG,CAAA;QACpB,WAAM,GAAG,CAAC,CAAA;QAiDV,YAAO,GAAG,GAAG,EAAE;YACb,OAAO,aAAa,CAAC,eAAe,CAAA;QACtC,CAAC,CAAA;IACH,CAAC;IAlDC;;;OAGG;IACH,OAAO,CAAC,UAAkB,EAAE,cAAsB;QAChD,IAAI,cAAc,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACzC,OAAO,CAAC,CAAA;QACV,CAAC;QAED,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,CAAA;QAClC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;QACrD,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,CAAA;QACV,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,GAAG,cAAc,CAAA;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAA;QACjD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAA;QACrB,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;IACjB,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QACpD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;QACtD,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;IACjB,CAAC;IAED,IAAI,YAAY,CAAC,KAAa;QAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IACzC,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAA;IAC3B,CAAC;IAED,IAAI,aAAa,CAAC,KAAa;QAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAA;IAC5B,CAAC;CAKF"}
package/package.json CHANGED
@@ -51,5 +51,5 @@
51
51
  "lint:fix": "tslint --fix 'src/**/*.ts'",
52
52
  "test": "vitest run"
53
53
  },
54
- "version": "8.15.2"
54
+ "version": "8.16.0"
55
55
  }