custom-pixi-particles 8.7.2 → 8.7.3

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.
@@ -17,8 +17,6 @@ export default class DissolveEffect extends Container {
17
17
  this.fragments = [];
18
18
  this.isProcessing = false;
19
19
  this.progress = 0;
20
- // Determine bounds to set container size
21
- const bounds = sourceSprite.getLocalBounds();
22
20
  const pixelSize = (_a = options.pixelSize) !== null && _a !== void 0 ? _a : 2;
23
21
  this.options = {
24
22
  pixelSize,
@@ -28,35 +26,48 @@ export default class DissolveEffect extends Container {
28
26
  lifetime: (_e = options.lifetime) !== null && _e !== void 0 ? _e : 1.5,
29
27
  fadeOutDuration: (_f = options.fadeOutDuration) !== null && _f !== void 0 ? _f : 0.5,
30
28
  direction: (_g = options.direction) !== null && _g !== void 0 ? _g : 'left-to-right',
31
- windAngle: ((_h = options.windAngle) !== null && _h !== void 0 ? _h : -45) * (Math.PI / 180), // Support degrees from UI
29
+ windAngle: ((_h = options.windAngle) !== null && _h !== void 0 ? _h : -45) * (Math.PI / 180),
32
30
  };
31
+ // Copy transforms from source
33
32
  this.x = sourceSprite.x;
34
33
  this.y = sourceSprite.y;
35
34
  this.rotation = sourceSprite.rotation;
35
+ this.scale.copyFrom(sourceSprite.scale);
36
+ this.pivot.copyFrom(sourceSprite.pivot);
36
37
  }
37
38
  prepare() {
38
39
  const texture = this.sourceSprite.texture;
39
- if (!texture || !texture.source)
40
+ if (!texture || !texture.source) {
41
+ console.warn('DissolveEffect: Texture source not found.');
40
42
  return;
41
- const canvas = document.createElement('canvas');
43
+ }
44
+ // In Pixi v8, 'resource' is the most reliable path to the raw image data.
45
+ // It can be an HTMLImageElement, HTMLCanvasElement, or ImageBitmap.
46
+ const sourceElement = texture.source.resource;
47
+ if (!sourceElement) {
48
+ console.warn('DissolveEffect: Could not find valid resource on texture.source.');
49
+ return;
50
+ }
42
51
  const { width, height } = texture.frame;
52
+ const canvas = document.createElement('canvas');
43
53
  canvas.width = width;
44
54
  canvas.height = height;
45
- const ctx = canvas.getContext('2d');
46
- const source = texture.source;
47
- const resource = source.resource;
48
- if (resource && (resource.source || resource.data)) {
49
- // tslint:disable-next-line:max-line-length
50
- ctx.drawImage(resource.source || resource.data, texture.frame.x, texture.frame.y, width, height, 0, 0, width, height);
55
+ const ctx = canvas.getContext('2d', { willReadFrequently: true });
56
+ // Draw the specific frame (important for Spritesheets/Atlases)
57
+ try {
58
+ ctx.drawImage(sourceElement, texture.frame.x, texture.frame.y, texture.frame.width, texture.frame.height, 0, 0, width, height);
59
+ }
60
+ catch (e) {
61
+ console.error('DissolveEffect: Failed to draw texture to canvas. This is likely a CORS issue.', e);
62
+ return;
51
63
  }
52
64
  const imgData = ctx.getImageData(0, 0, width, height).data;
53
65
  const { pixelSize, edgeSoftness, direction } = this.options;
54
66
  const anchorX = this.sourceSprite.anchor.x;
55
67
  const anchorY = this.sourceSprite.anchor.y;
56
- const scale = this.sourceSprite.scale.x;
57
68
  for (let py = 0; py < height; py += pixelSize) {
58
69
  for (let px = 0; px < width; px += pixelSize) {
59
- const i = (py * width + px) * 4;
70
+ const i = (Math.floor(py) * width + Math.floor(px)) * 4;
60
71
  if (imgData[i + 3] < 10)
61
72
  continue;
62
73
  let spatialFactor = 0;
@@ -81,11 +92,10 @@ export default class DissolveEffect extends Container {
81
92
  }
82
93
  const activationThreshold = spatialFactor * (1 - edgeSoftness) + Math.random() * edgeSoftness;
83
94
  const sprite = new Sprite(Texture.WHITE);
84
- sprite.width = sprite.height = pixelSize * scale;
85
- // tslint:disable-next-line:no-bitwise
95
+ sprite.width = sprite.height = pixelSize;
86
96
  sprite.tint = (imgData[i] << 16) | (imgData[i + 1] << 8) | imgData[i + 2];
87
- const lx = (px - width * anchorX) * scale;
88
- const ly = (py - height * anchorY) * scale;
97
+ const lx = px - width * anchorX;
98
+ const ly = py - height * anchorY;
89
99
  const p = ParticlePool.global.pop();
90
100
  p.reset();
91
101
  p.x = lx;
@@ -100,6 +110,8 @@ export default class DissolveEffect extends Container {
100
110
  initialY: ly,
101
111
  });
102
112
  this.addChild(sprite);
113
+ sprite.x = lx;
114
+ sprite.y = ly;
103
115
  }
104
116
  }
105
117
  this.sourceSprite.visible = false;
@@ -107,6 +119,10 @@ export default class DissolveEffect extends Container {
107
119
  start() {
108
120
  return __awaiter(this, void 0, void 0, function* () {
109
121
  this.prepare();
122
+ if (this.fragments.length === 0) {
123
+ this.finish();
124
+ return;
125
+ }
110
126
  this.isProcessing = true;
111
127
  return new Promise((resolve) => {
112
128
  this.dissolveResolve = resolve;
@@ -118,9 +134,10 @@ export default class DissolveEffect extends Container {
118
134
  if (!this.isProcessing)
119
135
  return;
120
136
  const dt = Ticker.shared.deltaMS / 1000;
121
- // progress moves from 0 to 1.2 to ensure all thresholds are met
122
- this.progress += dt * 0.6;
123
- // Iterate backwards so we can safely splice the array
137
+ this.progress += dt * 0.7;
138
+ const { windAngle, driftStrength, noiseIntensity, fadeOutDuration } = this.options;
139
+ const windX = Math.cos(windAngle) * driftStrength;
140
+ const windY = Math.sin(windAngle) * driftStrength;
124
141
  for (let i = this.fragments.length - 1; i >= 0; i--) {
125
142
  const f = this.fragments[i];
126
143
  const p = f.particle;
@@ -129,30 +146,21 @@ export default class DissolveEffect extends Container {
129
146
  }
130
147
  if (f.isActive) {
131
148
  p.lifeTime += dt;
132
- // Movement
133
- const windX = Math.cos(this.options.windAngle) * this.options.driftStrength;
134
- const windY = Math.sin(this.options.windAngle) * this.options.driftStrength;
135
- const noiseX = (Math.random() - 0.5) * this.options.noiseIntensity;
136
- const noiseY = (Math.random() - 0.5) * this.options.noiseIntensity;
137
- p.x += (windX + noiseX) * dt;
138
- p.y += (windY + noiseY) * dt;
149
+ const nx = (Math.random() - 0.5) * noiseIntensity;
150
+ const ny = (Math.random() - 0.5) * noiseIntensity;
151
+ p.x += (windX + nx) * dt;
152
+ p.y += (windY + ny) * dt;
139
153
  f.sprite.x = p.x;
140
154
  f.sprite.y = p.y;
141
- // Alpha Fade
142
155
  const lifeProg = p.lifeTime / p.maxLifeTime;
143
- const fadeThreshold = 1 - this.options.fadeOutDuration / p.maxLifeTime;
156
+ const fadeThreshold = 1 - fadeOutDuration / p.maxLifeTime;
144
157
  if (lifeProg > fadeThreshold) {
145
158
  f.sprite.alpha = Math.max(0, 1 - (lifeProg - fadeThreshold) / (1 - fadeThreshold));
146
159
  }
147
- // REMOVAL LOGIC: Check if lifetime ended
148
160
  if (p.lifeTime >= p.maxLifeTime || f.sprite.alpha <= 0) {
149
161
  this.removeFragment(i);
150
162
  }
151
163
  }
152
- else {
153
- f.sprite.x = f.initialX;
154
- f.sprite.y = f.initialY;
155
- }
156
164
  }
157
165
  if (this.fragments.length === 0) {
158
166
  this.finish();
@@ -176,7 +184,7 @@ export default class DissolveEffect extends Container {
176
184
  }
177
185
  destroy(options) {
178
186
  Ticker.shared.remove(this.update, this);
179
- this.fragments.forEach((f, i) => {
187
+ this.fragments.forEach((f) => {
180
188
  if (f.particle)
181
189
  ParticlePool.global.push(f.particle);
182
190
  });
@@ -1 +1 @@
1
- {"version":3,"file":"DissolveEffect.js","sourceRoot":"","sources":["../../../src/lib/effects/DissolveEffect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DissolveEffect.js","sourceRoot":"","sources":["../../../src/lib/effects/DissolveEffect.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export interface IMeltEffectOptions {
8
8
  duration?: number;
9
9
  blurAmount?: number;
10
10
  threshold?: number;
11
+ useCustomBlur?: boolean;
11
12
  }
12
13
  export default class MeltEffect extends Container {
13
14
  private sourceSprite;
@@ -19,9 +20,15 @@ export default class MeltEffect extends Container {
19
20
  private currentTime;
20
21
  constructor(sourceSprite: Sprite, options?: IMeltEffectOptions);
21
22
  private prepare;
23
+ private updateTexelSize;
22
24
  start(): Promise<void>;
23
25
  private update;
24
26
  private removeFragment;
25
27
  private finish;
28
+ destroy(options?: boolean | {
29
+ children?: boolean;
30
+ texture?: boolean;
31
+ baseTexture?: boolean;
32
+ }): void;
26
33
  static melt(sprite: Sprite, options?: IMeltEffectOptions): Promise<void>;
27
34
  }
@@ -7,77 +7,101 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { Container, Filter, GlProgram, Rectangle, Sprite, Texture, Ticker } from 'pixi.js';
10
+ import { BlurFilter, Container, Filter, GlProgram, Rectangle, Sprite, Texture, Ticker } from 'pixi.js';
11
11
  import ParticlePool from '../ParticlePool';
12
12
  import Random from '../util/Random';
13
- // Default vertex shader for PixiJS v8 filters
14
- const defaultVertex = `
15
- in vec2 aPosition;
16
- out vec2 vTextureCoord;
17
- uniform vec4 uInputSize;
18
- uniform vec4 uOutputFrame;
19
- uniform vec4 uOutputTexture;
13
+ // Standard vertex shader for custom filters
14
+ const standardVertex = `
15
+ in vec2 aPosition;
16
+ out vec2 vTextureCoord;
20
17
 
21
- vec4 filterVertexPosition(void) {
22
- vec2 position = aPosition * uOutputFrame.zw + uOutputFrame.xy;
23
- position.x = position.x * (2.0 / uOutputTexture.x) - 1.0;
24
- position.y = position.y * (2.0 * uOutputTexture.z / uOutputTexture.y) - uOutputTexture.z;
25
- return vec4(position, 0.0, 1.0);
26
- }
18
+ uniform vec4 uInputSize;
19
+ uniform vec4 uOutputFrame;
20
+ uniform vec4 uOutputTexture;
27
21
 
28
- vec2 filterTextureCoord(void) {
29
- return aPosition * (uOutputFrame.zw * uInputSize.zw);
30
- }
22
+ vec4 filterVertexPosition(void) {
23
+ vec2 position = aPosition * uOutputFrame.zw + uOutputFrame.xy;
24
+ position.x = position.x * (2.0 / uOutputTexture.x) - 1.0;
25
+ position.y = (position.y * (2.0 / uOutputTexture.z / uOutputTexture.y)) - uOutputTexture.z;
26
+ return vec4(position, 0.0, 1.0);
27
+ }
31
28
 
32
- void main(void) {
33
- gl_Position = filterVertexPosition();
34
- vTextureCoord = filterTextureCoord();
35
- }
29
+ vec2 filterTextureCoord(void) {
30
+ return aPosition * (uOutputFrame.zw * uInputSize.zw);
31
+ }
32
+
33
+ void main(void) {
34
+ gl_Position = filterVertexPosition();
35
+ vTextureCoord = filterTextureCoord();
36
+ }
36
37
  `;
37
- // Simple blur shader (box blur)
38
+ // Custom blur (fallback) – uses texelSize scaling
38
39
  const blurFrag = `
39
- in vec2 vTextureCoord;
40
- uniform sampler2D uSampler;
41
- uniform float uBlur;
40
+ in vec2 vTextureCoord;
41
+ uniform sampler2D uTexture;
42
+ uniform vec2 uTexelSize;
43
+ uniform float uBlurRadius;
42
44
 
43
- void main(void) {
44
- vec4 sum = vec4(0.0);
45
- float blurAmount = uBlur * 0.01; // Scale blur amount
45
+ void main(void) {
46
+ vec4 sum = vec4(0.0);
47
+ float radius = uBlurRadius;
46
48
 
47
- // Sample 9 pixels in a 3x3 grid
48
- for(int i = -1; i <= 1; i++) {
49
- for(int j = -1; j <= 1; j++) {
50
- vec2 offset = vec2(float(i), float(j)) * blurAmount;
51
- sum += texture(uSampler, vTextureCoord + offset);
52
- }
49
+ // 3×3 box blur
50
+ for (int x = -1; x <= 1; x++) {
51
+ for (int y = -1; y <= 1; y++) {
52
+ vec2 offset = vec2(float(x), float(y)) * uTexelSize * radius;
53
+ sum += texture(uTexture, vTextureCoord + offset);
53
54
  }
54
-
55
- gl_FragColor = sum / 9.0;
56
55
  }
56
+
57
+ gl_FragColor = sum / 9.0;
58
+ }
57
59
  `;
58
- // Simple threshold shader to create the "Metaball" effect
60
+ // Threshold fragment shader
59
61
  const thresholdFrag = `
60
- in vec2 vTextureCoord;
61
- uniform sampler2D uSampler;
62
- uniform float threshold;
63
- void main(void) {
64
- vec4 color = texture(uSampler, vTextureCoord);
65
- if (color.a > threshold) {
66
- color.a = 1.0;
67
- } else {
68
- color.a = 0.0;
69
- }
70
- gl_FragColor = color;
71
- }
62
+ in vec2 vTextureCoord;
63
+ uniform sampler2D uTexture;
64
+ uniform float threshold;
65
+
66
+ void main(void) {
67
+ vec4 color = texture(uTexture, vTextureCoord);
68
+ color.a = step(threshold, color.a);
69
+ gl_FragColor = color;
70
+ }
72
71
  `;
73
72
  export default class MeltEffect extends Container {
74
73
  constructor(sourceSprite, options = {}) {
75
- var _a, _b, _c, _d, _e, _f, _g, _h;
74
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
76
75
  super();
77
76
  this.sourceSprite = sourceSprite;
78
77
  this.fragments = [];
79
78
  this.isProcessing = false;
80
79
  this.currentTime = 0;
80
+ this.update = () => {
81
+ if (!this.isProcessing)
82
+ return;
83
+ const dt = Ticker.shared.deltaMS / 1000;
84
+ this.currentTime += dt;
85
+ for (let i = this.fragments.length - 1; i >= 0; i--) {
86
+ const f = this.fragments[i];
87
+ const p = f.particle;
88
+ p.velocity.y += this.options.gravity * dt;
89
+ p.velocity.x *= this.options.viscosity;
90
+ p.velocity.y *= this.options.viscosity;
91
+ p.x += p.velocity.x * dt;
92
+ p.y += p.velocity.y * dt;
93
+ f.sprite.x = p.x;
94
+ f.sprite.y = p.y;
95
+ const lifeRatio = Math.max(0, 1 - this.currentTime / this.options.duration);
96
+ f.sprite.scale.set(this.sourceSprite.scale.x * lifeRatio, this.sourceSprite.scale.y * lifeRatio);
97
+ if (lifeRatio <= 0) {
98
+ this.removeFragment(i);
99
+ }
100
+ }
101
+ if (this.fragments.length === 0) {
102
+ this.finish();
103
+ }
104
+ };
81
105
  const cols = (_a = options.gridCols) !== null && _a !== void 0 ? _a : 15;
82
106
  const rows = (_b = options.gridRows) !== null && _b !== void 0 ? _b : 15;
83
107
  this.options = {
@@ -87,45 +111,64 @@ export default class MeltEffect extends Container {
87
111
  viscosity: (_d = options.viscosity) !== null && _d !== void 0 ? _d : 0.98,
88
112
  horizontalSpread: (_e = options.horizontalSpread) !== null && _e !== void 0 ? _e : 50,
89
113
  duration: (_f = options.duration) !== null && _f !== void 0 ? _f : 2.5,
90
- blurAmount: (_g = options.blurAmount) !== null && _g !== void 0 ? _g : 6,
114
+ blurAmount: (_g = options.blurAmount) !== null && _g !== void 0 ? _g : 12,
91
115
  threshold: (_h = options.threshold) !== null && _h !== void 0 ? _h : 0.5,
116
+ useCustomBlur: (_j = options.useCustomBlur) !== null && _j !== void 0 ? _j : false,
92
117
  };
93
- // We use a internal Container so we can apply filters to it
94
118
  this.pContainer = new Container();
95
119
  this.addChild(this.pContainer);
96
120
  this.x = sourceSprite.x;
97
121
  this.y = sourceSprite.y;
98
122
  this.rotation = sourceSprite.rotation;
99
- // Apply the Metaball Hook: Blur + Threshold
100
- const blurFilter = new Filter({
101
- glProgram: new GlProgram({
102
- fragment: blurFrag,
103
- vertex: defaultVertex,
104
- }),
105
- resources: {
106
- uBlur: { value: this.options.blurAmount },
107
- },
108
- });
123
+ this.scale.copyFrom(sourceSprite.scale);
124
+ // ─── Filters ────────────────────────────────────────────────
125
+ let blurFilter;
126
+ if (this.options.useCustomBlur) {
127
+ blurFilter = new Filter({
128
+ glProgram: new GlProgram({
129
+ vertex: standardVertex,
130
+ fragment: blurFrag,
131
+ }),
132
+ resources: {
133
+ blurUniforms: {
134
+ uBlurRadius: { value: this.options.blurAmount, type: 'f32' },
135
+ uTexelSize: { value: new Float32Array([1 / 256, 1 / 256]), type: 'vec2<f32>' },
136
+ },
137
+ },
138
+ });
139
+ }
140
+ else {
141
+ // Recommended: built-in BlurFilter (isotropic blur on both axes)
142
+ blurFilter = new BlurFilter({
143
+ strength: this.options.blurAmount,
144
+ quality: 4, // 2–6 (higher = better quality, slower)
145
+ kernelSize: 5, // 5,7,9,11,13,15
146
+ });
147
+ }
109
148
  const thresholdFilter = new Filter({
110
149
  glProgram: new GlProgram({
150
+ vertex: standardVertex,
111
151
  fragment: thresholdFrag,
112
- vertex: defaultVertex,
113
152
  }),
114
153
  resources: {
115
- threshold: { value: this.options.threshold },
154
+ thresholdUniforms: {
155
+ threshold: { value: this.options.threshold, type: 'f32' },
156
+ },
116
157
  },
117
158
  });
118
159
  this.pContainer.filters = [blurFilter, thresholdFilter];
119
160
  }
120
161
  prepare() {
121
162
  const texture = this.sourceSprite.texture;
163
+ // v8: no .valid property anymore; check source existence + basic validity
122
164
  if (!texture || !texture.source)
123
165
  return;
124
166
  const { gridCols, gridRows, horizontalSpread } = this.options;
125
167
  const texFrame = texture.frame;
126
168
  const stepW = texFrame.width / gridCols;
127
169
  const stepH = texFrame.height / gridRows;
128
- const scale = this.sourceSprite.scale.x;
170
+ const scaleX = this.sourceSprite.scale.x;
171
+ const scaleY = this.sourceSprite.scale.y;
129
172
  const anchorX = this.sourceSprite.anchor.x;
130
173
  const anchorY = this.sourceSprite.anchor.y;
131
174
  for (let row = 0; row < gridRows; row++) {
@@ -136,20 +179,40 @@ export default class MeltEffect extends Container {
136
179
  const fragTex = new Texture({ source: texture.source, frame: fragRect });
137
180
  const sprite = new Sprite(fragTex);
138
181
  sprite.anchor.set(0.5);
139
- sprite.scale.set(scale);
140
- const lx = (x1 - texFrame.width * anchorX + stepW / 2) * scale;
141
- const ly = (y1 - texFrame.height * anchorY + stepH / 2) * scale;
182
+ sprite.scale.set(scaleX, scaleY);
183
+ const lx = (x1 - texFrame.width * anchorX + stepW / 2) * scaleX;
184
+ const ly = (y1 - texFrame.height * anchorY + stepH / 2) * scaleY;
142
185
  const p = ParticlePool.global.pop();
143
186
  p.reset();
144
187
  p.x = lx;
145
188
  p.y = ly;
146
- // High gravity, low horizontal velocity
147
189
  p.velocity.set(Random.uniform(-horizontalSpread, horizontalSpread), Random.uniform(0, 50));
148
190
  this.fragments.push({ sprite, particle: p });
149
191
  this.pContainer.addChild(sprite);
150
192
  }
151
193
  }
152
194
  this.sourceSprite.visible = false;
195
+ if (this.options.useCustomBlur) {
196
+ this.updateTexelSize();
197
+ }
198
+ }
199
+ updateTexelSize() {
200
+ var _a, _b;
201
+ if (!this.options.useCustomBlur)
202
+ return;
203
+ // Approximate texel size based on source sprite dimensions
204
+ const w = this.sourceSprite.width * Math.abs(this.sourceSprite.scale.x) || 256;
205
+ const h = this.sourceSprite.height * Math.abs(this.sourceSprite.scale.y) || 256;
206
+ const texelX = 1.0 / w;
207
+ const texelY = 1.0 / h;
208
+ const blur = (_a = this.pContainer.filters) === null || _a === void 0 ? void 0 : _a[0];
209
+ if (blur && 'blurUniforms' in (blur.resources || {})) {
210
+ const uniforms = blur.resources.blurUniforms;
211
+ if ((_b = uniforms === null || uniforms === void 0 ? void 0 : uniforms.uTexelSize) === null || _b === void 0 ? void 0 : _b.value) {
212
+ uniforms.uTexelSize.value[0] = texelX;
213
+ uniforms.uTexelSize.value[1] = texelY;
214
+ }
215
+ }
153
216
  }
154
217
  start() {
155
218
  return __awaiter(this, void 0, void 0, function* () {
@@ -161,37 +224,9 @@ export default class MeltEffect extends Container {
161
224
  });
162
225
  });
163
226
  }
164
- update() {
165
- if (!this.isProcessing)
166
- return;
167
- const dt = Ticker.shared.deltaMS / 1000;
168
- this.currentTime += dt;
169
- for (let i = this.fragments.length - 1; i >= 0; i--) {
170
- const f = this.fragments[i];
171
- const p = f.particle;
172
- // Gravity and Viscosity
173
- p.velocity.y += this.options.gravity * dt;
174
- p.velocity.x *= this.options.viscosity;
175
- p.velocity.y *= this.options.viscosity;
176
- p.x += p.velocity.x * dt;
177
- p.y += p.velocity.y * dt;
178
- f.sprite.x = p.x;
179
- f.sprite.y = p.y;
180
- // Gradually shrink fragments so the liquid "dries up"
181
- const lifeRatio = 1 - this.currentTime / this.options.duration;
182
- f.sprite.scale.set(this.sourceSprite.scale.x * lifeRatio);
183
- if (lifeRatio <= 0) {
184
- this.removeFragment(i);
185
- }
186
- }
187
- if (this.fragments.length === 0) {
188
- this.finish();
189
- }
190
- }
191
227
  removeFragment(index) {
192
228
  const f = this.fragments[index];
193
- if (f.particle)
194
- ParticlePool.global.push(f.particle);
229
+ ParticlePool.global.push(f.particle);
195
230
  this.pContainer.removeChild(f.sprite);
196
231
  f.sprite.destroy();
197
232
  this.fragments.splice(index, 1);
@@ -202,6 +237,10 @@ export default class MeltEffect extends Container {
202
237
  Ticker.shared.remove(this.update, this);
203
238
  (_a = this.meltResolve) === null || _a === void 0 ? void 0 : _a.call(this);
204
239
  }
240
+ destroy(options) {
241
+ Ticker.shared.remove(this.update, this);
242
+ super.destroy(options);
243
+ }
205
244
  static melt(sprite_1) {
206
245
  return __awaiter(this, arguments, void 0, function* (sprite, options = {}) {
207
246
  if (!sprite.parent)
@@ -211,6 +250,7 @@ export default class MeltEffect extends Container {
211
250
  sprite.parent.addChildAt(effect, index);
212
251
  yield effect.start();
213
252
  effect.destroy({ children: true });
253
+ // sprite.destroy(); // Uncomment if you want to remove the original sprite too
214
254
  });
215
255
  }
216
256
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MeltEffect.js","sourceRoot":"","sources":["../../../src/lib/effects/MeltEffect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MeltEffect.js","sourceRoot":"","sources":["../../../src/lib/effects/MeltEffect.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -45,5 +45,5 @@
45
45
  "lint": "tslint 'src/**/*.ts'",
46
46
  "lint:fix": "tslint --fix 'src/**/*.ts'"
47
47
  },
48
- "version": "8.7.2"
48
+ "version": "8.7.3"
49
49
  }