@needle-tools/engine 2.40.0-pre → 2.42.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 (80) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/needle-engine.d.ts +332 -126
  3. package/dist/needle-engine.js +401 -401
  4. package/dist/needle-engine.js.map +4 -4
  5. package/dist/needle-engine.min.js +53 -53
  6. package/dist/needle-engine.min.js.map +4 -4
  7. package/lib/engine/engine_element.js +1 -1
  8. package/lib/engine/engine_element.js.map +1 -1
  9. package/lib/engine/engine_element_loading.js +6 -1
  10. package/lib/engine/engine_element_loading.js.map +1 -1
  11. package/lib/engine/engine_gizmos.d.ts +8 -21
  12. package/lib/engine/engine_gizmos.js +51 -5
  13. package/lib/engine/engine_gizmos.js.map +1 -1
  14. package/lib/engine/engine_math.d.ts +9 -6
  15. package/lib/engine/engine_math.js +9 -0
  16. package/lib/engine/engine_math.js.map +1 -1
  17. package/lib/engine/engine_physics.js +14 -6
  18. package/lib/engine/engine_physics.js.map +1 -1
  19. package/lib/engine/engine_serialization_core.js +2 -0
  20. package/lib/engine/engine_serialization_core.js.map +1 -1
  21. package/lib/engine/engine_setup.d.ts +3 -0
  22. package/lib/engine/engine_setup.js +15 -0
  23. package/lib/engine/engine_setup.js.map +1 -1
  24. package/lib/engine/engine_three_utils.d.ts +16 -1
  25. package/lib/engine/engine_three_utils.js +94 -54
  26. package/lib/engine/engine_three_utils.js.map +1 -1
  27. package/lib/engine/engine_types.d.ts +6 -0
  28. package/lib/engine/engine_types.js.map +1 -1
  29. package/lib/engine/engine_utils.d.ts +1 -0
  30. package/lib/engine/engine_utils.js +3 -0
  31. package/lib/engine/engine_utils.js.map +1 -1
  32. package/lib/engine-components/AnimationCurve.js +20 -5
  33. package/lib/engine-components/AnimationCurve.js.map +1 -1
  34. package/lib/engine-components/BoxHelperComponent.js +9 -10
  35. package/lib/engine-components/BoxHelperComponent.js.map +1 -1
  36. package/lib/engine-components/Light.d.ts +2 -0
  37. package/lib/engine-components/Light.js +33 -9
  38. package/lib/engine-components/Light.js.map +1 -1
  39. package/lib/engine-components/ParticleSystem.d.ts +29 -26
  40. package/lib/engine-components/ParticleSystem.js +349 -187
  41. package/lib/engine-components/ParticleSystem.js.map +1 -1
  42. package/lib/engine-components/ParticleSystemModules.d.ts +243 -64
  43. package/lib/engine-components/ParticleSystemModules.js +722 -153
  44. package/lib/engine-components/ParticleSystemModules.js.map +1 -1
  45. package/lib/engine-components/ReflectionProbe.js +29 -11
  46. package/lib/engine-components/ReflectionProbe.js.map +1 -1
  47. package/lib/engine-components/Renderer.d.ts +1 -0
  48. package/lib/engine-components/Renderer.js +4 -2
  49. package/lib/engine-components/Renderer.js.map +1 -1
  50. package/lib/engine-components/WebXR.js +8 -3
  51. package/lib/engine-components/WebXR.js.map +1 -1
  52. package/lib/engine-components/codegen/components.d.ts +7 -0
  53. package/lib/engine-components/codegen/components.js +7 -0
  54. package/lib/engine-components/codegen/components.js.map +1 -1
  55. package/package.json +4 -2
  56. package/src/engine/codegen/register_types.js +28 -0
  57. package/src/engine/dist/engine_three_utils.js +279 -0
  58. package/src/engine/engine_element.ts +1 -1
  59. package/src/engine/engine_element_loading.ts +5 -1
  60. package/src/engine/engine_gizmos.ts +58 -6
  61. package/src/engine/engine_math.ts +19 -6
  62. package/src/engine/engine_physics.ts +17 -7
  63. package/src/engine/engine_serialization_core.ts +1 -0
  64. package/src/engine/engine_setup.ts +25 -2
  65. package/src/engine/engine_three_utils.ts +103 -62
  66. package/src/engine/engine_types.ts +8 -1
  67. package/src/engine/engine_utils.ts +5 -0
  68. package/src/engine-components/AnimationCurve.ts +25 -11
  69. package/src/engine-components/BoxHelperComponent.ts +12 -15
  70. package/src/engine-components/Light.ts +39 -8
  71. package/src/engine-components/ParticleSystem.ts +395 -199
  72. package/src/engine-components/ParticleSystemModules.ts +638 -152
  73. package/src/engine-components/ReflectionProbe.ts +37 -13
  74. package/src/engine-components/Renderer.ts +4 -2
  75. package/src/engine-components/WebXR.ts +11 -8
  76. package/src/engine-components/codegen/components.ts +7 -0
  77. package/src/engine/dist/engine_physics.js +0 -739
  78. package/src/engine/dist/engine_setup.js +0 -777
  79. package/src/engine-components/dist/CharacterController.js +0 -123
  80. package/src/engine-components/dist/RigidBody.js +0 -458
