custom-pixi-particles 4.21.0 → 4.23.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.
@@ -207,6 +207,11 @@ export default class Particle {
207
207
  initialDirectionSin: number;
208
208
  velocityScale: number;
209
209
  rotationAcceleration: number;
210
+ pathTime: number;
211
+ moveToPointInitialX: number;
212
+ moveToPointInitialY: number;
213
+ moveToPointTotalDistance: number;
214
+ moveToPointAccumulatedLinearDistance: number;
210
215
  /**
211
216
  * Constructs a particle object
212
217
  */
@@ -93,6 +93,12 @@ class Particle {
93
93
  this.initialDirectionSin = 0;
94
94
  this.velocityScale = 1;
95
95
  this.rotationAcceleration = 0;
96
+ this.pathTime = 0; // For behaviours like MoveToPoint sinusoidal path
97
+ // For MoveToPointBehaviour with easing
98
+ this.moveToPointInitialX = 0;
99
+ this.moveToPointInitialY = 0;
100
+ this.moveToPointTotalDistance = 0;
101
+ this.moveToPointAccumulatedLinearDistance = 0;
96
102
  this.reset();
97
103
  }
98
104
  /**
@@ -168,6 +174,11 @@ class Particle {
168
174
  this.initialDirectionSin = 0;
169
175
  this.velocityScale = 1;
170
176
  this.rotationAcceleration = 0;
177
+ this.pathTime = 0;
178
+ this.moveToPointInitialX = 0;
179
+ this.moveToPointInitialY = 0;
180
+ this.moveToPointTotalDistance = 0;
181
+ this.moveToPointAccumulatedLinearDistance = 0;
171
182
  }
172
183
  /**
173
184
  * Checks if the particle is almost dead
@@ -1 +1 @@
1
- {"version":3,"file":"Particle.js","sourceRoot":"","sources":["../../src/lib/Particle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Particle.js","sourceRoot":"","sources":["../../src/lib/Particle.ts"],"names":[],"mappings":"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"}
@@ -66,4 +66,10 @@ export default class EmitterBehaviours {
66
66
  * @param {number} deltaTime The delta time
67
67
  */
68
68
  update: (deltaTime: number) => void;
69
+ /**
70
+ * Called when a particle is removed from the emitter.
71
+ * Allows behaviours to clean up any per-particle state.
72
+ * @param {Particle} particle The particle being removed.
73
+ */
74
+ onParticleRemoved: (particle: Particle) => void;
69
75
  }
@@ -1,3 +1,4 @@
1
+ // src/lib/behaviour/EmitterBehaviours.ts
1
2
  // tslint:disable:prefer-for-of
2
3
  /**
3
4
  * EmitterBehaviours class manages the behaviour of particles
@@ -111,6 +112,18 @@ export default class EmitterBehaviours {
111
112
  this.behaviours[i].update(deltaTime);
112
113
  }
113
114
  };
115
+ /**
116
+ * Called when a particle is removed from the emitter.
117
+ * Allows behaviours to clean up any per-particle state.
118
+ * @param {Particle} particle The particle being removed.
119
+ */
120
+ this.onParticleRemoved = (particle) => {
121
+ for (let i = 0; i < this.behaviours.length; ++i) {
122
+ if (typeof this.behaviours[i].onParticleRemoved === 'function') {
123
+ this.behaviours[i].onParticleRemoved(particle);
124
+ }
125
+ }
126
+ };
114
127
  }
115
128
  }
116
129
  //# sourceMappingURL=EmitterBehaviours.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmitterBehaviours.js","sourceRoot":"","sources":["../../../src/lib/behaviour/EmitterBehaviours.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EmitterBehaviours.js","sourceRoot":"","sources":["../../../src/lib/behaviour/EmitterBehaviours.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import Particle from '../Particle';
3
3
  import { Point } from '../util';
