@needle-tools/engine 2.40.0-pre → 2.41.0-pre

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/needle-engine.d.ts +269 -123
  3. package/dist/needle-engine.js +389 -389
  4. package/dist/needle-engine.js.map +4 -4
  5. package/dist/needle-engine.min.js +41 -41
  6. package/dist/needle-engine.min.js.map +4 -4
  7. package/lib/engine/engine_gizmos.d.ts +1 -0
  8. package/lib/engine/engine_gizmos.js +16 -4
  9. package/lib/engine/engine_gizmos.js.map +1 -1
  10. package/lib/engine/engine_math.d.ts +9 -6
  11. package/lib/engine/engine_math.js +9 -0
  12. package/lib/engine/engine_math.js.map +1 -1
  13. package/lib/engine/engine_physics.js +14 -6
  14. package/lib/engine/engine_physics.js.map +1 -1
  15. package/lib/engine/engine_serialization_core.js +2 -0
  16. package/lib/engine/engine_serialization_core.js.map +1 -1
  17. package/lib/engine/engine_utils.d.ts +1 -0
  18. package/lib/engine/engine_utils.js +3 -0
  19. package/lib/engine/engine_utils.js.map +1 -1
  20. package/lib/engine-components/AnimationCurve.js +20 -5
  21. package/lib/engine-components/AnimationCurve.js.map +1 -1
  22. package/lib/engine-components/Light.d.ts +2 -0
  23. package/lib/engine-components/Light.js +33 -9
  24. package/lib/engine-components/Light.js.map +1 -1
  25. package/lib/engine-components/ParticleSystem.d.ts +15 -26
  26. package/lib/engine-components/ParticleSystem.js +251 -184
  27. package/lib/engine-components/ParticleSystem.js.map +1 -1
  28. package/lib/engine-components/ParticleSystemModules.d.ts +208 -63
  29. package/lib/engine-components/ParticleSystemModules.js +640 -153
  30. package/lib/engine-components/ParticleSystemModules.js.map +1 -1
  31. package/lib/engine-components/WebXR.js +8 -3
  32. package/lib/engine-components/WebXR.js.map +1 -1
  33. package/lib/engine-components/codegen/components.d.ts +6 -0
  34. package/lib/engine-components/codegen/components.js +6 -0
  35. package/lib/engine-components/codegen/components.js.map +1 -1
  36. package/package.json +3 -1
  37. package/src/engine/codegen/register_types.js +24 -0
  38. package/src/engine/engine_gizmos.ts +19 -4
  39. package/src/engine/engine_math.ts +19 -6
  40. package/src/engine/engine_physics.ts +17 -7
  41. package/src/engine/engine_serialization_core.ts +1 -0
  42. package/src/engine/engine_utils.ts +5 -0
  43. package/src/engine-components/AnimationCurve.ts +25 -11
  44. package/src/engine-components/Light.ts +39 -8
  45. package/src/engine-components/ParticleSystem.ts +314 -194
  46. package/src/engine-components/ParticleSystemModules.ts +537 -154
  47. package/src/engine-components/WebXR.ts +11 -8
  48. package/src/engine-components/codegen/components.ts +6 -0
  49. package/src/engine/dist/engine_physics.js +0 -739
  50. package/src/engine/dist/engine_setup.js +0 -777
  51. package/src/engine-components/dist/CharacterController.js +0 -123
  52. package/src/engine-components/dist/RigidBody.js +0 -458
@@ -1,60 +1,176 @@
1
1
  import * as THREE from "three";
