custom-pixi-particles 5.1.0 → 5.2.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.
Files changed (48) hide show
  1. package/README.md +86 -13
  2. package/dist/index.d.ts +0 -2
  3. package/dist/index.js +0 -19
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/Particle.d.ts +21 -1
  6. package/dist/lib/Particle.js +35 -0
  7. package/dist/lib/Particle.js.map +1 -1
  8. package/dist/lib/behaviour/AngularVelocityBehaviour.d.ts +1 -1
  9. package/dist/lib/behaviour/AngularVelocityBehaviour.js +15 -9
  10. package/dist/lib/behaviour/AngularVelocityBehaviour.js.map +1 -1
  11. package/dist/lib/behaviour/ColorBehaviour.d.ts +0 -4
  12. package/dist/lib/behaviour/ColorBehaviour.js +19 -26
  13. package/dist/lib/behaviour/ColorBehaviour.js.map +1 -1
  14. package/dist/lib/behaviour/EmitDirectionBehaviour.js +3 -2
  15. package/dist/lib/behaviour/EmitDirectionBehaviour.js.map +1 -1
  16. package/dist/lib/behaviour/LifeBehaviour.js +6 -5
  17. package/dist/lib/behaviour/LifeBehaviour.js.map +1 -1
  18. package/dist/lib/behaviour/PositionBehaviour.d.ts +66 -0
  19. package/dist/lib/behaviour/PositionBehaviour.js +396 -78
  20. package/dist/lib/behaviour/PositionBehaviour.js.map +1 -1
  21. package/dist/lib/behaviour/RotationBehaviour.js +4 -0
  22. package/dist/lib/behaviour/RotationBehaviour.js.map +1 -1
  23. package/dist/lib/behaviour/SizeBehaviour.js +26 -15
  24. package/dist/lib/behaviour/SizeBehaviour.js.map +1 -1
  25. package/dist/lib/behaviour/TurbulenceBehaviour.js +12 -12
  26. package/dist/lib/behaviour/TurbulenceBehaviour.js.map +1 -1
  27. package/dist/lib/emission/StandardEmission.d.ts +2 -2
  28. package/dist/lib/emission/StandardEmission.js +2 -2
  29. package/dist/lib/emitter/Emitter.d.ts +1 -1
  30. package/dist/lib/emitter/Emitter.js +1 -1
  31. package/dist/lib/emitter/Emitter.js.map +1 -1
  32. package/dist/lib/parser/BehaviourParser.js +37 -1
  33. package/dist/lib/parser/BehaviourParser.js.map +1 -1
  34. package/dist/lib/pixi/Renderer.d.ts +2 -2
  35. package/dist/lib/pixi/Renderer.js +32 -19
  36. package/dist/lib/pixi/Renderer.js.map +1 -1
  37. package/dist/lib/util/MinMax.d.ts +34 -0
  38. package/dist/lib/util/MinMax.js +46 -0
  39. package/dist/lib/util/MinMax.js.map +1 -0
  40. package/dist/lib/util/Point.js +2 -2
  41. package/dist/lib/util/Point.js.map +1 -1
  42. package/dist/lib/util/ThereBack.d.ts +14 -0
  43. package/dist/lib/util/ThereBack.js +23 -0
  44. package/dist/lib/util/ThereBack.js.map +1 -0
  45. package/package.json +4 -3
  46. package/dist/lib/pixi/RendererEditor.d.ts +0 -116
  47. package/dist/lib/pixi/RendererEditor.js +0 -489
  48. package/dist/lib/pixi/RendererEditor.js.map +0 -1
package/README.md CHANGED
@@ -1,21 +1,35 @@
1
1
  # CustomPIXIParticles by [@lukasz-okuniewicz](http://github.com/lukasz-okuniewicz)
2
2
 
3
- Custom PIXI Particles.
3
+ CustomPIXIParticles is a lightweight and flexible library for creating and managing particle effects in PIXI.js applications. It provides a simple API for defining particle emitters, textures, and configurations, allowing developers to create a wide range of visual effects with ease.
4
4
 