@@ -1,60 +1,210 @@
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 interface IParticleSystem {
21
+ get currentParticles(): number;
22
+ get maxParticles(): number;
23
+ get time(): number;
24
+ get duration(): number;
25
+ readonly main: MainModule;
26
+ }
27
+ export declare enum ParticleSystemRenderMode {
28
+ Billboard = 0,
29
+ Mesh = 4
30
+ }
31
+ export declare class Gradient {
32
+ alphaKeys: Array<AlphaKey>;
33
+ colorKeys: Array<ColorKey>;
34
+ get duration(): number;
35
+ evaluate(time: number, target: RGBAColor): RGBAColor;
36
+ }
37
+ export declare enum ParticleSystemCurveMode {
38
+ Constant = 0,
39
+ Curve = 1,
40
+ TwoCurves = 2,
41
+ TwoConstants = 3
42
+ }
43
+ export declare enum ParticleSystemGradientMode {
44
+ Color = 0,
45
+ Gradient = 1,
46
+ TwoColors = 2,
47
+ TwoGradients = 3,
48
+ RandomColor = 4
49
+ }
50
+ export declare enum ParticleSystemSimulationSpace {
51
+ Local = 0,
52
+ World = 1,
53
+ Custom = 2
54
+ }
55
+ export declare enum ParticleSystemShapeType {
56
+ Sphere = 0,
57
+ SphereShell = 1,
58
+ Hemisphere = 2,
59
+ HemisphereShell = 3,
60
+ Cone = 4,
61
+ Box = 5,
62
+ Mesh = 6,
63
+ ConeShell = 7,
64
+ ConeVolume = 8,
65
+ ConeVolumeShell = 9,
66
+ Circle = 10,
67
+ CircleEdge = 11,
68
+ SingleSidedEdge = 12,
69
+ MeshRenderer = 13,
70
+ SkinnedMeshRenderer = 14,
71
+ BoxShell = 15,
72
+ BoxEdge = 16,
73
+ Donut = 17,
74
+ Rectangle = 18,
75
+ Sprite = 19,
76
+ SpriteRenderer = 20
77
+ }
78
+ export declare class MinMaxCurve {
79
+ mode: ParticleSystemCurveMode;
80
+ constant: number;
81
+ constantMin: number;
82
+ constantMax: number;
83
+ curve?: AnimationCurve;
84
+ curveMin?: AnimationCurve;
85
+ curveMax?: AnimationCurve;
86
+ curveMultiplier?: number;
87
+ evaluate(t01: number, lerpFactor?: number): number;
88
+ }
89
+ export declare class MinMaxGradient {
90
+ mode: ParticleSystemGradientMode;
91
+ color: RGBAColor;
92
+ colorMin: RGBAColor;
93
+ colorMax: RGBAColor;
94
+ gradient: Gradient;
95
+ gradientMin: Gradient;
96
+ gradientMax: Gradient;
97
+ private static _temp;
98
+ private static _temp2;
99
+ evaluate(t01: number, lerpFactor?: number): RGBAColor;
100
+ }
101
+ declare type ParticleSystemScalingMode = {
102
+ Hierarchy: number;
103
+ Local: number;
104
+ Shape: number;
105
+ };
2
106
  export declare class MainModule {
3
- randomizeRotationDirection: number;
107
+ cullingMode: number;
4
108
  duration: number;
109
+ emitterVelocityMode: number;
110
+ flipRotation: number;
111
+ gravityModifier: MinMaxCurve;
112
+ gravityModifierMultiplier: number;
5
113
  loop: boolean;
114
+ maxParticles: number;
115
+ playOnAwake: boolean;
6
116
  prewarm: boolean;
7
- startDelay: undefined;
117
+ ringBufferLoopRange: {
118
+ x: number;
119
+ y: number;
120
+ };
121
+ ringBufferMode: boolean;
122
+ scalingMode: ParticleSystemScalingMode;
123
+ simulationSpace: ParticleSystemSimulationSpace;
124
+ simulationSpeed: number;
125
+ startColor: MinMaxGradient;
126
+ startDelay: MinMaxCurve;
8
127
  startDelayMultiplier: number;
9
- startLifetime: undefined;
128
+ startLifetime: MinMaxCurve;
10
129
  startLifetimeMultiplier: number;
11
- startSpeed: undefined;
12
- startSpeedMultiplier: number;
130
+ startRotation: MinMaxCurve;
131
+ startRotationMultiplier: number;
132
+ startRotation3D: boolean;
133
+ startRotationX: MinMaxCurve;
134
+ startRotationXMultiplier: number;
135
+ startRotationY: MinMaxCurve;
136
+ startRotationYMultiplier: number;
137
+ startRotationZ: MinMaxCurve;
138
+ startRotationZMultiplier: number;
139
+ startSize: MinMaxCurve;
13
140
  startSize3D: boolean;
14
- startSize: undefined;
15
141
  startSizeMultiplier: number;
16
- startSizeX: undefined;
142
+ startSizeX: MinMaxCurve;
17
143
  startSizeXMultiplier: number;
18
- startSizeY: undefined;
144
+ startSizeY: MinMaxCurve;
19
145
  startSizeYMultiplier: number;
20
- startSizeZ: undefined;
146
+ startSizeZ: MinMaxCurve;
21
147
  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;
148
+ startSpeed: MinMaxCurve;
149
+ startSpeedMultiplier: number;
44
150
  stopAction: number;
45
- ringBufferMode: number;
46
- ringBufferLoopRange: THREE.Vector2;
47
- cullingMode: number;
151
+ useUnscaledTime: boolean;
152
+ }
153
+ export declare class ParticleBurst {
154
+ cycleCount: number;
155
+ maxCount: number;
156
+ minCount: number;
157
+ probability: number;
158
+ repeatInterval: number;
159
+ time: number;
160
+ count: {
161
+ constant: number;
162
+ constantMax: number;
163
+ constantMin: number;
164
+ curve?: AnimationCurve;
165
+ curveMax?: AnimationCurve;
166
+ curveMin?: AnimationCurve;
167
+ curveMultiplier?: number;
168
+ mode: ParticleSystemCurveMode;
169
+ };
170
+ private _performed;
171
+ reset(): void;
172
+ run(time: number): number;
48
173
  }