2
+ import { Object3D, Vector3 } from "three";
3
+ import { RGBAColor } from "./js-extensions/RGBAColor";
4
+ import { AnimationCurve } from "./AnimationCurve";
5
+ import { Vec3 } from "../engine/engine_types";
6
+ declare type Color4 = {
7
+ r: number;
8
+ g: number;
9
+ b: number;
10
+ a: number;
11
+ };
12
+ declare type ColorKey = {
13
+ time: number;
14
+ color: Color4;
15
+ };
16
+ declare type AlphaKey = {
17
+ time: number;
18
+ alpha: number;
19
+ };
20
+ export declare class Gradient {
21
+ alphaKeys: Array<AlphaKey>;
22
+ colorKeys: Array<ColorKey>;
23
+ get duration(): number;
24
+ evaluate(time: number, target: RGBAColor): RGBAColor;
25
+ }
26
+ export declare enum ParticleSystemCurveMode {
27
+ Constant = 0,
28
+ Curve = 1,
29
+ TwoCurves = 2,
30
+ TwoConstants = 3
31
+ }
32
+ export declare enum ParticleSystemGradientMode {
33
+ Color = 0,
34
+ Gradient = 1,
35
+ TwoColors = 2,
36
+ TwoGradients = 3,
37
+ RandomColor = 4
38
+ }
39
+ export declare enum ParticleSystemSimulationSpace {
40
+ Local = 0,
41
+ World = 1,
42
+ Custom = 2
43
+ }
44
+ export declare enum ParticleSystemShapeType {
45
+ Sphere = 0,
46
+ SphereShell = 1,
47
+ Hemisphere = 2,
48
+ HemisphereShell = 3,
49
+ Cone = 4,
50
+ Box = 5,
51
+ Mesh = 6,
52
+ ConeShell = 7,
53
+ ConeVolume = 8,
54
+ ConeVolumeShell = 9,
55
+ Circle = 10,
56
+ CircleEdge = 11,
57
+ SingleSidedEdge = 12,
58
+ MeshRenderer = 13,
59
+ SkinnedMeshRenderer = 14,
60
+ BoxShell = 15,
61
+ BoxEdge = 16,
62
+ Donut = 17,
63
+ Rectangle = 18,
64
+ Sprite = 19,
65
+ SpriteRenderer = 20
66
+ }
67
+ export declare class MinMaxCurve {
68
+ mode: ParticleSystemCurveMode;
69
+ constant: number;
70
+ constantMin: number;
71
+ constantMax: number;
72
+ curve?: AnimationCurve;
73
+ curveMin?: AnimationCurve;
74
+ curveMax?: AnimationCurve;
75
+ curveMultiplier?: number;
76
+ evaluate(t01: number, lerpFactor?: number): number;
77
+ }
78
+ export declare class MinMaxGradient {
79
+ mode: ParticleSystemGradientMode;
80
+ color: RGBAColor;
81
+ colorMin: RGBAColor;
82
+ colorMax: RGBAColor;
83
+ gradient: Gradient;
84
+ gradientMin: Gradient;
85
+ gradientMax: Gradient;
86
+ private _temp;
87
+ evaluate(t01: number, lerpFactor?: number): RGBAColor;
88
+ }
89
+ declare type ParticleSystemScalingMode = {
90
+ Hierarchy: number;
91
+ Local: number;
92
+ Shape: number;
93
+ };
2
94
  export declare class MainModule {
3
- randomizeRotationDirection: number;
95
+ cullingMode: number;
4
96
  duration: number;
97
+ emitterVelocityMode: number;
98
+ flipRotation: number;
99
+ gravityModifier: MinMaxCurve;
100
+ gravityModifierMultiplier: number;
5
101
  loop: boolean;
102
+ maxParticles: number;
103
+ playOnAwake: boolean;
6
104
  prewarm: boolean;
7
- startDelay: undefined;
105
+ ringBufferLoopRange: {
106
+ x: number;
107
+ y: number;
108
+ };
109
+ ringBufferMode: boolean;
110
+ scalingMode: ParticleSystemScalingMode;
111
+ simulationSpace: ParticleSystemSimulationSpace;
112
+ simulationSpeed: number;
113
+ startColor: MinMaxGradient;
114
+ startDelay: MinMaxCurve;
8
115
  startDelayMultiplier: number;
9
- startLifetime: undefined;
116
+ startLifetime: MinMaxCurve;
10
117
  startLifetimeMultiplier: number;
11
- startSpeed: undefined;
12
- startSpeedMultiplier: number;
118
+ startRotation: MinMaxCurve;
119
+ startRotationMultiplier: number;
120
+ startRotation3D: boolean;
121
+ startRotationX: MinMaxCurve;
122
+ startRotationXMultiplier: number;
123
+ startRotationY: MinMaxCurve;
124
+ startRotationYMultiplier: number;
125
+ startRotationZ: MinMaxCurve;
126
+ startRotationZMultiplier: number;
127
+ startSize: MinMaxCurve;
13
128
  startSize3D: boolean;
14
- startSize: undefined;
15
129
  startSizeMultiplier: number;
16
- startSizeX: undefined;
130
+ startSizeX: MinMaxCurve;
17
131
  startSizeXMultiplier: number;
18
- startSizeY: undefined;
132
+ startSizeY: MinMaxCurve;
19
133
  startSizeYMultiplier: number;
20
- startSizeZ: undefined;
134
+ startSizeZ: MinMaxCurve;
21
135
  startSizeZMultiplier: number;
22
- startRotation3D: boolean;
23
- startRotation: undefined;
24
- startRotationMultiplier: number;
25
- startRotationX: undefined;
26
- startRotationXMultiplier: number;
27
- startRotationY: undefined;
28
- startRotationYMultiplier: number;
29
- startRotationZ: undefined;
30
- startRotationZMultiplier: number;
31
- flipRotation: number;
32
- startColor: THREE.Color;
33
- startColor1: THREE.Color | undefined;
34
- gravityModifier: undefined;
35
- gravityModifierMultiplier: number;
36
- simulationSpace: number;
37
- customSimulationSpace: null;
38
- simulationSpeed: number;
39
- useUnscaledTime: boolean;
40
- scalingMode: number;
41
- playOnAwake: boolean;
42
- maxParticles: number;
43
- emitterVelocityMode: number;
136
+ startSpeed: MinMaxCurve;
137
+ startSpeedMultiplier: number;
44
138
  stopAction: number;
45
- ringBufferMode: number;
46
- ringBufferLoopRange: THREE.Vector2;
47
- cullingMode: number;
139
+ useUnscaledTime: boolean;
48
140
  }
