@needle-tools/engine 5.1.0-canary.c111c4f → 5.1.0-canary.d110b1f
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 +34 -0
- package/components.needle.json +1 -1
- package/dist/{needle-engine.bundle-BuaGvme0.js → needle-engine.bundle-CIeJZJtr.js} +7485 -7511
- package/dist/{needle-engine.bundle-CayCdkzK.min.js → needle-engine.bundle-DGxfYUoJ.min.js} +145 -144
- package/dist/{needle-engine.bundle-DVhVGqQR.umd.cjs → needle-engine.bundle-FP5jA2Rk.umd.cjs} +144 -143
- package/dist/needle-engine.d.ts +58 -83
- package/dist/needle-engine.js +188 -186
- package/dist/needle-engine.min.js +1 -1
- package/dist/needle-engine.umd.cjs +1 -1
- package/dist/three-examples.js +3778 -4289
- package/dist/three-examples.min.js +14 -301
- package/dist/three-examples.umd.cjs +14 -301
- package/lib/engine/debug/debug_spatial_console.d.ts +2 -0
- package/lib/engine/debug/debug_spatial_console.js +10 -7
- package/lib/engine/debug/debug_spatial_console.js.map +1 -1
- package/lib/engine/engine_addressables.d.ts +2 -0
- package/lib/engine/engine_addressables.js +6 -3
- package/lib/engine/engine_addressables.js.map +1 -1
- package/lib/engine/engine_context.d.ts +16 -19
- package/lib/engine/engine_context.js +12 -15
- package/lib/engine/engine_context.js.map +1 -1
- package/lib/engine/engine_gameobject.js +2 -2
- package/lib/engine/engine_gameobject.js.map +1 -1
- package/lib/engine/engine_init.js +10 -0
- package/lib/engine/engine_init.js.map +1 -1
- package/lib/engine/engine_scenedata.d.ts +5 -7
- package/lib/engine/engine_scenedata.js +14 -11
- package/lib/engine/engine_scenedata.js.map +1 -1
- package/lib/engine/engine_serialization_builtin_serializer.d.ts +10 -16
- package/lib/engine/engine_serialization_builtin_serializer.js +28 -41
- package/lib/engine/engine_serialization_builtin_serializer.js.map +1 -1
- package/lib/engine/webcomponents/jsx.d.ts +51 -0
- package/lib/engine/webcomponents/logo-element.js.map +1 -1
- package/lib/engine/webcomponents/needle menu/needle-menu.d.ts +2 -3
- package/lib/engine/webcomponents/needle menu/needle-menu.js.map +1 -1
- package/lib/engine/webcomponents/needle-button.js.map +1 -1
- package/lib/engine/webcomponents/needle-engine.js.map +1 -1
- package/lib/engine/xr/NeedleXRSession.d.ts +2 -0
- package/lib/engine/xr/NeedleXRSession.js +47 -11
- package/lib/engine/xr/NeedleXRSession.js.map +1 -1
- package/lib/engine-components/AnimatorController.d.ts +2 -0
- package/lib/engine-components/AnimatorController.js +4 -1
- package/lib/engine-components/AnimatorController.js.map +1 -1
- package/lib/engine-components/Light.d.ts +0 -19
- package/lib/engine-components/Light.js +4 -96
- package/lib/engine-components/Light.js.map +1 -1
- package/lib/engine-components/Networking.d.ts +1 -1
- package/lib/engine-components/Networking.js +1 -1
- package/lib/engine-components/ReflectionProbe.js +2 -0
- package/lib/engine-components/ReflectionProbe.js.map +1 -1
- package/lib/engine-components/postprocessing/VolumeParameter.d.ts +2 -0
- package/lib/engine-components/postprocessing/VolumeParameter.js +4 -1
- package/lib/engine-components/postprocessing/VolumeParameter.js.map +1 -1
- package/lib/engine-components/ui/Canvas.d.ts +1 -1
- package/lib/engine-components/ui/Canvas.js +2 -8
- package/lib/engine-components/ui/Canvas.js.map +1 -1
- package/lib/needle-engine.d.ts +2 -0
- package/lib/needle-engine.js +1 -0
- package/lib/needle-engine.js.map +1 -1
- package/package.json +1 -1
- package/plugins/dts-generator/dts.codegen.js +12 -6
- package/plugins/dts-generator/dts.writer.js +1 -1
- package/plugins/dts-generator/glb.extractor.js +12 -1
- package/plugins/dts-generator/glb.reader.js +42 -33
- package/plugins/types/userconfig.d.ts +12 -0
- package/plugins/vite/dts-generator.d.ts +2 -2
- package/plugins/vite/dts-generator.js +6 -1
- package/plugins/vite/reload.js +18 -17
- package/src/engine/debug/debug_spatial_console.ts +10 -7
- package/src/engine/engine_addressables.ts +6 -3
- package/src/engine/engine_context.ts +18 -20
- package/src/engine/engine_gameobject.ts +2 -2
- package/src/engine/engine_init.ts +10 -0
- package/src/engine/engine_scenedata.ts +13 -10
- package/src/engine/engine_serialization_builtin_serializer.ts +32 -43
- package/src/engine/webcomponents/jsx.d.ts +51 -0
- package/src/engine/webcomponents/logo-element.ts +1 -0
- package/src/engine/webcomponents/needle menu/needle-menu.ts +2 -1
- package/src/engine/webcomponents/needle-button.ts +1 -0
- package/src/engine/webcomponents/needle-engine.ts +1 -0
- package/src/engine/xr/NeedleXRSession.ts +44 -10
- package/src/engine-components/AnimatorController.ts +4 -1
- package/src/engine-components/Light.ts +4 -95
- package/src/engine-components/Networking.ts +1 -1
- package/src/engine-components/ReflectionProbe.ts +2 -0
- package/src/engine-components/postprocessing/VolumeParameter.ts +4 -1
- package/src/engine-components/ui/Canvas.ts +2 -8
- package/src/needle-engine.ts +1 -0
package/dist/needle-engine.d.ts
CHANGED
|
@@ -2946,7 +2946,7 @@ export declare class Canvas extends UIRootComponent implements ICanvas {
|
|
|
2946
2946
|
private _receivers;
|
|
2947
2947
|
registerEventReceiver(receiver: ICanvasEventReceiver): void;
|
|
2948
2948
|
unregisterEventReceiver(receiver: ICanvasEventReceiver): void;
|
|
2949
|
-
onEnterXR(args: NeedleXREventArgs):
|
|
2949
|
+
onEnterXR(args: NeedleXREventArgs): void;
|
|
2950
2950
|
onLeaveXR(args: NeedleXREventArgs): void;
|
|
2951
2951
|
onBeforeRenderRoutine: () => void;
|
|
2952
2952
|
onAfterRenderRoutine: () => void;
|
|
@@ -3623,7 +3623,7 @@ declare class ColorSerializer extends TypeSerializer {
|
|
|
3623
3623
|
onSerialize(data: any): any | void;
|
|
3624
3624
|
}
|
|
3625
3625
|
|
|
3626
|
-
export declare
|
|
3626
|
+
export declare let colorSerializer: ColorSerializer;
|
|
3627
3627
|
|
|
3628
3628
|
/**
|
|
3629
3629
|
* Utility method to check if two materials were created from the same glTF material
|
|
@@ -4097,7 +4097,7 @@ declare class ComponentSerializer extends TypeSerializer {
|
|
|
4097
4097
|
findObjectForGuid(guid: string, root: Object3D): any;
|
|
4098
4098
|
}
|
|
4099
4099
|
|
|
4100
|
-
export declare
|
|
4100
|
+
export declare let componentSerializer: ComponentSerializer;
|
|
4101
4101
|
|
|
4102
4102
|
declare type ComponentType = "button" | "thumbstick" | "squeeze" | "touchpad";
|
|
4103
4103
|
|
|
@@ -4460,13 +4460,14 @@ export declare class Context implements IContext {
|
|
|
4460
4460
|
* Use `setCurrentCamera` for updating the main camera.
|
|
4461
4461
|
*/
|
|
4462
4462
|
/**
|
|
4463
|
-
*
|
|
4464
|
-
* Types are
|
|
4465
|
-
* and written to `src/generated/needle-bindings.d.ts` on every dev-server start and GLB change.
|
|
4463
|
+
* Access your scene's full hierarchy, objects, and components directly by name — with full autocomplete.
|
|
4464
|
+
* Types are generated automatically from your GLB files when the dev server starts.
|
|
4466
4465
|
*
|
|
4467
|
-
*
|
|
4468
|
-
*
|
|
4469
|
-
*
|
|
4466
|
+
* You can store references to objects or components for later use.
|
|
4467
|
+
* Note that the scene hierarchy can change at runtime (e.g. when objects are added, removed, or re-parented),
|
|
4468
|
+
* in which case stored references may become stale.
|
|
4469
|
+
*
|
|
4470
|
+
* @experimental This API may change in future versions.
|
|
4470
4471
|
*
|
|
4471
4472
|
* @example
|
|
4472
4473
|
* // Toggle auto-rotate on the orbit camera
|
|
@@ -4475,12 +4476,6 @@ export declare class Context implements IContext {
|
|
|
4475
4476
|
* @example
|
|
4476
4477
|
* // Change the background color
|
|
4477
4478
|
* ctx.sceneData.Camera.Camera.backgroundColor = new RGBAColor(1, 0, 0, 1);
|
|
4478
|
-
*
|
|
4479
|
-
* @example
|
|
4480
|
-
* // Equivalent manual approach (without sceneData)
|
|
4481
|
-
* const node = ctx.scene.getObjectByName("Camera");
|
|
4482
|
-
* const orbit = getComponent(node, OrbitControls);
|
|
4483
|
-
* if (orbit) orbit.autoRotate = true;
|
|
4484
4479
|
*/
|
|
4485
4480
|
get sceneData(): SceneData;
|
|
4486
4481
|
get mainCamera(): Camera_2;
|
|
@@ -4504,19 +4499,21 @@ export declare class Context implements IContext {
|
|
|
4504
4499
|
connection: NetworkConnection;
|
|
4505
4500
|
/** @deprecated AssetDatabase is deprecated */
|
|
4506
4501
|
assets: AssetDatabase;
|
|
4507
|
-
/** All registered lights in the scene, maintained by the Light component
|
|
4508
|
-
|
|
4502
|
+
/** All registered lights in the scene, maintained by the Light component.
|
|
4503
|
+
* @see mainLight for accessing the main directional light in the scene
|
|
4504
|
+
*/
|
|
4505
|
+
readonly lights: ILight[];
|
|
4509
4506
|
/** The brightest registered directional light, or null if none are registered
|
|
4510
4507
|
* @see lights
|
|
4511
4508
|
*/
|
|
4512
4509
|
get mainLight(): ILight | null;
|
|
4513
4510
|
/** @deprecated Use sceneLighting */
|
|
4514
|
-
get rendererData()
|
|
4511
|
+
private get rendererData();
|
|
4515
4512
|
/** Access the scene lighting manager to control lighting settings in the context */
|
|
4516
|
-
sceneLighting: RendererData;
|
|
4517
|
-
addressables: Addressables;
|
|
4518
|
-
lightmaps: ILightDataRegistry;
|
|
4519
|
-
players: PlayerViewManager;
|
|
4513
|
+
readonly sceneLighting: RendererData;
|
|
4514
|
+
readonly addressables: Addressables;
|
|
4515
|
+
readonly lightmaps: ILightDataRegistry;
|
|
4516
|
+
readonly players: PlayerViewManager;
|
|
4520
4517
|
/** Access the LODs manager to control LOD behavior in the context */
|
|
4521
4518
|
readonly lodsManager: LODsManager;
|
|
4522
4519
|
/** Access the needle menu to add or remove buttons to the menu element */
|
|
@@ -5923,19 +5920,6 @@ export declare class EnvironmentScene extends Scene {
|
|
|
5923
5920
|
createAreaLightMaterial(intensity: number): MeshBasicMaterial;
|
|
5924
5921
|
}
|
|
5925
5922
|
|
|
5926
|
-
export declare const euler: EulerSerializer;
|
|
5927
|
-
|
|
5928
|
-
declare class EulerSerializer extends TypeSerializer {
|
|
5929
|
-
constructor();
|
|
5930
|
-
onDeserialize(data: any, _context: SerializationContext): Euler | undefined;
|
|
5931
|
-
onSerialize(data: any, _context: SerializationContext): {
|
|
5932
|
-
x: any;
|
|
5933
|
-
y: any;
|
|
5934
|
-
z: any;
|
|
5935
|
-
order: any;
|
|
5936
|
-
};
|
|
5937
|
-
}
|
|
5938
|
-
|
|
5939
5923
|
/**
|
|
5940
5924
|
* EventList manages a list of callbacks that can be invoked together.
|
|
5941
5925
|
* Used for Unity-style events that can be configured in the editor (Unity or Blender).
|
|
@@ -6068,7 +6052,7 @@ declare class EventListSerializer extends TypeSerializer {
|
|
|
6068
6052
|
onDeserialize(data: EventListData, context: SerializationContext): EventList<any> | undefined | null;
|
|
6069
6053
|
}
|
|
6070
6054
|
|
|
6071
|
-
export declare
|
|
6055
|
+
export declare let eventListSerializer: EventListSerializer;
|
|
6072
6056
|
|
|
6073
6057
|
/**
|
|
6074
6058
|
* [EventSystem](https://engine.needle.tools/docs/api/EventSystem) is responsible for managing and dispatching input events to UI components within the scene.
|
|
@@ -8460,10 +8444,20 @@ export declare class InheritVelocityModule {
|
|
|
8460
8444
|
applyCurrent(vel: Vector3 | Vector3_2, t01: number, lerpFactor: number): void;
|
|
8461
8445
|
}
|
|
8462
8446
|
|
|
8447
|
+
/* Excluded from this release type: initAddressableSerializers */
|
|
8448
|
+
|
|
8449
|
+
/** Register all builtin serializers and prototype patches.
|
|
8450
|
+
* Must be called from {@link initEngine} so the registrations survive tree-shaking
|
|
8451
|
+
* when the package declares `sideEffects: false`.
|
|
8452
|
+
*/
|
|
8453
|
+
export declare function initBuiltinSerializers(): void;
|
|
8454
|
+
|
|
8463
8455
|
/** Register the Rapier physics backend. Called from {@link initEngine}
|
|
8464
8456
|
* to ensure it runs regardless of tree-shaking. */
|
|
8465
8457
|
export declare function initPhysics(): void;
|
|
8466
8458
|
|
|
8459
|
+
/* Excluded from this release type: initVolumeParameterSerializer */
|
|
8460
|
+
|
|
8467
8461
|
/**
|
|
8468
8462
|
* Handles all input events including mouse, touch, keyboard, and XR controllers.
|
|
8469
8463
|
* Access via `this.context.input` from any component.
|
|
@@ -9967,19 +9961,6 @@ export declare class Light extends Component implements ILight {
|
|
|
9967
9961
|
get shadowResolution(): number;
|
|
9968
9962
|
set shadowResolution(val: number);
|
|
9969
9963
|
private _shadowResolution?;
|
|
9970
|
-
/**
|
|
9971
|
-
* Number of shadow cascade levels (only used when `useCascades` is true)
|
|
9972
|
-
*/
|
|
9973
|
-
cascades: number;
|
|
9974
|
-
/**
|
|
9975
|
-
* Cascade split mode (only used when `useCascades` is true):
|
|
9976
|
-
* - `practical` — balanced (default, recommended)
|
|
9977
|
-
* - `logarithmic` — more resolution close up
|
|
9978
|
-
* - `uniform` — equal splits
|
|
9979
|
-
*/
|
|
9980
|
-
cascadeMode: "practical" | "logarithmic" | "uniform";
|
|
9981
|
-
private _csm?;
|
|
9982
|
-
private _csmHelper?;
|
|
9983
9964
|
/**
|
|
9984
9965
|
* Whether this light's illumination is entirely baked into lightmaps
|
|
9985
9966
|
*/
|
|
@@ -10001,7 +9982,6 @@ export declare class Light extends Component implements ILight {
|
|
|
10001
9982
|
awake(): void;
|
|
10002
9983
|
onEnable(): void;
|
|
10003
9984
|
onDisable(): void;
|
|
10004
|
-
onBeforeRender(): void;
|
|
10005
9985
|
/**
|
|
10006
9986
|
* Creates the appropriate three.js light based on the configured light type
|
|
10007
9987
|
* and applies all settings like shadows, intensity, and color.
|
|
@@ -10022,11 +10002,6 @@ export declare class Light extends Component implements ILight {
|
|
|
10022
10002
|
* When the rig is scaled, world-space distances change proportionally
|
|
10023
10003
|
* causing lights to appear brighter or dimmer due to distance falloff. */
|
|
10024
10004
|
private applyXRScale;
|
|
10025
|
-
/**
|
|
10026
|
-
* Creates and initializes a CSM instance for this directional light.
|
|
10027
|
-
* CSM manages its own cascade DirectionalLights internally.
|
|
10028
|
-
*/
|
|
10029
|
-
private createCSM;
|
|
10030
10005
|
/**
|
|
10031
10006
|
* Configures a directional light by adding and positioning its target
|
|
10032
10007
|
* @param dirLight The directional light to set up
|
|
@@ -11067,15 +11042,13 @@ export declare type MouseButtonName = "left" | "right" | "middle";
|
|
|
11067
11042
|
/* Excluded from this release type: nameofFactory */
|
|
11068
11043
|
|
|
11069
11044
|
/**
|
|
11070
|
-
*
|
|
11071
|
-
*
|
|
11072
|
-
* safe to import at module level, including in SSR environments
|
|
11073
|
-
* (returns a silent error proxy when no context is active).
|
|
11045
|
+
* Quick access to the current Needle Engine context from anywhere — no need to pass `ctx` around.
|
|
11046
|
+
* Use it in React/Svelte/Vue components, button handlers, or plain JavaScript.
|
|
11074
11047
|
*
|
|
11075
|
-
*
|
|
11076
|
-
*
|
|
11048
|
+
* Safe to import at module level, including in SSR environments.
|
|
11049
|
+
* For pages with multiple `<needle-engine>` elements, use `ctx` directly instead.
|
|
11077
11050
|
*
|
|
11078
|
-
*
|
|
11051
|
+
* @experimental This API may change in future releases.
|
|
11079
11052
|
*
|
|
11080
11053
|
* @example
|
|
11081
11054
|
* import { needle } from "@needle-tools/engine";
|
|
@@ -12238,6 +12211,8 @@ export declare class NeedleXRSession implements INeedleXRSession {
|
|
|
12238
12211
|
private readonly _xr_update_scripts;
|
|
12239
12212
|
/** scripts that are in the scene but inactive (e.g. disabled parent gameObject) */
|
|
12240
12213
|
private readonly _inactive_scripts;
|
|
12214
|
+
/** tracks scripts that have received onEnterXR — prevents spurious onLeaveXR calls */
|
|
12215
|
+
private readonly _scripts_in_xr;
|
|
12241
12216
|
private readonly _controllerAdded;
|
|
12242
12217
|
private readonly _controllerRemoved;
|
|
12243
12218
|
private readonly _originalCameraWorldPosition?;
|
|
@@ -12857,7 +12832,7 @@ export declare interface NetworkEventMap {
|
|
|
12857
12832
|
* @see {@link RoomEvents} for room lifecycle events
|
|
12858
12833
|
* @see {@link isLocalNetwork} for local network detection
|
|
12859
12834
|
* @link https://engine.needle.tools/docs/how-to-guides/networking/
|
|
12860
|
-
* @summary
|
|
12835
|
+
* @summary Configures the websocket server URL for multiplayer networking
|
|
12861
12836
|
* @category Networking
|
|
12862
12837
|
* @group Components
|
|
12863
12838
|
*/
|
|
@@ -13078,7 +13053,7 @@ declare class ObjectSerializer extends TypeSerializer {
|
|
|
13078
13053
|
onDeserialize(data: ObjectData | string | null, context: SerializationContext): Object3D<Object3DEventMap> | Component | null | undefined;
|
|
13079
13054
|
}
|
|
13080
13055
|
|
|
13081
|
-
export declare
|
|
13056
|
+
export declare let objectSerializer: ObjectSerializer;
|
|
13082
13057
|
|
|
13083
13058
|
declare type ObjectToNodeMap = {
|
|
13084
13059
|
[uuid: string]: number;
|
|
@@ -23547,23 +23522,8 @@ export declare class OrbitControls extends Component implements ICameraControlle
|
|
|
23547
23522
|
|
|
23548
23523
|
|
|
23549
23524
|
declare module 'three' {
|
|
23550
|
-
interface
|
|
23551
|
-
|
|
23552
|
-
staticGeometry?: BufferGeometry;
|
|
23553
|
-
staticGeometryLastUpdate?: number;
|
|
23554
|
-
}
|
|
23555
|
-
interface Mesh {
|
|
23556
|
-
acceleratedRaycast?: any;
|
|
23557
|
-
}
|
|
23558
|
-
interface SkinnedMesh {
|
|
23559
|
-
/** @deprecated use autoUpdateMeshBvhInterval */
|
|
23560
|
-
autoUpdateMeshBVH?: boolean;
|
|
23561
|
-
/**
|
|
23562
|
-
* Interval in milliseconds to automatically update the mesh BVH. When set to >= 0 the BVH will be updated every x milliseconds.
|
|
23563
|
-
* @default undefined (disabled)
|
|
23564
|
-
*/
|
|
23565
|
-
autoUpdateMeshBvhInterval?: number;
|
|
23566
|
-
bvhNeedsUpdate?: boolean;
|
|
23525
|
+
interface Vector3 {
|
|
23526
|
+
slerp(end: Vector3, t: number): Vector3;
|
|
23567
23527
|
}
|
|
23568
23528
|
}
|
|
23569
23529
|
|
|
@@ -23709,7 +23669,22 @@ declare module 'three' {
|
|
|
23709
23669
|
|
|
23710
23670
|
|
|
23711
23671
|
declare module 'three' {
|
|
23712
|
-
interface
|
|
23713
|
-
|
|
23672
|
+
interface SkinnedMesh {
|
|
23673
|
+
staticGenerator?: StaticGeometryGenerator;
|
|
23674
|
+
staticGeometry?: BufferGeometry;
|
|
23675
|
+
staticGeometryLastUpdate?: number;
|
|
23676
|
+
}
|
|
23677
|
+
interface Mesh {
|
|
23678
|
+
acceleratedRaycast?: any;
|
|
23679
|
+
}
|
|
23680
|
+
interface SkinnedMesh {
|
|
23681
|
+
/** @deprecated use autoUpdateMeshBvhInterval */
|
|
23682
|
+
autoUpdateMeshBVH?: boolean;
|
|
23683
|
+
/**
|
|
23684
|
+
* Interval in milliseconds to automatically update the mesh BVH. When set to >= 0 the BVH will be updated every x milliseconds.
|
|
23685
|
+
* @default undefined (disabled)
|
|
23686
|
+
*/
|
|
23687
|
+
autoUpdateMeshBvhInterval?: number;
|
|
23688
|
+
bvhNeedsUpdate?: boolean;
|
|
23714
23689
|
}
|
|
23715
23690
|
}
|