custom-pixi-particles 4.41.1 → 4.43.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.
@@ -44,7 +44,7 @@ export default class TemperatureBehaviour extends Behaviour {
44
44
  private hasResidualZoneTint;
45
45
  private syncColorSkip;
46
46
  private clearGradualColorState;
47
- private findActiveZone;
47
+ private findActiveZoneIndex;
48
48
  private zoneColor;
49
49
  private copyColor;
50
50
  private writeColor;
@@ -27,11 +27,12 @@ export default class TemperatureBehaviour extends Behaviour {
27
27
  p._temperatureBlend = 0;
28
28
  p._temperatureOutsideColor = null;
29
29
  p._temperatureLastZoneColor = null;
30
+ p._temperatureActiveZoneIndex = -1;
30
31
  p._toroidalJustWrapped = false;
31
32
  particle.skipColorBehaviour = false;
32
33
  }
33
34
  apply(particle, deltaTime = 1 / 60, model) {
34
- var _a, _b, _c, _d;
35
+ var _a, _b, _c, _d, _e;
35
36
  if (!this.enabled || !this.zones || !this.zones.length)
36
37
  return;
37
38
  const p = particle;
@@ -39,10 +40,16 @@ export default class TemperatureBehaviour extends Behaviour {
39
40
  if (justWrapped) {
40
41
  p._toroidalJustWrapped = false;
41
42
  }
42
- const activeZone = this.findActiveZone(particle);
43
+ const activeZoneIndex = this.findActiveZoneIndex(particle);
44
+ const activeZone = activeZoneIndex >= 0 ? this.zones[activeZoneIndex] : null;
43
45
  const naturalColor = this.copyColor(particle);
44
46
  const wasInZone = p._temperatureInZone === true;
45
- const visibilityResume = ((_a = model === null || model === void 0 ? void 0 : model.visibilityResumeGeneration) !== null && _a !== void 0 ? _a : 0) > this._reconciledVisibilityResumeGeneration;
47
+ const previousZoneIndex = (_a = p._temperatureActiveZoneIndex) !== null && _a !== void 0 ? _a : -1;
48
+ const zoneChanged = wasInZone &&
49
+ activeZone !== null &&
50
+ previousZoneIndex >= 0 &&
51
+ activeZoneIndex !== previousZoneIndex;
52
+ const visibilityResume = ((_b = model === null || model === void 0 ? void 0 : model.visibilityResumeGeneration) !== null && _b !== void 0 ? _b : 0) > this._reconciledVisibilityResumeGeneration;
46
53
  let residualTint = !activeZone && this.hasResidualZoneTint(particle, p, wasInZone, justWrapped);
47
54
  if (!activeZone &&
48
55
  visibilityResume &&
@@ -67,6 +74,7 @@ export default class TemperatureBehaviour extends Behaviour {
67
74
  p._temperatureOutsideColor = naturalColor;
68
75
  }
69
76
  p._temperatureInZone = false;
77
+ p._temperatureActiveZoneIndex = -1;
70
78
  this.syncColorSkip(particle, p, false);
71
79
  if (!this.gradualColorTransition) {
72
80
  this.clearGradualColorState(particle, p);
@@ -77,10 +85,15 @@ export default class TemperatureBehaviour extends Behaviour {
77
85
  p._temperatureTransitioningOut = false;
78
86
  if (!wasInZone) {
79
87
  p._temperatureOutsideColor = naturalColor;
80
- if (((_b = p._temperatureBlend) !== null && _b !== void 0 ? _b : 0) <= 0) {
88
+ if (((_c = p._temperatureBlend) !== null && _c !== void 0 ? _c : 0) <= 0) {
81
89
  p._temperatureBlend = 0;
82
90
  }
83
91
  }
92
+ else if (zoneChanged) {
93
+ // Ease from the current zone tint into the new zone instead of snapping.
94
+ p._temperatureOutsideColor = naturalColor;
95
+ p._temperatureBlend = 0;
96
+ }
84
97
  else if (!p._temperatureOutsideColor) {
85
98
  p._temperatureOutsideColor = naturalColor;
86
99
  }
@@ -97,15 +110,16 @@ export default class TemperatureBehaviour extends Behaviour {
97
110
  const zoneColor = this.zoneColor(activeZone);
98
111
  p._temperatureLastZoneColor = zoneColor;
99
112
  if (this.gradualColorTransition) {
100
- const blend = this.stepBlendToward((_c = p._temperatureBlend) !== null && _c !== void 0 ? _c : 0, 1, deltaTime);
113
+ const blend = this.stepBlendToward((_d = p._temperatureBlend) !== null && _d !== void 0 ? _d : 0, 1, deltaTime);
101
114
  p._temperatureBlend = blend;
102
- const outside = (_d = p._temperatureOutsideColor) !== null && _d !== void 0 ? _d : naturalColor;
115
+ const outside = (_e = p._temperatureOutsideColor) !== null && _e !== void 0 ? _e : naturalColor;
103
116
  this.writeColor(particle, this.mixColors(outside, zoneColor, blend));
104
117
  }
105
118
  else {
106
119
  this.writeColor(particle, zoneColor);
107
120
  }
108
121
  p._temperatureInZone = true;
122
+ p._temperatureActiveZoneIndex = activeZoneIndex;
109
123
  this.syncColorSkip(particle, p, true);
110
124
  }
111
125
  onParticlesUpdated(model) {
@@ -184,12 +198,15 @@ export default class TemperatureBehaviour extends Behaviour {
184
198
  return distToZone < distToOutside * 0.35 && distToZone <= 3600;
185
199
  }
186
200
  hasResidualZoneTint(particle, p, wasInZone, justWrapped) {
187
- var _a;
188
- if (justWrapped)
189
- return true;
201
+ var _a, _b;
202
+ if (justWrapped) {
203
+ if (wasInZone || ((_a = p._temperatureBlend) !== null && _a !== void 0 ? _a : 0) > 0.001)
204
+ return true;
205
+ return this.matchesAnyZoneColorValue(this.copyColor(particle), 12);
206
+ }
190
207
  if (p._temperatureTransitioningOut === true)
191
208
  return true;
192
- if (this.gradualColorTransition && ((_a = p._temperatureBlend) !== null && _a !== void 0 ? _a : 0) > 0.001)
209
+ if (this.gradualColorTransition && ((_b = p._temperatureBlend) !== null && _b !== void 0 ? _b : 0) > 0.001)
193
210
  return true;
194
211
  if (this.matchesAnyZoneColorValue(this.copyColor(particle), 12))
195
212
  return true;
@@ -223,13 +240,13 @@ export default class TemperatureBehaviour extends Behaviour {
223
240
  p._temperatureLastZoneColor = null;
224
241
  }
225
242
  }
226
- findActiveZone(particle) {
227
- for (const zone of this.zones) {
228
- if (this.isInZone(particle, zone)) {
229
- return zone;
243
+ findActiveZoneIndex(particle) {
244
+ for (let i = 0; i < this.zones.length; i++) {
245
+ if (this.isInZone(particle, this.zones[i])) {
246
+ return i;
230
247
  }
231
248
  }
232
- return null;
249
+ return -1;
233
250
  }
234
251
  zoneColor(zone) {
235
252
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"TemperatureBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/TemperatureBehaviour.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TemperatureBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/TemperatureBehaviour.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ import type Model from '../Model';
5
5
  * Toroidal screen/world wrap: particles that fully leave an axis-aligned rectangle
6
6
  * re-enter on the opposite side while still fully outside the view (no visible jump).
7
7
  * Renderers hide sprites that do not overlap the viewport so teleports are never seen.
8
+ *
9
+ * Optional {@link wrapFadeEnabled}: fade alpha to 0 before teleport, then back to 1 after.
8
10
  */
9
11
  export default class ToroidalWrapBehaviour extends Behaviour {
10
12
  enabled: boolean;
@@ -17,12 +19,24 @@ export default class ToroidalWrapBehaviour extends Behaviour {
17
19
  minY: number;
18
20
  maxY: number;
19
21
  inset: number;
22
+ /** Fade alpha out before wrap and back in after teleport at the same rate. */
23
+ wrapFadeEnabled: boolean;
24
+ /** Seconds for a full 0↔1 alpha transition (out and in use the same duration). */
25
+ wrapFadeDuration: number;
20
26
  private _insideX;
21
27
  private _insideY;
22
28
  private _handledVisibilityResumeGeneration;
29
+ private _fadePhase;
30
+ private _fadeMult;
23
31
  init: (particle: Particle, _model: Model, _turbulencePool: unknown) => void;
24
32
  onParticleRemoved: (particle: Particle) => void;
25
- apply: (particle: Particle, _deltaTime: number, model: Model) => void;
33
+ getWrapFadeMultiplier(particle: Particle): number;
34
+ isWrapFadeActive(particle: Particle): boolean;
35
+ private clearParticleState;
36
+ private clearFadeState;
37
+ private startWrapFadeIn;
38
+ private seedSpawnPositionIntoViewport;
39
+ apply: (particle: Particle, deltaTime: number, model: Model) => void;
26
40
  getName(): string;
27
41
  getProps(): {
28
42
  enabled: boolean;
@@ -35,6 +49,8 @@ export default class ToroidalWrapBehaviour extends Behaviour {
35
49
  minY: number;
36
50
  maxY: number;
37
51
  inset: number;
52
+ wrapFadeEnabled: boolean;
53
+ wrapFadeDuration: number;
38
54
  name: string;
39
55
  };
40
56
  }
@@ -1,10 +1,13 @@
1
1
  import Behaviour from './Behaviour';
2
2
  import BehaviourNames from './BehaviourNames';
3
- import { getToroidalEdgeExtents, resolveToroidalBounds, wrapToroidalAxis, } from '../util/toroidalWrapExtents';
3
+ import { getToroidalEdgeExtents, isToroidalAxisViewportVisible, relocateToroidalAxisIntoViewport, resolveToroidalBounds, wrapToroidalAxis, } from '../util/toroidalWrapExtents';
4
+ import { shouldContinueToroidalFadeOnAxis, shouldStartToroidalFadeOnAxis, toroidalFadeDelta, } from '../util/toroidalWrapFade';
4
5
  /**
5
6
  * Toroidal screen/world wrap: particles that fully leave an axis-aligned rectangle
6
7
  * re-enter on the opposite side while still fully outside the view (no visible jump).
7
8
  * Renderers hide sprites that do not overlap the viewport so teleports are never seen.
9
+ *
10
+ * Optional {@link wrapFadeEnabled}: fade alpha to 0 before teleport, then back to 1 after.
8
11
  */
9
12
  export default class ToroidalWrapBehaviour extends Behaviour {
10
13
  constructor() {
@@ -19,19 +22,23 @@ export default class ToroidalWrapBehaviour extends Behaviour {
19
22
  this.minY = -300;
20
23
  this.maxY = 300;
21
24
  this.inset = 0;
25
+ /** Fade alpha out before wrap and back in after teleport at the same rate. */
26
+ this.wrapFadeEnabled = false;
27
+ /** Seconds for a full 0↔1 alpha transition (out and in use the same duration). */
28
+ this.wrapFadeDuration = 0.25;
22
29
  this._insideX = new Map();
23
30
  this._insideY = new Map();
24
31
  this._handledVisibilityResumeGeneration = -1;
32
+ this._fadePhase = new Map();
33
+ this._fadeMult = new Map();
25
34
  this.init = (particle, _model, _turbulencePool) => {
26
- this._insideX.delete(particle.uid);
27
- this._insideY.delete(particle.uid);
35
+ this.clearParticleState(particle.uid);
28
36
  };
29
37
  this.onParticleRemoved = (particle) => {
30
- this._insideX.delete(particle.uid);
31
- this._insideY.delete(particle.uid);
38
+ this.clearParticleState(particle.uid);
32
39
  };
33
- this.apply = (particle, _deltaTime, model) => {
34
- var _a;
40
+ this.apply = (particle, deltaTime, model) => {
41
+ var _a, _b, _c;
35
42
  if (!this.enabled)
36
43
  return;
37
44
  const resumeGeneration = (_a = model.visibilityResumeGeneration) !== null && _a !== void 0 ? _a : 0;
@@ -39,6 +46,7 @@ export default class ToroidalWrapBehaviour extends Behaviour {
39
46
  this._handledVisibilityResumeGeneration = resumeGeneration;
40
47
  this._insideX.clear();
41
48
  this._insideY.clear();
49
+ this.clearFadeState();
42
50
  }
43
51
  const bounds = resolveToroidalBounds(this, model.toroidalCanvasBounds);
44
52
  if (!bounds)
@@ -50,25 +58,103 @@ export default class ToroidalWrapBehaviour extends Behaviour {
50
58
  let visualY = particle.movement.y + renderOffsetY;
51
59
  let mx = particle.movement.x;
52
60
  let my = particle.movement.y;
61
+ const uid = particle.uid;
62
+ let phase = (_b = this._fadePhase.get(uid)) !== null && _b !== void 0 ? _b : 'idle';
63
+ let fadeMult = (_c = this._fadeMult.get(uid)) !== null && _c !== void 0 ? _c : 1;
64
+ let didWrap = false;
53
65
  if (this.wrapX) {
54
- const wrapped = wrapToroidalAxis(visualX, mx, bounds.minX, bounds.maxX, extents.left, extents.right, this._insideX.get(particle.uid));
55
- visualX = wrapped.position;
56
- mx = wrapped.movement;
57
- this._insideX.set(particle.uid, wrapped.inside);
58
- if (wrapped.didWrap) {
59
- ;
60
- particle._toroidalJustWrapped = true;
66
+ const seeded = this.seedSpawnPositionIntoViewport(uid, visualX, mx, bounds.minX, bounds.maxX, extents.left, extents.right, this._insideX);
67
+ visualX = seeded.visual;
68
+ mx = seeded.movement;
69
+ }
70
+ if (this.wrapY) {
71
+ const seeded = this.seedSpawnPositionIntoViewport(uid, visualY, my, bounds.minY, bounds.maxY, extents.top, extents.bottom, this._insideY);
72
+ visualY = seeded.visual;
73
+ my = seeded.movement;
74
+ }
75
+ if (this.wrapFadeEnabled) {
76
+ const fadeStep = toroidalFadeDelta(deltaTime, this.wrapFadeDuration);
77
+ if (phase === 'idle') {
78
+ const startX = this.wrapX &&
79
+ shouldStartToroidalFadeOnAxis(visualX, particle.velocity.x, bounds.minX, bounds.maxX, extents.left, extents.right, this._insideX.get(uid), this.wrapFadeDuration);
80
+ const startY = this.wrapY &&
81
+ shouldStartToroidalFadeOnAxis(visualY, particle.velocity.y, bounds.minY, bounds.maxY, extents.top, extents.bottom, this._insideY.get(uid), this.wrapFadeDuration);
82
+ if (startX || startY) {
83
+ phase = 'out';
84
+ fadeMult = 1;
85
+ this._fadePhase.set(uid, 'out');
86
+ this._fadeMult.set(uid, 1);
87
+ }
88
+ }
89
+ if (phase === 'out') {
90
+ const approachingX = this.wrapX &&
91
+ shouldContinueToroidalFadeOnAxis(visualX, particle.velocity.x, bounds.minX, bounds.maxX, extents.left, extents.right, this.wrapFadeDuration);
92
+ const approachingY = this.wrapY &&
93
+ shouldContinueToroidalFadeOnAxis(visualY, particle.velocity.y, bounds.minY, bounds.maxY, extents.top, extents.bottom, this.wrapFadeDuration);
94
+ if (!approachingX && !approachingY) {
95
+ phase = 'idle';
96
+ fadeMult = 1;
97
+ this._fadePhase.set(uid, 'idle');
98
+ this._fadeMult.set(uid, 1);
99
+ }
100
+ else {
101
+ fadeMult = Math.max(0, fadeMult - fadeStep);
102
+ this._fadeMult.set(uid, fadeMult);
103
+ }
104
+ }
105
+ else if (phase === 'in') {
106
+ fadeMult = Math.min(1, fadeMult + fadeStep);
107
+ this._fadeMult.set(uid, fadeMult);
108
+ if (fadeMult >= 1) {
109
+ phase = 'idle';
110
+ fadeMult = 1;
111
+ this._fadePhase.set(uid, 'idle');
112
+ this._fadeMult.set(uid, 1);
113
+ }
114
+ }
115
+ }
116
+ const deferWrap = this.wrapFadeEnabled && phase === 'out' && fadeMult > 0;
117
+ if (this.wrapX) {
118
+ const wrapped = wrapToroidalAxis(visualX, mx, bounds.minX, bounds.maxX, extents.left, extents.right, this._insideX.get(uid));
119
+ if (wrapped.didWrap && deferWrap) {
120
+ // Wait until fade completes.
121
+ }
122
+ else {
123
+ if (wrapped.didWrap) {
124
+ didWrap = true;
125
+ if (this.wrapFadeEnabled && phase === 'out') {
126
+ phase = 'in';
127
+ fadeMult = 0;
128
+ this.startWrapFadeIn(uid);
129
+ }
130
+ }
131
+ visualX = wrapped.position;
132
+ mx = wrapped.movement;
133
+ this._insideX.set(uid, wrapped.inside);
61
134
  }
62
135
  }
63
136
  if (this.wrapY) {
64
- const wrapped = wrapToroidalAxis(visualY, my, bounds.minY, bounds.maxY, extents.top, extents.bottom, this._insideY.get(particle.uid));
65
- visualY = wrapped.position;
66
- my = wrapped.movement;
67
- this._insideY.set(particle.uid, wrapped.inside);
68
- if (wrapped.didWrap) {
69
- ;
70
- particle._toroidalJustWrapped = true;
137
+ const wrapped = wrapToroidalAxis(visualY, my, bounds.minY, bounds.maxY, extents.top, extents.bottom, this._insideY.get(uid));
138
+ if (wrapped.didWrap && deferWrap) {
139
+ // Wait until fade completes.
71
140
  }
141
+ else {
142
+ if (wrapped.didWrap) {
143
+ didWrap = true;
144
+ if (this.wrapFadeEnabled && phase === 'out') {
145
+ phase = 'in';
146
+ fadeMult = 0;
147
+ this.startWrapFadeIn(uid);
148
+ }
149
+ }
150
+ visualY = wrapped.position;
151
+ my = wrapped.movement;
152
+ this._insideY.set(uid, wrapped.inside);
153
+ }
154
+ }
155
+ if (didWrap) {
156
+ ;
157
+ particle._toroidalJustWrapped = true;
72
158
  }
73
159
  particle.movement.x = mx;
74
160
  particle.movement.y = my;
@@ -76,6 +162,40 @@ export default class ToroidalWrapBehaviour extends Behaviour {
76
162
  particle.y = visualY;
77
163
  };
78
164
  }
165
+ getWrapFadeMultiplier(particle) {
166
+ var _a;
167
+ if (!this.wrapFadeEnabled)
168
+ return 1;
169
+ return (_a = this._fadeMult.get(particle.uid)) !== null && _a !== void 0 ? _a : 1;
170
+ }
171
+ isWrapFadeActive(particle) {
172
+ var _a;
173
+ if (!this.wrapFadeEnabled)
174
+ return false;
175
+ return ((_a = this._fadePhase.get(particle.uid)) !== null && _a !== void 0 ? _a : 'idle') !== 'idle';
176
+ }
177
+ clearParticleState(uid) {
178
+ this._insideX.delete(uid);
179
+ this._insideY.delete(uid);
180
+ this._fadePhase.delete(uid);
181
+ this._fadeMult.delete(uid);
182
+ }
183
+ clearFadeState() {
184
+ this._fadePhase.clear();
185
+ this._fadeMult.clear();
186
+ }
187
+ startWrapFadeIn(uid) {
188
+ this._fadePhase.set(uid, 'in');
189
+ this._fadeMult.set(uid, 0);
190
+ }
191
+ seedSpawnPositionIntoViewport(uid, visual, movement, min, max, leading, trailing, insideMap) {
192
+ if (insideMap.has(uid)) {
193
+ return { visual, movement };
194
+ }
195
+ const relocated = relocateToroidalAxisIntoViewport(visual, movement, min, max, leading, trailing);
196
+ insideMap.set(uid, isToroidalAxisViewportVisible(relocated.position, leading, trailing, min, max));
197
+ return { visual: relocated.position, movement: relocated.movement };
198
+ }
79
199
  getName() {
80
200
  return BehaviourNames.TOROIDAL_WRAP_BEHAVIOUR;
81
201
  }
@@ -91,6 +211,8 @@ export default class ToroidalWrapBehaviour extends Behaviour {
91
211
  minY: this.minY,
92
212
  maxY: this.maxY,
93
213
  inset: this.inset,
214
+ wrapFadeEnabled: this.wrapFadeEnabled,
215
+ wrapFadeDuration: this.wrapFadeDuration,
94
216
  name: this.getName(),
95
217
  };
96
218
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ToroidalWrapBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/ToroidalWrapBehaviour.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ToroidalWrapBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/ToroidalWrapBehaviour.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAA;AACnC,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAG7C,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,gCAAgC,EAChC,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,gCAAgC,EAChC,6BAA6B,EAC7B,iBAAiB,GAElB,MAAM,0BAA0B,CAAA;AAEjC;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,SAAS;IAA5D;;QACE,YAAO,GAAG,IAAI,CAAA;QACd,aAAQ,GAAG,EAAE,CAAA;QAEb,UAAK,GAAG,IAAI,CAAA;QACZ,UAAK,GAAG,IAAI,CAAA;QACZ,oBAAe,GAAG,KAAK,CAAA;QAEvB,SAAI,GAAG,CAAC,GAAG,CAAA;QACX,SAAI,GAAG,GAAG,CAAA;QACV,SAAI,GAAG,CAAC,GAAG,CAAA;QACX,SAAI,GAAG,GAAG,CAAA;QACV,UAAK,GAAG,CAAC,CAAA;QAET,8EAA8E;QAC9E,oBAAe,GAAG,KAAK,CAAA;QACvB,kFAAkF;QAClF,qBAAgB,GAAG,IAAI,CAAA;QAEf,aAAQ,GAAG,IAAI,GAAG,EAAmB,CAAA;QACrC,aAAQ,GAAG,IAAI,GAAG,EAAmB,CAAA;QACrC,uCAAkC,GAAG,CAAC,CAAC,CAAA;QACvC,eAAU,GAAG,IAAI,GAAG,EAAiC,CAAA;QACrD,cAAS,GAAG,IAAI,GAAG,EAAkB,CAAA;QAE7C,SAAI,GAAG,CAAC,QAAkB,EAAE,MAAa,EAAE,eAAwB,EAAE,EAAE;YACrE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QACvC,CAAC,CAAA;QAED,sBAAiB,GAAG,CAAC,QAAkB,EAAE,EAAE;YACzC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QACvC,CAAC,CAAA;QAmDD,UAAK,GAAG,CAAC,QAAkB,EAAE,SAAiB,EAAE,KAAY,EAAE,EAAE;;YAC9D,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,OAAM;YAEzB,MAAM,gBAAgB,GAAG,MAAA,KAAK,CAAC,0BAA0B,mCAAI,CAAC,CAAA;YAC9D,IAAI,gBAAgB,GAAG,IAAI,CAAC,kCAAkC,EAAE,CAAC;gBAC/D,IAAI,CAAC,kCAAkC,GAAG,gBAAgB,CAAA;gBAC1D,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;gBACrB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;gBACrB,IAAI,CAAC,cAAc,EAAE,CAAA;YACvB,CAAC;YAED,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAA;YACtE,IAAI,CAAC,MAAM;gBAAE,OAAM;YAEnB,MAAM,OAAO,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAA;YAChD,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;YACtD,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;YACtD,IAAI,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAA;YACjD,IAAI,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAA;YACjD,IAAI,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC5B,IAAI,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;YAE5B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAA;YACxB,IAAI,KAAK,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,mCAAI,MAAM,CAAA;YAC9C,IAAI,QAAQ,GAAG,MAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,mCAAI,CAAC,CAAA;YAC3C,IAAI,OAAO,GAAG,KAAK,CAAA;YAEnB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,MAAM,MAAM,GAAG,IAAI,CAAC,6BAA6B,CAC/C,GAAG,EACH,OAAO,EACP,EAAE,EACF,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,IAAI,EACX,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,KAAK,EACb,IAAI,CAAC,QAAQ,CACd,CAAA;gBACD,OAAO,GAAG,MAAM,CAAC,MAAM,CAAA;gBACvB,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAA;YACtB,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,MAAM,MAAM,GAAG,IAAI,CAAC,6BAA6B,CAC/C,GAAG,EACH,OAAO,EACP,EAAE,EACF,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,IAAI,EACX,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,MAAM,EACd,IAAI,CAAC,QAAQ,CACd,CAAA;gBACD,OAAO,GAAG,MAAM,CAAC,MAAM,CAAA;gBACvB,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAA;YACtB,CAAC;YAED,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;gBAEpE,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;oBACrB,MAAM,MAAM,GACV,IAAI,CAAC,KAAK;wBACV,6BAA6B,CAC3B,OAAO,EACP,QAAQ,CAAC,QAAQ,CAAC,CAAC,EACnB,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,IAAI,EACX,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,KAAK,EACb,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EACtB,IAAI,CAAC,gBAAgB,CACtB,CAAA;oBACH,MAAM,MAAM,GACV,IAAI,CAAC,KAAK;wBACV,6BAA6B,CAC3B,OAAO,EACP,QAAQ,CAAC,QAAQ,CAAC,CAAC,EACnB,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,IAAI,EACX,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,MAAM,EACd,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EACtB,IAAI,CAAC,gBAAgB,CACtB,CAAA;oBACH,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;wBACrB,KAAK,GAAG,KAAK,CAAA;wBACb,QAAQ,GAAG,CAAC,CAAA;wBACZ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;wBAC/B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;oBAC5B,CAAC;gBACH,CAAC;gBAED,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;oBACpB,MAAM,YAAY,GAChB,IAAI,CAAC,KAAK;wBACV,gCAAgC,CAC9B,OAAO,EACP,QAAQ,CAAC,QAAQ,CAAC,CAAC,EACnB,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,IAAI,EACX,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,KAAK,EACb,IAAI,CAAC,gBAAgB,CACtB,CAAA;oBACH,MAAM,YAAY,GAChB,IAAI,CAAC,KAAK;wBACV,gCAAgC,CAC9B,OAAO,EACP,QAAQ,CAAC,QAAQ,CAAC,CAAC,EACnB,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,IAAI,EACX,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,MAAM,EACd,IAAI,CAAC,gBAAgB,CACtB,CAAA;oBACH,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;wBACnC,KAAK,GAAG,MAAM,CAAA;wBACd,QAAQ,GAAG,CAAC,CAAA;wBACZ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;wBAChC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;oBAC5B,CAAC;yBAAM,CAAC;wBACN,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAA;wBAC3C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;oBACnC,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBAC1B,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAA;oBAC3C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;oBACjC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;wBAClB,KAAK,GAAG,MAAM,CAAA;wBACd,QAAQ,GAAG,CAAC,CAAA;wBACZ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;wBAChC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;oBAC5B,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,IAAI,KAAK,KAAK,KAAK,IAAI,QAAQ,GAAG,CAAC,CAAA;YAEzE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,gBAAgB,CAC9B,OAAO,EACP,EAAE,EACF,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,IAAI,EACX,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,KAAK,EACb,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CACvB,CAAA;gBAED,IAAI,OAAO,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC;oBACjC,6BAA6B;gBAC/B,CAAC;qBAAM,CAAC;oBACN,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;wBACpB,OAAO,GAAG,IAAI,CAAA;wBACd,IAAI,IAAI,CAAC,eAAe,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;4BAC5C,KAAK,GAAG,IAAI,CAAA;4BACZ,QAAQ,GAAG,CAAC,CAAA;4BACZ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;wBAC3B,CAAC;oBACH,CAAC;oBACD,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAA;oBAC1B,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAA;oBACrB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;gBACxC,CAAC;YACH,CAAC;YAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,gBAAgB,CAC9B,OAAO,EACP,EAAE,EACF,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,IAAI,EACX,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,MAAM,EACd,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CACvB,CAAA;gBAED,IAAI,OAAO,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC;oBACjC,6BAA6B;gBAC/B,CAAC;qBAAM,CAAC;oBACN,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;wBACpB,OAAO,GAAG,IAAI,CAAA;wBACd,IAAI,IAAI,CAAC,eAAe,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;4BAC5C,KAAK,GAAG,IAAI,CAAA;4BACZ,QAAQ,GAAG,CAAC,CAAA;4BACZ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;wBAC3B,CAAC;oBACH,CAAC;oBACD,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAA;oBAC1B,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAA;oBACrB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;gBACxC,CAAC;YACH,CAAC;YAED,IAAI,OAAO,EAAE,CAAC;gBACZ,CAAC;gBAAC,QAA+C,CAAC,oBAAoB,GAAG,IAAI,CAAA;YAC/E,CAAC;YAED,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAA;YACxB,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAA;YACxB,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAA;YACpB,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAA;QACtB,CAAC,CAAA;IAuBH,CAAC;IAlRC,qBAAqB,CAAC,QAAkB;;QACtC,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO,CAAC,CAAA;QACnC,OAAO,MAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,mCAAI,CAAC,CAAA;IAC9C,CAAC;IAED,gBAAgB,CAAC,QAAkB;;QACjC,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO,KAAK,CAAA;QACvC,OAAO,CAAC,MAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,mCAAI,MAAM,CAAC,KAAK,MAAM,CAAA;IACjE,CAAC;IAEO,kBAAkB,CAAC,GAAW;QACpC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACzB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACzB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;QACvB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;IACxB,CAAC;IAEO,eAAe,CAAC,GAAW;QACjC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAC9B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IAC5B,CAAC;IAEO,6BAA6B,CACnC,GAAW,EACX,MAAc,EACd,QAAgB,EAChB,GAAW,EACX,GAAW,EACX,OAAe,EACf,QAAgB,EAChB,SAA+B;QAE/B,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;QAC7B,CAAC;QAED,MAAM,SAAS,GAAG,gCAAgC,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;QACjG,SAAS,CAAC,GAAG,CACX,GAAG,EACH,6BAA6B,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAC/E,CAAA;QACD,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAA;IACrE,CAAC;IA8MD,OAAO;QACL,OAAO,cAAc,CAAC,uBAAuB,CAAA;IAC/C,CAAC;IAED,QAAQ;QACN,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;SACrB,CAAA;IACH,CAAC;CACF"}
@@ -10,7 +10,7 @@ import { pickVariantIndex, resolveTextureVariants, } from '../textureVariants';
10
10
  import { drawParticleLinks, mergeParticleLinkSettings, } from './particleLinkLayer';
11
11
  import { resolveBlendMode } from '../util/resolveBlendMode';
12
12
  import { resolveLoaderAssetId } from '../util/resolveLoaderAssetId';
13
- import { isToroidalParticleVisible } from '../util/toroidalWrapVisibility';
13
+ import { getToroidalSpriteDisplay } from '../util/toroidalWrapVisibility';
14
14
  /**
15
15
  * Renderer is a class used to render particles in the Pixi library.
16
16
  *
@@ -755,9 +755,11 @@ class Renderer extends ParticleContainer {
755
755
  sprite.scale.x = particle.size.x;
756
756
  sprite.scale.y = particle.size.y;
757
757
  sprite.tint = particle.color.hex;
758
- const show = isToroidalParticleVisible(particle, this._cachedToroidalWrapBehaviour, this._model);
759
- sprite.visible = show;
760
- sprite.alpha = show ? particle.color.alpha : 0;
758
+ const toroidalDisplay = getToroidalSpriteDisplay(particle, this._cachedToroidalWrapBehaviour, this._model);
759
+ sprite.visible = toroidalDisplay.visible;
760
+ sprite.alpha = toroidalDisplay.visible
761
+ ? particle.color.alpha * toroidalDisplay.alphaMultiplier
762
+ : 0;
761
763
  sprite.rotation = particle.rotation;
762
764
  }
763
765
  onUpdateTurbulence(particle) {