@needle-tools/engine 3.28.6-beta → 3.28.7-beta.1
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 +2259 -2253
- package/LICENSE.md +10 -10
- package/README.md +52 -52
- package/dist/needle-engine.js +7 -10
- package/dist/needle-engine.light.js +7 -10
- package/dist/needle-engine.light.min.js +7 -10
- package/dist/needle-engine.light.umd.cjs +7 -10
- package/dist/needle-engine.min.js +7 -10
- package/dist/needle-engine.umd.cjs +7 -10
- package/lib/engine/api.d.ts +52 -52
- package/lib/engine/api.js +51 -51
- package/lib/engine/assets/index.d.ts +1 -1
- package/lib/engine/assets/index.js +4 -4
- package/lib/engine/codegen/register_types.d.ts +1 -1
- package/lib/engine/codegen/register_types.js +439 -439
- package/lib/engine/debug/debug.d.ts +12 -12
- package/lib/engine/debug/debug.js +26 -26
- package/lib/engine/debug/debug_console.d.ts +2 -2
- package/lib/engine/debug/debug_console.js +204 -204
- package/lib/engine/debug/debug_overlay.d.ts +10 -10
- package/lib/engine/debug/debug_overlay.js +277 -277
- package/lib/engine/debug/index.d.ts +1 -1
- package/lib/engine/debug/index.js +1 -1
- package/lib/engine/engine_addressables.d.ts +75 -75
- package/lib/engine/engine_addressables.js +441 -441
- package/lib/engine/engine_application.d.ts +19 -19
- package/lib/engine/engine_application.js +45 -45
- package/lib/engine/engine_assetdatabase.d.ts +25 -25
- package/lib/engine/engine_assetdatabase.js +341 -341
- package/lib/engine/engine_camera.d.ts +6 -6
- package/lib/engine/engine_camera.js +23 -23
- package/lib/engine/engine_components.d.ts +17 -17
- package/lib/engine/engine_components.js +273 -273
- package/lib/engine/engine_components_internal.d.ts +11 -11
- package/lib/engine/engine_components_internal.js +41 -41
- package/lib/engine/engine_constants.d.ts +5 -5
- package/lib/engine/engine_constants.js +32 -32
- package/lib/engine/engine_context.d.ts +269 -269
- package/lib/engine/engine_context.js +1242 -1242
- package/lib/engine/engine_context_registry.d.ts +50 -50
- package/lib/engine/engine_context_registry.js +89 -89
- package/lib/engine/engine_coroutine.d.ts +4 -4
- package/lib/engine/engine_coroutine.js +21 -21
- package/lib/engine/engine_create_objects.d.ts +13 -13
- package/lib/engine/engine_create_objects.js +33 -33
- package/lib/engine/engine_default_parameters.d.ts +2 -2
- package/lib/engine/engine_default_parameters.js +3 -3
- package/lib/engine/engine_editor-sync.d.ts +17 -17
- package/lib/engine/engine_editor-sync.js +7 -7
- package/lib/engine/engine_element.d.ts +55 -55
- package/lib/engine/engine_element.js +559 -559
- package/lib/engine/engine_element_attributes.d.ts +49 -49
- package/lib/engine/engine_element_attributes.js +1 -1
- package/lib/engine/engine_element_extras.d.ts +6 -6
- package/lib/engine/engine_element_extras.js +13 -13
- package/lib/engine/engine_element_loading.d.ts +40 -40
- package/lib/engine/engine_element_loading.js +312 -312
- package/lib/engine/engine_element_overlay.d.ts +19 -19
- package/lib/engine/engine_element_overlay.js +143 -143
- package/lib/engine/engine_fileloader.d.ts +3 -3
- package/lib/engine/engine_fileloader.js +7 -7
- package/lib/engine/engine_gameobject.d.ts +39 -39
- package/lib/engine/engine_gameobject.js +559 -559
- package/lib/engine/engine_generic_utils.d.ts +1 -1
- package/lib/engine/engine_generic_utils.js +13 -13
- package/lib/engine/engine_gizmos.d.ts +26 -26
- package/lib/engine/engine_gizmos.js +282 -282
- package/lib/engine/engine_gltf.d.ts +13 -13
- package/lib/engine/engine_gltf.js +15 -15
- package/lib/engine/engine_gltf_builtin_components.d.ts +7 -7
- package/lib/engine/engine_gltf_builtin_components.js +298 -298
- package/lib/engine/engine_hot_reload.d.ts +5 -5
- package/lib/engine/engine_hot_reload.js +182 -182
- package/lib/engine/engine_input.d.ts +129 -129
- package/lib/engine/engine_input.js +799 -799
- package/lib/engine/engine_input_utils.d.ts +2 -2
- package/lib/engine/engine_input_utils.js +22 -22
- package/lib/engine/engine_instancing.d.ts +16 -16
- package/lib/engine/engine_instancing.js +36 -36
- package/lib/engine/engine_license.d.ts +4 -4
- package/lib/engine/engine_license.js +398 -398
- package/lib/engine/engine_lifecycle_api.d.ts +14 -14
- package/lib/engine/engine_lifecycle_api.js +24 -24
- package/lib/engine/engine_lifecycle_functions_internal.d.ts +6 -6
- package/lib/engine/engine_lifecycle_functions_internal.js +28 -28
- package/lib/engine/engine_lightdata.d.ts +23 -23
- package/lib/engine/engine_lightdata.js +86 -86
- package/lib/engine/engine_loaders.d.ts +7 -7
- package/lib/engine/engine_loaders.js +69 -69
- package/lib/engine/engine_mainloop_utils.d.ts +13 -13
- package/lib/engine/engine_mainloop_utils.js +426 -426
- package/lib/engine/engine_math.d.ts +43 -43
- package/lib/engine/engine_math.js +147 -147
- package/lib/engine/engine_networking.d.ts +176 -176
- package/lib/engine/engine_networking.js +649 -649
- package/lib/engine/engine_networking_auto.d.ts +24 -24
- package/lib/engine/engine_networking_auto.js +324 -324
- package/lib/engine/engine_networking_files.d.ts +23 -23
- package/lib/engine/engine_networking_files.js +176 -176
- package/lib/engine/engine_networking_files_default_components.d.ts +3 -3
- package/lib/engine/engine_networking_files_default_components.js +39 -39
- package/lib/engine/engine_networking_instantiate.d.ts +39 -39
- package/lib/engine/engine_networking_instantiate.js +302 -302
- package/lib/engine/engine_networking_peer.d.ts +15 -15
- package/lib/engine/engine_networking_peer.js +132 -132
- package/lib/engine/engine_networking_streams.d.ts +90 -90
- package/lib/engine/engine_networking_streams.js +428 -428
- package/lib/engine/engine_networking_types.d.ts +14 -14
- package/lib/engine/engine_networking_types.js +7 -7
- package/lib/engine/engine_networking_utils.d.ts +2 -2
- package/lib/engine/engine_networking_utils.js +20 -20
- package/lib/engine/engine_patcher.d.ts +10 -10
- package/lib/engine/engine_patcher.js +142 -142
- package/lib/engine/engine_physics.d.ts +115 -115
- package/lib/engine/engine_physics.js +228 -228
- package/lib/engine/engine_physics.types.d.ts +37 -37
- package/lib/engine/engine_physics.types.js +33 -33
- package/lib/engine/engine_physics_rapier.d.ts +112 -112
- package/lib/engine/engine_physics_rapier.js +1266 -1266
- package/lib/engine/engine_playerview.d.ts +26 -26
- package/lib/engine/engine_playerview.js +64 -64
- package/lib/engine/engine_scenelighting.d.ts +74 -74
- package/lib/engine/engine_scenelighting.js +285 -285
- package/lib/engine/engine_scenetools.d.ts +35 -35
- package/lib/engine/engine_scenetools.js +212 -212
- package/lib/engine/engine_serialization.d.ts +4 -4
- package/lib/engine/engine_serialization.js +4 -4
- package/lib/engine/engine_serialization_builtin_serializer.d.ts +62 -62
- package/lib/engine/engine_serialization_builtin_serializer.js +369 -369
- package/lib/engine/engine_serialization_core.d.ts +84 -84
- package/lib/engine/engine_serialization_core.js +576 -576
- package/lib/engine/engine_serialization_decorator.d.ts +15 -15
- package/lib/engine/engine_serialization_decorator.js +54 -54
- package/lib/engine/engine_setup.d.ts +1 -1
- package/lib/engine/engine_setup.js +2 -2
- package/lib/engine/engine_shaders.d.ts +31 -31
- package/lib/engine/engine_shaders.js +229 -229
- package/lib/engine/engine_shims.d.ts +3 -3
- package/lib/engine/engine_shims.js +22 -22
- package/lib/engine/engine_texture.d.ts +20 -20
- package/lib/engine/engine_texture.js +57 -57
- package/lib/engine/engine_three_utils.d.ts +51 -51
- package/lib/engine/engine_three_utils.js +342 -342
- package/lib/engine/engine_time.d.ts +19 -19
- package/lib/engine/engine_time.js +47 -47
- package/lib/engine/engine_types.d.ts +358 -358
- package/lib/engine/engine_types.js +72 -72
- package/lib/engine/engine_typestore.d.ts +16 -16
- package/lib/engine/engine_typestore.js +35 -35
- package/lib/engine/engine_util_decorator.d.ts +12 -12
- package/lib/engine/engine_util_decorator.js +115 -115
- package/lib/engine/engine_utils.d.ts +104 -104
- package/lib/engine/engine_utils.js +518 -518
- package/lib/engine/engine_utils_screenshot.d.ts +10 -10
- package/lib/engine/engine_utils_screenshot.js +70 -70
- package/lib/engine/engine_web_api.d.ts +12 -12
- package/lib/engine/engine_web_api.js +112 -112
- package/lib/engine/extensions/EXT_texture_exr.d.ts +8 -8
- package/lib/engine/extensions/EXT_texture_exr.js +32 -32
- package/lib/engine/extensions/NEEDLE_animator_controller_model.d.ts +116 -116
- package/lib/engine/extensions/NEEDLE_animator_controller_model.js +91 -91
- package/lib/engine/extensions/NEEDLE_components.d.ts +33 -33
- package/lib/engine/extensions/NEEDLE_components.js +206 -206
- package/lib/engine/extensions/NEEDLE_gameobject_data.d.ts +10 -10
- package/lib/engine/extensions/NEEDLE_gameobject_data.js +57 -57
- package/lib/engine/extensions/NEEDLE_lighting_settings.d.ts +38 -38
- package/lib/engine/extensions/NEEDLE_lighting_settings.js +183 -183
- package/lib/engine/extensions/NEEDLE_lightmaps.d.ts +18 -18
- package/lib/engine/extensions/NEEDLE_lightmaps.js +108 -108
- package/lib/engine/extensions/NEEDLE_persistent_assets.d.ts +11 -11
- package/lib/engine/extensions/NEEDLE_persistent_assets.js +63 -63
- package/lib/engine/extensions/NEEDLE_progressive.d.ts +41 -41
- package/lib/engine/extensions/NEEDLE_progressive.js +366 -366
- package/lib/engine/extensions/NEEDLE_render_objects.d.ts +13 -13
- package/lib/engine/extensions/NEEDLE_render_objects.js +159 -159
- package/lib/engine/extensions/NEEDLE_techniques_webgl.d.ts +39 -39
- package/lib/engine/extensions/NEEDLE_techniques_webgl.js +544 -544
- package/lib/engine/extensions/extension_resolver.d.ts +4 -4
- package/lib/engine/extensions/extension_resolver.js +1 -1
- package/lib/engine/extensions/extension_utils.d.ts +2 -2
- package/lib/engine/extensions/extension_utils.js +140 -140
- package/lib/engine/extensions/extensions.d.ts +21 -21
- package/lib/engine/extensions/extensions.js +94 -94
- package/lib/engine/extensions/index.d.ts +5 -5
- package/lib/engine/extensions/index.js +5 -5
- package/lib/engine/extensions/usage_tracker.d.ts +13 -13
- package/lib/engine/extensions/usage_tracker.js +61 -61
- package/lib/engine/js-extensions/Camera.d.ts +1 -1
- package/lib/engine/js-extensions/Camera.js +36 -36
- package/lib/engine/js-extensions/Layers.d.ts +3 -3
- package/lib/engine/js-extensions/Layers.js +19 -19
- package/lib/engine/js-extensions/index.d.ts +2 -2
- package/lib/engine/js-extensions/index.js +2 -2
- package/lib/engine/shaders/shaderData.d.ts +55 -55
- package/lib/engine/shaders/shaderData.js +58 -58
- package/lib/engine/tests/test_utils.d.ts +2 -2
- package/lib/engine/tests/test_utils.js +53 -53
- package/lib/engine-components/AlignmentConstraint.d.ts +10 -10
- package/lib/engine-components/AlignmentConstraint.js +39 -39
- package/lib/engine-components/Animation.d.ts +53 -53
- package/lib/engine-components/Animation.js +333 -333
- package/lib/engine-components/AnimationCurve.d.ts +16 -16
- package/lib/engine-components/AnimationCurve.js +97 -97
- package/lib/engine-components/AnimationUtils.d.ts +8 -8
- package/lib/engine-components/AnimationUtils.js +110 -110
- package/lib/engine-components/Animator.d.ts +81 -81
- package/lib/engine-components/Animator.js +229 -229
- package/lib/engine-components/AnimatorController.d.ts +57 -57
- package/lib/engine-components/AnimatorController.js +887 -887
- package/lib/engine-components/AudioListener.d.ts +7 -7
- package/lib/engine-components/AudioListener.js +30 -30
- package/lib/engine-components/AudioSource.d.ts +61 -61
- package/lib/engine-components/AudioSource.js +422 -422
- package/lib/engine-components/AvatarLoader.d.ts +19 -19
- package/lib/engine-components/AvatarLoader.js +173 -173
- package/lib/engine-components/AxesHelper.d.ts +9 -9
- package/lib/engine-components/AxesHelper.js +44 -44
- package/lib/engine-components/BasicIKConstraint.d.ts +9 -9
- package/lib/engine-components/BasicIKConstraint.js +43 -43
- package/lib/engine-components/BoxHelperComponent.d.ts +16 -16
- package/lib/engine-components/BoxHelperComponent.js +89 -89
- package/lib/engine-components/Camera.d.ts +70 -70
- package/lib/engine-components/Camera.js +450 -450
- package/lib/engine-components/CameraUtils.d.ts +1 -1
- package/lib/engine-components/CameraUtils.js +77 -77
- package/lib/engine-components/CharacterController.d.ts +46 -46
- package/lib/engine-components/CharacterController.js +227 -227
- package/lib/engine-components/Collider.d.ts +46 -46
- package/lib/engine-components/Collider.js +153 -153
- package/lib/engine-components/Component.d.ts +228 -228
- package/lib/engine-components/Component.js +541 -541
- package/lib/engine-components/ContactShadows.d.ts +23 -23
- package/lib/engine-components/ContactShadows.js +233 -233
- package/lib/engine-components/DeleteBox.d.ts +9 -9
- package/lib/engine-components/DeleteBox.js +30 -30
- package/lib/engine-components/DeviceFlag.d.ts +12 -12
- package/lib/engine-components/DeviceFlag.js +43 -43
- package/lib/engine-components/DragControls.d.ts +51 -51
- package/lib/engine-components/DragControls.js +516 -516
- package/lib/engine-components/DropListener.d.ts +15 -15
- package/lib/engine-components/DropListener.js +120 -120
- package/lib/engine-components/Duplicatable.d.ts +16 -16
- package/lib/engine-components/Duplicatable.js +150 -150
- package/lib/engine-components/EventList.d.ts +28 -28
- package/lib/engine-components/EventList.js +105 -105
- package/lib/engine-components/EventTrigger.d.ts +12 -12
- package/lib/engine-components/EventTrigger.js +50 -50
- package/lib/engine-components/EventType.d.ts +19 -19
- package/lib/engine-components/EventType.js +71 -71
- package/lib/engine-components/FlyControls.d.ts +7 -7
- package/lib/engine-components/FlyControls.js +25 -25
- package/lib/engine-components/Fog.d.ts +20 -20
- package/lib/engine-components/Fog.js +60 -60
- package/lib/engine-components/Gizmos.d.ts +12 -12
- package/lib/engine-components/Gizmos.js +60 -60
- package/lib/engine-components/GridHelper.d.ts +12 -12
- package/lib/engine-components/GridHelper.js +47 -47
- package/lib/engine-components/GroundProjection.d.ts +21 -21
- package/lib/engine-components/GroundProjection.js +97 -97
- package/lib/engine-components/Interactable.d.ts +10 -10
- package/lib/engine-components/Interactable.js +11 -11
- package/lib/engine-components/Joints.d.ts +19 -19
- package/lib/engine-components/Joints.js +51 -51
- package/lib/engine-components/LODGroup.d.ts +30 -30
- package/lib/engine-components/LODGroup.js +145 -145
- package/lib/engine-components/Light.d.ts +75 -75
- package/lib/engine-components/Light.js +475 -475
- package/lib/engine-components/LookAtConstraint.d.ts +7 -7
- package/lib/engine-components/LookAtConstraint.js +17 -17
- package/lib/engine-components/NestedGltf.d.ts +11 -11
- package/lib/engine-components/NestedGltf.js +74 -74
- package/lib/engine-components/Networking.d.ts +11 -11
- package/lib/engine-components/Networking.js +70 -70
- package/lib/engine-components/OffsetConstraint.d.ts +14 -14
- package/lib/engine-components/OffsetConstraint.js +65 -65
- package/lib/engine-components/OrbitControls.d.ts +111 -111
- package/lib/engine-components/OrbitControls.js +646 -646
- package/lib/engine-components/ParticleSystem.d.ts +145 -145
- package/lib/engine-components/ParticleSystem.js +1077 -1077
- package/lib/engine-components/ParticleSystemModules.d.ts +489 -489
- package/lib/engine-components/ParticleSystemModules.js +1667 -1667
- package/lib/engine-components/ParticleSystemSubEmitter.d.ts +25 -25
- package/lib/engine-components/ParticleSystemSubEmitter.js +86 -86
- package/lib/engine-components/PlayerColor.d.ts +13 -13
- package/lib/engine-components/PlayerColor.js +83 -83
- package/lib/engine-components/ReflectionProbe.d.ts +22 -22
- package/lib/engine-components/ReflectionProbe.js +181 -181
- package/lib/engine-components/Renderer.d.ts +112 -112
- package/lib/engine-components/Renderer.js +1029 -1029
- package/lib/engine-components/RendererLightmap.d.ts +19 -19
- package/lib/engine-components/RendererLightmap.js +127 -127
- package/lib/engine-components/RigidBody.d.ts +120 -120
- package/lib/engine-components/RigidBody.js +452 -452
- package/lib/engine-components/SceneSwitcher.d.ts +72 -72
- package/lib/engine-components/SceneSwitcher.js +583 -583
- package/lib/engine-components/ScreenCapture.d.ts +64 -64
- package/lib/engine-components/ScreenCapture.js +405 -405
- package/lib/engine-components/ShadowCatcher.d.ts +18 -18
- package/lib/engine-components/ShadowCatcher.js +144 -144
- package/lib/engine-components/Skybox.d.ts +23 -23
- package/lib/engine-components/Skybox.js +287 -287
- package/lib/engine-components/SmoothFollow.d.ts +14 -14
- package/lib/engine-components/SmoothFollow.js +63 -63
- package/lib/engine-components/SpatialTrigger.d.ts +27 -27
- package/lib/engine-components/SpatialTrigger.js +144 -144
- package/lib/engine-components/SpectatorCamera.d.ts +45 -45
- package/lib/engine-components/SpectatorCamera.js +593 -593
- package/lib/engine-components/SpriteRenderer.d.ts +48 -48
- package/lib/engine-components/SpriteRenderer.js +257 -257
- package/lib/engine-components/SyncedCamera.d.ts +27 -27
- package/lib/engine-components/SyncedCamera.js +187 -187
- package/lib/engine-components/SyncedRoom.d.ts +24 -24
- package/lib/engine-components/SyncedRoom.js +162 -162
- package/lib/engine-components/SyncedTransform.d.ts +35 -35
- package/lib/engine-components/SyncedTransform.js +265 -265
- package/lib/engine-components/TestRunner.d.ts +13 -13
- package/lib/engine-components/TestRunner.js +99 -99
- package/lib/engine-components/TransformGizmo.d.ts +16 -16
- package/lib/engine-components/TransformGizmo.js +148 -148
- package/lib/engine-components/VideoPlayer.d.ts +86 -86
- package/lib/engine-components/VideoPlayer.js +792 -792
- package/lib/engine-components/Voip.d.ts +29 -29
- package/lib/engine-components/Voip.js +203 -203
- package/lib/engine-components/XRFlag.d.ts +33 -33
- package/lib/engine-components/XRFlag.js +128 -128
- package/lib/engine-components/api.d.ts +15 -15
- package/lib/engine-components/api.js +15 -15
- package/lib/engine-components/avatar/AvatarBlink_Simple.d.ts +10 -10
- package/lib/engine-components/avatar/AvatarBlink_Simple.js +75 -75
- package/lib/engine-components/avatar/AvatarEyeLook_Rotation.d.ts +13 -13
- package/lib/engine-components/avatar/AvatarEyeLook_Rotation.js +74 -74
- package/lib/engine-components/avatar/Avatar_Brain_LookAt.d.ts +27 -27
- package/lib/engine-components/avatar/Avatar_Brain_LookAt.js +119 -119
- package/lib/engine-components/avatar/Avatar_MouthShapes.d.ts +13 -13
- package/lib/engine-components/avatar/Avatar_MouthShapes.js +78 -78
- package/lib/engine-components/avatar/Avatar_MustacheShake.d.ts +8 -8
- package/lib/engine-components/avatar/Avatar_MustacheShake.js +28 -28
- package/lib/engine-components/codegen/components.d.ts +216 -216
- package/lib/engine-components/codegen/components.js +217 -217
- package/lib/engine-components/debug/LogStats.d.ts +5 -5
- package/lib/engine-components/debug/LogStats.js +18 -18
- package/lib/engine-components/export/gltf/GltfExport.d.ts +25 -25
- package/lib/engine-components/export/gltf/GltfExport.js +215 -215
- package/lib/engine-components/export/index.d.ts +1 -1
- package/lib/engine-components/export/index.js +1 -1
- package/lib/engine-components/export/usdz/Extension.d.ts +10 -10
- package/lib/engine-components/export/usdz/Extension.js +1 -1
- package/lib/engine-components/export/usdz/ThreeUSDZExporter.d.ts +114 -114
- package/lib/engine-components/export/usdz/ThreeUSDZExporter.js +1211 -1211
- package/lib/engine-components/export/usdz/USDZExporter.d.ts +59 -59
- package/lib/engine-components/export/usdz/USDZExporter.js +450 -450
- package/lib/engine-components/export/usdz/extensions/Animation.d.ts +69 -69
- package/lib/engine-components/export/usdz/extensions/Animation.js +650 -650
- package/lib/engine-components/export/usdz/extensions/DocumentExtension.d.ts +5 -5
- package/lib/engine-components/export/usdz/extensions/DocumentExtension.js +6 -6
- package/lib/engine-components/export/usdz/extensions/USDZText.d.ts +55 -55
- package/lib/engine-components/export/usdz/extensions/USDZText.js +246 -246
- package/lib/engine-components/export/usdz/extensions/USDZUI.d.ts +8 -8
- package/lib/engine-components/export/usdz/extensions/USDZUI.js +100 -100
- package/lib/engine-components/export/usdz/extensions/behavior/Actions.d.ts +30 -30
- package/lib/engine-components/export/usdz/extensions/behavior/Actions.js +88 -88
- package/lib/engine-components/export/usdz/extensions/behavior/AudioExtension.d.ts +9 -9
- package/lib/engine-components/export/usdz/extensions/behavior/AudioExtension.js +52 -52
- package/lib/engine-components/export/usdz/extensions/behavior/Behaviour.d.ts +22 -22
- package/lib/engine-components/export/usdz/extensions/behavior/Behaviour.js +134 -134
- package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.d.ts +126 -126
- package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js +824 -824
- package/lib/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.d.ts +133 -133
- package/lib/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.js +464 -464
- package/lib/engine-components/export/usdz/index.d.ts +3 -3
- package/lib/engine-components/export/usdz/index.js +2 -2
- package/lib/engine-components/export/usdz/utils/animationutils.d.ts +3 -3
- package/lib/engine-components/export/usdz/utils/animationutils.js +85 -85
- package/lib/engine-components/export/usdz/utils/quicklook.d.ts +2 -2
- package/lib/engine-components/export/usdz/utils/quicklook.js +35 -35
- package/lib/engine-components/export/usdz/utils/timeutils.d.ts +1 -1
- package/lib/engine-components/export/usdz/utils/timeutils.js +14 -14
- package/lib/engine-components/js-extensions/ExtensionUtils.d.ts +6 -6
- package/lib/engine-components/js-extensions/ExtensionUtils.js +65 -65
- package/lib/engine-components/js-extensions/Object3D.d.ts +2 -2
- package/lib/engine-components/js-extensions/Object3D.js +140 -140
- package/lib/engine-components/js-extensions/RGBAColor.d.ts +14 -14
- package/lib/engine-components/js-extensions/RGBAColor.js +49 -49
- package/lib/engine-components/js-extensions/index.d.ts +3 -3
- package/lib/engine-components/js-extensions/index.js +3 -3
- package/lib/engine-components/postprocessing/Effects/Antialiasing.d.ts +13 -13
- package/lib/engine-components/postprocessing/Effects/Antialiasing.js +45 -45
- package/lib/engine-components/postprocessing/Effects/Bloom.d.ts +12 -12
- package/lib/engine-components/postprocessing/Effects/Bloom.js +77 -77
- package/lib/engine-components/postprocessing/Effects/ChromaticAberration.d.ts +8 -8
- package/lib/engine-components/postprocessing/Effects/ChromaticAberration.js +38 -38
- package/lib/engine-components/postprocessing/Effects/ColorAdjustments.d.ts +12 -12
- package/lib/engine-components/postprocessing/Effects/ColorAdjustments.js +81 -81
- package/lib/engine-components/postprocessing/Effects/DepthOfField.d.ts +21 -21
- package/lib/engine-components/postprocessing/Effects/DepthOfField.js +97 -97
- package/lib/engine-components/postprocessing/Effects/Pixelation.d.ts +7 -7
- package/lib/engine-components/postprocessing/Effects/Pixelation.js +28 -28
- package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.d.ts +13 -13
- package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.js +86 -86
- package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.d.ts +24 -24
- package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.js +94 -94
- package/lib/engine-components/postprocessing/Effects/TiltShiftEffect.d.ts +13 -13
- package/lib/engine-components/postprocessing/Effects/TiltShiftEffect.js +62 -62
- package/lib/engine-components/postprocessing/Effects/Tonemapping.d.ts +16 -16
- package/lib/engine-components/postprocessing/Effects/Tonemapping.js +51 -51
- package/lib/engine-components/postprocessing/Effects/Vignette.d.ts +11 -11
- package/lib/engine-components/postprocessing/Effects/Vignette.js +56 -56
- package/lib/engine-components/postprocessing/PostProcessingEffect.d.ts +33 -33
- package/lib/engine-components/postprocessing/PostProcessingEffect.js +126 -126
- package/lib/engine-components/postprocessing/PostProcessingHandler.d.ts +22 -22
- package/lib/engine-components/postprocessing/PostProcessingHandler.js +201 -201
- package/lib/engine-components/postprocessing/Volume.d.ts +25 -25
- package/lib/engine-components/postprocessing/Volume.js +193 -193
- package/lib/engine-components/postprocessing/VolumeParameter.d.ts +22 -22
- package/lib/engine-components/postprocessing/VolumeParameter.js +80 -80
- package/lib/engine-components/postprocessing/VolumeProfile.d.ts +7 -7
- package/lib/engine-components/postprocessing/VolumeProfile.js +41 -41
- package/lib/engine-components/postprocessing/index.d.ts +4 -4
- package/lib/engine-components/postprocessing/index.js +4 -4
- package/lib/engine-components/timeline/PlayableDirector.d.ts +107 -107
- package/lib/engine-components/timeline/PlayableDirector.js +624 -624
- package/lib/engine-components/timeline/SignalAsset.d.ts +18 -18
- package/lib/engine-components/timeline/SignalAsset.js +124 -124
- package/lib/engine-components/timeline/TimelineModels.d.ts +88 -88
- package/lib/engine-components/timeline/TimelineModels.js +22 -22
- package/lib/engine-components/timeline/TimelineTracks.d.ts +90 -90
- package/lib/engine-components/timeline/TimelineTracks.js +825 -825
- package/lib/engine-components/timeline/index.d.ts +4 -4
- package/lib/engine-components/timeline/index.js +3 -3
- package/lib/engine-components/ui/BaseUIComponent.d.ts +31 -31
- package/lib/engine-components/ui/BaseUIComponent.js +161 -161
- package/lib/engine-components/ui/Button.d.ts +56 -56
- package/lib/engine-components/ui/Button.js +282 -282
- package/lib/engine-components/ui/Canvas.d.ts +67 -67
- package/lib/engine-components/ui/Canvas.js +382 -382
- package/lib/engine-components/ui/CanvasGroup.d.ts +15 -15
- package/lib/engine-components/ui/CanvasGroup.js +53 -53
- package/lib/engine-components/ui/EventSystem.d.ts +102 -102
- package/lib/engine-components/ui/EventSystem.js +641 -641
- package/lib/engine-components/ui/Graphic.d.ts +45 -45
- package/lib/engine-components/ui/Graphic.js +236 -236
- package/lib/engine-components/ui/Image.d.ts +27 -27
- package/lib/engine-components/ui/Image.js +107 -107
- package/lib/engine-components/ui/InputField.d.ts +34 -34
- package/lib/engine-components/ui/InputField.js +234 -234
- package/lib/engine-components/ui/Interfaces.d.ts +38 -38
- package/lib/engine-components/ui/Interfaces.js +12 -12
- package/lib/engine-components/ui/Layout.d.ts +72 -72
- package/lib/engine-components/ui/Layout.js +318 -318
- package/lib/engine-components/ui/Outline.d.ts +7 -7
- package/lib/engine-components/ui/Outline.js +20 -20
- package/lib/engine-components/ui/PointerEvents.d.ts +64 -64
- package/lib/engine-components/ui/PointerEvents.js +68 -68
- package/lib/engine-components/ui/RaycastUtils.d.ts +11 -11
- package/lib/engine-components/ui/RaycastUtils.js +67 -67
- package/lib/engine-components/ui/Raycaster.d.ts +18 -18
- package/lib/engine-components/ui/Raycaster.js +69 -69
- package/lib/engine-components/ui/RectTransform.d.ts +61 -61
- package/lib/engine-components/ui/RectTransform.js +343 -343
- package/lib/engine-components/ui/SpatialHtml.d.ts +6 -6
- package/lib/engine-components/ui/SpatialHtml.js +57 -57
- package/lib/engine-components/ui/Text.d.ts +74 -74
- package/lib/engine-components/ui/Text.js +534 -534
- package/lib/engine-components/ui/Utils.d.ts +23 -23
- package/lib/engine-components/ui/Utils.js +90 -90
- package/lib/engine-components/ui/index.d.ts +1 -1
- package/lib/engine-components/ui/index.js +1 -1
- package/lib/engine-components/utils/LookAt.d.ts +13 -13
- package/lib/engine-components/utils/LookAt.js +59 -59
- package/lib/engine-components/utils/OpenURL.d.ts +21 -21
- package/lib/engine-components/utils/OpenURL.js +124 -124
- package/lib/engine-components/webxr/WebARCameraBackground.d.ts +19 -19
- package/lib/engine-components/webxr/WebARCameraBackground.js +193 -193
- package/lib/engine-components/webxr/WebARSessionRoot.d.ts +38 -38
- package/lib/engine-components/webxr/WebARSessionRoot.js +407 -407
- package/lib/engine-components/webxr/WebXR.d.ts +110 -110
- package/lib/engine-components/webxr/WebXR.js +672 -672
- package/lib/engine-components/webxr/WebXRAvatar.d.ts +61 -61
- package/lib/engine-components/webxr/WebXRAvatar.js +289 -289
- package/lib/engine-components/webxr/WebXRController.d.ts +154 -154
- package/lib/engine-components/webxr/WebXRController.js +1028 -1028
- package/lib/engine-components/webxr/WebXRGrabRendering.d.ts +42 -42
- package/lib/engine-components/webxr/WebXRGrabRendering.js +137 -137
- package/lib/engine-components/webxr/WebXRImageTracking.d.ts +49 -49
- package/lib/engine-components/webxr/WebXRImageTracking.js +336 -336
- package/lib/engine-components/webxr/WebXRPlaneTracking.d.ts +49 -49
- package/lib/engine-components/webxr/WebXRPlaneTracking.js +372 -372
- package/lib/engine-components/webxr/WebXRRig.d.ts +4 -4
- package/lib/engine-components/webxr/WebXRRig.js +19 -19
- package/lib/engine-components/webxr/WebXRSync.d.ts +54 -54
- package/lib/engine-components/webxr/WebXRSync.js +410 -410
- package/lib/engine-components/webxr/index.d.ts +4 -4
- package/lib/engine-components/webxr/index.js +4 -4
- package/lib/engine-components-experimental/Presentation.d.ts +6 -6
- package/lib/engine-components-experimental/Presentation.js +9 -9
- package/lib/engine-components-experimental/api.d.ts +1 -1
- package/lib/engine-components-experimental/api.js +1 -1
- package/lib/engine-components-experimental/networking/PlayerSync.d.ts +50 -50
- package/lib/engine-components-experimental/networking/PlayerSync.js +200 -200
- package/lib/engine-schemes/api.d.ts +1 -1
- package/lib/engine-schemes/api.js +1 -1
- package/lib/engine-schemes/schemes.d.ts +7 -7
- package/lib/engine-schemes/schemes.js +19 -19
- package/lib/engine-schemes/synced-camera-model.d.ts +25 -25
- package/lib/engine-schemes/synced-camera-model.js +67 -67
- package/lib/engine-schemes/synced-transform-model.d.ts +31 -31
- package/lib/engine-schemes/synced-transform-model.js +66 -66
- package/lib/engine-schemes/transform.d.ts +12 -12
- package/lib/engine-schemes/transform.js +39 -39
- package/lib/engine-schemes/vec3.d.ts +11 -11
- package/lib/engine-schemes/vec3.js +29 -29
- package/lib/engine-schemes/vec4.d.ts +12 -12
- package/lib/engine-schemes/vec4.js +33 -33
- package/lib/engine-schemes/vr-user-state-buffer.d.ts +36 -36
- package/lib/engine-schemes/vr-user-state-buffer.js +103 -103
- package/lib/include/three/ARButton.d.ts +3 -3
- package/lib/include/three/ARButton.js +151 -151
- package/lib/include/three/EXT_mesh_gpu_instancing_exporter.d.ts +6 -6
- package/lib/include/three/EXT_mesh_gpu_instancing_exporter.js +45 -45
- package/lib/include/three/VRButton.d.ts +5 -5
- package/lib/include/three/VRButton.js +118 -118
- package/lib/needle-engine.d.ts +6 -6
- package/lib/needle-engine.js +49 -49
- package/package.json +1 -1
- package/plugins/common/config.cjs +14 -14
- package/plugins/common/config.js +19 -19
- package/plugins/common/generator.js +10 -10
- package/plugins/common/license.cjs +30 -30
- package/plugins/common/version.js +11 -11
- package/plugins/next/license.cjs +4 -4
- package/plugins/next/next.js +70 -70
- package/plugins/types/index.d.ts +1 -1
- package/plugins/types/needleConfig.d.ts +21 -21
- package/plugins/types/userconfig.d.ts +42 -42
- package/plugins/vite/alias.js +70 -70
- package/plugins/vite/build.js +19 -19
- package/plugins/vite/config.js +73 -73
- package/plugins/vite/copyfiles.js +134 -134
- package/plugins/vite/defines.js +45 -45
- package/plugins/vite/dependency-watcher.js +224 -224
- package/plugins/vite/drop-client.js +76 -76
- package/plugins/vite/drop.js +82 -82
- package/plugins/vite/editor-connection.js +121 -121
- package/plugins/vite/facebook-instant-games.js +99 -99
- package/plugins/vite/gzip.js +5 -5
- package/plugins/vite/imports-logger.js +143 -143
- package/plugins/vite/index.js +81 -81
- package/plugins/vite/license.js +42 -42
- package/plugins/vite/meta.js +149 -149
- package/plugins/vite/peer.js +31 -31
- package/plugins/vite/poster-client.js +59 -59
- package/plugins/vite/poster.js +73 -73
- package/plugins/vite/reload-client.js +15 -15
- package/plugins/vite/reload.js +363 -363
- package/plugins/vite/transform-codegen.js +55 -55
- package/plugins/vite/vite-4.4-hack.js +31 -31
- package/src/engine/api.ts +54 -54
- package/src/engine/assets/index.ts +4 -4
- package/src/engine/codegen/register_types.ts +441 -441
- package/src/engine/debug/debug.ts +29 -29
- package/src/engine/debug/debug_console.ts +213 -213
- package/src/engine/debug/debug_overlay.ts +283 -283
- package/src/engine/engine.ts +13 -13
- package/src/engine/engine_addressables.ts +494 -494
- package/src/engine/engine_application.ts +53 -53
- package/src/engine/engine_assetdatabase.ts +383 -383
- package/src/engine/engine_camera.ts +32 -32
- package/src/engine/engine_components.ts +266 -266
- package/src/engine/engine_components_internal.ts +42 -42
- package/src/engine/engine_constants.ts +42 -42
- package/src/engine/engine_context.ts +1386 -1386
- package/src/engine/engine_context_registry.ts +103 -103
- package/src/engine/engine_coroutine.ts +24 -24
- package/src/engine/engine_create_objects.ts +39 -39
- package/src/engine/engine_default_parameters.ts +3 -3
- package/src/engine/engine_editor-sync.ts +29 -29
- package/src/engine/engine_element.ts +592 -592
- package/src/engine/engine_element_attributes.ts +61 -61
- package/src/engine/engine_element_extras.ts +16 -16
- package/src/engine/engine_element_loading.ts +341 -341
- package/src/engine/engine_element_overlay.ts +160 -160
- package/src/engine/engine_fileloader.js +8 -8
- package/src/engine/engine_gameobject.ts +621 -621
- package/src/engine/engine_generic_utils.js +13 -13
- package/src/engine/engine_gizmos.ts +321 -321
- package/src/engine/engine_gltf.ts +30 -30
- package/src/engine/engine_gltf_builtin_components.ts +350 -350
- package/src/engine/engine_hot_reload.ts +196 -196
- package/src/engine/engine_input.ts +879 -879
- package/src/engine/engine_input_utils.ts +23 -23
- package/src/engine/engine_instancing.ts +42 -42
- package/src/engine/engine_license.ts +413 -413
- package/src/engine/engine_lifecycle_api.ts +29 -29
- package/src/engine/engine_lifecycle_functions_internal.ts +36 -36
- package/src/engine/engine_lightdata.ts +113 -113
- package/src/engine/engine_loaders.ts +77 -77
- package/src/engine/engine_mainloop_utils.ts +431 -431
- package/src/engine/engine_math.ts +174 -174
- package/src/engine/engine_networking.ts +742 -742
- package/src/engine/engine_networking_auto.ts +373 -373
- package/src/engine/engine_networking_files.ts +206 -206
- package/src/engine/engine_networking_files_default_components.ts +54 -54
- package/src/engine/engine_networking_instantiate.ts +362 -362
- package/src/engine/engine_networking_peer.ts +158 -158
- package/src/engine/engine_networking_streams.ts +489 -489
- package/src/engine/engine_networking_types.ts +18 -18
- package/src/engine/engine_networking_utils.ts +23 -23
- package/src/engine/engine_networking_websocket.ts +2 -2
- package/src/engine/engine_patcher.ts +199 -199
- package/src/engine/engine_physics.ts +287 -287
- package/src/engine/engine_physics.types.ts +43 -43
- package/src/engine/engine_physics_rapier.ts +1385 -1385
- package/src/engine/engine_playerview.ts +79 -79
- package/src/engine/engine_scenelighting.ts +313 -313
- package/src/engine/engine_scenetools.ts +242 -242
- package/src/engine/engine_serialization.ts +6 -6
- package/src/engine/engine_serialization_builtin_serializer.ts +415 -415
- package/src/engine/engine_serialization_core.ts +680 -680
- package/src/engine/engine_serialization_decorator.ts +68 -68
- package/src/engine/engine_setup.ts +1 -1
- package/src/engine/engine_shaders.ts +242 -242
- package/src/engine/engine_shims.ts +28 -28
- package/src/engine/engine_texture.ts +70 -70
- package/src/engine/engine_three_utils.ts +382 -382
- package/src/engine/engine_time.ts +55 -55
- package/src/engine/engine_types.ts +489 -489
- package/src/engine/engine_typestore.ts +41 -41
- package/src/engine/engine_util_decorator.ts +134 -134
- package/src/engine/engine_utils.ts +605 -605
- package/src/engine/engine_utils_screenshot.ts +84 -84
- package/src/engine/engine_web_api.ts +119 -119
- package/src/engine/extensions/EXT_texture_exr.ts +49 -49
- package/src/engine/extensions/NEEDLE_animator_controller_model.ts +193 -193
- package/src/engine/extensions/NEEDLE_components.ts +250 -250
- package/src/engine/extensions/NEEDLE_gameobject_data.ts +82 -82
- package/src/engine/extensions/NEEDLE_lighting_settings.ts +210 -210
- package/src/engine/extensions/NEEDLE_lightmaps.ts +130 -130
- package/src/engine/extensions/NEEDLE_persistent_assets.ts +75 -75
- package/src/engine/extensions/NEEDLE_progressive.ts +412 -412
- package/src/engine/extensions/NEEDLE_render_objects.ts +209 -209
- package/src/engine/extensions/NEEDLE_techniques_webgl.ts +618 -618
- package/src/engine/extensions/extension_resolver.ts +4 -4
- package/src/engine/extensions/extension_utils.ts +149 -149
- package/src/engine/extensions/extensions.ts +118 -118
- package/src/engine/extensions/index.ts +4 -4
- package/src/engine/extensions/usage_tracker.ts +95 -95
- package/src/engine/js-extensions/Camera.ts +34 -34
- package/src/engine/js-extensions/Layers.ts +19 -19
- package/src/engine/js-extensions/index.ts +1 -1
- package/src/engine/shaders/shaderData.ts +67 -67
- package/src/engine/tests/test_utils.ts +63 -63
- package/src/engine-components/AlignmentConstraint.ts +35 -35
- package/src/engine-components/Animation.ts +345 -345
- package/src/engine-components/AnimationCurve.ts +83 -83
- package/src/engine-components/AnimationUtils.ts +117 -117
- package/src/engine-components/Animator.ts +243 -243
- package/src/engine-components/AnimatorController.ts +1020 -1020
- package/src/engine-components/AudioListener.ts +32 -32
- package/src/engine-components/AudioSource.ts +419 -419
- package/src/engine-components/AvatarLoader.ts +204 -204
- package/src/engine-components/AxesHelper.ts +33 -33
- package/src/engine-components/BasicIKConstraint.ts +53 -53
- package/src/engine-components/BoxCollider.ts +1 -1
- package/src/engine-components/BoxHelperComponent.ts +100 -100
- package/src/engine-components/Camera.ts +454 -454
- package/src/engine-components/CameraUtils.ts +89 -89
- package/src/engine-components/CharacterController.ts +243 -243
- package/src/engine-components/Collider.ts +160 -160
- package/src/engine-components/Component.ts +670 -670
- package/src/engine-components/ContactShadows.ts +265 -265
- package/src/engine-components/DeleteBox.ts +35 -35
- package/src/engine-components/DeviceFlag.ts +42 -42
- package/src/engine-components/DragControls.ts +574 -574
- package/src/engine-components/DropListener.ts +112 -112
- package/src/engine-components/Duplicatable.ts +146 -146
- package/src/engine-components/EventList.ts +125 -125
- package/src/engine-components/EventTrigger.ts +47 -47
- package/src/engine-components/EventType.ts +87 -87
- package/src/engine-components/FlyControls.ts +31 -31
- package/src/engine-components/Fog.ts +59 -59
- package/src/engine-components/Gizmos.ts +52 -52
- package/src/engine-components/GridHelper.ts +40 -40
- package/src/engine-components/GroundProjection.ts +97 -97
- package/src/engine-components/Interactable.ts +18 -18
- package/src/engine-components/Joints.ts +51 -51
- package/src/engine-components/LODGroup.ts +145 -145
- package/src/engine-components/Light.ts +493 -493
- package/src/engine-components/LookAtConstraint.ts +11 -11
- package/src/engine-components/NestedGltf.ts +70 -70
- package/src/engine-components/Networking.ts +72 -72
- package/src/engine-components/OffsetConstraint.ts +59 -59
- package/src/engine-components/OrbitControls.ts +653 -653
- package/src/engine-components/ParticleSystem.ts +1192 -1192
- package/src/engine-components/ParticleSystemModules.ts +1481 -1481
- package/src/engine-components/ParticleSystemSubEmitter.ts +110 -110
- package/src/engine-components/PlayerColor.ts +93 -93
- package/src/engine-components/ReflectionProbe.ts +192 -192
- package/src/engine-components/Renderer.ts +1125 -1125
- package/src/engine-components/RendererLightmap.ts +145 -145
- package/src/engine-components/RigidBody.ts +453 -453
- package/src/engine-components/SceneSwitcher.ts +594 -594
- package/src/engine-components/ScreenCapture.ts +437 -437
- package/src/engine-components/ShadowCatcher.ts +149 -149
- package/src/engine-components/Skybox.ts +281 -281
- package/src/engine-components/SmoothFollow.ts +57 -57
- package/src/engine-components/SpatialTrigger.ts +142 -142
- package/src/engine-components/SpectatorCamera.ts +675 -675
- package/src/engine-components/SphereCollider.ts +1 -1
- package/src/engine-components/SpriteRenderer.ts +244 -244
- package/src/engine-components/SyncedCamera.ts +208 -208
- package/src/engine-components/SyncedRoom.ts +166 -166
- package/src/engine-components/SyncedTransform.ts +336 -336
- package/src/engine-components/TestRunner.ts +114 -114
- package/src/engine-components/TransformGizmo.ts +157 -157
- package/src/engine-components/VideoPlayer.ts +831 -831
- package/src/engine-components/Voip.ts +214 -214
- package/src/engine-components/XRFlag.ts +138 -138
- package/src/engine-components/api.ts +22 -22
- package/src/engine-components/avatar/AvatarBlink_Simple.ts +67 -67
- package/src/engine-components/avatar/AvatarEyeLook_Rotation.ts +68 -68
- package/src/engine-components/avatar/Avatar_Brain_LookAt.ts +136 -136
- package/src/engine-components/avatar/Avatar_MouthShapes.ts +81 -81
- package/src/engine-components/avatar/Avatar_MustacheShake.ts +28 -28
- package/src/engine-components/codegen/components.ts +216 -216
- package/src/engine-components/debug/LogStats.ts +21 -21
- package/src/engine-components/export/gltf/GltfExport.ts +231 -231
- package/src/engine-components/export/usdz/Extension.ts +11 -11
- package/src/engine-components/export/usdz/ThreeUSDZExporter.ts +1773 -1773
- package/src/engine-components/export/usdz/USDZExporter.ts +477 -477
- package/src/engine-components/export/usdz/extensions/Animation.ts +774 -774
- package/src/engine-components/export/usdz/extensions/DocumentExtension.ts +9 -9
- package/src/engine-components/export/usdz/extensions/USDZText.ts +287 -287
- package/src/engine-components/export/usdz/extensions/USDZUI.ts +119 -119
- package/src/engine-components/export/usdz/extensions/behavior/Actions.ts +98 -98
- package/src/engine-components/export/usdz/extensions/behavior/AudioExtension.ts +67 -67
- package/src/engine-components/export/usdz/extensions/behavior/Behaviour.ts +202 -202
- package/src/engine-components/export/usdz/extensions/behavior/BehaviourComponents.ts +963 -963
- package/src/engine-components/export/usdz/extensions/behavior/BehavioursBuilder.ts +517 -517
- package/src/engine-components/export/usdz/index.ts +2 -2
- package/src/engine-components/export/usdz/utils/animationutils.ts +100 -100
- package/src/engine-components/export/usdz/utils/quicklook.ts +42 -42
- package/src/engine-components/export/usdz/utils/timeutils.ts +19 -19
- package/src/engine-components/js-extensions/ExtensionUtils.ts +81 -81
- package/src/engine-components/js-extensions/Object3D.ts +181 -181
- package/src/engine-components/js-extensions/RGBAColor.ts +54 -54
- package/src/engine-components/js-extensions/Vector.ts +16 -16
- package/src/engine-components/js-extensions/index.ts +2 -2
- package/src/engine-components/postprocessing/Effects/Antialiasing.ts +51 -51
- package/src/engine-components/postprocessing/Effects/Bloom.ts +76 -76
- package/src/engine-components/postprocessing/Effects/ChromaticAberration.ts +35 -35
- package/src/engine-components/postprocessing/Effects/ColorAdjustments.ts +96 -96
- package/src/engine-components/postprocessing/Effects/DepthOfField.ts +93 -93
- package/src/engine-components/postprocessing/Effects/Pixelation.ts +26 -26
- package/src/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.ts +84 -84
- package/src/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.ts +98 -98
- package/src/engine-components/postprocessing/Effects/TiltShiftEffect.ts +55 -55
- package/src/engine-components/postprocessing/Effects/Tonemapping.ts +54 -54
- package/src/engine-components/postprocessing/Effects/Vignette.ts +54 -54
- package/src/engine-components/postprocessing/PostProcessingEffect.ts +148 -148
- package/src/engine-components/postprocessing/PostProcessingHandler.ts +232 -232
- package/src/engine-components/postprocessing/Volume.ts +216 -216
- package/src/engine-components/postprocessing/VolumeParameter.ts +92 -92
- package/src/engine-components/postprocessing/VolumeProfile.ts +40 -40
- package/src/engine-components/postprocessing/index.ts +3 -3
- package/src/engine-components/timeline/PlayableDirector.ts +666 -666
- package/src/engine-components/timeline/SignalAsset.ts +138 -138
- package/src/engine-components/timeline/TimelineModels.ts +93 -93
- package/src/engine-components/timeline/TimelineTracks.ts +906 -906
- package/src/engine-components/timeline/index.ts +3 -3
- package/src/engine-components/ui/BaseUIComponent.ts +195 -195
- package/src/engine-components/ui/Button.ts +283 -283
- package/src/engine-components/ui/Canvas.ts +390 -390
- package/src/engine-components/ui/CanvasGroup.ts +49 -49
- package/src/engine-components/ui/EventSystem.ts +736 -736
- package/src/engine-components/ui/Graphic.ts +255 -255
- package/src/engine-components/ui/Image.ts +102 -102
- package/src/engine-components/ui/InputField.ts +290 -290
- package/src/engine-components/ui/Interfaces.ts +57 -57
- package/src/engine-components/ui/Layout.ts +322 -322
- package/src/engine-components/ui/Outline.ts +12 -12
- package/src/engine-components/ui/PointerEvents.ts +118 -118
- package/src/engine-components/ui/RaycastUtils.ts +68 -68
- package/src/engine-components/ui/Raycaster.ts +73 -73
- package/src/engine-components/ui/RectTransform.ts +364 -364
- package/src/engine-components/ui/SpatialHtml.ts +63 -63
- package/src/engine-components/ui/Text.ts +572 -572
- package/src/engine-components/ui/Utils.ts +110 -110
- package/src/engine-components/utils/LookAt.ts +65 -65
- package/src/engine-components/utils/OpenURL.ts +118 -118
- package/src/engine-components/webxr/WebARCameraBackground.ts +224 -224
- package/src/engine-components/webxr/WebARSessionRoot.ts +446 -446
- package/src/engine-components/webxr/WebXR.ts +761 -761
- package/src/engine-components/webxr/WebXRAvatar.ts +356 -356
- package/src/engine-components/webxr/WebXRController.ts +1168 -1168
- package/src/engine-components/webxr/WebXRGrabRendering.ts +150 -150
- package/src/engine-components/webxr/WebXRImageTracking.ts +371 -371
- package/src/engine-components/webxr/WebXRPlaneTracking.ts +429 -429
- package/src/engine-components/webxr/WebXRRig.ts +21 -21
- package/src/engine-components/webxr/WebXRSync.ts +463 -463
- package/src/engine-components/webxr/index.ts +3 -3
- package/src/engine-components-experimental/Presentation.ts +12 -12
- package/src/engine-components-experimental/networking/PlayerSync.ts +217 -217
- package/src/engine-schemes/COMPILE_SCHEMES.bat +3 -3
- package/src/engine-schemes/COMPILE_TS.bat +11 -11
- package/src/engine-schemes/schemes.ts +27 -27
- package/src/engine-schemes/synced-camera-model.ts +92 -92
- package/src/engine-schemes/synced-transform-model.ts +90 -90
- package/src/engine-schemes/syncedCamera.fbs +10 -10
- package/src/engine-schemes/transform.ts +50 -50
- package/src/engine-schemes/transforms.fbs +25 -25
- package/src/engine-schemes/vec.fbs +19 -19
- package/src/engine-schemes/vec2.ts +33 -33
- package/src/engine-schemes/vec3.ts +38 -38
- package/src/engine-schemes/vec4.ts +43 -43
- package/src/engine-schemes/vr-user-state-buffer.ts +138 -138
- package/src/engine-schemes/vrUserStateBuffer.fbs +16 -16
- package/src/include/draco/draco_decoder.js +34 -34
- package/src/include/draco/draco_wasm_wrapper.js +117 -117
- package/src/include/ktx2/basis_transcoder.js +21 -21
- package/src/include/needle/arial-msdf.json +1471 -1471
- package/src/include/three/ARButton.js +231 -231
- package/src/include/three/DragControls.js +231 -231
- package/src/include/three/EXT_mesh_gpu_instancing_exporter.js +66 -66
- package/src/include/three/VRButton.js +194 -194
- package/src/needle-engine.ts +55 -55
- package/src/engine/dist/api.js +0 -73
- package/src/engine/dist/api.js.meta +0 -7
- package/src/engine/dist/engine_networking_streams.js +0 -474
- package/src/engine/dist/engine_networking_streams.js.meta +0 -7
- package/src/engine-schemes/dist/api.js +0 -17
- package/src/engine-schemes/dist/api.js.meta +0 -7
- package/src/engine-schemes/dist/schemes.js +0 -25
- package/src/engine-schemes/dist/schemes.js.meta +0 -7
- package/src/engine-schemes/dist/synced-camera-model.js +0 -74
- package/src/engine-schemes/dist/synced-camera-model.js.meta +0 -7
- package/src/engine-schemes/dist/synced-transform-model.js +0 -73
- package/src/engine-schemes/dist/synced-transform-model.js.meta +0 -7
- package/src/engine-schemes/dist/transform.js +0 -46
- package/src/engine-schemes/dist/transform.js.meta +0 -7
- package/src/engine-schemes/dist/vec2.js +0 -32
- package/src/engine-schemes/dist/vec2.js.meta +0 -7
- package/src/engine-schemes/dist/vec3.js +0 -36
- package/src/engine-schemes/dist/vec3.js.meta +0 -7
- package/src/engine-schemes/dist/vec4.js +0 -40
- package/src/engine-schemes/dist/vec4.js.meta +0 -7
- package/src/engine-schemes/dist/vr-user-state-buffer.js +0 -110
- package/src/engine-schemes/dist/vr-user-state-buffer.js.meta +0 -7
- package/src/engine-schemes/flatc.exe +0 -0
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
import { Vector3 } from "three";
|
|
2
|
-
import { CircularBuffer } from "./engine_utils.js";
|
|
3
|
-
export const $physicsKey = Symbol("object");
|
|
4
|
-
const contactsVectorBuffer = new CircularBuffer(() => new Vector3(), 20);
|
|
5
|
-
export class ContactPoint {
|
|
6
|
-
_point;
|
|
7
|
-
_normal;
|
|
8
|
-
_tangentVelocity;
|
|
9
|
-
/** the distance of the collision point */
|
|
10
|
-
distance;
|
|
11
|
-
/** the impulse velocity */
|
|
12
|
-
impulse;
|
|
13
|
-
friction;
|
|
14
|
-
/** worldspace point */
|
|
15
|
-
get point() {
|
|
16
|
-
const target = contactsVectorBuffer.get();
|
|
17
|
-
return target.set(this._point.x, this._point.y, this._point.z);
|
|
18
|
-
}
|
|
19
|
-
/** worldspace normal */
|
|
20
|
-
get normal() {
|
|
21
|
-
const target = contactsVectorBuffer.get();
|
|
22
|
-
return target.set(this._normal.x, this._normal.y, this._normal.z);
|
|
23
|
-
}
|
|
24
|
-
/** worldspace tangent */
|
|
25
|
-
get tangentVelocity() {
|
|
26
|
-
const target = contactsVectorBuffer.get();
|
|
27
|
-
return target.set(this._tangentVelocity.x, this._tangentVelocity.y, this._tangentVelocity.z);
|
|
28
|
-
}
|
|
29
|
-
constructor(point, dist, normal, impulse, friction, tangentVelocity) {
|
|
30
|
-
this._point = point;
|
|
31
|
-
this.distance = dist;
|
|
32
|
-
this._normal = normal;
|
|
33
|
-
this.impulse = impulse;
|
|
34
|
-
this.friction = friction;
|
|
35
|
-
this._tangentVelocity = tangentVelocity;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
/// all info in here must be readonly because the object is only created once per started collision
|
|
39
|
-
export class Collision {
|
|
40
|
-
/** The contact points of this collision. Contains information about positions, normals, distance, friction, impulse... */
|
|
41
|
-
contacts;
|
|
42
|
-
constructor(obj, otherCollider, contacts) {
|
|
43
|
-
this.me = obj;
|
|
44
|
-
this._collider = otherCollider;
|
|
45
|
-
this._gameObject = otherCollider.gameObject;
|
|
46
|
-
this.contacts = contacts;
|
|
47
|
-
}
|
|
48
|
-
/** the gameobject this collision event belongs to (e.g. if onCollisionEnter is called then `me` is the same as `this.gameObject`) */
|
|
49
|
-
me;
|
|
50
|
-
_collider;
|
|
51
|
-
/** the other collider the collision happened with */
|
|
52
|
-
get collider() {
|
|
53
|
-
return this._collider;
|
|
54
|
-
}
|
|
55
|
-
_gameObject;
|
|
56
|
-
/** the other object the collision happened with */
|
|
57
|
-
get gameObject() {
|
|
58
|
-
return this._gameObject;
|
|
59
|
-
}
|
|
60
|
-
/** the other rigidbody we hit, null if none attached */
|
|
61
|
-
get rigidBody() {
|
|
62
|
-
return this.collider?.attachedRigidbody;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
export class SphereOverlapResult {
|
|
66
|
-
object;
|
|
67
|
-
collider;
|
|
68
|
-
constructor(object, collider) {
|
|
69
|
-
this.object = object;
|
|
70
|
-
this.collider = collider;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
1
|
+
import { Vector3 } from "three";
|
|
2
|
+
import { CircularBuffer } from "./engine_utils.js";
|
|
3
|
+
export const $physicsKey = Symbol("object");
|
|
4
|
+
const contactsVectorBuffer = new CircularBuffer(() => new Vector3(), 20);
|
|
5
|
+
export class ContactPoint {
|
|
6
|
+
_point;
|
|
7
|
+
_normal;
|
|
8
|
+
_tangentVelocity;
|
|
9
|
+
/** the distance of the collision point */
|
|
10
|
+
distance;
|
|
11
|
+
/** the impulse velocity */
|
|
12
|
+
impulse;
|
|
13
|
+
friction;
|
|
14
|
+
/** worldspace point */
|
|
15
|
+
get point() {
|
|
16
|
+
const target = contactsVectorBuffer.get();
|
|
17
|
+
return target.set(this._point.x, this._point.y, this._point.z);
|
|
18
|
+
}
|
|
19
|
+
/** worldspace normal */
|
|
20
|
+
get normal() {
|
|
21
|
+
const target = contactsVectorBuffer.get();
|
|
22
|
+
return target.set(this._normal.x, this._normal.y, this._normal.z);
|
|
23
|
+
}
|
|
24
|
+
/** worldspace tangent */
|
|
25
|
+
get tangentVelocity() {
|
|
26
|
+
const target = contactsVectorBuffer.get();
|
|
27
|
+
return target.set(this._tangentVelocity.x, this._tangentVelocity.y, this._tangentVelocity.z);
|
|
28
|
+
}
|
|
29
|
+
constructor(point, dist, normal, impulse, friction, tangentVelocity) {
|
|
30
|
+
this._point = point;
|
|
31
|
+
this.distance = dist;
|
|
32
|
+
this._normal = normal;
|
|
33
|
+
this.impulse = impulse;
|
|
34
|
+
this.friction = friction;
|
|
35
|
+
this._tangentVelocity = tangentVelocity;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/// all info in here must be readonly because the object is only created once per started collision
|
|
39
|
+
export class Collision {
|
|
40
|
+
/** The contact points of this collision. Contains information about positions, normals, distance, friction, impulse... */
|
|
41
|
+
contacts;
|
|
42
|
+
constructor(obj, otherCollider, contacts) {
|
|
43
|
+
this.me = obj;
|
|
44
|
+
this._collider = otherCollider;
|
|
45
|
+
this._gameObject = otherCollider.gameObject;
|
|
46
|
+
this.contacts = contacts;
|
|
47
|
+
}
|
|
48
|
+
/** the gameobject this collision event belongs to (e.g. if onCollisionEnter is called then `me` is the same as `this.gameObject`) */
|
|
49
|
+
me;
|
|
50
|
+
_collider;
|
|
51
|
+
/** the other collider the collision happened with */
|
|
52
|
+
get collider() {
|
|
53
|
+
return this._collider;
|
|
54
|
+
}
|
|
55
|
+
_gameObject;
|
|
56
|
+
/** the other object the collision happened with */
|
|
57
|
+
get gameObject() {
|
|
58
|
+
return this._gameObject;
|
|
59
|
+
}
|
|
60
|
+
/** the other rigidbody we hit, null if none attached */
|
|
61
|
+
get rigidBody() {
|
|
62
|
+
return this.collider?.attachedRigidbody;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
export class SphereOverlapResult {
|
|
66
|
+
object;
|
|
67
|
+
collider;
|
|
68
|
+
constructor(object, collider) {
|
|
69
|
+
this.object = object;
|
|
70
|
+
this.collider = collider;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
73
|
//# sourceMappingURL=engine_types.js.map
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
declare class _TypeStore {
|
|
2
|
-
private _types;
|
|
3
|
-
add(key: any, type: any): void;
|
|
4
|
-
get(key: any): any;
|
|
5
|
-
}
|
|
6
|
-
export declare const $BuiltInTypeFlag: unique symbol;
|
|
7
|
-
export declare const TypeStore: _TypeStore;
|
|
8
|
-
/**
|
|
9
|
-
* add to a class declaration to automatically register it to the TypeStore (required for HMR right now)
|
|
10
|
-
*
|
|
11
|
-
* `@registerType`
|
|
12
|
-
*
|
|
13
|
-
* `export class MyType extends Behaviour { ... }`
|
|
14
|
-
*/
|
|
15
|
-
export declare const registerType: (constructor: Function) => void;
|
|
16
|
-
export {};
|
|
1
|
+
declare class _TypeStore {
|
|
2
|
+
private _types;
|
|
3
|
+
add(key: any, type: any): void;
|
|
4
|
+
get(key: any): any;
|
|
5
|
+
}
|
|
6
|
+
export declare const $BuiltInTypeFlag: unique symbol;
|
|
7
|
+
export declare const TypeStore: _TypeStore;
|
|
8
|
+
/**
|
|
9
|
+
* add to a class declaration to automatically register it to the TypeStore (required for HMR right now)
|
|
10
|
+
*
|
|
11
|
+
* `@registerType`
|
|
12
|
+
*
|
|
13
|
+
* `export class MyType extends Behaviour { ... }`
|
|
14
|
+
*/
|
|
15
|
+
export declare const registerType: (constructor: Function) => void;
|
|
16
|
+
export {};
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
import { getParam } from "./engine_utils.js";
|
|
2
|
-
const debug = getParam("debugtypes");
|
|
3
|
-
class _TypeStore {
|
|
4
|
-
_types = {};
|
|
5
|
-
add(key, type) {
|
|
6
|
-
if (debug)
|
|
7
|
-
console.warn("ADD TYPE", key);
|
|
8
|
-
const existing = this._types[key];
|
|
9
|
-
if (existing === undefined)
|
|
10
|
-
this._types[key] = type;
|
|
11
|
-
else {
|
|
12
|
-
if (debug) {
|
|
13
|
-
if (existing !== type) {
|
|
14
|
-
console.warn("Type name exists multiple times in your project and may lead to runtime errors:", key);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
get(key) {
|
|
20
|
-
return this._types[key];
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
export const $BuiltInTypeFlag = Symbol("BuiltInType");
|
|
24
|
-
export const TypeStore = new _TypeStore();
|
|
25
|
-
/**
|
|
26
|
-
* add to a class declaration to automatically register it to the TypeStore (required for HMR right now)
|
|
27
|
-
*
|
|
28
|
-
* `@registerType`
|
|
29
|
-
*
|
|
30
|
-
* `export class MyType extends Behaviour { ... }`
|
|
31
|
-
*/
|
|
32
|
-
export const registerType = function (constructor) {
|
|
33
|
-
if (!TypeStore.get(constructor.name))
|
|
34
|
-
TypeStore.add(constructor.name, constructor);
|
|
35
|
-
};
|
|
1
|
+
import { getParam } from "./engine_utils.js";
|
|
2
|
+
const debug = getParam("debugtypes");
|
|
3
|
+
class _TypeStore {
|
|
4
|
+
_types = {};
|
|
5
|
+
add(key, type) {
|
|
6
|
+
if (debug)
|
|
7
|
+
console.warn("ADD TYPE", key);
|
|
8
|
+
const existing = this._types[key];
|
|
9
|
+
if (existing === undefined)
|
|
10
|
+
this._types[key] = type;
|
|
11
|
+
else {
|
|
12
|
+
if (debug) {
|
|
13
|
+
if (existing !== type) {
|
|
14
|
+
console.warn("Type name exists multiple times in your project and may lead to runtime errors:", key);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
get(key) {
|
|
20
|
+
return this._types[key];
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export const $BuiltInTypeFlag = Symbol("BuiltInType");
|
|
24
|
+
export const TypeStore = new _TypeStore();
|
|
25
|
+
/**
|
|
26
|
+
* add to a class declaration to automatically register it to the TypeStore (required for HMR right now)
|
|
27
|
+
*
|
|
28
|
+
* `@registerType`
|
|
29
|
+
*
|
|
30
|
+
* `export class MyType extends Behaviour { ... }`
|
|
31
|
+
*/
|
|
32
|
+
export const registerType = function (constructor) {
|
|
33
|
+
if (!TypeStore.get(constructor.name))
|
|
34
|
+
TypeStore.add(constructor.name, constructor);
|
|
35
|
+
};
|
|
36
36
|
//# sourceMappingURL=engine_typestore.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { type Constructor, type IComponent } from "./engine_types.js";
|
|
2
|
-
declare type setter = (v: any) => void;
|
|
3
|
-
declare type getter = () => any;
|
|
4
|
-
/** create accessor callbacks for a field */
|
|
5
|
-
export declare const validate: (set?: setter, get?: getter) => (target: IComponent | any, propertyKey: string, descriptor?: undefined) => void;
|
|
6
|
-
/** experimental attribute - use to hook into another type's methods and run before the other methods run (similar to Harmony prefixes).
|
|
7
|
-
* Return false to prevent the original method from running.
|
|
8
|
-
*/
|
|
9
|
-
export declare const prefix: <T>(type: Constructor<T>) => (target: IComponent | any, _propertyKey: string | {
|
|
10
|
-
name: string;
|
|
11
|
-
}, _PropertyDescriptor: PropertyDescriptor) => void;
|
|
12
|
-
export {};
|
|
1
|
+
import { type Constructor, type IComponent } from "./engine_types.js";
|
|
2
|
+
declare type setter = (v: any) => void;
|
|
3
|
+
declare type getter = () => any;
|
|
4
|
+
/** create accessor callbacks for a field */
|
|
5
|
+
export declare const validate: (set?: setter, get?: getter) => (target: IComponent | any, propertyKey: string, descriptor?: undefined) => void;
|
|
6
|
+
/** experimental attribute - use to hook into another type's methods and run before the other methods run (similar to Harmony prefixes).
|
|
7
|
+
* Return false to prevent the original method from running.
|
|
8
|
+
*/
|
|
9
|
+
export declare const prefix: <T>(type: Constructor<T>) => (target: IComponent | any, _propertyKey: string | {
|
|
10
|
+
name: string;
|
|
11
|
+
}, _PropertyDescriptor: PropertyDescriptor) => void;
|
|
12
|
+
export {};
|
|
@@ -1,116 +1,116 @@
|
|
|
1
|
-
import { $isAssigningProperties } from "./engine_serialization_core.js";
|
|
2
|
-
import { LogType, isDevEnvironment, showBalloonMessage } from "./debug/index.js";
|
|
3
|
-
import { Quaternion, Vector2, Vector3, Vector4 } from "three";
|
|
4
|
-
import { watchWrite } from "./engine_utils.js";
|
|
5
|
-
/** create accessor callbacks for a field */
|
|
6
|
-
export const validate = function (set, get) {
|
|
7
|
-
// "descriptor : undefined" prevents @validate() to be added to property getters or setters
|
|
8
|
-
return function (target, propertyKey, descriptor) {
|
|
9
|
-
createPropertyWrapper(target, propertyKey, descriptor, set, get);
|
|
10
|
-
};
|
|
11
|
-
};
|
|
12
|
-
function createPropertyWrapper(target, _propertyKey, descriptor, set, get) {
|
|
13
|
-
if (!get && !set && !target.onValidate)
|
|
14
|
-
return;
|
|
15
|
-
// this is not undefined when its a property getter or setter already and not just a field
|
|
16
|
-
// we currently only support validation of fields
|
|
17
|
-
if (descriptor !== undefined) {
|
|
18
|
-
console.error("Invalid usage of validate decorator. Only fields can be validated.", target, _propertyKey, descriptor);
|
|
19
|
-
showBalloonMessage("Invalid usage of validate decorator. Only fields can be validated. Property: " + _propertyKey, LogType.Error);
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
let propertyKey = "";
|
|
23
|
-
if (typeof _propertyKey === "string")
|
|
24
|
-
propertyKey = _propertyKey;
|
|
25
|
-
else
|
|
26
|
-
propertyKey = _propertyKey.name;
|
|
27
|
-
if (target.__internalAwake) {
|
|
28
|
-
// this is the hidden key we save the original property to
|
|
29
|
-
const $prop = Symbol(propertyKey);
|
|
30
|
-
// save the original awake method
|
|
31
|
-
// we need to delay decoration until the object has been created
|
|
32
|
-
const awake = target.__internalAwake;
|
|
33
|
-
target.__internalAwake = function () {
|
|
34
|
-
if (!this.onValidate) {
|
|
35
|
-
if (isDevEnvironment())
|
|
36
|
-
console.warn("Usage of @validate decorate detected but there is no onValidate method in your class: \"" + target.constructor?.name + "\"");
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
// only build wrapper once per type
|
|
40
|
-
if (this[$prop] === undefined) {
|
|
41
|
-
// make sure the field is initialized in a hidden property
|
|
42
|
-
this[$prop] = this[propertyKey];
|
|
43
|
-
// For complex types we need to watch the write operation (the underlying values)
|
|
44
|
-
// Since the object itself doesnt change (normally)
|
|
45
|
-
// This is relevant if we want to use @validate() on e.g. a Vector3 which is animated from an animationclip
|
|
46
|
-
const _val = this[propertyKey];
|
|
47
|
-
if (_val instanceof Vector2 ||
|
|
48
|
-
_val instanceof Vector3 ||
|
|
49
|
-
_val instanceof Vector4 ||
|
|
50
|
-
_val instanceof Quaternion) {
|
|
51
|
-
const vec = this[propertyKey];
|
|
52
|
-
const cb = () => { this.onValidate(propertyKey); };
|
|
53
|
-
watchWrite(vec, cb);
|
|
54
|
-
}
|
|
55
|
-
Object.defineProperty(this, propertyKey, {
|
|
56
|
-
set: function (v) {
|
|
57
|
-
if (this[$isAssigningProperties] === true) {
|
|
58
|
-
this[$prop] = v;
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
set?.call(this, v);
|
|
62
|
-
const oldValue = this[$prop];
|
|
63
|
-
this[$prop] = v;
|
|
64
|
-
this.onValidate?.call(this, propertyKey, oldValue);
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
get: function () {
|
|
68
|
-
get?.call(this);
|
|
69
|
-
return this[$prop];
|
|
70
|
-
},
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
// call the original awake method
|
|
74
|
-
awake.call(this);
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
/** experimental attribute - use to hook into another type's methods and run before the other methods run (similar to Harmony prefixes).
|
|
79
|
-
* Return false to prevent the original method from running.
|
|
80
|
-
*/
|
|
81
|
-
export const prefix = function (type) {
|
|
82
|
-
return function (target, _propertyKey, _PropertyDescriptor) {
|
|
83
|
-
let propertyKey = "";
|
|
84
|
-
if (typeof _propertyKey === "string")
|
|
85
|
-
propertyKey = _propertyKey;
|
|
86
|
-
else
|
|
87
|
-
propertyKey = _propertyKey.name;
|
|
88
|
-
const targetType = type.prototype;
|
|
89
|
-
const originalProp = Object.getOwnPropertyDescriptor(targetType, propertyKey);
|
|
90
|
-
if (!originalProp?.value) {
|
|
91
|
-
console.warn("Can not apply prefix: type does not have method named", _propertyKey, type);
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
const originalValue = originalProp.value;
|
|
95
|
-
const prefix = target[propertyKey];
|
|
96
|
-
Object.defineProperty(targetType, propertyKey, {
|
|
97
|
-
value: function (...args) {
|
|
98
|
-
const res = prefix?.call(this, ...args);
|
|
99
|
-
// If the prefix method is async we need to check if the user returned false
|
|
100
|
-
// In which case we don't want to call the original method
|
|
101
|
-
if (res instanceof Promise) {
|
|
102
|
-
res.then((r) => {
|
|
103
|
-
if (r === false)
|
|
104
|
-
return;
|
|
105
|
-
return originalValue.call(this, ...args);
|
|
106
|
-
});
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
if (res === false)
|
|
110
|
-
return;
|
|
111
|
-
return originalValue.call(this, ...args);
|
|
112
|
-
},
|
|
113
|
-
});
|
|
114
|
-
};
|
|
115
|
-
};
|
|
1
|
+
import { $isAssigningProperties } from "./engine_serialization_core.js";
|
|
2
|
+
import { LogType, isDevEnvironment, showBalloonMessage } from "./debug/index.js";
|
|
3
|
+
import { Quaternion, Vector2, Vector3, Vector4 } from "three";
|
|
4
|
+
import { watchWrite } from "./engine_utils.js";
|
|
5
|
+
/** create accessor callbacks for a field */
|
|
6
|
+
export const validate = function (set, get) {
|
|
7
|
+
// "descriptor : undefined" prevents @validate() to be added to property getters or setters
|
|
8
|
+
return function (target, propertyKey, descriptor) {
|
|
9
|
+
createPropertyWrapper(target, propertyKey, descriptor, set, get);
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
function createPropertyWrapper(target, _propertyKey, descriptor, set, get) {
|
|
13
|
+
if (!get && !set && !target.onValidate)
|
|
14
|
+
return;
|
|
15
|
+
// this is not undefined when its a property getter or setter already and not just a field
|
|
16
|
+
// we currently only support validation of fields
|
|
17
|
+
if (descriptor !== undefined) {
|
|
18
|
+
console.error("Invalid usage of validate decorator. Only fields can be validated.", target, _propertyKey, descriptor);
|
|
19
|
+
showBalloonMessage("Invalid usage of validate decorator. Only fields can be validated. Property: " + _propertyKey, LogType.Error);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
let propertyKey = "";
|
|
23
|
+
if (typeof _propertyKey === "string")
|
|
24
|
+
propertyKey = _propertyKey;
|
|
25
|
+
else
|
|
26
|
+
propertyKey = _propertyKey.name;
|
|
27
|
+
if (target.__internalAwake) {
|
|
28
|
+
// this is the hidden key we save the original property to
|
|
29
|
+
const $prop = Symbol(propertyKey);
|
|
30
|
+
// save the original awake method
|
|
31
|
+
// we need to delay decoration until the object has been created
|
|
32
|
+
const awake = target.__internalAwake;
|
|
33
|
+
target.__internalAwake = function () {
|
|
34
|
+
if (!this.onValidate) {
|
|
35
|
+
if (isDevEnvironment())
|
|
36
|
+
console.warn("Usage of @validate decorate detected but there is no onValidate method in your class: \"" + target.constructor?.name + "\"");
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
// only build wrapper once per type
|
|
40
|
+
if (this[$prop] === undefined) {
|
|
41
|
+
// make sure the field is initialized in a hidden property
|
|
42
|
+
this[$prop] = this[propertyKey];
|
|
43
|
+
// For complex types we need to watch the write operation (the underlying values)
|
|
44
|
+
// Since the object itself doesnt change (normally)
|
|
45
|
+
// This is relevant if we want to use @validate() on e.g. a Vector3 which is animated from an animationclip
|
|
46
|
+
const _val = this[propertyKey];
|
|
47
|
+
if (_val instanceof Vector2 ||
|
|
48
|
+
_val instanceof Vector3 ||
|
|
49
|
+
_val instanceof Vector4 ||
|
|
50
|
+
_val instanceof Quaternion) {
|
|
51
|
+
const vec = this[propertyKey];
|
|
52
|
+
const cb = () => { this.onValidate(propertyKey); };
|
|
53
|
+
watchWrite(vec, cb);
|
|
54
|
+
}
|
|
55
|
+
Object.defineProperty(this, propertyKey, {
|
|
56
|
+
set: function (v) {
|
|
57
|
+
if (this[$isAssigningProperties] === true) {
|
|
58
|
+
this[$prop] = v;
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
set?.call(this, v);
|
|
62
|
+
const oldValue = this[$prop];
|
|
63
|
+
this[$prop] = v;
|
|
64
|
+
this.onValidate?.call(this, propertyKey, oldValue);
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
get: function () {
|
|
68
|
+
get?.call(this);
|
|
69
|
+
return this[$prop];
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
// call the original awake method
|
|
74
|
+
awake.call(this);
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/** experimental attribute - use to hook into another type's methods and run before the other methods run (similar to Harmony prefixes).
|
|
79
|
+
* Return false to prevent the original method from running.
|
|
80
|
+
*/
|
|
81
|
+
export const prefix = function (type) {
|
|
82
|
+
return function (target, _propertyKey, _PropertyDescriptor) {
|
|
83
|
+
let propertyKey = "";
|
|
84
|
+
if (typeof _propertyKey === "string")
|
|
85
|
+
propertyKey = _propertyKey;
|
|
86
|
+
else
|
|
87
|
+
propertyKey = _propertyKey.name;
|
|
88
|
+
const targetType = type.prototype;
|
|
89
|
+
const originalProp = Object.getOwnPropertyDescriptor(targetType, propertyKey);
|
|
90
|
+
if (!originalProp?.value) {
|
|
91
|
+
console.warn("Can not apply prefix: type does not have method named", _propertyKey, type);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
const originalValue = originalProp.value;
|
|
95
|
+
const prefix = target[propertyKey];
|
|
96
|
+
Object.defineProperty(targetType, propertyKey, {
|
|
97
|
+
value: function (...args) {
|
|
98
|
+
const res = prefix?.call(this, ...args);
|
|
99
|
+
// If the prefix method is async we need to check if the user returned false
|
|
100
|
+
// In which case we don't want to call the original method
|
|
101
|
+
if (res instanceof Promise) {
|
|
102
|
+
res.then((r) => {
|
|
103
|
+
if (r === false)
|
|
104
|
+
return;
|
|
105
|
+
return originalValue.call(this, ...args);
|
|
106
|
+
});
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
if (res === false)
|
|
110
|
+
return;
|
|
111
|
+
return originalValue.call(this, ...args);
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
116
|
//# sourceMappingURL=engine_util_decorator.js.map
|