49
174
  export declare class EmissionModule {
50
- burstCount: number;
51
175
  enabled: boolean;
52
- rate: number;
53
- rateMutliplier: number;
54
- rateOverDistance: number;
55
- rateOverDistanceMultiplier: number;
56
- rateOverTime: number;
176
+ get burstCount(): number;
177
+ bursts: ParticleBurst[];
178
+ rateOverTime: MinMaxCurve;
57
179
  rateOverTimeMultiplier: number;
180
+ rateOverDistance: MinMaxCurve;
181
+ rateOverDistanceMultiplier: number;
182
+ /** set from system */
183
+ system: IParticleSystem;
184
+ get time(): number;
185
+ private _summed;
186
+ /** called by nebula */
187
+ init(): void;
188
+ /** called by nebula */
189
+ getValue(deltaTime: number): number;
190
+ }
191
+ export declare class ColorOverLifetimeModule {
192
+ enabled: boolean;
193
+ color: MinMaxGradient;
194
+ }
195
+ export declare class SizeOverLifetimeModule {
196
+ enabled: boolean;
197
+ separateAxes: boolean;
198
+ size: MinMaxCurve;
199
+ sizeMultiplier: number;
200
+ sizeX: MinMaxCurve;
201
+ sizeXMultiplier: number;
202
+ sizeY: MinMaxCurve;
203
+ sizeYMultiplier: number;
204
+ sizeZ: MinMaxCurve;
205
+ sizeZMultiplier: number;
206
+ private _time;
207
+ evaluate(t01: number, target: Vec3): Vec3;
58
208
  }
