@joydle/juice-babylon 0.1.1 → 0.1.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.
- package/dist/MaterialFlash.d.ts +1 -1
- package/dist/MaterialFlash.d.ts.map +1 -1
- package/dist/MaterialFlash.js +4 -3
- package/dist/MaterialFlash.js.map +1 -1
- package/dist/MeshHelpers.d.ts +6 -6
- package/dist/MeshHelpers.d.ts.map +1 -1
- package/dist/MeshHelpers.js +8 -6
- package/dist/MeshHelpers.js.map +1 -1
- package/dist/toolkit.d.ts +1 -1
- package/dist/toolkit.js +9 -9
- package/dist/toolkit.js.map +1 -1
- package/dist/types.d.ts +9 -10
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -2
package/dist/MaterialFlash.d.ts
CHANGED
|
@@ -9,5 +9,5 @@ import type { BabylonMesh, BabylonColor } from './types.js';
|
|
|
9
9
|
* @param color Flash colour (Babylon Color3/Color4 or any `{r, g, b}`).
|
|
10
10
|
* @param duration Flash duration in **seconds**.
|
|
11
11
|
*/
|
|
12
|
-
export declare function MaterialFlash(mesh: BabylonMesh, color: BabylonColor, duration: number): void;
|
|
12
|
+
export declare function MaterialFlash(mesh: BabylonMesh, color: BabylonColor, duration: number): () => void;
|
|
13
13
|
//# sourceMappingURL=MaterialFlash.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaterialFlash.d.ts","sourceRoot":"","sources":["../src/MaterialFlash.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAO5D;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,MAAM,GACf,IAAI,
|
|
1
|
+
{"version":3,"file":"MaterialFlash.d.ts","sourceRoot":"","sources":["../src/MaterialFlash.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAO5D;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,MAAM,GACf,MAAM,IAAI,CA6BZ"}
|
package/dist/MaterialFlash.js
CHANGED
|
@@ -15,9 +15,9 @@ import { getGsap } from './deps.js';
|
|
|
15
15
|
export function MaterialFlash(mesh, color, duration) {
|
|
16
16
|
// Guard: no material or no emissiveColor property.
|
|
17
17
|
if (!mesh.material)
|
|
18
|
-
return;
|
|
18
|
+
return () => { };
|
|
19
19
|
if (!('emissiveColor' in mesh.material))
|
|
20
|
-
return;
|
|
20
|
+
return () => { };
|
|
21
21
|
const gsap = getGsap();
|
|
22
22
|
// StandardMaterial and PBRMaterial have emissiveColor; base Material does not.
|
|
23
23
|
const emissive = mesh.material.emissiveColor;
|
|
@@ -30,12 +30,13 @@ export function MaterialFlash(mesh, color, duration) {
|
|
|
30
30
|
emissive.g = color.g;
|
|
31
31
|
emissive.b = color.b;
|
|
32
32
|
// Animate back to the original emissive colour over `duration` seconds.
|
|
33
|
-
gsap.to(emissive, {
|
|
33
|
+
const tween = gsap.to(emissive, {
|
|
34
34
|
r: origR,
|
|
35
35
|
g: origG,
|
|
36
36
|
b: origB,
|
|
37
37
|
duration,
|
|
38
38
|
overwrite: true,
|
|
39
39
|
});
|
|
40
|
+
return () => tween.kill();
|
|
40
41
|
}
|
|
41
42
|
//# sourceMappingURL=MaterialFlash.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaterialFlash.js","sourceRoot":"","sources":["../src/MaterialFlash.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAiB,EACjB,KAAmB,EACnB,QAAgB;IAEhB,mDAAmD;IACnD,IAAI,CAAC,IAAI,CAAC,QAAQ;QAAE,OAAO;
|
|
1
|
+
{"version":3,"file":"MaterialFlash.js","sourceRoot":"","sources":["../src/MaterialFlash.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAiB,EACjB,KAAmB,EACnB,QAAgB;IAEhB,mDAAmD;IACnD,IAAI,CAAC,IAAI,CAAC,QAAQ;QAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IACpC,IAAI,CAAC,CAAC,eAAe,IAAI,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAEzD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,+EAA+E;IAC/E,MAAM,QAAQ,GAAI,IAAI,CAAC,QAAuD,CAAC,aAAa,CAAC;IAE7F,qCAAqC;IACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC;IACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC;IACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC;IAEzB,wCAAwC;IACxC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IACrB,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IACrB,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAErB,wEAAwE;IACxE,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE;QAC9B,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,KAAK;QACR,QAAQ;QACR,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAC5B,CAAC"}
|
package/dist/MeshHelpers.d.ts
CHANGED
|
@@ -2,27 +2,27 @@ import type { BabylonMesh } from './types.js';
|
|
|
2
2
|
export interface SquashOptions {
|
|
3
3
|
/** Axis to squash along. @default 'y' */
|
|
4
4
|
axis?: 'x' | 'y' | 'z';
|
|
5
|
-
/**
|
|
5
|
+
/** Compression amount (0..1). @default 0.35 */
|
|
6
6
|
amount?: number;
|
|
7
|
-
/** Duration in seconds. @default 0.
|
|
7
|
+
/** Duration in seconds. @default 0.06 */
|
|
8
8
|
duration?: number;
|
|
9
9
|
}
|
|
10
10
|
export interface ExplodeOutOptions {
|
|
11
|
-
/** Target scale
|
|
11
|
+
/** Target scale factor. @default 1.5 */
|
|
12
12
|
scaleTo?: number;
|
|
13
|
-
/**
|
|
13
|
+
/** Fade-out duration in seconds. @default 0.15 */
|
|
14
14
|
fadeDuration?: number;
|
|
15
15
|
}
|
|
16
16
|
export interface BobOptions {
|
|
17
17
|
/** Vertical displacement in world units. @default 0.3 */
|
|
18
18
|
height?: number;
|
|
19
|
-
/**
|
|
19
|
+
/** Oscillation speed (higher = faster). @default 1.5 */
|
|
20
20
|
speed?: number;
|
|
21
21
|
}
|
|
22
22
|
export interface SpinOptions {
|
|
23
23
|
/** Axis to spin around. @default 'y' */
|
|
24
24
|
axis?: 'x' | 'y' | 'z';
|
|
25
|
-
/**
|
|
25
|
+
/** Rotations per second. @default 2 */
|
|
26
26
|
speed?: number;
|
|
27
27
|
}
|
|
28
28
|
export interface JuicedMesh extends BabylonMesh {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MeshHelpers.d.ts","sourceRoot":"","sources":["../src/MeshHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,YAAY,CAAC;AAO7D,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACvB
|
|
1
|
+
{"version":3,"file":"MeshHelpers.d.ts","sourceRoot":"","sources":["../src/MeshHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,YAAY,CAAC;AAO7D,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACvB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,wCAAwC;IACxC,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACvB,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD,MAAM,WAAW,UAAW,SAAQ,WAAW;IAC7C,mEAAmE;IACnE,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACnC,+CAA+C;IAC/C,UAAU,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC3C,iEAAiE;IACjE,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG;QAAE,IAAI,IAAI,IAAI,CAAA;KAAE,CAAC;IACzC,yEAAyE;IACzE,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG;QAAE,IAAI,IAAI,IAAI,CAAA;KAAE,CAAC;CAC5C;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CA8HtD"}
|
package/dist/MeshHelpers.js
CHANGED
|
@@ -22,8 +22,8 @@ export function addMeshHelpers(mesh) {
|
|
|
22
22
|
m.squash = function squash(opts = {}) {
|
|
23
23
|
const gsap = getGsap();
|
|
24
24
|
const axis = opts.axis ?? 'y';
|
|
25
|
-
const amount = opts.amount ?? 0.
|
|
26
|
-
const duration = opts.duration ?? 0.
|
|
25
|
+
const amount = opts.amount ?? 0.35;
|
|
26
|
+
const duration = opts.duration ?? 0.06;
|
|
27
27
|
const halfDur = duration / 2;
|
|
28
28
|
// Remember the original scale on the target axis.
|
|
29
29
|
const origScale = mesh.scaling[axis];
|
|
@@ -61,8 +61,8 @@ export function addMeshHelpers(mesh) {
|
|
|
61
61
|
// -- explodeOut ----------------------------------------------------------
|
|
62
62
|
m.explodeOut = function explodeOut(opts = {}) {
|
|
63
63
|
const gsap = getGsap();
|
|
64
|
-
const scaleTo = opts.scaleTo ??
|
|
65
|
-
const fadeDuration = opts.fadeDuration ?? 0.
|
|
64
|
+
const scaleTo = opts.scaleTo ?? 1.5;
|
|
65
|
+
const fadeDuration = opts.fadeDuration ?? 0.15;
|
|
66
66
|
// Scale up on all axes.
|
|
67
67
|
gsap.to(mesh.scaling, {
|
|
68
68
|
x: mesh.scaling.x * scaleTo,
|
|
@@ -87,9 +87,10 @@ export function addMeshHelpers(mesh) {
|
|
|
87
87
|
const height = opts.height ?? 0.3;
|
|
88
88
|
const speed = opts.speed ?? 1.5;
|
|
89
89
|
const baseY = mesh.position.y;
|
|
90
|
+
const duration = 1 / speed;
|
|
90
91
|
const tween = gsap.to(mesh.position, {
|
|
91
92
|
y: baseY + height,
|
|
92
|
-
duration
|
|
93
|
+
duration,
|
|
93
94
|
ease: 'sine.inOut',
|
|
94
95
|
yoyo: true,
|
|
95
96
|
repeat: -1, // infinite
|
|
@@ -107,9 +108,10 @@ export function addMeshHelpers(mesh) {
|
|
|
107
108
|
const axis = opts.axis ?? 'y';
|
|
108
109
|
const speed = opts.speed ?? 2;
|
|
109
110
|
const baseRotation = mesh.rotation[axis];
|
|
111
|
+
const duration = 1 / speed;
|
|
110
112
|
const tween = gsap.to(mesh.rotation, {
|
|
111
113
|
[axis]: baseRotation + Math.PI * 2,
|
|
112
|
-
duration
|
|
114
|
+
duration,
|
|
113
115
|
ease: 'none',
|
|
114
116
|
repeat: -1, // infinite
|
|
115
117
|
});
|
package/dist/MeshHelpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MeshHelpers.js","sourceRoot":"","sources":["../src/MeshHelpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmDpC,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,cAAc,CAAC,IAAiB;IAC9C,MAAM,CAAC,GAAG,IAAkB,CAAC;IAE7B,2EAA2E;IAE3E,CAAC,CAAC,MAAM,GAAG,SAAS,MAAM,CAAC,OAAsB,EAAE;QACjD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"MeshHelpers.js","sourceRoot":"","sources":["../src/MeshHelpers.ts"],"names":[],"mappings":"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"}
|
package/dist/toolkit.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export interface CreateToolkitOptions {
|
|
|
15
15
|
* import { createBabylonJuiceToolkit } from '@joydle/juice-babylon';
|
|
16
16
|
*
|
|
17
17
|
* const juice = createBabylonJuiceToolkit(scene, camera);
|
|
18
|
-
* juice.shake({ intensity: 0.4, duration: 0.3 });
|
|
18
|
+
* juice.shake({ intensity: 0.4, decay: 0.9, duration: 0.3 });
|
|
19
19
|
* juice.flash(mesh, { color: redColor, duration: 0.2 });
|
|
20
20
|
* juice.particles({ position: { x: 0, y: 1, z: 0 }, color: whiteColor, count: 30 });
|
|
21
21
|
* const trail = juice.trail(mesh, { length: 80, color: blueColor });
|
package/dist/toolkit.js
CHANGED
|
@@ -18,7 +18,7 @@ import { addMeshHelpers } from './MeshHelpers.js';
|
|
|
18
18
|
* import { createBabylonJuiceToolkit } from '@joydle/juice-babylon';
|
|
19
19
|
*
|
|
20
20
|
* const juice = createBabylonJuiceToolkit(scene, camera);
|
|
21
|
-
* juice.shake({ intensity: 0.4, duration: 0.3 });
|
|
21
|
+
* juice.shake({ intensity: 0.4, decay: 0.9, duration: 0.3 });
|
|
22
22
|
* juice.flash(mesh, { color: redColor, duration: 0.2 });
|
|
23
23
|
* juice.particles({ position: { x: 0, y: 1, z: 0 }, color: whiteColor, count: 30 });
|
|
24
24
|
* const trail = juice.trail(mesh, { length: 80, color: blueColor });
|
|
@@ -38,10 +38,11 @@ export function createBabylonJuiceToolkit(scene, camera, opts = {}) {
|
|
|
38
38
|
// -- shake ---------------------------------------------------------------
|
|
39
39
|
shake(shakeOpts) {
|
|
40
40
|
shake.trigger(shakeOpts.intensity, shakeOpts.duration);
|
|
41
|
+
return () => shake.stop();
|
|
41
42
|
},
|
|
42
43
|
// -- flash ---------------------------------------------------------------
|
|
43
44
|
flash(target, flashOpts) {
|
|
44
|
-
MaterialFlash(target, flashOpts.color, flashOpts.duration);
|
|
45
|
+
return MaterialFlash(target, flashOpts.color, flashOpts.duration);
|
|
45
46
|
},
|
|
46
47
|
// -- particles -----------------------------------------------------------
|
|
47
48
|
particles(burstOpts) {
|
|
@@ -51,6 +52,7 @@ export function createBabylonJuiceToolkit(scene, camera, opts = {}) {
|
|
|
51
52
|
speed: burstOpts.speed,
|
|
52
53
|
lifetime: burstOpts.lifetime,
|
|
53
54
|
});
|
|
55
|
+
return () => { };
|
|
54
56
|
},
|
|
55
57
|
// -- trail ---------------------------------------------------------------
|
|
56
58
|
trail(target, trailOpts) {
|
|
@@ -59,13 +61,11 @@ export function createBabylonJuiceToolkit(scene, camera, opts = {}) {
|
|
|
59
61
|
color: trailOpts.color,
|
|
60
62
|
});
|
|
61
63
|
activeTrails.push(trail);
|
|
62
|
-
return {
|
|
63
|
-
dispose()
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
activeTrails.splice(idx, 1);
|
|
68
|
-
},
|
|
64
|
+
return () => {
|
|
65
|
+
trail.dispose();
|
|
66
|
+
const idx = activeTrails.indexOf(trail);
|
|
67
|
+
if (idx !== -1)
|
|
68
|
+
activeTrails.splice(idx, 1);
|
|
69
69
|
};
|
|
70
70
|
},
|
|
71
71
|
// -- helpers -------------------------------------------------------------
|
package/dist/toolkit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolkit.js","sourceRoot":"","sources":["../src/toolkit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAWlD,8EAA8E;AAC9E,4BAA4B;AAC5B,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAmB,EACnB,MAAqB,EACrB,OAA6B,EAAE;IAE/B,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC,CAAC;IAE7E,kCAAkC;IAClC,MAAM,YAAY,GAAkB,EAAE,CAAC;IAEvC,MAAM,OAAO,GAAiB;QAC5B,2EAA2E;QAC3E,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"toolkit.js","sourceRoot":"","sources":["../src/toolkit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAWlD,8EAA8E;AAC9E,4BAA4B;AAC5B,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAmB,EACnB,MAAqB,EACrB,OAA6B,EAAE;IAE/B,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC,CAAC;IAE7E,kCAAkC;IAClC,MAAM,YAAY,GAAkB,EAAE,CAAC;IAEvC,MAAM,OAAO,GAAiB;QAC5B,2EAA2E;QAC3E,KAAK,CAAC,SAAiE;YACrE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;YACvD,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;QAED,2EAA2E;QAC3E,KAAK,CACH,MAAmB,EACnB,SAAoD;YAEpD,OAAO,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;QACpE,CAAC;QAED,2EAA2E;QAC3E,SAAS,CAAC,SAMT;YACC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE;gBAClC,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,QAAQ,EAAE,SAAS,CAAC,QAAQ;aAC7B,CAAC,CAAC;YACH,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;QAClB,CAAC;QAED,2EAA2E;QAC3E,KAAK,CACH,MAAmB,EACnB,SAAoD;YAEpD,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE;gBAC3C,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,KAAK,EAAE,SAAS,CAAC,KAAK;aACvB,CAAC,CAAC;YACH,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEzB,OAAO,GAAG,EAAE;gBACV,KAAK,CAAC,OAAO,EAAE,CAAC;gBAChB,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACxC,IAAI,GAAG,KAAK,CAAC,CAAC;oBAAE,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC9C,CAAC,CAAC;QACJ,CAAC;QAED,2EAA2E;QAC3E,UAAU,CAAC,IAAiB;YAC1B,cAAc,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;QAED,2EAA2E;QAC3E,OAAO;YACL,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,SAAS,CAAC,OAAO,EAAE,CAAC;YACpB,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;gBAC7B,CAAC,CAAC,OAAO,EAAE,CAAC;YACd,CAAC;YACD,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1B,CAAC;KACF,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -9,17 +9,18 @@ export type { ParticleSystem as BabylonParticleSystemLike } from '@babylonjs/cor
|
|
|
9
9
|
export type GsapTweenLike = gsap.core.Tween;
|
|
10
10
|
export type GsapLike = typeof import('gsap').default;
|
|
11
11
|
export interface JuiceToolkit {
|
|
12
|
-
/** Trigger camera shake. */
|
|
12
|
+
/** Trigger camera shake. Returns a cancel function. */
|
|
13
13
|
shake(opts: {
|
|
14
14
|
intensity: number;
|
|
15
|
+
decay: number;
|
|
15
16
|
duration: number;
|
|
16
|
-
}): void;
|
|
17
|
-
/** Flash an emissive colour on a mesh's material. */
|
|
17
|
+
}): () => void;
|
|
18
|
+
/** Flash an emissive colour on a mesh's material. Returns a cancel function. */
|
|
18
19
|
flash(target: AbstractMesh, opts: {
|
|
19
20
|
color: Color3;
|
|
20
21
|
duration: number;
|
|
21
|
-
}): void;
|
|
22
|
-
/** Emit a burst of particles at a world position. */
|
|
22
|
+
}): () => void;
|
|
23
|
+
/** Emit a burst of particles at a world position. Returns a cancel function. */
|
|
23
24
|
particles(opts: {
|
|
24
25
|
position: {
|
|
25
26
|
x: number;
|
|
@@ -30,14 +31,12 @@ export interface JuiceToolkit {
|
|
|
30
31
|
count: number;
|
|
31
32
|
speed?: number;
|
|
32
33
|
lifetime?: number;
|
|
33
|
-
}): void;
|
|
34
|
-
/** Attach a trail to a mesh. Returns a
|
|
34
|
+
}): () => void;
|
|
35
|
+
/** Attach a trail to a mesh. Returns a cleanup function. */
|
|
35
36
|
trail(target: AbstractMesh, opts: {
|
|
36
37
|
length?: number;
|
|
37
38
|
color?: Color3;
|
|
38
|
-
}):
|
|
39
|
-
dispose(): void;
|
|
40
|
-
};
|
|
39
|
+
}): () => void;
|
|
41
40
|
/** Add squash/explodeOut/bob/spin helpers to a mesh. */
|
|
42
41
|
addHelpers(mesh: AbstractMesh): void;
|
|
43
42
|
/** Dispose all internal resources. */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAI5D,YAAY,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9D,YAAY,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC9D,YAAY,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,YAAY,EAAE,YAAY,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnE,YAAY,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC/D,YAAY,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7D,YAAY,EAAE,cAAc,IAAI,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAInF,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAC5C,MAAM,MAAM,QAAQ,GAAG,cAAc,MAAM,EAAE,OAAO,CAAC;AAIrD,MAAM,WAAW,YAAY;IAC3B,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAI5D,YAAY,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9D,YAAY,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC9D,YAAY,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,YAAY,EAAE,YAAY,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnE,YAAY,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC/D,YAAY,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7D,YAAY,EAAE,cAAc,IAAI,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAInF,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAC5C,MAAM,MAAM,QAAQ,GAAG,cAAc,MAAM,EAAE,OAAO,CAAC;AAIrD,MAAM,WAAW,YAAY;IAC3B,uDAAuD;IACvD,KAAK,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,IAAI,CAAC;IAEhF,gFAAgF;IAChF,KAAK,CACH,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GACxC,MAAM,IAAI,CAAC;IAEd,gFAAgF;IAChF,SAAS,CAAC,IAAI,EAAE;QACd,QAAQ,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC9C,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,MAAM,IAAI,CAAC;IAEf,4DAA4D;IAC5D,KAAK,CACH,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GACxC,MAAM,IAAI,CAAC;IAEd,wDAAwD;IACxD,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IAErC,sCAAsC;IACtC,OAAO,IAAI,IAAI,CAAC;CACjB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@joydle/juice-babylon",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -10,7 +10,9 @@
|
|
|
10
10
|
"import": "./dist/index.js"
|
|
11
11
|
}
|
|
12
12
|
},
|
|
13
|
-
"files": [
|
|
13
|
+
"files": [
|
|
14
|
+
"dist"
|
|
15
|
+
],
|
|
14
16
|
"scripts": {
|
|
15
17
|
"build": "tsc",
|
|
16
18
|
"typecheck": "tsc --noEmit",
|