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
@@ -0,0 +1,23 @@
1
+ export default class ThereBack {
2
+ constructor(x, y, ease) {
3
+ this.set = (x, y, ease) => {
4
+ this.x = x || '';
5
+ this.y = y || '';
6
+ this.ease = ease || '';
7
+ return this;
8
+ };
9
+ this.copyFrom = (data) => {
10
+ this.x = data.x || '';
11
+ this.y = data.y || '';
12
+ this.ease = data.ease || '';
13
+ return this;
14
+ };
15
+ this.copyFromRawData = (data) => {
16
+ this.copyFrom(data);
17
+ };
18
+ this.x = x || '';
19
+ this.y = y || '';
20
+ this.ease = ease || '';
21
+ }
22
+ }
23
+ //# sourceMappingURL=ThereBack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThereBack.js","sourceRoot":"","sources":["../../../src/lib/util/ThereBack.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,SAAS;IAK5B,YAAY,CAAU,EAAE,CAAU,EAAE,IAAa;QAMjD,QAAG,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,IAAY,EAAE,EAAE;YAC3C,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;YAChB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;YAChB,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAA;YACtB,OAAO,IAAI,CAAA;QACb,CAAC,CAAA;QAED,aAAQ,GAAG,CAAC,IAAgB,EAAE,EAAE;YAC9B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;YACrB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;YACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;YAC3B,OAAO,IAAI,CAAA;QACb,CAAC,CAAA;QAED,oBAAe,GAAG,CAAC,IAAgB,EAAE,EAAE;YACrC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC,CAAA;QArBC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QAChB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAA;IACxB,CAAC;CAmBF"}
package/package.json CHANGED
@@ -10,10 +10,11 @@
10
10
  "file-saver": "^2.0.5",
11
11
  "pixi.js": "^7.3.2",
12
12
  "prettier": "^3.1.0",
13
+ "gsap": "^3.12.5",
13
14
  "rimraf": "^5.0.5",
14
- "ts-node": "^10.9.1",
15
+ "ts-node": "^10.9.2",
15
16
  "tslint": "^6.1.3",
16
- "typescript": "^5.3.2"
17
+ "typescript": "^5.3.3"
17
18
  },
18
19
  "dependencies": {
19
20
  "eventemitter3": "^4.0.7"
@@ -40,5 +41,5 @@
40
41
  "lint": "tslint 'src/**/*.ts'",
41
42
  "lint:fix": "tslint --fix 'src/**/*.ts'"
42
43
  },
43
- "version": "5.1.0"
44
+ "version": "5.2.0"
44
45
  }
