@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
package/CHANGELOG.md CHANGED
@@ -4,6 +4,13 @@ All notable changes to this package will be documented in this file.
4
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
5
  and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [2.41.0-pre] - 2022-11-07
8
+ - Add: start adding particle systems support again
9
+ - Change: update dependency version to needle gltf-transform-extensions package
10
+ - Change: light set to soft shadows now changes renderer shadow mode to ``VSMShadowMap`` (can be disabled by setting ``Light.allowChangingShadowMapType`` to false)
11
+ - Fix: WebXR creating AR button when called from script in awake
12
+ - Fix: ``AnimationCurve.evaluate``
13
+
7
14
  ## [2.40.0-pre] - 2022-11-05
8
15
  - Add support for deleting all room state by calling ``context.connection.sendDeleteRemoteStateAll()`` (requires backend to update ``@needle-tools/needle-tiny-networking-ws`` to ``^1.1.0-pre``)
9
16
  - Add Hinge joint
@@ -1,12 +1,15 @@
1
1
  declare module "engine/engine_math" {
2
2
  class MathHelper {
3
3
  random(): number;
4
- clamp(value: any, min: any, max: any): any;
5
- clamp01(value: any): any;
6
- lerp(value1: any, value2: any, amount: any): any;
7
- moveTowards(value1: any, value2: any, amount: any): any;
8
- toDegrees(radians: any): number;
9
- toRadians(degrees: any): number;
4
+ clamp(value: number, min: number, max: number): number;
5
+ clamp01(value: number): number;
6
+ lerp(value1: number, value2: number, amount: number): number;
7
+ remap(value: number, min1: number, max1: number, min2: number, max2: number): number;
8
+ moveTowards(value1: number, value2: number, amount: number): number;
9
+ toDegrees(radians: number): number;
10
+ toRadians(degrees: number): number;
11
+ gammaToLinear(gamma: number): number;
12
+ linearToGamma(linear: number): number;
10
13
  }
11
14
  const Mathf: MathHelper;
12
15
  export { Mathf };
@@ -261,6 +264,7 @@ declare module "engine/engine_utils" {
261
264
  revoke(): void;
262
265
  dispose(): void;
263
266
  }
267
+ export function isMobileDevice(): boolean;
264
268
  }