59
209
  export declare class ShapeModule {
60
210
  shapeType: ParticleSystemShapeType;
@@ -63,31 +213,60 @@ export declare class ShapeModule {
63
213
  angle: number;
64
214
  arc: number;
65
215
  arcmode: number;
66
- box: THREE.Vector3;
67
- boxThickness: THREE.Vector3;
68
- position: THREE.Vector3;
69
- rotation: THREE.Vector3;
70
- scale: THREE.Vector3;
216
+ boxThickness: Vector3;
217
+ position: Vector3;
218
+ rotation: Vector3;
219
+ scale: Vector3;
71
220
  radius: number;
221
+ radiusThickness: number;
72
222
  sphericalDirectionAmount: number;
223
+ private _space?;
224
+ private readonly _worldSpacePosition;
225
+ update(_context: Context, simulationSpace: ParticleSystemSimulationSpace, obj: Object3D): void;
226
+ /** nebula implementations: */
227
+ /** initializer implementation */
228
+ private _vector;
229
+ private _temp;
230
+ /** called by nebula on initialize */
231
+ get vector(): THREE.Vector3;
232
+ /** called by nebula */
233
+ getPosition(): void;
234
+ private _dir;
235
+ getDirection(position: any): Vector3;
73
236
  }
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
237
+ import { Context } from "../engine/engine_setup";
238
+ export declare class NoiseModule {
239
+ damping: boolean;
240
+ enabled: boolean;
241
+ frequency: number;
242
+ octaveCount: number;
243
+ octaveMultiplier: number;
244
+ octaveScale: number;
245
+ positionAmount: MinMaxCurve;
246
+ quality: number;
247
+ remap: MinMaxCurve;
248
+ remapEnabled: boolean;
249
+ remapMultiplier: number;
250
+ remapX: MinMaxCurve;
251
+ remapXMultiplier: number;
252
+ remapY: MinMaxCurve;
253
+ remapYMultiplier: number;
254
+ remapZ: MinMaxCurve;
255
+ remapZMultiplier: number;
256
+ scrollSpeedMultiplier: number;
257
+ separateAxes: boolean;
258
+ strengthMultiplier: number;
259
+ strengthX: MinMaxCurve;
260
+ strengthXMultiplier: number;
261
+ strengthY: MinMaxCurve;
262
+ strengthYMultiplier: number;
263
+ strengthZ: MinMaxCurve;
264
+ strengthZMultiplier: number;
265
+ private _noise?;
266
+ private _time;
267
+ update(context: Context): void;
268
+ /** nebula implementations: */
269
+ private _temp;
270
+ applyNoise(index: number, pos: Vec3, vel: Vec3, deltaTime: number, age: number, life: number): void;
93
271
  }
272
+ export {};