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