@@ -1,116 +0,0 @@
1
- import { Emitter } from '../emitter';
2
- import { ICustomPixiParticlesSettings } from '../customPixiParticlesSettingsInterface';
3
- import { Container } from 'pixi.js';
4
- /**
5
- * Renderer is a class used to render particles in the Pixi library.
6
- *
7
- * @class Renderer
8
- */
9
- export default class RendererEditor extends Container {
10
- blendMode: any;
11
- emitter: Emitter;
12
- turbulenceEmitter: Emitter;
13
- private _paused;
14
- private _internalPaused;
15
- private textures;
16
- private zeroPad;
17
- private indexToStart;
18
- private finishingTextureNames;
19
- private unusedSprites;
20
- private emitterParser;
21
- private turbulenceParser;
22
- private config;
23
- private anchor;
24
- private _model;
25
- private _ticker;
26
- /**
27
- * Creates an instance of Renderer.
28
- *
29
- * @memberof Renderer
30
- */
31
- constructor(settings: ICustomPixiParticlesSettings);
32
- onComplete: any;
33
- /**
34
- * Sets the paused state of the object.
35
- * @param {boolean} isPaused - The new paused state of the object.
36
- * @return {void}
37
- */
38
- pause(isPaused: boolean): void;
39
- /**
40
- * Updates the transform of the ParticleContainer and updates the emitters.
41
- */
42
- _updateTransform(deltaTime: number): void;
43
- /**
44
- *
45
- * @method updateTexture
46
- * @description This method updates the texture of the unused sprites and children to a randomly generated texture.
47
- */
48
- updateTexture(): void;
49
- /**
50
- * This method is used to start the emitter and turbulenceEmitter if available.
51
- * @function start
52
- */
53
- start(): void;
54
- /**
55
- * Resets the particle emitters in this class without removing existing particles and plays them.
56
- * @function play
57
- */
58
- play(): void;
59
- /**
60
- * Immediately stops emitting particles
61
- */
62
- stopImmediately(): void;
63
- /**
64
- * Destroy particles
65
- */
66
- destroy(): void;
67
- /**
68
- * Terminates the emitter and any turbulence emitter it is associated with
69
- */
70
- stop(): void;
71
- /**
72
- * Resets the emitters to their initial state
73
- */
74
- resetEmitter(): void;
75
- /**
76
- * Sets the textures used by the emitter
77
- * @param {string[]} textures - Array of strings containing the textures to be used by the emitter
78
- */
79
- setTextures(textures: string[]): void;
80
- /**
81
- * Updates the configuration of the emitter
82
- * @param {any} config - Configuration object to be used to update the emitter
83
- * @param {boolean} resetDuration - should duration be reset
84
- */
85
- updateConfig(config: any, resetDuration?: boolean): void;
86
- /**
87
- * Updates the position of the emitter
88
- * @param {Object} position - Object containing the x and y coordinates of the new position
89
- * @param {boolean} resetDuration - should duration be reset
90
- */
91
- updatePosition(position: {
92
- x: number;
93
- y: number;
94
- }, resetDuration?: boolean): void;
95
- /**
96
- * Clears the sprite pool, the unused sprites list and the turbulence and particle pools.
97
- */
98
- clearPool(): void;
99
- private getByName;
100
- private getOrCreateSprite;
101
- private createFrameAnimationByName;
102
- private onCreate;
103
- private onCreateTurbulence;
104
- private onUpdate;
105
- private onUpdateTurbulence;
106
- private onFinishing;
107
- private onRemove;
108
- private onRemoveTurbulence;
109
- private getRandomTexture;
110
- private getRandomFinishingTexture;
111
- private getRandomFrameNumber;
112
- private paused;
113
- private internalPause;
114
- private getConfigIndexByName;
115
- private buildTurbulenceConfig;
116
- }
@@ -1,489 +0,0 @@
1
- // tslint:disable:prefer-for-of
2
- import engine from '../index';
3
- import { Emitter } from '../emitter';
4
- import BehaviourNames from '../behaviour/BehaviourNames';
5
- import List from '../util/List';
6
- import ParticlePool from '../ParticlePool';
7
- import { AnimatedSprite, Assets, Container, Sprite, Ticker, utils } from 'pixi.js';
8
- import Model from '../Model';
9
- /**
10
- * Renderer is a class used to render particles in the Pixi library.
11
- *
12
- * @class Renderer
13
- */
14
- export default class RendererEditor extends Container {
15
- /**
16
- * Creates an instance of Renderer.
17
- *
18
- * @memberof Renderer
19
- */
20
- constructor(settings) {
21
- const { textures, emitterConfig, finishingTextures, animatedSpriteZeroPad, animatedSpriteIndexToStart, vertices, position, rotation, uvs, tint, maxParticles, maxFPS, tickerSpeed, } = settings;
22
- super();
23
- this._paused = false;
24
- this._internalPaused = false;
25
- this.zeroPad = 2;
26
- this.indexToStart = 0;
27
- this.unusedSprites = [];
28
- this.anchor = { x: 0.5, y: 0.5 };
29
- this._model = new Model();
30
- this.onComplete = () => {
31
- /**/
32
- };
33
- this.getByName = (name) => {
34
- for (let i = 0; i < this.config.behaviours.length; ++i) {
35
- if (this.config.behaviours[i].name === name) {
36
- return this.config.behaviours[i];
37
- }
38
- }
39
- return null;
40
- };
41
- this.config = emitterConfig;
42
- this.textures = textures;
43
- this.finishingTextureNames = finishingTextures;
44
- this.zeroPad = animatedSpriteZeroPad;
45
- this.indexToStart = animatedSpriteIndexToStart;
46
- const turbulenceConfigIndex = this.getConfigIndexByName(BehaviourNames.TURBULENCE_BEHAVIOUR, emitterConfig);
47
- if (turbulenceConfigIndex !== -1) {
48
- const turbulenceConfig = emitterConfig.behaviours[turbulenceConfigIndex];
49
- if (turbulenceConfig.enabled === true) {
50
- this.turbulenceEmitter = new engine.Emitter(this._model);
51
- this.turbulenceParser = this.turbulenceEmitter.getParser();
52
- this.turbulenceParser.read(this.buildTurbulenceConfig(turbulenceConfig), this._model);
53
- this.turbulenceEmitter.on(Emitter.CREATE, this.onCreateTurbulence, this);
54
- this.turbulenceEmitter.on(Emitter.UPDATE, this.onUpdateTurbulence, this);
55
- this.turbulenceEmitter.on(Emitter.REMOVE, this.onRemoveTurbulence, this);
56
- }
57
- }
58
- if (typeof emitterConfig.alpha !== 'undefined') {
59
- this.alpha = emitterConfig.alpha;
60
- }
61
- if (typeof emitterConfig.blendMode !== 'undefined') {
62
- this.blendMode = emitterConfig.blendMode;
63
- }
64
- if (typeof emitterConfig.anchor !== 'undefined') {
65
- this.anchor = emitterConfig.anchor;
66
- }
67
- this.emitter = new engine.Emitter(this._model);
68
- this.emitterParser = this.emitter.getParser();
69
- this.emitterParser.read(emitterConfig, this._model);
70
- this.emitter.on(Emitter.CREATE, this.onCreate, this);
71
- this.emitter.on(Emitter.UPDATE, this.onUpdate, this);
72
- this.emitter.on(Emitter.FINISHING, this.onFinishing, this);
73
- this.emitter.on(Emitter.REMOVE, this.onRemove, this);
74
- this.emitter.on(Emitter.COMPLETE, () => {
75
- this.onComplete();
76
- });
77
- if (this.turbulenceEmitter && this.turbulenceEmitter.list) {
78
- this.emitter.turbulencePool.list = this.turbulenceEmitter.list;
79
- }
80
- document.addEventListener('visibilitychange', () => this.internalPause(document.hidden));
81
- const ticker = new Ticker();
82
- ticker.maxFPS = maxFPS;
83
- ticker.speed = tickerSpeed;
84
- ticker.stop();
85
- ticker.add(this._updateTransform, this);
86
- ticker.start();
87
- this._ticker = ticker;
88
- }
89
- /**
90
- * Sets the paused state of the object.
91
- * @param {boolean} isPaused - The new paused state of the object.
92
- * @return {void}
93
- */
94
- pause(isPaused) {
95
- this.paused(isPaused);
96
- }
97
- /**
98
- * Updates the transform of the ParticleContainer and updates the emitters.
99
- */
100
- _updateTransform(deltaTime) {
101
- if (this._paused)
102
- return;
103
- this.emitter.update(deltaTime);
104
- if (this.turbulenceEmitter) {
105
- this.turbulenceEmitter.update(deltaTime);
106
- }
107
- }
108
- /**
109
- *
110
- * @method updateTexture
111
- * @description This method updates the texture of the unused sprites and children to a randomly generated texture.
112
- */
113
- updateTexture() {
114
- for (let i = 0; i < this.unusedSprites.length; ++i) {
115
- this.unusedSprites[i].texture = Assets.get(this.getRandomTexture());
116
- }
117
- for (let i = 0; i < this.children.length; ++i) {
118
- // @ts-ignore
119
- this.children[i].texture = Assets.get(this.getRandomTexture());
120
- }
121
- }
122
- /**
123
- * This method is used to start the emitter and turbulenceEmitter if available.
124
- * @function start
125
- */
126
- start() {
127
- this.emitter.resetAndPlay();
128
- if (this.turbulenceEmitter) {
129
- this.turbulenceEmitter.resetAndPlay();
130
- }
131
- }
132
- /**
133
- * Resets the particle emitters in this class without removing existing particles and plays them.
134
- * @function play
135
- */
136
- play() {
137
- this.emitter.resetWithoutRemovingAndPlay();
138
- if (this.turbulenceEmitter) {
139
- this.turbulenceEmitter.resetWithoutRemovingAndPlay();
140
- }
141
- }
142
- /**
143
- * Immediately stops emitting particles
144
- */
145
- stopImmediately() {
146
- var _a;
147
- (_a = this._ticker) === null || _a === void 0 ? void 0 : _a.destroy();
148
- this._ticker = undefined;
149
- this.emitter.stop();
150
- if (this.turbulenceEmitter) {
151
- this.turbulenceEmitter.stop();
152
- }
153
- this.emitter.emit(Emitter.COMPLETE);
154
- }
155
- /**
156
- * Destroy particles
157
- */
158
- destroy() {
159
- this.stopImmediately();
160
- super.destroy();
161
- }
162
- /**
163
- * Terminates the emitter and any turbulence emitter it is associated with
164
- */
165
- stop() {
166
- this.emitter.stopWithoutKilling();
167
- if (this.turbulenceEmitter) {
168
- this.turbulenceEmitter.stop();
169
- }
170
- }
171
- /**
172
- * Resets the emitters to their initial state
173
- */
174
- resetEmitter() {
175
- this.emitter.reset();
176
- if (this.turbulenceEmitter) {
177
- this.turbulenceEmitter.reset();
178
- }
179
- }
180
- /**
181
- * Sets the textures used by the emitter
182
- * @param {string[]} textures - Array of strings containing the textures to be used by the emitter
183
- */
184
- setTextures(textures) {
185
- this.textures = textures;
186
- this.updateTexture();
187
- }
188
- /**
189
- * Updates the configuration of the emitter
190
- * @param {any} config - Configuration object to be used to update the emitter
191
- * @param {boolean} resetDuration - should duration be reset
192
- */
193
- updateConfig(config, resetDuration = false) {
194
- this.emitterParser.update(config, this._model, resetDuration);
195
- if (this.turbulenceEmitter) {
196
- const turbulenceConfigIndex = this.getConfigIndexByName(BehaviourNames.TURBULENCE_BEHAVIOUR, config);
197
- if (turbulenceConfigIndex !== -1) {
198
- const turbulenceConfig = config.behaviours[turbulenceConfigIndex];
199
- if (turbulenceConfig.enabled === true) {
200
- this.turbulenceParser.update(this.buildTurbulenceConfig(turbulenceConfig), this._model, resetDuration);
201
- }
202
- }
203
- }
204
- }
205
- /**
206
- * Updates the position of the emitter
207
- * @param {Object} position - Object containing the x and y coordinates of the new position
208
- * @param {boolean} resetDuration - should duration be reset
209
- */
210
- updatePosition(position, resetDuration = true) {
211
- const positionBehaviour = this.getByName(BehaviourNames.POSITION_BEHAVIOUR);
212
- positionBehaviour.position.x = position.x;
213
- positionBehaviour.position.y = position.y;
214
- this.emitterParser.update(this.config, this._model, resetDuration);
215
- }
216
- /**
217
- * Clears the sprite pool, the unused sprites list and the turbulence and particle pools.
218
- */
219
- clearPool() {
220
- this.removeChildren();
221
- this.unusedSprites = [];
222
- if (this.turbulenceEmitter && this.turbulenceEmitter.list) {
223
- this.emitter.turbulencePool.list.reset();
224
- this.emitter.turbulencePool.list = new List();
225
- }
226
- this.emitter.list.reset();
227
- this.emitter.list = new List();
228
- ParticlePool.global.reset();
229
- }
230
- getOrCreateSprite() {
231
- if (this.unusedSprites.length > 0) {
232
- const sprite = this.unusedSprites.pop();
233
- if (this.finishingTextureNames && this.finishingTextureNames.length) {
234
- sprite.texture = Assets.get(this.getRandomTexture());
235
- }
236
- return sprite;
237
- }
238
- if (this.emitter.animatedSprite) {
239
- const textures = this.createFrameAnimationByName(this.getRandomTexture());
240
- if (textures.length) {
241
- const animation = new AnimatedSprite(textures);
242
- animation.anchor.set(this.anchor.x, this.anchor.y);
243
- animation.loop = this.emitter.animatedSprite.loop;
244
- animation.animationSpeed = this.emitter.animatedSprite.frameRate;
245
- return this.addChild(animation);
246
- }
247
- }
248
- const sprite = new Sprite(Assets.get(this.getRandomTexture()));
249
- sprite.anchor.set(this.anchor.x, this.anchor.y);
250
- return this.addChild(sprite);
251
- }
252
- createFrameAnimationByName(prefix, imageFileExtension = 'png') {
253
- const zeroPad = this.zeroPad;
254
- const textures = [];
255
- let frame = '';
256
- let indexFrame = this.indexToStart;
257
- let padding = 0;
258
- let texture;
259
- do {
260
- frame = indexFrame.toString();
261
- padding = zeroPad - frame.length;
262
- if (padding > 0) {
263
- frame = '0'.repeat(padding) + frame;
264
- }
265
- try {
266
- const fileName = `${prefix}${frame}.${imageFileExtension}`;
267
- const file = utils.TextureCache[fileName];
268
- if (file) {
269
- texture = Assets.get(fileName);
270
- textures.push(texture);
271
- indexFrame += 1;
272
- }
273
- else {
274
- texture = null;
275
- }
276
- }
277
- catch (e) {
278
- texture = null;
279
- }
280
- } while (texture);
281
- return textures;
282
- }
283
- onCreate(particle) {
284
- const sprite = this.getOrCreateSprite();
285
- sprite.visible = true;
286
- sprite.alpha = 1;
287
- if (this.blendMode) {
288
- sprite.blendMode = this.blendMode;
289
- }
290
- if (sprite instanceof AnimatedSprite) {
291
- if (this.emitter.animatedSprite.randomFrameStart) {
292
- const textures = this.createFrameAnimationByName(this.getRandomTexture());
293
- sprite.gotoAndPlay(this.getRandomFrameNumber(textures.length));
294
- }
295
- else {
296
- sprite.play();
297
- }
298
- }
299
- particle.sprite = sprite;
300
- }
301
- onCreateTurbulence(particle) {
302
- let sprite;
303
- if (particle.showVortices) {
304
- sprite = new Sprite(Assets.get('vortex.png'));
305
- }
306
- else {
307
- sprite = new Sprite();
308
- }
309
- sprite.anchor.set(this.anchor.x, this.anchor.y);
310
- this.addChild(sprite);
311
- sprite.visible = false;
312
- sprite.alpha = 0;
313
- particle.sprite = sprite;
314
- if (particle.showVortices && sprite) {
315
- sprite.visible = true;
316
- sprite.alpha = 1;
317
- }
318
- }
319
- onUpdate(particle) {
320
- const sprite = particle.sprite;
321
- sprite.x = particle.x;
322
- sprite.y = particle.y;
323
- sprite.scale.x = particle.size.x;
324
- sprite.scale.y = particle.size.y;
325
- sprite.tint = particle.color.hex;
326
- sprite.alpha = particle.color.alpha;
327
- sprite.rotation = particle.rotation;
328
- }
329
- onUpdateTurbulence(particle) {
330
- const sprite = particle.sprite;
331
- sprite.x = particle.x;
332
- sprite.y = particle.y;
333
- if (particle.showVortices && sprite) {
334
- sprite.scale.x = particle.size.x;
335
- sprite.scale.y = particle.size.y;
336
- sprite.tint = particle.color.hex;
337
- sprite.alpha = particle.color.alpha;
338
- sprite.rotation = particle.rotation;
339
- }
340
- }
341
- onFinishing(particle) {
342
- if (!this.finishingTextureNames || !this.finishingTextureNames.length)
343
- return;
344
- const sprite = particle.sprite;
345
- if (particle.finishingTexture <= this.finishingTextureNames.length - 1) {
346
- sprite.texture = Assets.get(this.getRandomFinishingTexture());
347
- particle.finishingTexture++;
348
- }
349
- }
350
- onRemove(particle) {
351
- const sprite = particle.sprite;
352
- if (!particle.showVortices && sprite) {
353
- sprite.visible = false;
354
- sprite.alpha = 0;
355
- }
356
- particle.finishingTexture = 0;
357
- this.unusedSprites.push(sprite);
358
- if (sprite instanceof AnimatedSprite) {
359
- sprite.stop();
360
- }
361
- }
362
- onRemoveTurbulence(particle) {
363
- const sprite = particle.sprite;
364
- if (!particle.showVortices && sprite) {
365
- sprite.visible = false;
366
- sprite.alpha = 0;
367
- }
368
- this.removeChild(sprite);
369
- delete particle.sprite;
370
- }
371
- getRandomTexture() {
372
- return this.textures[Math.floor(Math.random() * this.textures.length)];
373
- }
374
- getRandomFinishingTexture() {
375
- return this.finishingTextureNames[Math.floor(Math.random() * this.finishingTextureNames.length)];
376
- }
377
- getRandomFrameNumber(textures) {
378
- return Math.floor(Math.random() * textures);
379
- }
380
- paused(paused) {
381
- var _a, _b;
382
- if (paused === this._paused)
383
- return;
384
- this._paused = paused;
385
- if (paused) {
386
- (_a = this._ticker) === null || _a === void 0 ? void 0 : _a.stop();
387
- }
388
- else {
389
- (_b = this._ticker) === null || _b === void 0 ? void 0 : _b.start();
390
- }
391
- }
392
- internalPause(paused) {
393
- if (this._paused)
394
- return;
395
- if (paused === this._internalPaused)
396
- return;
397
- this._internalPaused = paused;
398
- }
399
- getConfigIndexByName(name, config) {
400
- let index = -1;
401
- config.behaviours.forEach((behaviour, i) => {
402
- if (behaviour.name === name) {
403
- index = i;
404
- }
405
- });
406
- return index;
407
- }
408
- buildTurbulenceConfig(turbulenceConfig) {
409
- const config = {
410
- behaviours: [
411
- {
412
- enabled: true,
413
- priority: 10000,
414
- maxLifeTime: turbulenceConfig.maxLifeTime || 2,
415
- timeVariance: turbulenceConfig.maxLifeTimeVariance || 0,
416
- name: 'LifeBehaviour',
417
- },
418
- {
419
- enabled: true,
420
- priority: 100,
421
- position: {
422
- x: turbulenceConfig.position.x || 0,
423
- y: turbulenceConfig.position.y || 0,
424
- },
425
- positionVariance: {
426
- x: turbulenceConfig.positionVariance.x || 0,
427
- y: turbulenceConfig.positionVariance.y || 0,
428
- },
429
- velocity: {
430
- x: turbulenceConfig.velocity.x || 0,
431
- y: turbulenceConfig.velocity.y || 0,
432
- },
433
- velocityVariance: {
434
- x: turbulenceConfig.velocityVariance.x || 0,
435
- y: turbulenceConfig.velocityVariance.y || 0,
436
- },
437
- acceleration: {
438
- x: turbulenceConfig.acceleration.x || 0,
439
- y: turbulenceConfig.acceleration.y || 0,
440
- },
441
- accelerationVariance: {
442
- x: turbulenceConfig.accelerationVariance.x || 0,
443
- y: turbulenceConfig.accelerationVariance.y || 0,
444
- },
445
- name: 'PositionBehaviour',
446
- },
447
- {
448
- enabled: true,
449
- priority: 0,
450
- sizeStart: {
451
- x: turbulenceConfig.sizeStart.x || 1,
452
- y: turbulenceConfig.sizeStart.y || 1,
453
- },
454
- sizeEnd: {
455
- x: turbulenceConfig.sizeEnd.x || 1,
456
- y: turbulenceConfig.sizeEnd.y || 1,
457
- },
458
- startVariance: turbulenceConfig.startVariance || 0,
459
- endVariance: turbulenceConfig.endVariance || 0,
460
- name: 'SizeBehaviour',
461
- },
462
- {
463
- enabled: true,
464
- priority: 0,
465
- rotation: 12,
466
- variance: 0,
467
- name: 'RotationBehaviour',
468
- },
469
- {
470
- enabled: true,
471
- priority: 0,
472
- showVortices: turbulenceConfig.showVortices || false,
473
- turbulence: true,
474
- name: 'TurbulenceBehaviour',
475
- },
476
- ],
477
- emitController: {
478
- _maxParticles: 0,
479
- _maxLife: 1,
480
- _emitPerSecond: turbulenceConfig.emitPerSecond || 2,
481
- _frames: 0,
482
- name: 'UniformEmission',
483
- },
484
- duration: turbulenceConfig.duration || -1,
485
- };
486
- return config;
487
- }
488
- }
489
- //# sourceMappingURL=RendererEditor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RendererEditor.js","sourceRoot":"","sources":["../../../src/lib/pixi/RendererEditor.ts"],"names":[],"mappings":"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"}