265
269
  declare module "engine/extensions/extension_resolver" {
266
270
  import { GLTFParser } from "three/examples/jsm/loaders/GLTFLoader";
@@ -762,6 +766,35 @@ declare module "engine/engine_gameobject" {
762
766
  export function foreachComponent(instance: THREE.Object3D, cb: (comp: Component) => any, recursive?: boolean): any;
763
767
  export function instantiate(instance: GameObject | Object3D | null, opts?: InstantiateOptions | null): GameObject | null;
764
768
  }
769
+ declare module "engine/engine_gizmos" {
770
+ import * as THREE from 'three';
771
+ import { ColorRepresentation } from 'three';
772
+ import { Vec3 } from "engine/engine_types";
773
+ export class Gizmos {
774
+ static DrawRay(origin: Vec3, dir: Vec3, color?: ColorRepresentation, duration?: number, depthTest?: boolean): void;
775
+ static DrawDirection(pt: Vec3, direction: Vec3, color?: ColorRepresentation, duration?: number, depthTest?: boolean, lengthFactor?: number): void;
776
+ static DrawLine(pt0: {
777
+ x: number;
778
+ y: number;
779
+ z: number;
780
+ }, pt1: {
781
+ x: number;
782
+ y: number;
783
+ z: number;
784
+ }, color?: ColorRepresentation, duration?: number, depthTest?: boolean): void;
785
+ static DrawWireSphere(center: {
786
+ x: number;
787
+ y: number;
788
+ z: number;
789
+ }, radius: number, color?: ColorRepresentation, duration?: number, depthTest?: boolean): void;
790
+ static DrawSphere(center: {
791
+ x: number;
792
+ y: number;
793
+ z: number;
794
+ }, radius: number, color?: ColorRepresentation, duration?: number, depthTest?: boolean): void;
795
+ }
796
+ export function CreateWireCube(col?: THREE.ColorRepresentation | null): THREE.LineSegments;
797
+ }
765
798
  declare module "engine/engine_physics" {
766
799
  import { Camera, Intersection, Layers, Mesh, Object3D, Ray, Raycaster, Vector2, Vector3 } from 'three';
767
800
  import { Context } from "engine/engine_setup";
@@ -2434,34 +2467,6 @@ declare module "engine/engine_util_decorator" {
2434
2467
  /** create accessor callbacks for a field */
2435
2468
  export const validate: (set?: setter, get?: getter) => (target: IComponent | any, propertyKey: string, descriptor?: undefined) => void;
2436
2469
  }
2437
- declare module "engine/engine_gizmos" {
2438
- import * as THREE from 'three';
2439
- import { ColorRepresentation } from 'three';
2440
- import { Vec3 } from "engine/engine_types";
2441
- export class Gizmos {
2442
- static DrawRay(origin: Vec3, dir: Vec3, color?: ColorRepresentation, duration?: number, depthTest?: boolean): void;
2443
- static DrawLine(pt0: {
2444
- x: number;
2445
- y: number;
2446
- z: number;
2447
- }, pt1: {
2448
- x: number;
2449
- y: number;
2450
- z: number;
2451
- }, color?: ColorRepresentation, duration?: number, depthTest?: boolean): void;
2452
- static DrawWireSphere(center: {
2453
- x: number;
2454
- y: number;
2455
- z: number;
2456
- }, radius: number, color?: ColorRepresentation, duration?: number, depthTest?: boolean): void;
2457
- static DrawSphere(center: {
2458
- x: number;
2459
- y: number;
2460
- z: number;
2461
- }, radius: number, color?: ColorRepresentation, duration?: number, depthTest?: boolean): void;
2462
- }
2463
- export function CreateWireCube(col?: THREE.ColorRepresentation | null): THREE.LineSegments;
2464
- }
2465
2470
  declare module "engine/api" {
2466
2471
  export { InstancingUtil } from "engine/engine_instancing";
2467
2472
  export * from "engine/engine_gameobject";
@@ -4088,6 +4093,8 @@ declare module "engine-components/Light" {
4088
4093
  private onWebXREnded;
4089
4094
  createLight(): void;
4090
4095
  updateMainLightRoutine(): Generator<undefined, void, unknown>;
4096
+ static allowChangingRendererShadowMapType: boolean;
4097
+ private updateShadowSoftHard;
4091
4098
  private setDirectionalLight;
4092
4099
  }
4093
4100
  }
@@ -4151,62 +4158,178 @@ declare module "engine-components/OffsetConstraint" {
4151
4158
  }
4152
4159
  declare module "engine-components/ParticleSystemModules" {
4153
4160
  import * as THREE from "three";
4161
+ import { Object3D, Vector3 } from "three";
4162
+ import { RGBAColor } from "engine-components/js-extensions/RGBAColor";
4163
+ import { AnimationCurve } from "engine-components/AnimationCurve";
4164
+ import { Vec3 } from "engine/engine_types";
4165
+ type Color4 = {
4166
+ r: number;
4167
+ g: number;
4168
+ b: number;
4169
+ a: number;
4170
+ };
4171
+ type ColorKey = {
4172
+ time: number;
4173
+ color: Color4;
4174
+ };
4175
+ type AlphaKey = {
4176
+ time: number;
4177
+ alpha: number;
4178
+ };
4179
+ export class Gradient {
4180
+ alphaKeys: Array<AlphaKey>;
4181
+ colorKeys: Array<ColorKey>;
4182
+ get duration(): number;
4183
+ evaluate(time: number, target: RGBAColor): RGBAColor;
4184
+ }
4185
+ export enum ParticleSystemCurveMode {
4186
+ Constant = 0,
4187
+ Curve = 1,
4188
+ TwoCurves = 2,
4189
+ TwoConstants = 3
4190
+ }
4191
+ export enum ParticleSystemGradientMode {
4192
+ Color = 0,
4193
+ Gradient = 1,
4194
+ TwoColors = 2,
4195
+ TwoGradients = 3,
4196
+ RandomColor = 4
4197
+ }
4198
+ export enum ParticleSystemSimulationSpace {
4199
+ Local = 0,
4200
+ World = 1,
4201
+ Custom = 2
4202
+ }
4203
+ export enum ParticleSystemShapeType {
4204
+ Sphere = 0,
4205
+ SphereShell = 1,
4206
+ Hemisphere = 2,
4207
+ HemisphereShell = 3,
4208
+ Cone = 4,
4209
+ Box = 5,
4210
+ Mesh = 6,
4211
+ ConeShell = 7,
4212
+ ConeVolume = 8,
4213
+ ConeVolumeShell = 9,
4214
+ Circle = 10,
4215
+ CircleEdge = 11,
4216
+ SingleSidedEdge = 12,
4217
+ MeshRenderer = 13,
4218
+ SkinnedMeshRenderer = 14,
4219
+ BoxShell = 15,
4220
+ BoxEdge = 16,
4221
+ Donut = 17,
4222
+ Rectangle = 18,
4223
+ Sprite = 19,
4224
+ SpriteRenderer = 20
4225
+ }
4226
+ export class MinMaxCurve {
4227
+ mode: ParticleSystemCurveMode;
4228
+ constant: number;
4229
+ constantMin: number;
4230
+ constantMax: number;
4231
+ curve?: AnimationCurve;
4232
+ curveMin?: AnimationCurve;
4233
+ curveMax?: AnimationCurve;
4234
+ curveMultiplier?: number;
4235
+ evaluate(t01: number, lerpFactor?: number): number;
4236
+ }
4237
+ export class MinMaxGradient {
4238
+ mode: ParticleSystemGradientMode;
4239
+ color: RGBAColor;
4240
+ colorMin: RGBAColor;
4241
+ colorMax: RGBAColor;
4242
+ gradient: Gradient;
4243
+ gradientMin: Gradient;
4244
+ gradientMax: Gradient;
4245
+ private _temp;
4246
+ evaluate(t01: number, lerpFactor?: number): RGBAColor;
4247
+ }
4248
+ type ParticleSystemScalingMode = {
4249
+ Hierarchy: number;
4250
+ Local: number;
4251
+ Shape: number;
4252
+ };
4154
4253
  export class MainModule {
4155
- randomizeRotationDirection: number;
4254
+ cullingMode: number;
4156
4255
  duration: number;
4256
+ emitterVelocityMode: number;
4257
+ flipRotation: number;
4258
+ gravityModifier: MinMaxCurve;
4259
+ gravityModifierMultiplier: number;
4157
4260
  loop: boolean;
4261
+ maxParticles: number;
4262
+ playOnAwake: boolean;
4158
4263
  prewarm: boolean;
4159
- startDelay: undefined;
4264
+ ringBufferLoopRange: {
4265
+ x: number;
4266
+ y: number;
4267
+ };
4268
+ ringBufferMode: boolean;
4269
+ scalingMode: ParticleSystemScalingMode;
4270
+ simulationSpace: ParticleSystemSimulationSpace;
4271
+ simulationSpeed: number;
4272
+ startColor: MinMaxGradient;
4273
+ startDelay: MinMaxCurve;
4160
4274
  startDelayMultiplier: number;
4161
- startLifetime: undefined;
4275
+ startLifetime: MinMaxCurve;
4162
4276
  startLifetimeMultiplier: number;
4163
- startSpeed: undefined;
4164
- startSpeedMultiplier: number;
4277
+ startRotation: MinMaxCurve;
4278
+ startRotationMultiplier: number;
4279
+ startRotation3D: boolean;
4280
+ startRotationX: MinMaxCurve;
4281
+ startRotationXMultiplier: number;
4282
+ startRotationY: MinMaxCurve;
4283
+ startRotationYMultiplier: number;
4284
+ startRotationZ: MinMaxCurve;
4285
+ startRotationZMultiplier: number;
4286
+ startSize: MinMaxCurve;
4165
4287
  startSize3D: boolean;
4166
- startSize: undefined;
4167
4288
  startSizeMultiplier: number;
4168
- startSizeX: undefined;
4289
+ startSizeX: MinMaxCurve;
4169
4290
  startSizeXMultiplier: number;
4170
- startSizeY: undefined;
4291
+ startSizeY: MinMaxCurve;
4171
4292
  startSizeYMultiplier: number;
4172
- startSizeZ: undefined;
4293
+ startSizeZ: MinMaxCurve;
4173
4294
  startSizeZMultiplier: number;
4174
- startRotation3D: boolean;
4175
- startRotation: undefined;
4176
- startRotationMultiplier: number;
4177
- startRotationX: undefined;
4178
- startRotationXMultiplier: number;
4179
- startRotationY: undefined;
4180
- startRotationYMultiplier: number;
4181
- startRotationZ: undefined;
4182
- startRotationZMultiplier: number;
4183
- flipRotation: number;
4184
- startColor: THREE.Color;
4185
- startColor1: THREE.Color | undefined;
4186
- gravityModifier: undefined;
4187
- gravityModifierMultiplier: number;
4188
- simulationSpace: number;
4189
- customSimulationSpace: null;
4190
- simulationSpeed: number;
4191
- useUnscaledTime: boolean;
4192
- scalingMode: number;
4193
- playOnAwake: boolean;
4194
- maxParticles: number;
4195
- emitterVelocityMode: number;
4295
+ startSpeed: MinMaxCurve;
4296
+ startSpeedMultiplier: number;
4196
4297
  stopAction: number;
4197
- ringBufferMode: number;
4198
- ringBufferLoopRange: THREE.Vector2;
4199
- cullingMode: number;
4298
+ useUnscaledTime: boolean;
4200
4299
  }
4201
4300
  export class EmissionModule {
4202
4301
  burstCount: number;
4203
4302
  enabled: boolean;
4204
- rate: number;
4205
- rateMutliplier: number;
4206
- rateOverDistance: number;
4207
- rateOverDistanceMultiplier: number;
4208
- rateOverTime: number;
4303
+ rateOverTime: MinMaxCurve;
4209
4304
  rateOverTimeMultiplier: number;
4305
+ rateOverDistance: MinMaxCurve;
4306
+ rateOverDistanceMultiplier: number;
4307
+ currentParticles: number;
4308
+ maxParticles: number;
4309
+ private _time;
4310
+ private _summed;
4311
+ /** called by nebula */
4312
+ init(): void;
4313
+ /** called by nebula */
4314
+ getValue(deltaTime: number): number;
4315
+ }
4316
+ export class ColorOverLifetimeModule {
4317
+ enabled: boolean;
4318
+ color: MinMaxGradient;
4319
+ }
4320
+ export class SizeOverLifetimeModule {
4321
+ enabled: boolean;
4322
+ separateAxes: boolean;
4323
+ size: MinMaxCurve;
4324
+ sizeMultiplier: number;
4325
+ sizeX: MinMaxCurve;
4326
+ sizeXMultiplier: number;
4327
+ sizeY: MinMaxCurve;
4328
+ sizeYMultiplier: number;
4329
+ sizeZ: MinMaxCurve;
4330
+ sizeZMultiplier: number;
4331
+ private _time;
4332
+ evaluate(t01: number, target: Vec3): Vec3;
4210
4333
  }
4211
4334
  export class ShapeModule {
4212
4335
  shapeType: ParticleSystemShapeType;
@@ -4215,68 +4338,85 @@ declare module "engine-components/ParticleSystemModules" {
4215
4338
  angle: number;
4216
4339
  arc: number;
4217
4340
  arcmode: number;
4218
- box: THREE.Vector3;
4219
- boxThickness: THREE.Vector3;
4220
- position: THREE.Vector3;
4221
- rotation: THREE.Vector3;
4222
- scale: THREE.Vector3;
4341
+ boxThickness: Vector3;
4342
+ position: Vector3;
4343
+ rotation: Vector3;
4344
+ scale: Vector3;
4223
4345
  radius: number;
4346
+ radiusThickness: number;
4224
4347
  sphericalDirectionAmount: number;
4348
+ private _space?;
4349
+ private readonly _worldSpacePosition;
4350
+ update(_context: Context, simulationSpace: ParticleSystemSimulationSpace, obj: Object3D): void;
4351
+ /** nebula implementations: */
4352
+ /** initializer implementation */
4353
+ private _vector;
4354
+ private _temp;
4355
+ /** called by nebula on initialize */
4356
+ get vector(): THREE.Vector3;
4357
+ /** called by nebula */
4358
+ getPosition(): void;
4359
+ private _dir;
4360
+ getDirection(position: any): Vec3;
4225
4361
  }
4226
- export enum ParticleSystemShapeType {
4227
- Sphere = 0,
4228
- SphereShell = 1,
4229
- Hemisphere = 2,
4230
- HemisphereShell = 3,
4231
- Cone = 4,
4232
- Box = 5,
4233
- Mesh = 6,
4234
- ConeVolume = 7,
4235
- Circle = 10,
4236
- SingleSidedEdge = 11,
4237
- MeshRenderer = 12,
4238
- SkinnedMeshRenderer = 13,
4239
- BoxShell = 14,
4240
- BoxEdge = 15,
4241
- Donut = 16,
4242
- Rectangle = 17,
4243
- Sprite = 18,
4244
- SpriteRenderer = 19
4362
+ import { Context } from "engine/engine_setup";
4363
+ export class NoiseModule {
4364
+ damping: boolean;
4365
+ enabled: boolean;
4366
+ frequency: number;
4367
+ octaveCount: number;
4368
+ octaveMultiplier: number;
4369
+ octaveScale: number;
4370
+ positionAmount: MinMaxCurve;
4371
+ quality: number;
4372
+ remap: MinMaxCurve;
4373
+ remapEnabled: boolean;
4374
+ remapMultiplier: number;
4375
+ remapX: MinMaxCurve;
4376
+ remapXMultiplier: number;
4377
+ remapY: MinMaxCurve;
4378
+ remapYMultiplier: number;
4379
+ remapZ: MinMaxCurve;
4380
+ remapZMultiplier: number;
4381
+ scrollSpeedMultiplier: number;
4382
+ separateAxes: boolean;
4383
+ strengthMultiplier: number;
4384
+ strengthX: MinMaxCurve;
4385
+ strengthXMultiplier: number;
4386
+ strengthY: MinMaxCurve;
4387
+ strengthYMultiplier: number;
4388
+ strengthZ: MinMaxCurve;
4389
+ strengthZMultiplier: number;
4390
+ private _noise?;
4391
+ private _time;
4392
+ update(context: Context): void;
4393
+ /** nebula implementations: */
4394
+ private _temp;
4395
+ applyNoise(index: number, pos: Vec3, vel: Vec3, deltaTime: number, age: number, life: number): void;
4245
4396
  }
4246
4397
  }
4247
4398
  declare module "engine-components/ParticleSystem" {
4248
4399
  import { Behaviour } from "engine-components/Component";
4249
- import * as THREE from "three";
4250
- import * as Modules from "engine-components/ParticleSystemModules";
4400
+ import { MainModule, EmissionModule, ShapeModule, ColorOverLifetimeModule, SizeOverLifetimeModule, NoiseModule } from "engine-components/ParticleSystemModules";
4401
+ import { SpriteMaterial } from "three";
4251
4402
  export class ParticleSystemRenderer extends Behaviour {
4252
- get mainTexture(): THREE.Texture | null;
4253
- getMesh(_index: number): THREE.Mesh | null;
4254
- private sharedMaterial?;
4255
- private mesh?;
4256
- awake(): void;
4403
+ particleMaterial?: SpriteMaterial;
4257
4404
  }
4258
4405
  export class ParticleSystem extends Behaviour {
4259
- main: Modules.MainModule;
4260
- emission: Modules.EmissionModule;
4261
- shape: Modules.ShapeModule;
4262
- private renderer;
4263
- private geometry;
4264
- private material;
4265
- private particlesMesh;
4266
- private positions;
4267
- private positionsArray;
4268
- private particleStates;
4269
- private activeCount;
4270
- private shapeRotation;
4271
- private tempVec3;
4272
- private tempQuat;
4406
+ colorOverLifetime: ColorOverLifetimeModule;
4407
+ main: MainModule;
4408
+ emission: EmissionModule;
4409
+ sizeOverLifetime: SizeOverLifetimeModule;
4410
+ shape: ShapeModule;
4411
+ noise: NoiseModule;
4412
+ renderer: ParticleSystemRenderer;
4413
+ private _system;
4414
+ private _emitter;
4415
+ private _size;
4273
4416
  awake(): void;
4274
4417
  onEnable(): void;
4275
- emit(deltaTime: number): void;
4276
- private initializeParticle;
4277
- private updateOverLifetime;
4278
- private assignPosition;
4279
- private assignVelocity;
4418
+ onDisable(): void;
4419
+ onBeforeRender(): void;
4280
4420
  }
4281
4421
  }
4282
4422
  declare module "engine/engine_coroutine" {
@@ -5556,9 +5696,15 @@ declare module "engine-components/codegen/components" {
5556
5696
  export { OrbitControls } from "engine-components/OrbitControls";
5557
5697
  export { ParticleSystemRenderer } from "engine-components/ParticleSystem";
5558
5698
  export { ParticleSystem } from "engine-components/ParticleSystem";
5699
+ export { Gradient } from "engine-components/ParticleSystemModules";
5700
+ export { MinMaxCurve } from "engine-components/ParticleSystemModules";
5701
+ export { MinMaxGradient } from "engine-components/ParticleSystemModules";
5559
5702
  export { MainModule } from "engine-components/ParticleSystemModules";
5560
5703
  export { EmissionModule } from "engine-components/ParticleSystemModules";
5704
+ export { ColorOverLifetimeModule } from "engine-components/ParticleSystemModules";
5705
+ export { SizeOverLifetimeModule } from "engine-components/ParticleSystemModules";
5561
5706
  export { ShapeModule } from "engine-components/ParticleSystemModules";
5707
+ export { NoiseModule } from "engine-components/ParticleSystemModules";
5562
5708
  export { PlayerColor } from "engine-components/PlayerColor";
5563
5709
  export { ReflectionProbe } from "engine-components/ReflectionProbe";
5564
5710
  export { FieldWithDefault } from "engine-components/Renderer";