4
4
  /**
5
5
  * MoveToPointBehaviour makes particles move towards a specified target point
6
- * when active.
6
+ * when active, with options for different path types and easing.
7
7
  * @extends Behaviour
8
8
  */
9
9
  export default class MoveToPointBehaviour extends Behaviour {
@@ -36,30 +36,48 @@ export default class MoveToPointBehaviour extends Behaviour {
36
36
  * PositionBehaviour is 100, EmitDirection is 0. Set to -10 to run after them.
37
37
  */
38
38
  priority: number;
39
- constructor();
40
39
  /**
41
- * Initializes particle properties for the behaviour.
42
- * This behaviour doesn't require specific per-particle initialization at creation time,
43
- * as its effect is mostly global and trigger-based.
44
- * @param {Particle} particle - The particle to initialize.
40
+ * Type of path the particle will follow.
41
+ * 'linear': Straight line to the target.
42
+ * 'sinusoidal': Moves towards the target with a sine wave perpendicular to the path.
45
43
  */
46
- init: (particle: Particle) => void;
44
+ pathType: 'linear' | 'sinusoidal';
47
45
  /**
48
- * Applies the behaviour to the particle. If active, moves the particle
49
- * towards the targetPoint.
50
- * @param {Particle} particle - The particle to apply the behaviour to.
51
- * @param {number} deltaTime - Time elapsed since the last frame.
46
+ * Amplitude of the sine wave for 'sinusoidal' pathType.
52
47
  */
53
- apply: (particle: Particle, deltaTime: number) => void;
48
+ sinusoidalAmplitude: number;
54
49
  /**
55
- * Gets the name of the behaviour.
56
- * @returns {string} - The name of the behaviour.
50
+ * Frequency of the sine wave for 'sinusoidal' pathType (in radians per unit of pathTime).
57
51
  */
58
- getName(): string;
52
+ sinusoidalFrequency: number;
59
53
  /**
60
- * Gets the properties of the behaviour for configuration.
61
- * @returns {object} - The properties of the behaviour.
54
+ * Easing function to apply to the particle's movement towards the target.
55
+ * Examples: 'linear', 'back.in', 'back.out', 'back.inOut', 'power1.in', 'power1.out', 'power1.inOut',
56
+ * 'bounce.in', 'bounce.out', 'bounce.inOut', 'elastic.in', 'elastic.out', 'elastic.inOut', 'steps'
62
57
  */
58
+ pathEasing: string;
59
+ private _wasActiveLastFrame;
60
+ private _lastTargetPoint;
61
+ constructor();
62
+ init: (particle: Particle) => void;
63
+ private _initializeParticleForMove;
64
+ apply: (particle: Particle, deltaTime: number) => void;
65
+ onParticleRemoved: (particle: Particle) => void;
66
+ private _applyEasing;
67
+ private _easeBackInOut;
68
+ private _easeBackIn;
69
+ private _easeBackOut;
70
+ private _easePower1In;
71
+ private _easePower1Out;
72
+ private _easePower1InOut;
73
+ private _easeBounceIn;
74
+ private _easeBounceOut;
75
+ private _easeBounceInOut;
76
+ private _easeElasticIn;
77
+ private _easeElasticOut;
78
+ private _easeElasticInOut;
79
+ private _easeSteps;
80
+ getName(): string;
63
81
  getProps(): {
64
82
  enabled: boolean;
65
83
  active: boolean;
@@ -72,6 +90,10 @@ export default class MoveToPointBehaviour extends Behaviour {
72
90
  resetMaxLifeTime: boolean;
73
91
  arrivalThreshold: number;
74
92
  priority: number;
93
+ pathType: "linear" | "sinusoidal";
94
+ sinusoidalAmplitude: number;
95
+ sinusoidalFrequency: number;
96
+ pathEasing: string;
75
97
  name: string;
76
98
  };
77
99
  }
@@ -1,8 +1,9 @@
1
+ // src/lib/behaviour/MoveToPointBehaviour.ts
1
2
  import { Behaviour, BehaviourNames } from './index';
2
3
  import { Point } from '../util';
3
4
  /**
4
5
  * MoveToPointBehaviour makes particles move towards a specified target point
5
- * when active.
6
+ * when active, with options for different path types and easing.
6
7
  * @extends Behaviour
7
8
  */
8
9
  export default class MoveToPointBehaviour extends Behaviour {
@@ -38,106 +39,255 @@ export default class MoveToPointBehaviour extends Behaviour {
38
39
  */
39
40
  this.priority = -10;
40
41
  /**
41
- * Initializes particle properties for the behaviour.
42
- * This behaviour doesn't require specific per-particle initialization at creation time,
43
- * as its effect is mostly global and trigger-based.
44
- * @param {Particle} particle - The particle to initialize.
42
+ * Type of path the particle will follow.
43
+ * 'linear': Straight line to the target.
44
+ * 'sinusoidal': Moves towards the target with a sine wave perpendicular to the path.
45
45
  */
46
- this.init = (particle) => {
47
- // No particle-specific setup needed when it's created,
48
- // as the movement is controlled by the 'active' state of the behaviour.
49
- };
46
+ this.pathType = 'linear';
47
+ /**
48
+ * Amplitude of the sine wave for 'sinusoidal' pathType.
49
+ */
50
+ this.sinusoidalAmplitude = 20;
51
+ /**
52
+ * Frequency of the sine wave for 'sinusoidal' pathType (in radians per unit of pathTime).
53
+ */
54
+ this.sinusoidalFrequency = 5;
50
55
  /**
51
- * Applies the behaviour to the particle. If active, moves the particle
52
- * towards the targetPoint.
53
- * @param {Particle} particle - The particle to apply the behaviour to.
54
- * @param {number} deltaTime - Time elapsed since the last frame.
56
+ * Easing function to apply to the particle's movement towards the target.
57
+ * Examples: 'linear', 'back.in', 'back.out', 'back.inOut', 'power1.in', 'power1.out', 'power1.inOut',
58
+ * 'bounce.in', 'bounce.out', 'bounce.inOut', 'elastic.in', 'elastic.out', 'elastic.inOut', 'steps'
55
59
  */
60
+ this.pathEasing = 'linear'; // Default to linear
61
+ // Internal state
62
+ this._wasActiveLastFrame = new Map();
63
+ this._lastTargetPoint = new Point(0, 0);
64
+ this.init = (particle) => {
65
+ // Particle properties are reset in Particle.reset()
66
+ };
56
67
  this.apply = (particle, deltaTime) => {
57
- if (!this.enabled || !this.active) {
58
- // If the behaviour is not enabled or not active, do nothing.
59
- // The particle will continue its movement based on other behaviours.
68
+ var _a;
69
+ if (!this.enabled) {
70
+ if (this._wasActiveLastFrame.has(particle.uid)) {
71
+ this._wasActiveLastFrame.delete(particle.uid);
72
+ }
60
73
  return;
61
74
  }
62
- // If the particle is already considered dead by other means, don't process further.
63
- if (particle.isDead()) {
75
+ const isActiveThisFrame = this.active;
76
+ const wasActivePreviously = (_a = this._wasActiveLastFrame.get(particle.uid)) !== null && _a !== void 0 ? _a : false;
77
+ const targetChanged = this.targetPoint.x !== this._lastTargetPoint.x || this.targetPoint.y !== this._lastTargetPoint.y;
78
+ if (targetChanged) {
79
+ this._lastTargetPoint.copyFrom(this.targetPoint);
80
+ }
81
+ if (!isActiveThisFrame) {
82
+ if (wasActivePreviously) {
83
+ this._wasActiveLastFrame.set(particle.uid, false);
84
+ particle.moveToPointAccumulatedLinearDistance = 0;
85
+ particle.moveToPointTotalDistance = 0;
86
+ particle.pathTime = 0;
87
+ }
64
88
  return;
65
89
  }
66
- const dx = this.targetPoint.x - particle.x;
67
- const dy = this.targetPoint.y - particle.y;
68
- const distance = Math.sqrt(dx * dx + dy * dy);
69
- // When this behaviour is active, it takes full control of the particle's position.
70
- // We also zero out current velocity and acceleration to prevent interference
71
- // from other behaviours for this frame's positioning.
72
- particle.velocity.set(0, 0);
73
- particle.acceleration.set(0, 0);
74
- // If particle is already at or very close to the target
75
- if (distance < this.arrivalThreshold) {
90
+ if (!wasActivePreviously || (isActiveThisFrame && targetChanged)) {
91
+ this._initializeParticleForMove(particle);
92
+ }
93
+ this._wasActiveLastFrame.set(particle.uid, true);
94
+ // If already very close to the target at the start of this frame (before any movement this frame)
95
+ // Or if the total distance to cover was 0 from the start
96
+ if (particle.moveToPointTotalDistance < this.arrivalThreshold) {
76
97
  particle.x = this.targetPoint.x;
77
98
  particle.y = this.targetPoint.y;
78
99
  if (this.killOnArrival) {
79
- // Mark the particle as dead. The Emitter will pick this up and remove it.
80
- // Ensure maxLifeTime is positive; otherwise, this won't "kill" it effectively.
81
100
  if (particle.maxLifeTime > 0) {
82
101
  particle.lifeTime = particle.maxLifeTime;
83
- if (this.resetMaxLifeTime) {
102
+ if (this.resetMaxLifeTime)
84
103
  particle.maxLifeTime = 0;
85
- }
86
- }
87
- else {
88
- // If maxLifeTime is 0 or negative (infinite),
89
- // we can't use it to kill. Consider an alternative
90
- // or ensure particles using this feature have a finite life.
91
- // For now, we'll just set it to a high value, but ideally,
92
- // this feature is for particles with defined lifespans.
93
- // Or, one could introduce a specific "killNow" flag on the particle
94
- // if the Emitter was modified to check for it.
95
- // Simplest for now is to rely on a positive maxLifeTime.
96
- // If maxLifeTime is not > 0, the particle won't be "killed" by this mechanism.
97
104
  }
98
105
  }
106
+ particle.movement.x = particle.x;
107
+ particle.movement.y = particle.y;
108
+ return; // Already arrived or no distance to cover
109
+ }
110
+ particle.velocity.set(0, 0);
111
+ particle.acceleration.set(0, 0);
112
+ const moveAmount = this.speed * deltaTime;
113
+ particle.moveToPointAccumulatedLinearDistance += moveAmount;
114
+ let normalizedProgress = particle.moveToPointTotalDistance > 0
115
+ ? particle.moveToPointAccumulatedLinearDistance / particle.moveToPointTotalDistance
116
+ : 1;
117
+ // Ensure progress doesn't exceed 1.0 before easing, which could cause overshooting with certain eases.
118
+ normalizedProgress = Math.min(1.0, normalizedProgress);
119
+ const easedProgress = this._applyEasing(normalizedProgress, this.pathEasing);
120
+ // Calculate the position on the straight line path based on eased progress
121
+ let currentXOnLine = particle.moveToPointInitialX + (this.targetPoint.x - particle.moveToPointInitialX) * easedProgress;
122
+ let currentYOnLine = particle.moveToPointInitialY + (this.targetPoint.y - particle.moveToPointInitialY) * easedProgress;
123
+ // Apply sinusoidal offset if applicable and the linear journey is not yet complete
124
+ if (this.pathType === 'sinusoidal' && normalizedProgress < 1.0) {
125
+ const dirToTargetX = (this.targetPoint.x - particle.moveToPointInitialX) / particle.moveToPointTotalDistance;
126
+ const dirToTargetY = (this.targetPoint.y - particle.moveToPointInitialY) / particle.moveToPointTotalDistance;
127
+ const perpDx = -dirToTargetY; // Perpendicular vector component
128
+ const perpDy = dirToTargetX; // Perpendicular vector component
129
+ // The sinusoidal offset should diminish as it approaches the target
130
+ // We can scale the amplitude by (1 - easedProgress) or (1 - normalizedProgress)
131
+ // Using (1 - normalizedProgress) makes the wave die out more linearly with distance.
132
+ const diminishingFactor = Math.max(0, 1 - normalizedProgress); // Ensure factor is not negative
133
+ const currentAmplitude = this.sinusoidalAmplitude * diminishingFactor;
134
+ const sinMagnitude = currentAmplitude * Math.sin(particle.pathTime * this.sinusoidalFrequency);
135
+ particle.x = currentXOnLine + perpDx * sinMagnitude;
136
+ particle.y = currentYOnLine + perpDy * sinMagnitude;
137
+ particle.pathTime += deltaTime; // Advance sinusoidal path time
99
138
  }
100
139
  else {
101
- const moveAmount = this.speed * deltaTime;
102
- if (moveAmount >= distance) {
103
- // If the movement step is enough to reach the target, snap to target
104
- particle.x = this.targetPoint.x;
105
- particle.y = this.targetPoint.y;
106
- if (this.killOnArrival) {
107
- if (particle.maxLifeTime > 0) {
108
- particle.lifeTime = particle.maxLifeTime;
109
- if (this.resetMaxLifeTime) {
110
- particle.maxLifeTime = 0;
111
- }
112
- }
140
+ // For linear path, or if sinusoidal path has "completed" its linear component
141
+ particle.x = currentXOnLine;
142
+ particle.y = currentYOnLine;
143
+ }
144
+ // Final Arrival Snap and State Reset
145
+ // This check is based on the linear progress.
146
+ if (normalizedProgress >= 1.0) {
147
+ particle.x = this.targetPoint.x; // Snap precisely to target
148
+ particle.y = this.targetPoint.y;
149
+ particle.moveToPointAccumulatedLinearDistance = 0;
150
+ particle.moveToPointTotalDistance = 0;
151
+ particle.pathTime = 0;
152
+ if (this.killOnArrival) {
153
+ if (particle.maxLifeTime > 0) {
154
+ particle.lifeTime = particle.maxLifeTime;
155
+ if (this.resetMaxLifeTime)
156
+ particle.maxLifeTime = 0;
113
157
  }
114
158
  }
115
- else {
116
- // Move towards the target
117
- particle.x += (dx / distance) * moveAmount;
118
- particle.y += (dy / distance) * moveAmount;
119
- }
120
159
  }
121
- // Sync particle.movement to the new x, y. This helps if this behaviour
122
- // becomes inactive, allowing other behaviours like PositionBehaviour
123
- // to resume more smoothly from the particle's current position.
124
160
  particle.movement.x = particle.x;
125
161
  particle.movement.y = particle.y;
126
162
  };
127
- // Ensure targetPoint is initialized as a Point instance for copyFromRawData in parser
163
+ this.onParticleRemoved = (particle) => {
164
+ this._wasActiveLastFrame.delete(particle.uid);
165
+ };
128
166
  this.targetPoint = new Point(0, 0);
167
+ this._lastTargetPoint.copyFrom(this.targetPoint);
168
+ }
169
+ _initializeParticleForMove(particle) {
170
+ particle.moveToPointInitialX = particle.x;
171
+ particle.moveToPointInitialY = particle.y;
172
+ const dx = this.targetPoint.x - particle.moveToPointInitialX;
173
+ const dy = this.targetPoint.y - particle.moveToPointInitialY;
174
+ particle.moveToPointTotalDistance = Math.sqrt(dx * dx + dy * dy);
175
+ particle.moveToPointAccumulatedLinearDistance = 0;
176
+ particle.pathTime = 0; // Reset for sinusoidal path as well
177
+ }
178
+ _applyEasing(t, easeType) {
179
+ // Ensure t is clamped between 0 and 1 before applying easing
180
+ const clampedT = Math.max(0, Math.min(1, t));
181
+ switch (easeType) {
182
+ case 'back.in':
183
+ return this._easeBackIn(clampedT);
184
+ case 'back.out':
185
+ return this._easeBackOut(clampedT);
186
+ case 'back.inOut':
187
+ return this._easeBackInOut(clampedT);
188
+ case 'power1.in':
189
+ return this._easePower1In(clampedT);
190
+ case 'power1.out':
191
+ return this._easePower1Out(clampedT);
192
+ case 'power1.inOut':
193
+ return this._easePower1InOut(clampedT);
194
+ case 'bounce.in':
195
+ return this._easeBounceIn(clampedT);
196
+ case 'bounce.out':
197
+ return this._easeBounceOut(clampedT);
198
+ case 'bounce.inOut':
199
+ return this._easeBounceInOut(clampedT);
200
+ case 'elastic.in':
201
+ return this._easeElasticIn(clampedT);
202
+ case 'elastic.out':
203
+ return this._easeElasticOut(clampedT);
204
+ case 'elastic.inOut':
205
+ return this._easeElasticInOut(clampedT);
206
+ case 'steps':
207
+ return this._easeSteps(clampedT);
208
+ case 'linear':
209
+ default:
210
+ return clampedT;
211
+ }
212
+ }
213
+ _easeBackInOut(t, c1 = 1.70158, c2 = c1 * 1.525) {
214
+ return t < 0.5
215
+ ? (Math.pow(2 * t, 2) * ((c2 + 1) * 2 * t - c2)) / 2
216
+ : (Math.pow(2 * t - 2, 2) * ((c2 + 1) * (t * 2 - 2) + c2) + 2) / 2;
217
+ }
218
+ _easeBackIn(t, c1 = 1.70158) {
219
+ return t * t * ((c1 + 1) * t - c1);
220
+ }
221
+ _easeBackOut(t, c1 = 1.70158) {
222
+ const tInv = t - 1;
223
+ return tInv * tInv * ((c1 + 1) * tInv + c1) + 1;
224
+ }
225
+ _easePower1In(t) {
226
+ return t;
227
+ }
228
+ _easePower1Out(t) {
229
+ return t; // Linear
230
+ }
231
+ _easePower1InOut(t) {
232
+ return t < 0.5 ? 2 * t * t : 1 - Math.pow(-2 * t + 2, 2) / 2;
233
+ }
234
+ _easeBounceIn(t) {
235
+ return 1 - this._easeBounceOut(1 - t);
236
+ }
237
+ _easeBounceOut(t) {
238
+ const n1 = 7.5625;
239
+ const d1 = 2.75;
240
+ if (t < 1 / d1) {
241
+ return n1 * t * t;
242
+ }
243
+ else if (t < 2 / d1) {
244
+ return n1 * (t -= 1.5 / d1) * t + 0.75;
245
+ }
246
+ else if (t < 2.5 / d1) {
247
+ return n1 * (t -= 2.25 / d1) * t + 0.9375;
248
+ }
249
+ else {
250
+ return n1 * (t -= 2.625 / d1) * t + 0.984375;
251
+ }
252
+ }
253
+ _easeBounceInOut(t) {
254
+ return t < 0.5 ? (1 - this._easeBounceOut(1 - 2 * t)) / 2 : (1 + this._easeBounceOut(2 * t - 1)) / 2;
255
+ }
256
+ _easeElasticIn(t, amplitude = 1, period = 0.3) {
257
+ if (t === 0)
258
+ return 0;
259
+ if (t === 1)
260
+ return 1;
261
+ const s = (period / (2 * Math.PI)) * Math.asin(1 / amplitude);
262
+ return -(amplitude * Math.pow(2, 10 * (t -= 1)) * Math.sin(((t - s) * (2 * Math.PI)) / period));
263
+ }
264
+ _easeElasticOut(t, amplitude = 1, period = 0.3) {
265
+ if (t === 0)
266
+ return 0;
267
+ if (t === 1)
268
+ return 1;
269
+ const s = (period / (2 * Math.PI)) * Math.asin(1 / amplitude);
270
+ return amplitude * Math.pow(2, -10 * t) * Math.sin(((t - s) * (2 * Math.PI)) / period) + 1;
271
+ }
272
+ _easeElasticInOut(t, amplitude = 1, period = 0.45) {
273
+ if (t === 0)
274
+ return 0;
275
+ if (t === 1)
276
+ return 1;
277
+ const s = (period / (2 * Math.PI)) * Math.asin(1 / amplitude);
278
+ if ((t *= 2) < 1) {
279
+ return -0.5 * (amplitude * Math.pow(2, 10 * (t -= 1)) * Math.sin(((t - s) * (2 * Math.PI)) / period));
280
+ }
281
+ return amplitude * Math.pow(2, -10 * (t -= 1)) * Math.sin(((t - s) * (2 * Math.PI)) / period) * 0.5 + 1;
282
+ }
283
+ _easeSteps(t, numSteps = 12) {
284
+ const stepSize = 1 / numSteps;
285
+ const stepIndex = Math.floor(t / stepSize);
286
+ return Math.min(stepIndex * stepSize, 1.0);
129
287
  }
130
- /**
131
- * Gets the name of the behaviour.
132
- * @returns {string} - The name of the behaviour.
133
- */
134
288
  getName() {
135
289
  return BehaviourNames.MOVE_TO_POINT_BEHAVIOUR;
136
290
  }
137
- /**
138
- * Gets the properties of the behaviour for configuration.
139
- * @returns {object} - The properties of the behaviour.
140
- */
141
291
  getProps() {
142
292
  return {
143
293
  enabled: this.enabled,
@@ -148,6 +298,10 @@ export default class MoveToPointBehaviour extends Behaviour {
148
298
  resetMaxLifeTime: this.resetMaxLifeTime,
149
299
  arrivalThreshold: this.arrivalThreshold,
150
300
  priority: this.priority,
301
+ pathType: this.pathType,
302
+ sinusoidalAmplitude: this.sinusoidalAmplitude,
303
+ sinusoidalFrequency: this.sinusoidalFrequency,
304
+ pathEasing: this.pathEasing,
151
305
  name: this.getName(),
152
306
  };
153
307
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MoveToPointBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/MoveToPointBehaviour.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MoveToPointBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/MoveToPointBehaviour.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
+ // src/lib/emitter/Emitter.ts
10
11
  import Duration from './Duration';
11
12
  import { EmitterBehaviours } from '../behaviour';
12
13
  import eventemitter3 from 'eventemitter3';
@@ -107,6 +108,7 @@ class Emitter extends eventemitter3 {
107
108
  */
108
109
  removeParticle(particle) {
109
110
  this.emit(Emitter.REMOVE, particle);
111
+ this.behaviours.onParticleRemoved(particle); // Notify behaviours
110
112
  this.list.remove(particle);
111
113
  particle.reset();
112
114
  ParticlePool.global.push(particle);
@@ -1 +1 @@
1
- {"version":3,"file":"Emitter.js","sourceRoot":"","sources":["../../../src/lib/emitter/Emitter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Emitter.js","sourceRoot":"","sources":["../../../src/lib/emitter/Emitter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -42,5 +42,5 @@
42
42
  "lint": "tslint 'src/**/*.ts'",
43
43
  "lint:fix": "tslint --fix 'src/**/*.ts'"
44
44
  },
45
- "version": "4.21.0"
45
+ "version": "4.23.0"
46
46
  }