custom-pixi-particles 7.0.0 → 7.1.1

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 (164) hide show
  1. package/README.md +6 -4
  2. package/package.json +6 -5
  3. package/dist/index.d.ts +0 -15
  4. package/dist/index.js +0 -45
  5. package/dist/index.js.map +0 -1
  6. package/dist/lib/Model.d.ts +0 -32
  7. package/dist/lib/Model.js +0 -44
  8. package/dist/lib/Model.js.map +0 -1
  9. package/dist/lib/Particle.d.ts +0 -234
  10. package/dist/lib/Particle.js +0 -201
  11. package/dist/lib/Particle.js.map +0 -1
  12. package/dist/lib/ParticlePool.d.ts +0 -37
  13. package/dist/lib/ParticlePool.js +0 -56
  14. package/dist/lib/ParticlePool.js.map +0 -1
  15. package/dist/lib/behaviour/AngularVelocityBehaviour.d.ts +0 -61
  16. package/dist/lib/behaviour/AngularVelocityBehaviour.js +0 -118
  17. package/dist/lib/behaviour/AngularVelocityBehaviour.js.map +0 -1
  18. package/dist/lib/behaviour/AttractionRepulsionBehaviour.d.ts +0 -42
  19. package/dist/lib/behaviour/AttractionRepulsionBehaviour.js +0 -78
  20. package/dist/lib/behaviour/AttractionRepulsionBehaviour.js.map +0 -1
  21. package/dist/lib/behaviour/Behaviour.d.ts +0 -33
  22. package/dist/lib/behaviour/Behaviour.js +0 -45
  23. package/dist/lib/behaviour/Behaviour.js.map +0 -1
  24. package/dist/lib/behaviour/BehaviourNames.d.ts +0 -22
  25. package/dist/lib/behaviour/BehaviourNames.js +0 -23
  26. package/dist/lib/behaviour/BehaviourNames.js.map +0 -1
  27. package/dist/lib/behaviour/CollisionBehaviour.d.ts +0 -86
  28. package/dist/lib/behaviour/CollisionBehaviour.js +0 -140
  29. package/dist/lib/behaviour/CollisionBehaviour.js.map +0 -1
  30. package/dist/lib/behaviour/ColorBehaviour.d.ts +0 -67
  31. package/dist/lib/behaviour/ColorBehaviour.js +0 -193
  32. package/dist/lib/behaviour/ColorBehaviour.js.map +0 -1
  33. package/dist/lib/behaviour/EmitDirectionBehaviour.d.ts +0 -52
  34. package/dist/lib/behaviour/EmitDirectionBehaviour.js +0 -105
  35. package/dist/lib/behaviour/EmitDirectionBehaviour.js.map +0 -1
  36. package/dist/lib/behaviour/EmitterBehaviours.d.ts +0 -69
  37. package/dist/lib/behaviour/EmitterBehaviours.js +0 -116
  38. package/dist/lib/behaviour/EmitterBehaviours.js.map +0 -1
  39. package/dist/lib/behaviour/ForceFieldsBehaviour.d.ts +0 -53
  40. package/dist/lib/behaviour/ForceFieldsBehaviour.js +0 -80
  41. package/dist/lib/behaviour/ForceFieldsBehaviour.js.map +0 -1
  42. package/dist/lib/behaviour/GroupingBehaviour.d.ts +0 -57
  43. package/dist/lib/behaviour/GroupingBehaviour.js +0 -143
  44. package/dist/lib/behaviour/GroupingBehaviour.js.map +0 -1
  45. package/dist/lib/behaviour/LifeBehaviour.d.ts +0 -47
  46. package/dist/lib/behaviour/LifeBehaviour.js +0 -65
  47. package/dist/lib/behaviour/LifeBehaviour.js.map +0 -1
  48. package/dist/lib/behaviour/LightEffectBehaviour.d.ts +0 -59
  49. package/dist/lib/behaviour/LightEffectBehaviour.js +0 -94
  50. package/dist/lib/behaviour/LightEffectBehaviour.js.map +0 -1
  51. package/dist/lib/behaviour/NoiseBasedMotionBehaviour.d.ts +0 -35
  52. package/dist/lib/behaviour/NoiseBasedMotionBehaviour.js +0 -93
  53. package/dist/lib/behaviour/NoiseBasedMotionBehaviour.js.map +0 -1
  54. package/dist/lib/behaviour/PositionBehaviour.d.ts +0 -164
  55. package/dist/lib/behaviour/PositionBehaviour.js +0 -484
  56. package/dist/lib/behaviour/PositionBehaviour.js.map +0 -1
  57. package/dist/lib/behaviour/RotationBehaviour.d.ts +0 -59
  58. package/dist/lib/behaviour/RotationBehaviour.js +0 -100
  59. package/dist/lib/behaviour/RotationBehaviour.js.map +0 -1
  60. package/dist/lib/behaviour/SizeBehaviour.d.ts +0 -61
  61. package/dist/lib/behaviour/SizeBehaviour.js +0 -156
  62. package/dist/lib/behaviour/SizeBehaviour.js.map +0 -1
  63. package/dist/lib/behaviour/SoundReactiveBehaviour.d.ts +0 -58
  64. package/dist/lib/behaviour/SoundReactiveBehaviour.js +0 -132
  65. package/dist/lib/behaviour/SoundReactiveBehaviour.js.map +0 -1
  66. package/dist/lib/behaviour/SpawnBehaviour.d.ts +0 -89
  67. package/dist/lib/behaviour/SpawnBehaviour.js +0 -705
  68. package/dist/lib/behaviour/SpawnBehaviour.js.map +0 -1
  69. package/dist/lib/behaviour/StretchBehaviour.d.ts +0 -30
  70. package/dist/lib/behaviour/StretchBehaviour.js +0 -59
  71. package/dist/lib/behaviour/StretchBehaviour.js.map +0 -1
  72. package/dist/lib/behaviour/TemperatureBehaviour.d.ts +0 -47
  73. package/dist/lib/behaviour/TemperatureBehaviour.js +0 -64
  74. package/dist/lib/behaviour/TemperatureBehaviour.js.map +0 -1
  75. package/dist/lib/behaviour/TimelineBehaviour.d.ts +0 -73
  76. package/dist/lib/behaviour/TimelineBehaviour.js +0 -100
  77. package/dist/lib/behaviour/TimelineBehaviour.js.map +0 -1
  78. package/dist/lib/behaviour/TurbulenceBehaviour.d.ts +0 -73
  79. package/dist/lib/behaviour/TurbulenceBehaviour.js +0 -133
  80. package/dist/lib/behaviour/TurbulenceBehaviour.js.map +0 -1
  81. package/dist/lib/behaviour/index.d.ts +0 -23
  82. package/dist/lib/behaviour/index.js +0 -24
  83. package/dist/lib/behaviour/index.js.map +0 -1
  84. package/dist/lib/customPixiParticlesSettingsInterface.d.ts +0 -19
  85. package/dist/lib/customPixiParticlesSettingsInterface.js +0 -2
  86. package/dist/lib/customPixiParticlesSettingsInterface.js.map +0 -1
  87. package/dist/lib/emission/AbstractEmission.d.ts +0 -30
  88. package/dist/lib/emission/AbstractEmission.js +0 -39
  89. package/dist/lib/emission/AbstractEmission.js.map +0 -1
  90. package/dist/lib/emission/EmissionTypes.d.ts +0 -6
  91. package/dist/lib/emission/EmissionTypes.js +0 -6
  92. package/dist/lib/emission/EmissionTypes.js.map +0 -1
  93. package/dist/lib/emission/RandomEmission.d.ts +0 -44
  94. package/dist/lib/emission/RandomEmission.js +0 -66
  95. package/dist/lib/emission/RandomEmission.js.map +0 -1
  96. package/dist/lib/emission/StandardEmission.d.ts +0 -62
  97. package/dist/lib/emission/StandardEmission.js +0 -87
  98. package/dist/lib/emission/StandardEmission.js.map +0 -1
  99. package/dist/lib/emission/UniformEmission.d.ts +0 -56
  100. package/dist/lib/emission/UniformEmission.js +0 -83
  101. package/dist/lib/emission/UniformEmission.js.map +0 -1
  102. package/dist/lib/emission/index.d.ts +0 -6
  103. package/dist/lib/emission/index.js +0 -7
  104. package/dist/lib/emission/index.js.map +0 -1
  105. package/dist/lib/emitter/Duration.d.ts +0 -27
  106. package/dist/lib/emitter/Duration.js +0 -41
  107. package/dist/lib/emitter/Duration.js.map +0 -1
  108. package/dist/lib/emitter/Emitter.d.ts +0 -116
  109. package/dist/lib/emitter/Emitter.js +0 -240
  110. package/dist/lib/emitter/Emitter.js.map +0 -1
  111. package/dist/lib/emitter/index.d.ts +0 -3
  112. package/dist/lib/emitter/index.js +0 -4
  113. package/dist/lib/emitter/index.js.map +0 -1
  114. package/dist/lib/index.d.ts +0 -20
  115. package/dist/lib/index.js +0 -21
  116. package/dist/lib/index.js.map +0 -1
  117. package/dist/lib/parser/BehaviourParser.d.ts +0 -21
  118. package/dist/lib/parser/BehaviourParser.js +0 -72
  119. package/dist/lib/parser/BehaviourParser.js.map +0 -1
  120. package/dist/lib/parser/CompatibilityHelper.d.ts +0 -12
  121. package/dist/lib/parser/CompatibilityHelper.js +0 -19
  122. package/dist/lib/parser/CompatibilityHelper.js.map +0 -1
  123. package/dist/lib/parser/EmitControllerParser.d.ts +0 -27
  124. package/dist/lib/parser/EmitControllerParser.js +0 -39
  125. package/dist/lib/parser/EmitControllerParser.js.map +0 -1
  126. package/dist/lib/parser/EmitterParser.d.ts +0 -67
  127. package/dist/lib/parser/EmitterParser.js +0 -168
  128. package/dist/lib/parser/EmitterParser.js.map +0 -1
  129. package/dist/lib/parser/index.d.ts +0 -5
  130. package/dist/lib/parser/index.js +0 -6
  131. package/dist/lib/parser/index.js.map +0 -1
  132. package/dist/lib/pixi/Renderer.d.ts +0 -125
  133. package/dist/lib/pixi/Renderer.js +0 -566
  134. package/dist/lib/pixi/Renderer.js.map +0 -1
  135. package/dist/lib/pixi/TestRenderer.d.ts +0 -125
  136. package/dist/lib/pixi/TestRenderer.js +0 -560
  137. package/dist/lib/pixi/TestRenderer.js.map +0 -1
  138. package/dist/lib/util/Color.d.ts +0 -133
  139. package/dist/lib/util/Color.js +0 -173
  140. package/dist/lib/util/Color.js.map +0 -1
  141. package/dist/lib/util/List.d.ts +0 -49
  142. package/dist/lib/util/List.js +0 -87
  143. package/dist/lib/util/List.js.map +0 -1
  144. package/dist/lib/util/MinMax.d.ts +0 -34
  145. package/dist/lib/util/MinMax.js +0 -46
  146. package/dist/lib/util/MinMax.js.map +0 -1
  147. package/dist/lib/util/Point.d.ts +0 -34
  148. package/dist/lib/util/Point.js +0 -46
  149. package/dist/lib/util/Point.js.map +0 -1
  150. package/dist/lib/util/Random.d.ts +0 -24
  151. package/dist/lib/util/Random.js +0 -30
  152. package/dist/lib/util/Random.js.map +0 -1
  153. package/dist/lib/util/ThereBack.d.ts +0 -14
  154. package/dist/lib/util/ThereBack.js +0 -23
  155. package/dist/lib/util/ThereBack.js.map +0 -1
  156. package/dist/lib/util/index.d.ts +0 -5
  157. package/dist/lib/util/index.js +0 -6
  158. package/dist/lib/util/index.js.map +0 -1
  159. package/dist/lib/util/maths.d.ts +0 -10
  160. package/dist/lib/util/maths.js +0 -13
  161. package/dist/lib/util/maths.js.map +0 -1
  162. package/dist/lib/util/turbulencePool.d.ts +0 -4
  163. package/dist/lib/util/turbulencePool.js +0 -7
  164. package/dist/lib/util/turbulencePool.js.map +0 -1