49
141
  export declare class EmissionModule {
50
142
  burstCount: number;
51
143
  enabled: boolean;
52
- rate: number;
53
- rateMutliplier: number;
54
- rateOverDistance: number;
55
- rateOverDistanceMultiplier: number;
56
- rateOverTime: number;
144
+ rateOverTime: MinMaxCurve;
57
145
  rateOverTimeMultiplier: number;
146
+ rateOverDistance: MinMaxCurve;
147
+ rateOverDistanceMultiplier: number;
148
+ currentParticles: number;
149
+ maxParticles: number;
150
+ private _time;
151
+ private _summed;
152
+ /** called by nebula */
153
+ init(): void;
154
+ /** called by nebula */
155
+ getValue(deltaTime: number): number;
156
+ }
157
+ export declare class ColorOverLifetimeModule {
158
+ enabled: boolean;
159
+ color: MinMaxGradient;
160
+ }
161
+ export declare class SizeOverLifetimeModule {
162
+ enabled: boolean;
163
+ separateAxes: boolean;
164
+ size: MinMaxCurve;
165
+ sizeMultiplier: number;
166
+ sizeX: MinMaxCurve;
167
+ sizeXMultiplier: number;
168
+ sizeY: MinMaxCurve;
169
+ sizeYMultiplier: number;
170
+ sizeZ: MinMaxCurve;
171
+ sizeZMultiplier: number;
172
+ private _time;
173
+ evaluate(t01: number, target: Vec3): Vec3;
58
174
  }
59
175
  export declare class ShapeModule {
60
176
  shapeType: ParticleSystemShapeType;
@@ -63,31 +179,60 @@ export declare class ShapeModule {
63
179
  angle: number;
64
180
  arc: number;
65
181
  arcmode: number;
66
- box: THREE.Vector3;
67
- boxThickness: THREE.Vector3;
68
- position: THREE.Vector3;
69
- rotation: THREE.Vector3;
70
- scale: THREE.Vector3;
182
+ boxThickness: Vector3;
183
+ position: Vector3;
184
+ rotation: Vector3;
185
+ scale: Vector3;
71
186
  radius: number;
187
+ radiusThickness: number;
72
188
  sphericalDirectionAmount: number;
189
+ private _space?;
190
+ private readonly _worldSpacePosition;
191
+ update(_context: Context, simulationSpace: ParticleSystemSimulationSpace, obj: Object3D): void;
192
+ /** nebula implementations: */
193
+ /** initializer implementation */
194
+ private _vector;
195
+ private _temp;
196
+ /** called by nebula on initialize */
197
+ get vector(): THREE.Vector3;
198
+ /** called by nebula */
199
+ getPosition(): void;
200
+ private _dir;
201
+ getDirection(position: any): Vec3;
73
202
  }
74
- export declare enum ParticleSystemShapeType {
75
- Sphere = 0,
76
- SphereShell = 1,
77
- Hemisphere = 2,
78
- HemisphereShell = 3,
79
- Cone = 4,
80
- Box = 5,
81
- Mesh = 6,
82
- ConeVolume = 7,
83
- Circle = 10,
84
- SingleSidedEdge = 11,
85
- MeshRenderer = 12,
86
- SkinnedMeshRenderer = 13,
87
- BoxShell = 14,
88
- BoxEdge = 15,
89
- Donut = 16,
90
- Rectangle = 17,
91
- Sprite = 18,
92
- SpriteRenderer = 19
203
+ import { Context } from "../engine/engine_setup";
204
+ export declare class NoiseModule {
205
+ damping: boolean;
206
+ enabled: boolean;
207
+ frequency: number;
208
+ octaveCount: number;
209
+ octaveMultiplier: number;
210
+ octaveScale: number;
211
+ positionAmount: MinMaxCurve;
212
+ quality: number;
213
+ remap: MinMaxCurve;
214
+ remapEnabled: boolean;
215
+ remapMultiplier: number;
216
+ remapX: MinMaxCurve;
217
+ remapXMultiplier: number;
218
+ remapY: MinMaxCurve;
219
+ remapYMultiplier: number;
220
+ remapZ: MinMaxCurve;
221
+ remapZMultiplier: number;
222
+ scrollSpeedMultiplier: number;
223
+ separateAxes: boolean;
224
+ strengthMultiplier: number;
225
+ strengthX: MinMaxCurve;
226
+ strengthXMultiplier: number;
227
+ strengthY: MinMaxCurve;
228
+ strengthYMultiplier: number;
229
+ strengthZ: MinMaxCurve;
230
+ strengthZMultiplier: number;
231
+ private _noise?;
232
+ private _time;
233
+ update(context: Context): void;
234
+ /** nebula implementations: */
235
+ private _temp;
236
+ applyNoise(index: number, pos: Vec3, vel: Vec3, deltaTime: number, age: number, life: number): void;
93
237
  }
238
+ export {};