custom-pixi-particles 4.43.0 → 4.43.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.
- package/dist/lib/behaviour/ToroidalWrapBehaviour.d.ts +9 -0
- package/dist/lib/behaviour/ToroidalWrapBehaviour.js +88 -36
- package/dist/lib/behaviour/ToroidalWrapBehaviour.js.map +1 -1
- package/dist/lib/util/toroidalWrapExtents.d.ts +12 -1
- package/dist/lib/util/toroidalWrapExtents.js +43 -12
- package/dist/lib/util/toroidalWrapExtents.js.map +1 -1
- package/dist/lib/util/toroidalWrapFade.js +2 -1
- package/dist/lib/util/toroidalWrapFade.js.map +1 -1
- package/dist/lib/util/toroidalWrapVisibility.js +11 -0
- package/dist/lib/util/toroidalWrapVisibility.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import Behaviour from './Behaviour';
|
|
2
2
|
import Particle from '../Particle';
|
|
3
3
|
import type Model from '../Model';
|
|
4
|
+
import { type ToroidalWrapFadePhase } 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).
|
|
@@ -28,14 +29,22 @@ export default class ToroidalWrapBehaviour extends Behaviour {
|
|
|
28
29
|
private _handledVisibilityResumeGeneration;
|
|
29
30
|
private _fadePhase;
|
|
30
31
|
private _fadeMult;
|
|
32
|
+
private _seedExtentSpanX;
|
|
33
|
+
private _seedExtentSpanY;
|
|
34
|
+
private _blockExitFade;
|
|
35
|
+
private _hasSpawnSeeded;
|
|
31
36
|
init: (particle: Particle, _model: Model, _turbulencePool: unknown) => void;
|
|
32
37
|
onParticleRemoved: (particle: Particle) => void;
|
|
33
38
|
getWrapFadeMultiplier(particle: Particle): number;
|
|
34
39
|
isWrapFadeActive(particle: Particle): boolean;
|
|
40
|
+
getWrapFadePhase(particle: Particle): ToroidalWrapFadePhase;
|
|
35
41
|
private clearParticleState;
|
|
36
42
|
private clearFadeState;
|
|
43
|
+
private clearSpawnSeedState;
|
|
37
44
|
private startWrapFadeIn;
|
|
45
|
+
private needsAxisReseed;
|
|
38
46
|
private seedSpawnPositionIntoViewport;
|
|
47
|
+
private startSpawnFadeIn;
|
|
39
48
|
apply: (particle: Particle, deltaTime: number, model: Model) => void;
|
|
40
49
|
getName(): string;
|
|
41
50
|
getProps(): {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import Behaviour from './Behaviour';
|
|
2
2
|
import BehaviourNames from './BehaviourNames';
|
|
3
|
-
import { getToroidalEdgeExtents, isToroidalAxisViewportVisible, relocateToroidalAxisIntoViewport, resolveToroidalBounds, wrapToroidalAxis, } from '../util/toroidalWrapExtents';
|
|
4
|
-
import {
|
|
3
|
+
import { getToroidalAxisExtentSpan, getToroidalEdgeExtents, isToroidalAxisViewportVisible, isToroidalViewportVisible, relocateToroidalAxisIntoViewport, resolveToroidalBounds, wrapToroidalAxis, } from '../util/toroidalWrapExtents';
|
|
4
|
+
import { shouldStartToroidalFadeOnAxis, toroidalFadeDelta, } from '../util/toroidalWrapFade';
|
|
5
5
|
/**
|
|
6
6
|
* Toroidal screen/world wrap: particles that fully leave an axis-aligned rectangle
|
|
7
7
|
* re-enter on the opposite side while still fully outside the view (no visible jump).
|
|
@@ -31,6 +31,10 @@ export default class ToroidalWrapBehaviour extends Behaviour {
|
|
|
31
31
|
this._handledVisibilityResumeGeneration = -1;
|
|
32
32
|
this._fadePhase = new Map();
|
|
33
33
|
this._fadeMult = new Map();
|
|
34
|
+
this._seedExtentSpanX = new Map();
|
|
35
|
+
this._seedExtentSpanY = new Map();
|
|
36
|
+
this._blockExitFade = new Set();
|
|
37
|
+
this._hasSpawnSeeded = new Set();
|
|
34
38
|
this.init = (particle, _model, _turbulencePool) => {
|
|
35
39
|
this.clearParticleState(particle.uid);
|
|
36
40
|
};
|
|
@@ -44,8 +48,7 @@ export default class ToroidalWrapBehaviour extends Behaviour {
|
|
|
44
48
|
const resumeGeneration = (_a = model.visibilityResumeGeneration) !== null && _a !== void 0 ? _a : 0;
|
|
45
49
|
if (resumeGeneration > this._handledVisibilityResumeGeneration) {
|
|
46
50
|
this._handledVisibilityResumeGeneration = resumeGeneration;
|
|
47
|
-
this.
|
|
48
|
-
this._insideY.clear();
|
|
51
|
+
this.clearSpawnSeedState();
|
|
49
52
|
this.clearFadeState();
|
|
50
53
|
}
|
|
51
54
|
const bounds = resolveToroidalBounds(this, model.toroidalCanvasBounds);
|
|
@@ -62,19 +65,34 @@ export default class ToroidalWrapBehaviour extends Behaviour {
|
|
|
62
65
|
let phase = (_b = this._fadePhase.get(uid)) !== null && _b !== void 0 ? _b : 'idle';
|
|
63
66
|
let fadeMult = (_c = this._fadeMult.get(uid)) !== null && _c !== void 0 ? _c : 1;
|
|
64
67
|
let didWrap = false;
|
|
68
|
+
let spawnRelocated = false;
|
|
69
|
+
const isFirstSpawnSeed = !this._hasSpawnSeeded.has(uid);
|
|
65
70
|
if (this.wrapX) {
|
|
66
|
-
const seeded = this.seedSpawnPositionIntoViewport(uid, visualX, mx, bounds.minX, bounds.maxX, extents.left, extents.right, this._insideX);
|
|
71
|
+
const seeded = this.seedSpawnPositionIntoViewport(uid, visualX, mx, bounds.minX, bounds.maxX, extents.left, extents.right, this._insideX, this._seedExtentSpanX);
|
|
67
72
|
visualX = seeded.visual;
|
|
68
73
|
mx = seeded.movement;
|
|
74
|
+
if (seeded.relocated)
|
|
75
|
+
spawnRelocated = true;
|
|
69
76
|
}
|
|
70
77
|
if (this.wrapY) {
|
|
71
|
-
const seeded = this.seedSpawnPositionIntoViewport(uid, visualY, my, bounds.minY, bounds.maxY, extents.top, extents.bottom, this._insideY);
|
|
78
|
+
const seeded = this.seedSpawnPositionIntoViewport(uid, visualY, my, bounds.minY, bounds.maxY, extents.top, extents.bottom, this._insideY, this._seedExtentSpanY);
|
|
72
79
|
visualY = seeded.visual;
|
|
73
80
|
my = seeded.movement;
|
|
81
|
+
if (seeded.relocated)
|
|
82
|
+
spawnRelocated = true;
|
|
83
|
+
}
|
|
84
|
+
if (isFirstSpawnSeed && (this._insideX.has(uid) || this._insideY.has(uid) || spawnRelocated)) {
|
|
85
|
+
this._hasSpawnSeeded.add(uid);
|
|
86
|
+
}
|
|
87
|
+
if (spawnRelocated && this.wrapFadeEnabled && phase === 'idle' && isFirstSpawnSeed) {
|
|
88
|
+
this.startSpawnFadeIn(uid);
|
|
89
|
+
phase = 'in';
|
|
90
|
+
fadeMult = 0;
|
|
74
91
|
}
|
|
75
92
|
if (this.wrapFadeEnabled) {
|
|
76
93
|
const fadeStep = toroidalFadeDelta(deltaTime, this.wrapFadeDuration);
|
|
77
|
-
|
|
94
|
+
const blockExitFade = this._blockExitFade.has(uid);
|
|
95
|
+
if (phase === 'idle' && !blockExitFade) {
|
|
78
96
|
const startX = this.wrapX &&
|
|
79
97
|
shouldStartToroidalFadeOnAxis(visualX, particle.velocity.x, bounds.minX, bounds.maxX, extents.left, extents.right, this._insideX.get(uid), this.wrapFadeDuration);
|
|
80
98
|
const startY = this.wrapY &&
|
|
@@ -87,30 +105,9 @@ export default class ToroidalWrapBehaviour extends Behaviour {
|
|
|
87
105
|
}
|
|
88
106
|
}
|
|
89
107
|
if (phase === 'out') {
|
|
90
|
-
|
|
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);
|
|
108
|
+
fadeMult = Math.max(0, fadeMult - fadeStep);
|
|
107
109
|
this._fadeMult.set(uid, fadeMult);
|
|
108
|
-
|
|
109
|
-
phase = 'idle';
|
|
110
|
-
fadeMult = 1;
|
|
111
|
-
this._fadePhase.set(uid, 'idle');
|
|
112
|
-
this._fadeMult.set(uid, 1);
|
|
113
|
-
}
|
|
110
|
+
this._fadePhase.set(uid, 'out');
|
|
114
111
|
}
|
|
115
112
|
}
|
|
116
113
|
const deferWrap = this.wrapFadeEnabled && phase === 'out' && fadeMult > 0;
|
|
@@ -122,7 +119,7 @@ export default class ToroidalWrapBehaviour extends Behaviour {
|
|
|
122
119
|
else {
|
|
123
120
|
if (wrapped.didWrap) {
|
|
124
121
|
didWrap = true;
|
|
125
|
-
if (this.wrapFadeEnabled && phase
|
|
122
|
+
if (this.wrapFadeEnabled && phase !== 'in') {
|
|
126
123
|
phase = 'in';
|
|
127
124
|
fadeMult = 0;
|
|
128
125
|
this.startWrapFadeIn(uid);
|
|
@@ -141,7 +138,7 @@ export default class ToroidalWrapBehaviour extends Behaviour {
|
|
|
141
138
|
else {
|
|
142
139
|
if (wrapped.didWrap) {
|
|
143
140
|
didWrap = true;
|
|
144
|
-
if (this.wrapFadeEnabled && phase
|
|
141
|
+
if (this.wrapFadeEnabled && phase !== 'in') {
|
|
145
142
|
phase = 'in';
|
|
146
143
|
fadeMult = 0;
|
|
147
144
|
this.startWrapFadeIn(uid);
|
|
@@ -156,6 +153,24 @@ export default class ToroidalWrapBehaviour extends Behaviour {
|
|
|
156
153
|
;
|
|
157
154
|
particle._toroidalJustWrapped = true;
|
|
158
155
|
}
|
|
156
|
+
if (this.wrapFadeEnabled && phase === 'in') {
|
|
157
|
+
const fadeStep = toroidalFadeDelta(deltaTime, this.wrapFadeDuration);
|
|
158
|
+
const viewportVisible = isToroidalViewportVisible(visualX, visualY, extents, bounds, this.wrapX, this.wrapY);
|
|
159
|
+
if (viewportVisible) {
|
|
160
|
+
fadeMult = Math.min(1, fadeMult + fadeStep);
|
|
161
|
+
this._fadeMult.set(uid, fadeMult);
|
|
162
|
+
if (fadeMult >= 1) {
|
|
163
|
+
phase = 'idle';
|
|
164
|
+
fadeMult = 1;
|
|
165
|
+
this._fadePhase.set(uid, 'idle');
|
|
166
|
+
this._fadeMult.set(uid, 1);
|
|
167
|
+
this._blockExitFade.delete(uid);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
this._fadeMult.set(uid, fadeMult);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
159
174
|
particle.movement.x = mx;
|
|
160
175
|
particle.movement.y = my;
|
|
161
176
|
particle.x = visualX;
|
|
@@ -174,27 +189,64 @@ export default class ToroidalWrapBehaviour extends Behaviour {
|
|
|
174
189
|
return false;
|
|
175
190
|
return ((_a = this._fadePhase.get(particle.uid)) !== null && _a !== void 0 ? _a : 'idle') !== 'idle';
|
|
176
191
|
}
|
|
192
|
+
getWrapFadePhase(particle) {
|
|
193
|
+
var _a;
|
|
194
|
+
if (!this.wrapFadeEnabled)
|
|
195
|
+
return 'idle';
|
|
196
|
+
return (_a = this._fadePhase.get(particle.uid)) !== null && _a !== void 0 ? _a : 'idle';
|
|
197
|
+
}
|
|
177
198
|
clearParticleState(uid) {
|
|
178
199
|
this._insideX.delete(uid);
|
|
179
200
|
this._insideY.delete(uid);
|
|
180
201
|
this._fadePhase.delete(uid);
|
|
181
202
|
this._fadeMult.delete(uid);
|
|
203
|
+
this._seedExtentSpanX.delete(uid);
|
|
204
|
+
this._seedExtentSpanY.delete(uid);
|
|
205
|
+
this._blockExitFade.delete(uid);
|
|
206
|
+
this._hasSpawnSeeded.delete(uid);
|
|
182
207
|
}
|
|
183
208
|
clearFadeState() {
|
|
184
209
|
this._fadePhase.clear();
|
|
185
210
|
this._fadeMult.clear();
|
|
211
|
+
this._blockExitFade.clear();
|
|
212
|
+
this._hasSpawnSeeded.clear();
|
|
213
|
+
}
|
|
214
|
+
clearSpawnSeedState() {
|
|
215
|
+
this._insideX.clear();
|
|
216
|
+
this._insideY.clear();
|
|
217
|
+
this._seedExtentSpanX.clear();
|
|
218
|
+
this._seedExtentSpanY.clear();
|
|
219
|
+
this._blockExitFade.clear();
|
|
220
|
+
this._hasSpawnSeeded.clear();
|
|
186
221
|
}
|
|
187
222
|
startWrapFadeIn(uid) {
|
|
188
223
|
this._fadePhase.set(uid, 'in');
|
|
189
224
|
this._fadeMult.set(uid, 0);
|
|
190
225
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
226
|
+
needsAxisReseed(uid, leading, trailing, spanMap, insideMap) {
|
|
227
|
+
var _a;
|
|
228
|
+
if (!insideMap.has(uid))
|
|
229
|
+
return true;
|
|
230
|
+
const currentSpan = getToroidalAxisExtentSpan(leading, trailing);
|
|
231
|
+
const seededSpan = (_a = spanMap.get(uid)) !== null && _a !== void 0 ? _a : 0;
|
|
232
|
+
return currentSpan > seededSpan + 1;
|
|
233
|
+
}
|
|
234
|
+
seedSpawnPositionIntoViewport(uid, visual, movement, min, max, leading, trailing, insideMap, spanMap) {
|
|
235
|
+
if (!this.needsAxisReseed(uid, leading, trailing, spanMap, insideMap)) {
|
|
236
|
+
return { visual, movement, relocated: false };
|
|
194
237
|
}
|
|
195
238
|
const relocated = relocateToroidalAxisIntoViewport(visual, movement, min, max, leading, trailing);
|
|
196
239
|
insideMap.set(uid, isToroidalAxisViewportVisible(relocated.position, leading, trailing, min, max));
|
|
197
|
-
|
|
240
|
+
spanMap.set(uid, getToroidalAxisExtentSpan(leading, trailing));
|
|
241
|
+
return {
|
|
242
|
+
visual: relocated.position,
|
|
243
|
+
movement: relocated.movement,
|
|
244
|
+
relocated: relocated.relocated,
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
startSpawnFadeIn(uid) {
|
|
248
|
+
this.startWrapFadeIn(uid);
|
|
249
|
+
this._blockExitFade.add(uid);
|
|
198
250
|
}
|
|
199
251
|
getName() {
|
|
200
252
|
return BehaviourNames.TOROIDAL_WRAP_BEHAVIOUR;
|
|
@@ -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":"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"}
|
|
@@ -46,9 +46,20 @@ export type ToroidalAxisRelocateResult = {
|
|
|
46
46
|
};
|
|
47
47
|
/** True when any part of the particle overlaps the wrap band on one axis. */
|
|
48
48
|
export declare function isToroidalAxisViewportVisible(position: number, leadingExtent: number, trailingExtent: number, min: number, max: number): boolean;
|
|
49
|
+
/** True when the full particle bbox fits inside the wrap band on one axis. */
|
|
50
|
+
export declare function isToroidalAxisFullyContained(position: number, leadingExtent: number, trailingExtent: number, min: number, max: number): boolean;
|
|
51
|
+
/** Combined leading+trailing span on one axis (used to detect sprite extent growth). */
|
|
52
|
+
export declare function getToroidalAxisExtentSpan(leadingExtent: number, trailingExtent: number): number;
|
|
53
|
+
/** Center range where the full particle bbox fits inside the wrap band. */
|
|
54
|
+
export declare function getToroidalAxisSafeCenterRange(min: number, max: number, leadingExtent: number, trailingExtent: number): {
|
|
55
|
+
min: number;
|
|
56
|
+
max: number;
|
|
57
|
+
};
|
|
58
|
+
export declare function clampToroidalAxisCenterToSafeRange(position: number, min: number, max: number, leadingExtent: number, trailingExtent: number): number;
|
|
49
59
|
/**
|
|
50
60
|
* Moves a spawn-outside particle into the toroidal viewport by modulo-mapping its
|
|
51
|
-
* position into the wrap band
|
|
61
|
+
* position into the wrap band, then clamping to a center range that fits the sprite extents.
|
|
62
|
+
* Preserves movement offset so render/visual offsets stay aligned.
|
|
52
63
|
*/
|
|
53
64
|
export declare function relocateToroidalAxisIntoViewport(position: number, movement: number, min: number, max: number, leadingExtent: number, trailingExtent: number): ToroidalAxisRelocateResult;
|
|
54
65
|
/**
|
|
@@ -83,28 +83,59 @@ export function isToroidalViewportVisible(x, y, extents, bounds, wrapX, wrapY) {
|
|
|
83
83
|
export function isToroidalAxisViewportVisible(position, leadingExtent, trailingExtent, min, max) {
|
|
84
84
|
return position + trailingExtent >= min && position - leadingExtent <= max;
|
|
85
85
|
}
|
|
86
|
+
/** True when the full particle bbox fits inside the wrap band on one axis. */
|
|
87
|
+
export function isToroidalAxisFullyContained(position, leadingExtent, trailingExtent, min, max) {
|
|
88
|
+
return position - leadingExtent >= min && position + trailingExtent <= max;
|
|
89
|
+
}
|
|
90
|
+
/** Combined leading+trailing span on one axis (used to detect sprite extent growth). */
|
|
91
|
+
export function getToroidalAxisExtentSpan(leadingExtent, trailingExtent) {
|
|
92
|
+
return leadingExtent + trailingExtent;
|
|
93
|
+
}
|
|
94
|
+
/** Center range where the full particle bbox fits inside the wrap band. */
|
|
95
|
+
export function getToroidalAxisSafeCenterRange(min, max, leadingExtent, trailingExtent) {
|
|
96
|
+
const safeMin = min + leadingExtent;
|
|
97
|
+
const safeMax = max - trailingExtent;
|
|
98
|
+
if (safeMin <= safeMax) {
|
|
99
|
+
return { min: safeMin, max: safeMax };
|
|
100
|
+
}
|
|
101
|
+
const center = (min + max) * 0.5;
|
|
102
|
+
return { min: center, max: center };
|
|
103
|
+
}
|
|
104
|
+
export function clampToroidalAxisCenterToSafeRange(position, min, max, leadingExtent, trailingExtent) {
|
|
105
|
+
const safe = getToroidalAxisSafeCenterRange(min, max, leadingExtent, trailingExtent);
|
|
106
|
+
return Math.min(safe.max, Math.max(safe.min, position));
|
|
107
|
+
}
|
|
86
108
|
/**
|
|
87
109
|
* Moves a spawn-outside particle into the toroidal viewport by modulo-mapping its
|
|
88
|
-
* position into the wrap band
|
|
110
|
+
* position into the wrap band, then clamping to a center range that fits the sprite extents.
|
|
111
|
+
* Preserves movement offset so render/visual offsets stay aligned.
|
|
89
112
|
*/
|
|
90
113
|
export function relocateToroidalAxisIntoViewport(position, movement, min, max, leadingExtent, trailingExtent) {
|
|
91
|
-
if (
|
|
114
|
+
if (isToroidalAxisFullyContained(position, leadingExtent, trailingExtent, min, max)) {
|
|
92
115
|
return { position, movement, relocated: false };
|
|
93
116
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
117
|
+
let pos = position;
|
|
118
|
+
let mov = movement;
|
|
119
|
+
let relocated = false;
|
|
120
|
+
if (!isToroidalAxisViewportVisible(position, leadingExtent, trailingExtent, min, max)) {
|
|
121
|
+
const period = max - min;
|
|
122
|
+
if (period <= 0) {
|
|
123
|
+
return { position, movement, relocated: false };
|
|
124
|
+
}
|
|
125
|
+
pos = min + ((((position - min) % period) + period) % period);
|
|
126
|
+
mov = movement + (pos - position);
|
|
127
|
+
relocated = true;
|
|
97
128
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
if (!isToroidalAxisViewportVisible(pos, leadingExtent, trailingExtent, min, max)) {
|
|
101
|
-
const minCenter = min - trailingExtent;
|
|
102
|
-
const maxCenter = max + leadingExtent;
|
|
103
|
-
const clamped = Math.min(maxCenter, Math.max(minCenter, pos));
|
|
129
|
+
const clamped = clampToroidalAxisCenterToSafeRange(pos, min, max, leadingExtent, trailingExtent);
|
|
130
|
+
if (clamped !== pos) {
|
|
104
131
|
mov += clamped - pos;
|
|
105
132
|
pos = clamped;
|
|
133
|
+
relocated = true;
|
|
134
|
+
}
|
|
135
|
+
else if (clamped !== position) {
|
|
136
|
+
relocated = true;
|
|
106
137
|
}
|
|
107
|
-
return { position: pos, movement: mov, relocated
|
|
138
|
+
return { position: pos, movement: mov, relocated };
|
|
108
139
|
}
|
|
109
140
|
/**
|
|
110
141
|
* Wraps one axis only when a particle transitions from inside to fully outside,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toroidalWrapExtents.js","sourceRoot":"","sources":["../../../src/lib/util/toroidalWrapExtents.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"toroidalWrapExtents.js","sourceRoot":"","sources":["../../../src/lib/util/toroidalWrapExtents.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,8 +21,9 @@ function distToMinExit(position, trailingExtent, min) {
|
|
|
21
21
|
export function getToroidalFadeLead(axisVelocity, fadeDuration, leadingExtent, trailingExtent, min, max) {
|
|
22
22
|
const axisSpan = Math.max(0, max - min);
|
|
23
23
|
const velocityLead = Math.abs(axisVelocity) * fadeDuration;
|
|
24
|
-
const
|
|
24
|
+
const extentLead = (leadingExtent + trailingExtent) * 0.25;
|
|
25
25
|
const spanCap = axisSpan > 0 ? axisSpan * 0.5 : 0;
|
|
26
|
+
const minLead = axisSpan > 0 ? Math.min(extentLead, axisSpan * 0.15) : extentLead;
|
|
26
27
|
return Math.min(Math.max(velocityLead, minLead), spanCap);
|
|
27
28
|
}
|
|
28
29
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toroidalWrapFade.js","sourceRoot":"","sources":["../../../src/lib/util/toroidalWrapFade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAIxD,yEAAyE;AACzE,MAAM,UAAU,iBAAiB,CAAC,SAAiB,EAAE,YAAoB;IACvE,IAAI,YAAY,IAAI,CAAC;QAAE,OAAO,CAAC,CAAA;IAC/B,MAAM,KAAK,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IACzD,OAAO,KAAK,GAAG,YAAY,CAAA;AAC7B,CAAC;AAED,sFAAsF;AACtF,SAAS,aAAa,CAAC,QAAgB,EAAE,aAAqB,EAAE,GAAW;IACzE,OAAO,GAAG,GAAG,CAAC,QAAQ,GAAG,aAAa,CAAC,CAAA;AACzC,CAAC;AAED,sFAAsF;AACtF,SAAS,aAAa,CAAC,QAAgB,EAAE,cAAsB,EAAE,GAAW;IAC1E,OAAO,QAAQ,GAAG,cAAc,GAAG,GAAG,CAAA;AACxC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,YAAoB,EACpB,YAAoB,EACpB,aAAqB,EACrB,cAAsB,EACtB,GAAW,EACX,GAAW;IAEX,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAA;IACvC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,YAAY,CAAA;IAC1D,MAAM,
|
|
1
|
+
{"version":3,"file":"toroidalWrapFade.js","sourceRoot":"","sources":["../../../src/lib/util/toroidalWrapFade.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,18 @@ export function getToroidalSpriteDisplay(particle, wrap, model) {
|
|
|
15
15
|
if (!(wrap === null || wrap === void 0 ? void 0 : wrap.enabled) || !wrap.wrapFadeEnabled) {
|
|
16
16
|
return { visible: viewportVisible, alphaMultiplier: 1 };
|
|
17
17
|
}
|
|
18
|
+
const fadePhase = wrap.getWrapFadePhase(particle);
|
|
18
19
|
const fadeMultiplier = wrap.getWrapFadeMultiplier(particle);
|
|
20
|
+
if (fadePhase === 'idle') {
|
|
21
|
+
return { visible: viewportVisible, alphaMultiplier: 1 };
|
|
22
|
+
}
|
|
23
|
+
if (fadePhase === 'out') {
|
|
24
|
+
return {
|
|
25
|
+
visible: viewportVisible,
|
|
26
|
+
alphaMultiplier: viewportVisible ? fadeMultiplier : 1,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
// Fade-in only draws once the particle overlaps the viewport again.
|
|
19
30
|
return {
|
|
20
31
|
visible: viewportVisible,
|
|
21
32
|
alphaMultiplier: viewportVisible ? fadeMultiplier : 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toroidalWrapVisibility.js","sourceRoot":"","sources":["../../../src/lib/util/toroidalWrapVisibility.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,uBAAuB,CAAA;AAE9B,qGAAqG;AACrG,MAAM,UAAU,yBAAyB,CACvC,QAAkB,EAClB,IAA8C,EAC9C,KAAY;IAEZ,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAA;QAAE,OAAO,IAAI,CAAA;IAE/B,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAA;IACtE,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAExB,MAAM,OAAO,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAA;IAChD,OAAO,yBAAyB,CAC9B,QAAQ,CAAC,CAAC,EACV,QAAQ,CAAC,CAAC,EACV,OAAO,EACP,MAAM,EACN,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,KAAK,CACX,CAAA;AACH,CAAC;AAOD,mGAAmG;AACnG,MAAM,UAAU,wBAAwB,CACtC,QAAkB,EAClB,IAA8C,EAC9C,KAAY;IAEZ,MAAM,eAAe,GAAG,yBAAyB,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IACxE,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,EAAE,CAAA;IACzD,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"toroidalWrapVisibility.js","sourceRoot":"","sources":["../../../src/lib/util/toroidalWrapVisibility.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,uBAAuB,CAAA;AAE9B,qGAAqG;AACrG,MAAM,UAAU,yBAAyB,CACvC,QAAkB,EAClB,IAA8C,EAC9C,KAAY;IAEZ,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAA;QAAE,OAAO,IAAI,CAAA;IAE/B,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAA;IACtE,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAExB,MAAM,OAAO,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAA;IAChD,OAAO,yBAAyB,CAC9B,QAAQ,CAAC,CAAC,EACV,QAAQ,CAAC,CAAC,EACV,OAAO,EACP,MAAM,EACN,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,KAAK,CACX,CAAA;AACH,CAAC;AAOD,mGAAmG;AACnG,MAAM,UAAU,wBAAwB,CACtC,QAAkB,EAClB,IAA8C,EAC9C,KAAY;IAEZ,MAAM,eAAe,GAAG,yBAAyB,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IACxE,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,EAAE,CAAA;IACzD,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IACjD,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAA;IAE3D,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,EAAE,CAAA;IACzD,CAAC;IAED,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;QACxB,OAAO;YACL,OAAO,EAAE,eAAe;YACxB,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;SACtD,CAAA;IACH,CAAC;IAED,oEAAoE;IACpE,OAAO;QACL,OAAO,EAAE,eAAe;QACxB,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;KACtD,CAAA;AACH,CAAC"}
|
package/package.json
CHANGED