@@ -1,566 +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, ParticleContainer, Sprite, Texture, 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 Renderer extends ParticleContainer {
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, minFPS, tickerSpeed, } = settings;
22
- super(maxParticles, {
23
- vertices,
24
- position,
25
- rotation,
26
- uvs,
27
- tint,
28
- });
29
- this._paused = false;
30
- this._internalPaused = false;
31
- this.zeroPad = 2;
32
- this.indexToStart = 0;
33
- this.unusedSprites = [];
34
- this.anchor = { x: 0.5, y: 0.5 };
35
- this._model = new Model();
36
- this.onComplete = () => {
37
- /**/
38
- };
39
- this.onCompleteFN = () => {
40
- /**/
41
- };
42
- this.getByName = (name) => {
43
- for (let i = 0; i < this.config.behaviours.length; ++i) {
44
- if (this.config.behaviours[i].name === name) {
45
- return this.config.behaviours[i];
46
- }
47
- }
48
- return null;
49
- };
50
- this.config = emitterConfig;
51
- this.textures = textures;
52
- this.finishingTextureNames = finishingTextures;
53
- this.zeroPad = animatedSpriteZeroPad;
54
- this.indexToStart = animatedSpriteIndexToStart;
55
- const turbulenceConfigIndex = this.getConfigIndexByName(BehaviourNames.TURBULENCE_BEHAVIOUR, emitterConfig);
56
- if (turbulenceConfigIndex !== -1) {
57
- const turbulenceConfig = emitterConfig.behaviours[turbulenceConfigIndex];
58
- if (turbulenceConfig.enabled === true) {
59
- this.turbulenceEmitter = new engine.Emitter(this._model);
60
- this.turbulenceParser = this.turbulenceEmitter.getParser();
61
- this.turbulenceParser.read(this.buildTurbulenceConfig(turbulenceConfig), this._model);
62
- this.turbulenceEmitter.on(Emitter.CREATE, this.onCreateTurbulence, this);
63
- this.turbulenceEmitter.on(Emitter.UPDATE, this.onUpdateTurbulence, this);
64
- this.turbulenceEmitter.on(Emitter.REMOVE, this.onRemoveTurbulence, this);
65
- }
66
- }
67
- if (typeof emitterConfig.alpha !== 'undefined') {
68
- this.alpha = emitterConfig.alpha;
69
- }
70
- if (typeof emitterConfig.blendMode !== 'undefined') {
71
- this.blendMode = emitterConfig.blendMode;
72
- }
73
- if (typeof emitterConfig.anchor !== 'undefined') {
74
- this.anchor = emitterConfig.anchor;
75
- }
76
- this.emitter = new engine.Emitter(this._model);
77
- this.emitterParser = this.emitter.getParser();
78
- this.emitterParser.read(emitterConfig, this._model);
79
- this.emitter.on(Emitter.CREATE, this.onCreate, this);
80
- this.emitter.on(Emitter.UPDATE, this.onUpdate, this);
81
- this.emitter.on(Emitter.FINISHING, this.onFinishing, this);
82
- this.emitter.on(Emitter.REMOVE, this.onRemove, this);
83
- this.onCompleteFN = () => this.onComplete();
84
- this.emitter.on(Emitter.COMPLETE, this.onCompleteFN, this);
85
- if (this.turbulenceEmitter && this.turbulenceEmitter.list) {
86
- this.emitter.turbulencePool.list = this.turbulenceEmitter.list;
87
- }
88
- this._visibilitychangeBinding = () => this.internalPause(document.hidden);
89
- document.addEventListener('visibilitychange', this._visibilitychangeBinding);
90
- const ticker = new Ticker();
91
- ticker.maxFPS = maxFPS;
92
- ticker.minFPS = minFPS;
93
- ticker.speed = tickerSpeed;
94
- ticker.stop();
95
- // @ts-ignore
96
- ticker.add(this._updateTransform, this);
97
- ticker.start();
98
- this._ticker = ticker;
99
- }
100
- /**
101
- * Sets the paused state of the object.
102
- *
103
- * @param {boolean} [isPaused=true] - The new paused state of the object. Defaults to `true`.
104
- * @returns {void}
105
- */
106
- pause(isPaused = true) {
107
- this.paused(isPaused);
108
- }
109
- /**
110
- * Resumes the object's operation by setting its paused state to false.
111
- *
112
- * @returns {void}
113
- */
114
- resume() {
115
- this.paused(false);
116
- }
117
- /**
118
- * Updates the transform of the ParticleContainer and updates the emitters.
119
- */
120
- _updateTransform(deltaTime) {
121
- var _a;
122
- if (this._paused)
123
- return;
124
- (_a = this.emitter) === null || _a === void 0 ? void 0 : _a.update(deltaTime);
125
- if (this.turbulenceEmitter) {
126
- this.turbulenceEmitter.update(deltaTime);
127
- }
128
- }
129
- /**
130
- *
131
- * @method updateTexture
132
- * @description This method updates the texture of the unused sprites and children to a randomly generated texture.
133
- */
134
- updateTexture() {
135
- var _a;
136
- for (let i = 0; i < this.unusedSprites.length; ++i) {
137
- this.unusedSprites[i].texture = Assets.get(this.getRandomTexture());
138
- }
139
- for (let i = 0; i < ((_a = this.children) === null || _a === void 0 ? void 0 : _a.length); ++i) {
140
- // @ts-ignore
141
- this.children[i].texture = Texture.from(this.getRandomTexture());
142
- }
143
- }
144
- /**
145
- * This method is used to start the emitter and turbulenceEmitter if available.
146
- * @function start
147
- */
148
- start() {
149
- var _a;
150
- (_a = this.emitter) === null || _a === void 0 ? void 0 : _a.resetAndPlay();
151
- if (this.turbulenceEmitter) {
152
- this.turbulenceEmitter.resetAndPlay();
153
- }
154
- }
155
- /**
156
- * Resets the particle emitters in this class without removing existing particles and plays them.
157
- * @function play
158
- */
159
- play() {
160
- var _a;
161
- (_a = this.emitter) === null || _a === void 0 ? void 0 : _a.resetWithoutRemovingAndPlay();
162
- if (this.turbulenceEmitter) {
163
- this.turbulenceEmitter.resetWithoutRemovingAndPlay();
164
- }
165
- }
166
- /**
167
- * Immediately stops emitting particles
168
- */
169
- stopImmediately() {
170
- var _a, _b, _c;
171
- (_a = this._ticker) === null || _a === void 0 ? void 0 : _a.destroy();
172
- this._ticker = undefined;
173
- (_b = this.emitter) === null || _b === void 0 ? void 0 : _b.stop();
174
- if (this.turbulenceEmitter) {
175
- this.turbulenceEmitter.stop();
176
- }
177
- (_c = this.emitter) === null || _c === void 0 ? void 0 : _c.emit(Emitter.COMPLETE);
178
- }
179
- /**
180
- * Destroy particles
181
- */
182
- destroy() {
183
- this.stopImmediately();
184
- super.destroy();
185
- if (this.emitter) {
186
- this.emitter.destroy();
187
- this.emitter.off(Emitter.CREATE, this.onCreate, this);
188
- this.emitter.off(Emitter.UPDATE, this.onUpdate, this);
189
- this.emitter.off(Emitter.FINISHING, this.onFinishing, this);
190
- this.emitter.off(Emitter.REMOVE, this.onRemove, this);
191
- this.emitter.off(Emitter.COMPLETE, this.onCompleteFN, this);
192
- // @ts-ignore
193
- this.emitter = undefined;
194
- }
195
- // @ts-ignore
196
- this.turbulenceEmitter = undefined;
197
- // @ts-ignore
198
- this.turbulenceParser = undefined;
199
- // @ts-ignore
200
- this.unusedSprites = undefined;
201
- // @ts-ignore
202
- this._model = undefined;
203
- this.onComplete = undefined;
204
- this.onCompleteFN = undefined;
205
- this.config = undefined;
206
- // @ts-ignore
207
- this.textures = undefined;
208
- // @ts-ignore
209
- this.finishingTextureNames = undefined;
210
- // @ts-ignore
211
- this.emitterParser = undefined;
212
- // @ts-ignore
213
- this.textures = undefined;
214
- document.removeEventListener('visibilitychange', this._visibilitychangeBinding);
215
- }
216
- /**
217
- * Terminates the emitter and any turbulence emitter it is associated with
218
- */
219
- stop() {
220
- var _a;
221
- (_a = this.emitter) === null || _a === void 0 ? void 0 : _a.stopWithoutKilling();
222
- if (this.turbulenceEmitter) {
223
- this.turbulenceEmitter.stop();
224
- }
225
- }
226
- /**
227
- * Resets the emitters to their initial state
228
- */
229
- resetEmitter() {
230
- var _a;
231
- (_a = this.emitter) === null || _a === void 0 ? void 0 : _a.reset();
232
- if (this.turbulenceEmitter) {
233
- this.turbulenceEmitter.reset();
234
- }
235
- }
236
- /**
237
- * Sets the textures used by the emitter
238
- * @param {string[]} textures - Array of strings containing the textures to be used by the emitter
239
- */
240
- setTextures(textures) {
241
- this.textures = textures;
242
- this.updateTexture();
243
- }
244
- /**
245
- * Updates the configuration of the emitter
246
- * @param {any} config - Configuration object to be used to update the emitter
247
- * @param {boolean} resetDuration - should duration be reset
248
- */
249
- updateConfig(config, resetDuration = false) {
250
- var _a;
251
- (_a = this.emitterParser) === null || _a === void 0 ? void 0 : _a.update(config, this._model, resetDuration);
252
- if (this.turbulenceEmitter) {
253
- const turbulenceConfigIndex = this.getConfigIndexByName(BehaviourNames.TURBULENCE_BEHAVIOUR, config);
254
- if (turbulenceConfigIndex !== -1) {
255
- const turbulenceConfig = config.behaviours[turbulenceConfigIndex];
256
- if (turbulenceConfig.enabled === true) {
257
- this.turbulenceParser.update(this.buildTurbulenceConfig(turbulenceConfig), this._model, resetDuration);
258
- }
259
- }
260
- }
261
- }
262
- /**
263
- * Updates the position of the emitter
264
- * @param {Object} position - Object containing the x and y coordinates of the new position
265
- * @param {boolean} resetDuration - should duration be reset
266
- */
267
- updatePosition(position, resetDuration = true) {
268
- var _a;
269
- const behaviour = this.getByName(BehaviourNames.SPAWN_BEHAVIOUR);
270
- behaviour.customPoints[0].position.x = position.x;
271
- behaviour.customPoints[0].position.y = position.y;
272
- (_a = this.emitterParser) === null || _a === void 0 ? void 0 : _a.update(this.config, this._model, resetDuration);
273
- }
274
- /**
275
- * Clears the sprite pool, the unused sprites list and the turbulence and particle pools.
276
- */
277
- clearPool() {
278
- this.removeChildren();
279
- this.unusedSprites = [];
280
- if (this.turbulenceEmitter && this.turbulenceEmitter.list) {
281
- if (this.emitter) {
282
- this.emitter.turbulencePool.list.reset();
283
- this.emitter.turbulencePool.list = new List();
284
- }
285
- }
286
- if (this.emitter) {
287
- this.emitter.list.reset();
288
- this.emitter.list = new List();
289
- }
290
- ParticlePool.global.reset();
291
- }
292
- getOrCreateSprite() {
293
- var _a, _b, _c;
294
- if (this.unusedSprites.length > 0) {
295
- const sprite = this.unusedSprites.pop();
296
- if (this.finishingTextureNames && this.finishingTextureNames.length) {
297
- sprite.texture = Assets.get(this.getRandomTexture());
298
- }
299
- return sprite;
300
- }
301
- if ((_a = this.emitter) === null || _a === void 0 ? void 0 : _a.animatedSprite) {
302
- const textures = this.createFrameAnimationByName(this.getRandomTexture());
303
- if (textures.length) {
304
- const animation = new AnimatedSprite(textures);
305
- animation.anchor.set(this.anchor.x, this.anchor.y);
306
- // @ts-ignore
307
- animation.loop = (_b = this.emitter) === null || _b === void 0 ? void 0 : _b.animatedSprite.loop;
308
- // @ts-ignore
309
- animation.animationSpeed = (_c = this.emitter) === null || _c === void 0 ? void 0 : _c.animatedSprite.frameRate;
310
- return this.addChild(animation);
311
- }
312
- }
313
- const sprite = new Sprite(Texture.from(this.getRandomTexture()));
314
- sprite.anchor.set(this.anchor.x, this.anchor.y);
315
- return this.addChild(sprite);
316
- }
317
- createFrameAnimationByName(prefix, imageFileExtension = 'png') {
318
- const zeroPad = this.zeroPad;
319
- const textures = [];
320
- let frame = '';
321
- let indexFrame = this.indexToStart;
322
- let padding = 0;
323
- let texture;
324
- do {
325
- frame = indexFrame.toString();
326
- padding = zeroPad - frame.length;
327
- if (padding > 0) {
328
- frame = '0'.repeat(padding) + frame;
329
- }
330
- try {
331
- const fileName = `${prefix}${frame}.${imageFileExtension}`;
332
- const file = utils.TextureCache[fileName];
333
- if (file) {
334
- texture = Assets.get(fileName);
335
- textures.push(texture);
336
- indexFrame += 1;
337
- }
338
- else {
339
- texture = null;
340
- }
341
- }
342
- catch (e) {
343
- texture = null;
344
- }
345
- } while (texture);
346
- return textures;
347
- }
348
- onCreate(particle) {
349
- var _a;
350
- const sprite = this.getOrCreateSprite();
351
- sprite.visible = true;
352
- sprite.alpha = 1;
353
- if (this.blendMode) {
354
- sprite.blendMode = this.blendMode;
355
- }
356
- if (sprite instanceof AnimatedSprite) {
357
- if ((_a = this.emitter) === null || _a === void 0 ? void 0 : _a.animatedSprite.randomFrameStart) {
358
- const textures = this.createFrameAnimationByName(this.getRandomTexture());
359
- sprite.gotoAndPlay(this.getRandomFrameNumber(textures.length));
360
- }
361
- else {
362
- sprite.play();
363
- }
364
- }
365
- particle.sprite = sprite;
366
- }
367
- onCreateTurbulence(particle) {
368
- let sprite;
369
- if (particle.showVortices) {
370
- sprite = new Sprite(Texture.from('vortex.png'));
371
- }
372
- else {
373
- sprite = new Sprite();
374
- }
375
- sprite.anchor.set(this.anchor.x, this.anchor.y);
376
- this.addChild(sprite);
377
- sprite.visible = false;
378
- sprite.alpha = 0;
379
- particle.sprite = sprite;
380
- if (particle.showVortices && sprite) {
381
- sprite.visible = true;
382
- sprite.alpha = 1;
383
- }
384
- }
385
- onUpdate(particle) {
386
- const sprite = particle.sprite;
387
- sprite.x = particle.x;
388
- sprite.y = particle.y;
389
- sprite.scale.x = particle.size.x;
390
- sprite.scale.y = particle.size.y;
391
- sprite.tint = particle.color.hex;
392
- sprite.alpha = particle.color.alpha;
393
- sprite.rotation = particle.rotation;
394
- }
395
- onUpdateTurbulence(particle) {
396
- const sprite = particle.sprite;
397
- sprite.x = particle.x;
398
- sprite.y = particle.y;
399
- if (particle.showVortices && sprite) {
400
- sprite.scale.x = particle.size.x;
401
- sprite.scale.y = particle.size.y;
402
- sprite.tint = particle.color.hex;
403
- sprite.alpha = particle.color.alpha;
404
- sprite.rotation = particle.rotation;
405
- }
406
- }
407
- onFinishing(particle) {
408
- if (!this.finishingTextureNames || !this.finishingTextureNames.length)
409
- return;
410
- const sprite = particle.sprite;
411
- if (particle.finishingTexture <= this.finishingTextureNames.length - 1) {
412
- sprite.texture = Texture.from(this.getRandomFinishingTexture());
413
- particle.finishingTexture++;
414
- }
415
- }
416
- onRemove(particle) {
417
- const sprite = particle.sprite;
418
- if (!particle.showVortices && sprite) {
419
- sprite.visible = false;
420
- sprite.alpha = 0;
421
- }
422
- particle.finishingTexture = 0;
423
- this.unusedSprites.push(sprite);
424
- if (sprite instanceof AnimatedSprite) {
425
- sprite.stop();
426
- }
427
- }
428
- onRemoveTurbulence(particle) {
429
- const sprite = particle.sprite;
430
- if (!particle.showVortices && sprite) {
431
- sprite.visible = false;
432
- sprite.alpha = 0;
433
- }
434
- this.removeChild(sprite);
435
- delete particle.sprite;
436
- }
437
- getRandomTexture() {
438
- return this.textures[Math.floor(Math.random() * this.textures.length)];
439
- }
440
- getRandomFinishingTexture() {
441
- return this.finishingTextureNames[Math.floor(Math.random() * this.finishingTextureNames.length)];
442
- }
443
- getRandomFrameNumber(textures) {
444
- return Math.floor(Math.random() * textures);
445
- }
446
- paused(paused) {
447
- var _a, _b, _c, _d;
448
- if (paused === this._paused)
449
- return;
450
- this._paused = paused;
451
- if (paused) {
452
- (_a = this._ticker) === null || _a === void 0 ? void 0 : _a.stop();
453
- (_b = this.emitter) === null || _b === void 0 ? void 0 : _b.pause();
454
- }
455
- else {
456
- (_c = this._ticker) === null || _c === void 0 ? void 0 : _c.start();
457
- (_d = this.emitter) === null || _d === void 0 ? void 0 : _d.resume();
458
- }
459
- }
460
- internalPause(paused) {
461
- if (this._paused)
462
- return;
463
- if (paused === this._internalPaused)
464
- return;
465
- this._internalPaused = paused;
466
- }
467
- getConfigIndexByName(name, config) {
468
- let index = -1;
469
- config.behaviours.forEach((behaviour, i) => {
470
- if (behaviour.name === name) {
471
- index = i;
472
- }
473
- });
474
- return index;
475
- }
476
- buildTurbulenceConfig(turbulenceConfig) {
477
- return {
478
- behaviours: [
479
- {
480
- enabled: true,
481
- priority: 10000,
482
- maxLifeTime: turbulenceConfig.maxLifeTime || 2,
483
- timeVariance: turbulenceConfig.maxLifeTimeVariance || 0,
484
- name: 'LifeBehaviour',
485
- },
486
- {
487
- priority: 100,
488
- spawnType: 'Ring',
489
- customPoints: [
490
- {
491
- radius: 0,
492
- position: {
493
- x: turbulenceConfig.position.x || 0,
494
- y: turbulenceConfig.position.y || 0,
495
- },
496
- positionVariance: {
497
- x: turbulenceConfig.positionVariance.x || 0,
498
- y: turbulenceConfig.positionVariance.y || 0,
499
- },
500
- },
501
- ],
502
- name: 'SpawnBehaviour',
503
- },
504
- {
505
- enabled: true,
506
- priority: 100,
507
- velocity: {
508
- x: turbulenceConfig.velocity.x || 0,
509
- y: turbulenceConfig.velocity.y || 0,
510
- },
511
- velocityVariance: {
512
- x: turbulenceConfig.velocityVariance.x || 0,
513
- y: turbulenceConfig.velocityVariance.y || 0,
514
- },
515
- acceleration: {
516
- x: turbulenceConfig.acceleration.x || 0,
517
- y: turbulenceConfig.acceleration.y || 0,
518
- },
519
- accelerationVariance: {
520
- x: turbulenceConfig.accelerationVariance.x || 0,
521
- y: turbulenceConfig.accelerationVariance.y || 0,
522
- },
523
- name: 'PositionBehaviour',
524
- },
525
- {
526
- enabled: true,
527
- priority: 0,
528
- sizeStart: {
529
- x: turbulenceConfig.sizeStart.x || 1,
530
- y: turbulenceConfig.sizeStart.y || 1,
531
- },
532
- sizeEnd: {
533
- x: turbulenceConfig.sizeEnd.x || 1,
534
- y: turbulenceConfig.sizeEnd.y || 1,
535
- },
536
- startVariance: turbulenceConfig.startVariance || 0,
537
- endVariance: turbulenceConfig.endVariance || 0,
538
- name: 'SizeBehaviour',
539
- },
540
- {
541
- enabled: true,
542
- priority: 0,
543
- rotation: 12,
544
- variance: 0,
545
- name: 'RotationBehaviour',
546
- },
547
- {
548
- enabled: true,
549
- priority: 0,
550
- showVortices: turbulenceConfig.showVortices || false,
551
- turbulence: true,
552
- name: 'TurbulenceBehaviour',
553
- },
554
- ],
555
- emitController: {
556
- _maxParticles: 0,
557
- _maxLife: 1,
558
- _emitPerSecond: turbulenceConfig.emitPerSecond || 2,
559
- _frames: 0,
560
- name: 'UniformEmission',
561
- },
562
- duration: turbulenceConfig.duration || -1,
563
- };
564
- }
565
- }
566
- //# sourceMappingURL=Renderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Renderer.js","sourceRoot":"","sources":["../../../src/lib/pixi/Renderer.ts"],"names":[],"mappings":"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"}