5
- Editor for particles: [custom-pixi-particles-editor](https://github.com/lukasz-okuniewicz/custom-pixi-particles-editor)
5
+ ### Features
6
+ * Easy-to-use API: Create particle emitters with just a few lines of code
7
+ * Flexible configuration: Customize particle behavior, appearance, and animation
8
+ * High performance: Render particles efficiently without impacting application performance
9
+ * Compatible with PIXI.js v7: Works seamlessly with the latest version of PIXI.js
10
+
11
+ ### Versions Compatibility
12
+
13
+ | PixiJS | CustomPIXIParticles |
14
+ |---|---|
15
+ | v5.x - v6.x | v4.x |
16
+ | v7.x | v5.x |
6
17
 
7
- How to use:
18
+ ### Demo
19
+ [custom-pixi-particles](http://particles.okuniewicz.eu/)
20
+
21
+ #### Installation:
8
22
 
9
23
  ```
10
24
  npm install custom-pixi-particles
11
25
  ```
12
26
 
13
- then:
14
-
27
+ #### Usage:
28
+ Import or require the library:
15
29
  ```javascript
16
- const customPIXIParticles = require('custom-pixi-particles')
30
+ const customPixiParticles = require('custom-pixi-particles')
17
31
  // or
18
- import customPIXIParticles from 'custom-pixi-particles'
32
+ import customPixiParticles from 'custom-pixi-particles'
19
33
  ```
20
34
 
21
35
  ```javascript
@@ -31,8 +45,29 @@ this.particles.play()
31
45
  container.addChild(this.particles)
32
46
  ```
33
47
 
48
+ ### API Reference
49
+ `create`
50
+ ```javascript
51
+ // All possible params which can be passed during particles creation
52
+ this.particles = customPixiParticles.create({
53
+ textures: [String],
54
+ animatedSpriteZeroPad: Number,
55
+ animatedSpriteIndexToStart: Number,
56
+ emitterConfig: Object,
57
+ finishingTextures: [String],
58
+ vertices: Boolean,
59
+ position: Boolean,
60
+ rotation: Boolean,
61
+ uvs: Boolean,
62
+ tint: Boolean,
63
+ maxParticles: Number,
64
+ maxFPS: Number,
65
+ tickerSpeed: Number,
66
+ })
67
+ ```
68
+
34
69
  ```javascript
35
- // On complete
70
+ // Callback function called when the particle animation completes.
36
71
  this.particles.onComplete = () => {
37
72
  //...
38
73
  }
@@ -41,13 +76,51 @@ this.particles.onComplete = () => {
41
76
  ```javascript
42
77
  // Define array of new textures
43
78
  const newTextures = ['texture3.png', 'texture4.png']
44
- // Change textures
79
+ // Updates the particle emitter's textures.
45
80
  this.particles.setTextures(newTextures)
46
81
  ```
47
82
 
48
83
  ```javascript
49
- // Update config
50
- emitController.duration = 3
51
- emitController._emitPerSecond = 200
52
- this.particles.updateConfig(emitterConfig)
84
+ // Updates the particle emitter's configuration.
85
+ this.particles.updateConfig({
86
+ // Update emitter configuration properties
87
+ })
53
88
  ```
89
+
90
+ ```javascript
91
+ // Sets the paused state
92
+ pause(isPaused)
93
+
94
+ // Starts the emitter
95
+ start()
96
+
97
+ // Resets the particle emitters in this class without removing existing particles and plays them
98
+ play()
99
+
100
+ // Immediately stops emitting particles
101
+ stopImmediately()
102
+
103
+ // Destroy particles
104
+ destroy()
105
+
106
+ // Terminates the emitter
107
+ stop()
108
+
109
+ // Resets the emitters to their initial state
110
+ resetEmitter()
111
+
112
+ // Update textures used by the emitter
113
+ setTextures(textures)
114
+
115
+ // Updates the configuration of the emitter
116
+ updateConfig(config, resetDuration = true)
117
+
118
+ // Updates the position of the emitter
119
+ updatePosition(position, resetDuration = true)
120
+
121
+ // Clear pools
122
+ clearPool()
123
+ ```
124
+
125
+ ### Additional Resources
126
+ Editor for particles: [custom-pixi-particles-editor](https://github.com/lukasz-okuniewicz/custom-pixi-particles-editor)
package/dist/index.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import Renderer from './lib/pixi/Renderer';
2
2
  import { ICustomPixiParticlesSettings } from './lib/customPixiParticlesSettingsInterface';
3
- import RendererEditor from './lib/pixi/RendererEditor';
4
3
  /**
5
4
  * Constructs a renderer for custom pixi particles
6
5
  * @class Renderer
@@ -8,6 +7,5 @@ import RendererEditor from './lib/pixi/RendererEditor';
8
7
  */
9
8
  declare const customPixiParticles: {
10
9
  create(settings: ICustomPixiParticlesSettings): Renderer;
11
- createTest(settings: ICustomPixiParticlesSettings): RendererEditor;
12
10
  };
13
11
  export { Renderer, customPixiParticles, ICustomPixiParticlesSettings };
package/dist/index.js CHANGED
@@ -1,5 +1,4 @@
1
1
  import Renderer from './lib/pixi/Renderer';
2
- import RendererEditor from './lib/pixi/RendererEditor';
3
2
  /**
4
3
  * Constructs a renderer for custom pixi particles
5
4
  * @class Renderer
@@ -24,24 +23,6 @@ const customPixiParticles = {
24
23
  tickerSpeed,
25
24
  });
26
25
  },
27
- createTest(settings) {
28
- const { textures, emitterConfig, animatedSpriteZeroPad = 2, animatedSpriteIndexToStart = 0, finishingTextures = [], vertices = true, position = true, rotation = true, uvs = true, tint = true, maxParticles = 10000, maxFPS = 60, tickerSpeed = 0.02, } = settings;
29
- return new RendererEditor({
30
- textures,
31
- animatedSpriteZeroPad,
32
- animatedSpriteIndexToStart,
33
- emitterConfig,
34
- finishingTextures,
35
- vertices,
36
- position,
37
- rotation,
38
- uvs,
39
- tint,
40
- maxParticles,
41
- maxFPS,
42
- tickerSpeed,
43
- });
44
- },
45
26
  };
46
27
  export { Renderer, customPixiParticles };
47
28
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,qBAAqB,CAAA;AAE1C,OAAO,cAAc,MAAM,2BAA2B,CAAA;AAEtD;;;;GAIG;AACH,MAAM,mBAAmB,GAAG;IAC1B,MAAM,CAAC,QAAsC;QAC3C,MAAM,EACJ,QAAQ,EACR,aAAa,EACb,qBAAqB,GAAG,CAAC,EACzB,0BAA0B,GAAG,CAAC,EAC9B,iBAAiB,GAAG,EAAE,EACtB,QAAQ,GAAG,IAAI,EACf,QAAQ,GAAG,IAAI,EACf,QAAQ,GAAG,IAAI,EACf,GAAG,GAAG,IAAI,EACV,IAAI,GAAG,IAAI,EACX,YAAY,GAAG,KAAK,EACpB,MAAM,GAAG,EAAE,EACX,WAAW,GAAG,IAAI,GACnB,GAAG,QAAQ,CAAA;QACZ,OAAO,IAAI,QAAQ,CAAC;YAClB,QAAQ;YACR,qBAAqB;YACrB,0BAA0B;YAC1B,aAAa;YACb,iBAAiB;YACjB,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,GAAG;YACH,IAAI;YACJ,YAAY;YACZ,MAAM;YACN,WAAW;SACZ,CAAC,CAAA;IACJ,CAAC;IACD,UAAU,CAAC,QAAsC;QAC/C,MAAM,EACJ,QAAQ,EACR,aAAa,EACb,qBAAqB,GAAG,CAAC,EACzB,0BAA0B,GAAG,CAAC,EAC9B,iBAAiB,GAAG,EAAE,EACtB,QAAQ,GAAG,IAAI,EACf,QAAQ,GAAG,IAAI,EACf,QAAQ,GAAG,IAAI,EACf,GAAG,GAAG,IAAI,EACV,IAAI,GAAG,IAAI,EACX,YAAY,GAAG,KAAK,EACpB,MAAM,GAAG,EAAE,EACX,WAAW,GAAG,IAAI,GACnB,GAAG,QAAQ,CAAA;QACZ,OAAO,IAAI,cAAc,CAAC;YACxB,QAAQ;YACR,qBAAqB;YACrB,0BAA0B;YAC1B,aAAa;YACb,iBAAiB;YACjB,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,GAAG;YACH,IAAI;YACJ,YAAY;YACZ,MAAM;YACN,WAAW;SACZ,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAgC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,qBAAqB,CAAA;AAG1C;;;;GAIG;AACH,MAAM,mBAAmB,GAAG;IAC1B,MAAM,CAAC,QAAsC;QAC3C,MAAM,EACJ,QAAQ,EACR,aAAa,EACb,qBAAqB,GAAG,CAAC,EACzB,0BAA0B,GAAG,CAAC,EAC9B,iBAAiB,GAAG,EAAE,EACtB,QAAQ,GAAG,IAAI,EACf,QAAQ,GAAG,IAAI,EACf,QAAQ,GAAG,IAAI,EACf,GAAG,GAAG,IAAI,EACV,IAAI,GAAG,IAAI,EACX,YAAY,GAAG,KAAK,EACpB,MAAM,GAAG,EAAE,EACX,WAAW,GAAG,IAAI,GACnB,GAAG,QAAQ,CAAA;QACZ,OAAO,IAAI,QAAQ,CAAC;YAClB,QAAQ;YACR,qBAAqB;YACrB,0BAA0B;YAC1B,aAAa;YACb,iBAAiB;YACjB,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,GAAG;YACH,IAAI;YACJ,YAAY;YACZ,MAAM;YACN,WAAW;SACZ,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAgC,CAAA"}
@@ -1,5 +1,6 @@
1
- import { Sprite } from 'pixi.js';
1
+ import { Sprite } from 'pixi.js-legacy';
2
2
  import { Color, Point } from './util';
3
+ import ThereBack from './util/ThereBack';
3
4
  /**
4
5
  * Represents a particle object used in particle system simulations
5
6
  */
@@ -97,6 +98,8 @@ export default class Particle {
97
98
  * Stores the radius of the particle
98
99
  */
99
100
  radius: number;
101
+ radiusX: number;
102
+ radiusY: number;
100
103
  /**
101
104
  * Stores the starting radius of the particle
102
105
  */
@@ -173,6 +176,23 @@ export default class Particle {
173
176
  x: number;
174
177
  y: number;
175
178
  };
179
+ fromAtoB: boolean;
180
+ fromAtoBTwoWays: boolean;
181
+ pointA: Point;
182
+ pointB: Point;
183
+ there: ThereBack;
184
+ back: ThereBack;
185
+ xStart: number;
186
+ yStart: number;
187
+ xTarget: number;
188
+ yTarget: number;
189
+ thereDuration: number;
190
+ backDuration: number;
191
+ progress: number;
192
+ time: number;
193
+ thereAmplitude: number;
194
+ backAmplitude: number;
195
+ direction: number;
176
196
  /**
177
197
  * Constructs a particle object
178
198
  */
@@ -1,4 +1,5 @@
1
1
  import { Color, Point } from './util';
2
+ import ThereBack from './util/ThereBack';
2
3
  /**
3
4
  * Represents a particle object used in particle system simulations
4
5
  */
@@ -61,6 +62,23 @@ class Particle {
61
62
  * Stores the ending color of the particle
62
63
  */
63
64
  this.colorEnd = new Color();
65
+ this.fromAtoB = false;
66
+ this.fromAtoBTwoWays = false;
67
+ this.pointA = new Point();
68
+ this.pointB = new Point();
69
+ this.there = new ThereBack();
70
+ this.back = new ThereBack();
71
+ this.xStart = 0;
72
+ this.yStart = 0;
73
+ this.xTarget = 0;
74
+ this.yTarget = 0;
75
+ this.thereDuration = 1;
76
+ this.backDuration = 1;
77
+ this.progress = 0;
78
+ this.time = 0;
79
+ this.thereAmplitude = 10;
80
+ this.backAmplitude = 10;
81
+ this.direction = 1;
64
82
  this.reset();
65
83
  }
66
84
  /**
@@ -104,6 +122,23 @@ class Particle {
104
122
  this.warpFov = 20;
105
123
  this.warpStretch = 5;
106
124
  this.warpDistanceScaleConverter = 2000;
125
+ this.fromAtoB = false;
126
+ this.fromAtoBTwoWays = false;
127
+ this.pointA.set(0, 0);
128
+ this.pointB.set(0, 0);
129
+ this.there.set('', '', '');
130
+ this.back.set('', '', '');
131
+ this.thereDuration = 1;
132
+ this.backDuration = 1;
133
+ this.thereAmplitude = 10;
134
+ this.backAmplitude = 10;
135
+ this.progress = 0;
136
+ this.direction = 1;
137
+ this.time = 0;
138
+ this.xStart = 0;
139
+ this.yStart = 0;
140
+ this.xTarget = 0;
141
+ this.yTarget = 0;
107
142
  }
108
143
  /**
109
144
  * 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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"}
@@ -7,6 +7,7 @@ import Particle from '../Particle';
7
7
  * @extends {Behaviour}
8
8
  */
9
9
  export default class AngularVelocityBehaviour extends Behaviour {
10
+ protected priority: number;
10
11
  private enabled;
11
12
  private degrees;
12
13
  private degreesVariance;
@@ -14,7 +15,6 @@ export default class AngularVelocityBehaviour extends Behaviour {
14
15
  private maxRadiusVariance;
15
16
  private minRadius;
16
17
  private minRadiusVariance;
17
- protected priority: number;
18
18
  /**
19
19
  * Initializes particle properties of the behaviour
20
20
  *
@@ -10,6 +10,7 @@ import BehaviourNames from './BehaviourNames';
10
10
  export default class AngularVelocityBehaviour extends Behaviour {
11
11
  constructor() {
12
12
  super(...arguments);
13
+ this.priority = 100;
13
14
  this.enabled = false;
14
15
  this.degrees = 0;
15
16
  this.degreesVariance = 0;
@@ -17,7 +18,6 @@ export default class AngularVelocityBehaviour extends Behaviour {
17
18
  this.maxRadiusVariance = 0;
18
19
  this.minRadius = 0;
19
20
  this.minRadiusVariance = 0;
20
- this.priority = 100;
21
21
  /**
22
22
  * Initializes particle properties of the behaviour
23
23
  *
@@ -26,11 +26,12 @@ export default class AngularVelocityBehaviour extends Behaviour {
26
26
  */
27
27
  this.init = (particle) => {
28
28
  particle.radiansPerSecond = math.degreesToRadians(this.degrees + this.varianceFrom(this.degreesVariance));
29
- particle.radiusStart = this.maxRadius + this.varianceFrom(this.maxRadiusVariance);
29
+ const radiusStart = this.maxRadius + this.varianceFrom(this.maxRadiusVariance);
30
+ particle.radiusStart = radiusStart;
30
31
  particle.radiusEnd = this.minRadius + this.varianceFrom(this.minRadiusVariance);
31
32
  particle.x = 0;
32
33
  particle.y = 0;
33
- particle.radius = particle.radiusStart;
34
+ particle.radius = radiusStart;
34
35
  particle.angle = 0;
35
36
  };
36
37
  /**
@@ -41,12 +42,17 @@ export default class AngularVelocityBehaviour extends Behaviour {
41
42
  * @memberof AngularVelocityBehaviour
42
43
  */
43
44
  this.apply = (particle, deltaTime) => {
44
- particle.velocityAngle += particle.radiansPerSecond * deltaTime;
45
- particle.radius = particle.radiusStart + (particle.radiusEnd - particle.radiusStart) * particle.lifeProgress;
46
- particle.movement.x = Math.cos(particle.velocityAngle) * particle.radius;
47
- particle.movement.y = Math.sin(particle.velocityAngle) * particle.radius;
48
- particle.x = particle.movement.x;
49
- particle.y = particle.movement.y;
45
+ const { radiusStart, radiusEnd, radiansPerSecond, lifeProgress } = particle;
46
+ const velocityAngle = particle.velocityAngle + radiansPerSecond * deltaTime;
47
+ const radius = radiusStart + (radiusEnd - radiusStart) * lifeProgress;
48
+ const movementX = Math.cos(velocityAngle) * radius;
49
+ const movementY = Math.sin(velocityAngle) * radius;
50
+ particle.velocityAngle = velocityAngle;
51
+ particle.radius = radius;
52
+ particle.movement.x = movementX;
53
+ particle.movement.y = movementY;
54
+ particle.x = movementX;
55
+ particle.y = movementY;
50
56
  };
51
57
  }
52
58
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"AngularVelocityBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/AngularVelocityBehaviour.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAA;AACnC,OAAO,IAAI,MAAM,eAAe,CAAA;AAChC,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAG7C;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,SAAS;IAA/D;;QACU,YAAO,GAAY,KAAK,CAAA;QACxB,YAAO,GAAW,CAAC,CAAA;QACnB,oBAAe,GAAW,CAAC,CAAA;QAC3B,cAAS,GAAW,CAAC,CAAA;QACrB,sBAAiB,GAAW,CAAC,CAAA;QAC7B,cAAS,GAAW,CAAC,CAAA;QACrB,sBAAiB,GAAW,CAAC,CAAA;QAC3B,aAAQ,GAAW,GAAG,CAAA;QAEhC;;;;;WAKG;QACH,SAAI,GAAG,CAAC,QAAkB,EAAE,EAAE;YAC5B,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAA;YACzG,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;YACjF,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;YAE/E,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAA;YACd,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAA;YACd,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAA;YACtC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAA;QACpB,CAAC,CAAA;QAED;;;;;;WAMG;QACH,UAAK,GAAG,CAAC,QAAkB,EAAE,SAAiB,EAAE,EAAE;YAChD,QAAQ,CAAC,aAAa,IAAI,QAAQ,CAAC,gBAAgB,GAAG,SAAS,CAAA;YAC/D,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,WAAW,GAAG,CAAC,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAA;YAE5G,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAA;YACxE,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAA;YAExE,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;YAChC,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;QAClC,CAAC,CAAA;IA+BH,CAAC;IA7BC;;;;;OAKG;IACH,OAAO;QACL,OAAO,cAAc,CAAC,iBAAiB,CAAA;IACzC,CAAC;IAED;;;;;OAKG;IACH,QAAQ;QACN,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;SACrB,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"AngularVelocityBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/AngularVelocityBehaviour.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAA;AACnC,OAAO,IAAI,MAAM,eAAe,CAAA;AAChC,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAG7C;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,SAAS;IAA/D;;QACY,aAAQ,GAAW,GAAG,CAAA;QACxB,YAAO,GAAY,KAAK,CAAA;QACxB,YAAO,GAAW,CAAC,CAAA;QACnB,oBAAe,GAAW,CAAC,CAAA;QAC3B,cAAS,GAAW,CAAC,CAAA;QACrB,sBAAiB,GAAW,CAAC,CAAA;QAC7B,cAAS,GAAW,CAAC,CAAA;QACrB,sBAAiB,GAAW,CAAC,CAAA;QAErC;;;;;WAKG;QACH,SAAI,GAAG,CAAC,QAAkB,EAAE,EAAE;YAC5B,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAA;YACzG,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;YAC9E,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAA;YAClC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;YAE/E,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAA;YACd,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAA;YACd,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAA;YAC7B,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAA;QACpB,CAAC,CAAA;QAED;;;;;;WAMG;QACH,UAAK,GAAG,CAAC,QAAkB,EAAE,SAAiB,EAAE,EAAE;YAChD,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAA;YAC3E,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,GAAG,gBAAgB,GAAG,SAAS,CAAA;YAC3E,MAAM,MAAM,GAAG,WAAW,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,YAAY,CAAA;YACrE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,MAAM,CAAA;YAClD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,MAAM,CAAA;YAElD,QAAQ,CAAC,aAAa,GAAG,aAAa,CAAA;YACtC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAA;YACxB,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAA;YAC/B,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAA;YAC/B,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAA;YACtB,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAA;QACxB,CAAC,CAAA;IA+BH,CAAC;IA7BC;;;;;OAKG;IACH,OAAO;QACL,OAAO,cAAc,CAAC,iBAAiB,CAAA;IACzC,CAAC;IAED;;;;;OAKG;IACH,QAAQ;QACN,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;SACrB,CAAA;IACH,CAAC;CACF"}
@@ -9,10 +9,6 @@ export default class ColorBehaviour extends Behaviour {
9
9
  startVariance: Color;
10
10
  endVariance: Color;
11
11
  sinus: boolean;
12
- _rDiff: number;
13
- _gDiff: number;
14
- _bDiff: number;
15
- _aDiff: number;
16
12
  init: (particle: Particle) => void;
17
13
  apply: (particle: Particle) => void;
18
14
  getName(): string;
@@ -11,10 +11,6 @@ export default class ColorBehaviour extends Behaviour {
11
11
  this.startVariance = new Color(0, 0, 0, 0);
12
12
  this.endVariance = new Color(0, 0, 0, 0);
13
13
  this.sinus = false;
14
- this._rDiff = 0;
15
- this._gDiff = 0;
16
- this._bDiff = 0;
17
- this._aDiff = 0;
18
14
  this.init = (particle) => {
19
15
  particle.colorStart.copyFrom(this.start);
20
16
  particle.colorStart.r += this.varianceFrom(this.startVariance.r);
@@ -27,21 +23,18 @@ export default class ColorBehaviour extends Behaviour {
27
23
  particle.colorEnd.b += this.varianceFrom(this.endVariance.b);
28
24
  particle.colorEnd.alpha += this.varianceFrom(this.endVariance.alpha);
29
25
  particle.color.copyFrom(particle.colorStart);
30
- this._rDiff = particle.colorEnd.r - particle.colorStart.r;
31
- this._gDiff = particle.colorEnd.g - particle.colorStart.g;
32
- this._bDiff = particle.colorEnd.b - particle.colorStart.b;
33
- this._aDiff = particle.colorEnd.alpha - particle.colorStart.alpha;
34
26
  };
35
27
  this.apply = (particle) => {
36
- particle.color.copyFrom(particle.colorStart);
37
- particle.color.r += this._rDiff * particle.lifeProgress;
38
- particle.color.g += this._gDiff * particle.lifeProgress;
39
- particle.color.b += this._bDiff * particle.lifeProgress;
28
+ const { colorStart, lifeProgress, colorEnd } = particle;
29
+ particle.color.copyFrom(colorStart);
30
+ particle.color.r += (colorEnd.r - colorStart.r) * lifeProgress;
31
+ particle.color.g += (colorEnd.g - colorStart.g) * lifeProgress;
32
+ particle.color.b += (colorEnd.b - colorStart.b) * lifeProgress;
40
33
  if (!this.sinus) {
41
- particle.color.alpha += this._aDiff * particle.lifeProgress;
34
+ particle.color.alpha += (colorEnd.alpha - colorStart.alpha) * lifeProgress;
42
35
  }
43
36
  else {
44
- particle.color.alpha = Math.sin(particle.lifeProgress * 3.1);
37
+ particle.color.alpha = Math.sin(lifeProgress * 3.1);
45
38
  }
46
39
  };
47
40
  }
@@ -59,22 +52,22 @@ export default class ColorBehaviour extends Behaviour {
59
52
  _alpha: this.start.alpha,
60
53
  },
61
54
  end: {
62
- _r: this.start.r,
63
- _g: this.start.g,
64
- _b: this.start.b,
65
- _alpha: this.start.alpha,
55
+ _r: this.end.r,
56
+ _g: this.end.g,
57
+ _b: this.end.b,
58
+ _alpha: this.end.alpha,
66
59
  },
67
60
  startVariance: {
68
- _r: this.start.r,
69
- _g: this.start.g,
70
- _b: this.start.b,
71
- _alpha: this.start.alpha,
61
+ _r: this.startVariance.r,
62
+ _g: this.startVariance.g,
63
+ _b: this.startVariance.b,
64
+ _alpha: this.startVariance.alpha,
72
65
  },
73
66
  endVariance: {
74
- _r: this.start.r,
75
- _g: this.start.g,
76
- _b: this.start.b,
77
- _alpha: this.start.alpha,
67
+ _r: this.endVariance.r,
68
+ _g: this.endVariance.g,
69
+ _b: this.endVariance.b,
70
+ _alpha: this.endVariance.alpha,
78
71
  },
79
72
  sinus: this.sinus,
80
73
  name: this.getName(),
@@ -1 +1 @@
1
- {"version":3,"file":"ColorBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/ColorBehaviour.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ColorBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/ColorBehaviour.ts"],"names":[],"mappings":"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"}
@@ -32,8 +32,9 @@ export default class EmitDirectionBehaviour extends Behaviour {
32
32
  * @memberof EmitDirectionBehaviour
33
33
  */
34
34
  this.apply = (particle) => {
35
- _tmp = particle.directionCos * particle.x - particle.directionSin * particle.y;
36
- particle.y = particle.directionSin * particle.x + particle.directionCos * particle.y;
35
+ const { x, y, directionSin, directionCos } = particle;
36
+ _tmp = directionCos * x - directionSin * y;
37
+ particle.y = directionSin * x + directionCos * y;
37
38
  particle.x = _tmp;
38
39
  };
39
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EmitDirectionBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/EmitDirectionBehaviour.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAA;AACnC,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAG7C,IAAI,IAAI,GAAG,CAAC,CAAA;AAEZ;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,SAAS;IAA7D;;QACE,YAAO,GAAG,IAAI,CAAA;QACd,aAAQ,GAAG,CAAC,CAAA;QACZ,UAAK,GAAG,CAAC,CAAA;QACT,aAAQ,GAAG,CAAC,CAAA;QAEZ;;;;WAIG;QACH,SAAI,GAAG,CAAC,QAAkB,EAAE,EAAE;YAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACpE,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;YAChD,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;QAClD,CAAC,CAAA;QAED;;;;;WAKG;QACH,UAAK,GAAG,CAAC,QAAkB,EAAE,EAAE;YAC7B,IAAI,GAAG,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAA;YAC9E,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAA;YACpF,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAA;QACnB,CAAC,CAAA;IAyBH,CAAC;IAvBC;;;;OAIG;IACH,OAAO;QACL,OAAO,cAAc,CAAC,cAAc,CAAA;IACtC,CAAC;IAED;;;;OAIG;IACH,QAAQ;QACN,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;SACrB,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"EmitDirectionBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/EmitDirectionBehaviour.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAA;AACnC,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAG7C,IAAI,IAAI,GAAG,CAAC,CAAA;AAEZ;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,SAAS;IAA7D;;QACE,YAAO,GAAG,IAAI,CAAA;QACd,aAAQ,GAAG,CAAC,CAAA;QACZ,UAAK,GAAG,CAAC,CAAA;QACT,aAAQ,GAAG,CAAC,CAAA;QAEZ;;;;WAIG;QACH,SAAI,GAAG,CAAC,QAAkB,EAAE,EAAE;YAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACpE,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;YAChD,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;QAClD,CAAC,CAAA;QAED;;;;;WAKG;QACH,UAAK,GAAG,CAAC,QAAkB,EAAE,EAAE;YAC7B,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAA;YAErD,IAAI,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAA;YAC1C,QAAQ,CAAC,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAA;YAChD,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAA;QACnB,CAAC,CAAA;IAyBH,CAAC;IAvBC;;;;OAIG;IACH,OAAO;QACL,OAAO,cAAc,CAAC,cAAc,CAAA;IACtC,CAAC;IAED;;;;OAIG;IACH,QAAQ;QACN,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;SACrB,CAAA;IACH,CAAC;CACF"}
@@ -41,8 +41,7 @@ export default class LifeBehaviour extends Behaviour {
41
41
  this.init = (particle) => {
42
42
  particle.lifeTime = 0;
43
43
  particle.lifeProgress = 0;
44
- particle.maxLifeTime = this.maxLifeTime + this.varianceFrom(this.timeVariance);
45
- particle.maxLifeTime = Math.max(particle.maxLifeTime, 0.0);
44
+ particle.maxLifeTime = Math.max(this.maxLifeTime + this.varianceFrom(this.timeVariance), 0.0);
46
45
  };
47
46
  /**
48
47
  * Updates the particle's life time and progress.
@@ -52,9 +51,11 @@ export default class LifeBehaviour extends Behaviour {
52
51
  * @returns {void}
53
52
  */
54
53
  this.apply = (particle, deltaTime) => {
55
- particle.lifeTime += deltaTime;
56
- if (particle.maxLifeTime > 0) {
57
- particle.lifeProgress = Math.min(1.0, particle.lifeTime / particle.maxLifeTime);
54
+ const { maxLifeTime } = particle;
55
+ const lifeTime = particle.lifeTime + deltaTime;
56
+ particle.lifeTime = lifeTime;
57
+ if (maxLifeTime > 0) {
58
+ particle.lifeProgress = Math.min(1.0, lifeTime / maxLifeTime);
58
59
  }
59
60
  };
60
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LifeBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/LifeBehaviour.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAGnD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAAS;IAApD;;QACE;;;;WAIG;QACH,YAAO,GAAG,IAAI,CAAA;QAEd;;;;WAIG;QACH,aAAQ,GAAG,KAAK,CAAA;QAEhB;;;;WAIG;QACH,gBAAW,GAAG,CAAC,CAAA;QAEf;;;;WAIG;QACH,iBAAY,GAAG,CAAC,CAAA;QAEhB;;;;;WAKG;QACH,SAAI,GAAG,CAAC,QAAkB,EAAE,EAAE;YAC5B,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAA;YACrB,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAA;YAEzB,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YAC9E,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;QAC5D,CAAC,CAAA;QAED;;;;;;WAMG;QACH,UAAK,GAAG,CAAC,QAAkB,EAAE,SAAiB,EAAE,EAAE;YAChD,QAAQ,CAAC,QAAQ,IAAI,SAAS,CAAA;YAE9B,IAAI,QAAQ,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;gBAC7B,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAA;YACjF,CAAC;QACH,CAAC,CAAA;IAyBH,CAAC;IAvBC;;;;OAIG;IACH,OAAO;QACL,OAAO,cAAc,CAAC,cAAc,CAAA;IACtC,CAAC;IAED;;;;OAIG;IACH,QAAQ;QACN,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;SACrB,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"LifeBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/LifeBehaviour.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAGnD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAAS;IAApD;;QACE;;;;WAIG;QACH,YAAO,GAAG,IAAI,CAAA;QAEd;;;;WAIG;QACH,aAAQ,GAAG,KAAK,CAAA;QAEhB;;;;WAIG;QACH,gBAAW,GAAG,CAAC,CAAA;QAEf;;;;WAIG;QACH,iBAAY,GAAG,CAAC,CAAA;QAEhB;;;;;WAKG;QACH,SAAI,GAAG,CAAC,QAAkB,EAAE,EAAE;YAC5B,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAA;YACrB,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAA;YACzB,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,CAAA;QAC/F,CAAC,CAAA;QAED;;;;;;WAMG;QACH,UAAK,GAAG,CAAC,QAAkB,EAAE,SAAiB,EAAE,EAAE;YAChD,MAAM,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAA;YAChC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,GAAG,SAAS,CAAA;YAE9C,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAA;YAE5B,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;gBACpB,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,CAAA;YAC/D,CAAC;QACH,CAAC,CAAA;IAyBH,CAAC;IAvBC;;;;OAIG;IACH,OAAO;QACL,OAAO,cAAc,CAAC,cAAc,CAAA;IACtC,CAAC;IAED;;;;OAIG;IACH,QAAQ;QACN,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;SACrB,CAAA;IACH,CAAC;CACF"}
@@ -2,11 +2,15 @@ import { Point } from '../util';
2
2
  import { Behaviour } from './index';
3
3
  import Particle from '../Particle';
4
4
  import Model from '../Model';
5
+ import MinMax from '../util/MinMax';
6
+ import ThereBack from '../util/ThereBack';
5
7
  export default class PositionBehaviour extends Behaviour {
6
8
  enabled: boolean;
7
9
  priority: number;
8
10
  spawnType: string;
9
11
  radius: number;
12
+ radiusX: number;
13
+ radiusY: number;
10
14
  warp: boolean;
11
15
  warpSpeed: number;
12
16
  warpBaseSpeed: number;
@@ -27,6 +31,16 @@ export default class PositionBehaviour extends Behaviour {
27
31
  warpStretch: number;
28
32
  warpDistanceScaleConverter: number;
29
33
  warpDistanceToCenter: boolean;
34
+ fromAtoB: boolean;
35
+ fromAtoBTwoWays: boolean;
36
+ pointA: Point;
37
+ pointB: Point;
38
+ thereDuration: MinMax;
39
+ thereAmplitude: MinMax;
40
+ backDuration: MinMax;
41
+ backAmplitude: MinMax;
42
+ there: ThereBack;
43
+ back: ThereBack;
30
44
  /**
31
45
  * Function that initializes a particle
32
46
  * @param {Particle} particle - The particle to be initialized
@@ -59,6 +73,20 @@ export default class PositionBehaviour extends Behaviour {
59
73
  * @return {BehaviourNames} The name of the behaviour
60
74
  */
61
75
  getName(): string;
76
+ _lerp(start: number, end: number, t: number): number;
77
+ _easeBackInOut(t: number, c1?: number, c2?: number): number;
78
+ _easeBackIn(t: number, c1?: number): number;
79
+ _easeBackOut(t: number, c1?: number): number;
80
+ _easePower1In(t: number): number;
81
+ _easePower1Out(t: number): number;
82
+ _easePower1InOut(t: number): number;
83
+ _easeBounceIn(t: number): number;
84
+ _easeBounceOut(t: number): number;
85
+ _easeBounceInOut(t: number): number;
86
+ _easeElasticIn(t: number): number;
87
+ _easeElasticOut(t: number): number;
88
+ _easeElasticInOut(t: number): number;
89
+ _easeSteps(t: number, numSteps?: number): number;
62
90
  /**
63
91
  * @description Retrieves the properties of the object.
64
92
  * @returns {Object} The properties of the object.
@@ -68,6 +96,44 @@ export default class PositionBehaviour extends Behaviour {
68
96
  priority: number;
69
97
  spawnType: string;
70
98
  radius: number;
99
+ radiusX: number;
100
+ radiusY: number;
101
+ fromAtoB: boolean;
102
+ fromAtoBTwoWays: boolean;
103
+ there: {
104
+ x: string;
105
+ y: string;
106
+ ease: string;
107
+ };
108
+ back: {
109
+ x: string;
110
+ y: string;
111
+ ease: string;
112
+ };
113
+ pointA: {
114
+ x: number;
115
+ y: number;
116
+ };
117
+ pointB: {
118
+ x: number;
119
+ y: number;
120
+ };
121
+ thereDuration: {
122
+ x: number;
123
+ y: number;
124
+ };
125
+ thereAmplitude: {
126
+ x: number;
127
+ y: number;
128
+ };
129
+ backDuration: {
130
+ x: number;
131
+ y: number;
132
+ };
133
+ backAmplitude: {
134
+ x: number;
135
+ y: number;
136
+ };
71
137
  warp: boolean;
72
138
  sinX: boolean;
73
139
  sinY: boolean;