@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.
- package/CHANGELOG.md +7 -0
- package/dist/needle-engine.d.ts +269 -123
- package/dist/needle-engine.js +389 -389
- package/dist/needle-engine.js.map +4 -4
- package/dist/needle-engine.min.js +41 -41
- package/dist/needle-engine.min.js.map +4 -4
- package/lib/engine/engine_gizmos.d.ts +1 -0
- package/lib/engine/engine_gizmos.js +16 -4
- package/lib/engine/engine_gizmos.js.map +1 -1
- package/lib/engine/engine_math.d.ts +9 -6
- package/lib/engine/engine_math.js +9 -0
- package/lib/engine/engine_math.js.map +1 -1
- package/lib/engine/engine_physics.js +14 -6
- package/lib/engine/engine_physics.js.map +1 -1
- package/lib/engine/engine_serialization_core.js +2 -0
- package/lib/engine/engine_serialization_core.js.map +1 -1
- package/lib/engine/engine_utils.d.ts +1 -0
- package/lib/engine/engine_utils.js +3 -0
- package/lib/engine/engine_utils.js.map +1 -1
- package/lib/engine-components/AnimationCurve.js +20 -5
- package/lib/engine-components/AnimationCurve.js.map +1 -1
- package/lib/engine-components/Light.d.ts +2 -0
- package/lib/engine-components/Light.js +33 -9
- package/lib/engine-components/Light.js.map +1 -1
- package/lib/engine-components/ParticleSystem.d.ts +15 -26
- package/lib/engine-components/ParticleSystem.js +251 -184
- package/lib/engine-components/ParticleSystem.js.map +1 -1
- package/lib/engine-components/ParticleSystemModules.d.ts +208 -63
- package/lib/engine-components/ParticleSystemModules.js +640 -153
- package/lib/engine-components/ParticleSystemModules.js.map +1 -1
- package/lib/engine-components/WebXR.js +8 -3
- package/lib/engine-components/WebXR.js.map +1 -1
- package/lib/engine-components/codegen/components.d.ts +6 -0
- package/lib/engine-components/codegen/components.js +6 -0
- package/lib/engine-components/codegen/components.js.map +1 -1
- package/package.json +3 -1
- package/src/engine/codegen/register_types.js +24 -0
- package/src/engine/engine_gizmos.ts +19 -4
- package/src/engine/engine_math.ts +19 -6
- package/src/engine/engine_physics.ts +17 -7
- package/src/engine/engine_serialization_core.ts +1 -0
- package/src/engine/engine_utils.ts +5 -0
- package/src/engine-components/AnimationCurve.ts +25 -11
- package/src/engine-components/Light.ts +39 -8
- package/src/engine-components/ParticleSystem.ts +314 -194
- package/src/engine-components/ParticleSystemModules.ts +537 -154
- package/src/engine-components/WebXR.ts +11 -8
- package/src/engine-components/codegen/components.ts +6 -0
- package/src/engine/dist/engine_physics.js +0 -739
- package/src/engine/dist/engine_setup.js +0 -777
- package/src/engine-components/dist/CharacterController.js +0 -123
- 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
|
-
|
|
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
|
-
|
|
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:
|
|
116
|
+
startLifetime: MinMaxCurve;
|
|
10
117
|
startLifetimeMultiplier: number;
|
|
11
|
-
|
|
12
|
-
|
|
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:
|
|
130
|
+
startSizeX: MinMaxCurve;
|
|
17
131
|
startSizeXMultiplier: number;
|
|
18
|
-
startSizeY:
|
|
132
|
+
startSizeY: MinMaxCurve;
|
|
19
133
|
startSizeYMultiplier: number;
|
|
20
|
-
startSizeZ:
|
|
134
|
+
startSizeZ: MinMaxCurve;
|
|
21
135
|
startSizeZMultiplier: number;
|
|
22
|
-
|
|
23
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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 {};
|