@needle-tools/engine 3.28.7-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 -2256
- package/LICENSE.md +10 -10
- package/README.md +52 -52
- package/dist/needle-engine.js +9 -12
- package/dist/needle-engine.light.js +9 -12
- package/dist/needle-engine.light.min.js +8 -11
- package/dist/needle-engine.light.umd.cjs +8 -11
- package/dist/needle-engine.min.js +8 -11
- package/dist/needle-engine.umd.cjs +8 -11
- 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/AnimatorController.js.map +1 -1
- 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,542 +1,542 @@
|
|
|
1
|
-
import * as threeutils from "../engine/engine_three_utils.js";
|
|
2
|
-
import { activeInHierarchyFieldName } from "../engine/engine_constants.js";
|
|
3
|
-
import { Context, FrameEvent } from "../engine/engine_setup.js";
|
|
4
|
-
import * as main from "../engine/engine_mainloop_utils.js";
|
|
5
|
-
import { syncDestroy, syncInstantiate } from "../engine/engine_networking_instantiate.js";
|
|
6
|
-
import { addNewComponent, destroyComponentInstance, findObjectOfType, findObjectsOfType, getComponent, getComponentInChildren, getComponentInParent, getComponents, getComponentsInChildren, getComponentsInParent, getOrAddComponent, moveComponentInstance, removeComponent } from "../engine/engine_components.js";
|
|
7
|
-
import { findByGuid, destroy, instantiate, foreachComponent, markAsInstancedRendered, isActiveInHierarchy, isActiveSelf, isUsingInstancing, setActive, isDestroyed } from "../engine/engine_gameobject.js";
|
|
8
|
-
import { Object3D, Vector3 } from "three";
|
|
9
|
-
import { isDevEnvironment } from "../engine/debug/index.js";
|
|
10
|
-
// export interface ISerializationCallbackReceiver {
|
|
11
|
-
// onBeforeSerialize?(): object | void;
|
|
12
|
-
// onAfterSerialize?();
|
|
13
|
-
// onBeforeDeserialize?(data?: any);
|
|
14
|
-
// onAfterDeserialize?();
|
|
15
|
-
// onDeserialize?(key: string, value: any): any | void;
|
|
16
|
-
// }
|
|
17
|
-
export class GameObject extends Object3D {
|
|
18
|
-
guid;
|
|
19
|
-
static isDestroyed(go) {
|
|
20
|
-
return isDestroyed(go);
|
|
21
|
-
}
|
|
22
|
-
static setActive(go, active, processStart = true) {
|
|
23
|
-
if (!go)
|
|
24
|
-
return;
|
|
25
|
-
setActive(go, active);
|
|
26
|
-
// TODO: do we still need this?:
|
|
27
|
-
main.updateIsActive(go);
|
|
28
|
-
if (active && processStart)
|
|
29
|
-
main.processStart(Context.Current, go);
|
|
30
|
-
}
|
|
31
|
-
/** If the object is active (same as go.visible) */
|
|
32
|
-
static isActiveSelf(go) {
|
|
33
|
-
return isActiveSelf(go);
|
|
34
|
-
}
|
|
35
|
-
/** If the object is active in the hierarchy (e.g. if any parent is invisible or not in the scene it will be false)
|
|
36
|
-
* @param go object to check
|
|
37
|
-
*/
|
|
38
|
-
static isActiveInHierarchy(go) {
|
|
39
|
-
return isActiveInHierarchy(go);
|
|
40
|
-
}
|
|
41
|
-
static markAsInstancedRendered(go, instanced) {
|
|
42
|
-
markAsInstancedRendered(go, instanced);
|
|
43
|
-
}
|
|
44
|
-
static isUsingInstancing(instance) { return isUsingInstancing(instance); }
|
|
45
|
-
/** Run a callback for all components of the provided type on the provided object and its children (if recursive is true)
|
|
46
|
-
* @param instance object to run the method on
|
|
47
|
-
* @param cb callback to run on each component, "return undefined;" to continue and "return <anything>;" to break the loop
|
|
48
|
-
* @param recursive if true, the method will be run on all children as well
|
|
49
|
-
* @returns the last return value of the callback
|
|
50
|
-
*/
|
|
51
|
-
static foreachComponent(instance, cb, recursive = true) {
|
|
52
|
-
return foreachComponent(instance, cb, recursive);
|
|
53
|
-
}
|
|
54
|
-
/** Creates a new instance of the provided object. The new instance will be created on all connected clients
|
|
55
|
-
* @param instance object to instantiate
|
|
56
|
-
* @param opts options for the instantiation
|
|
57
|
-
*/
|
|
58
|
-
static instantiateSynced(instance, opts) {
|
|
59
|
-
if (!instance)
|
|
60
|
-
return null;
|
|
61
|
-
return syncInstantiate(instance, opts);
|
|
62
|
-
}
|
|
63
|
-
/** Creates a new instance of the provided object (like cloning it including all components and children)
|
|
64
|
-
* @param instance object to instantiate
|
|
65
|
-
* @param opts options for the instantiation (e.g. with what parent, position, etc.)
|
|
66
|
-
*/
|
|
67
|
-
static instantiate(instance, opts = null) {
|
|
68
|
-
return instantiate(instance, opts);
|
|
69
|
-
}
|
|
70
|
-
/** Destroys a object on all connected clients (if you are in a networked session)
|
|
71
|
-
* @param instance object to destroy
|
|
72
|
-
*/
|
|
73
|
-
static destroySynced(instance, context, recursive = true) {
|
|
74
|
-
if (!instance)
|
|
75
|
-
return;
|
|
76
|
-
const go = instance;
|
|
77
|
-
context = context ?? Context.Current;
|
|
78
|
-
syncDestroy(go, context.connection, recursive);
|
|
79
|
-
}
|
|
80
|
-
/** Destroys a object
|
|
81
|
-
* @param instance object to destroy
|
|
82
|
-
* @param recursive if true, all children will be destroyed as well. true by default
|
|
83
|
-
*/
|
|
84
|
-
static destroy(instance, recursive = true, isRoot = true) {
|
|
85
|
-
return destroy(instance, recursive, isRoot);
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Add an object to parent and also ensure all components are being registered
|
|
89
|
-
*/
|
|
90
|
-
static add(instance, parent, context) {
|
|
91
|
-
if (!instance || !parent)
|
|
92
|
-
return;
|
|
93
|
-
if (instance === parent) {
|
|
94
|
-
console.warn("Can not add object to self", instance);
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
if (!context) {
|
|
98
|
-
context = Context.Current;
|
|
99
|
-
}
|
|
100
|
-
parent.add(instance);
|
|
101
|
-
setActive(instance, true);
|
|
102
|
-
main.updateIsActive(instance);
|
|
103
|
-
if (context) {
|
|
104
|
-
GameObject.foreachComponent(instance, (comp) => {
|
|
105
|
-
main.addScriptToArrays(comp, context);
|
|
106
|
-
if (comp.__internalDidAwakeAndStart)
|
|
107
|
-
return;
|
|
108
|
-
if (context.new_script_start.includes(comp) === false) {
|
|
109
|
-
context.new_script_start.push(comp);
|
|
110
|
-
}
|
|
111
|
-
}, true);
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
console.warn("Missing context");
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Removes the object from its parent and deactivates all of its components
|
|
119
|
-
*/
|
|
120
|
-
static remove(instance) {
|
|
121
|
-
if (!instance)
|
|
122
|
-
return;
|
|
123
|
-
instance.parent?.remove(instance);
|
|
124
|
-
setActive(instance, false);
|
|
125
|
-
main.updateIsActive(instance);
|
|
126
|
-
GameObject.foreachComponent(instance, (comp) => {
|
|
127
|
-
main.processRemoveFromScene(comp);
|
|
128
|
-
}, true);
|
|
129
|
-
}
|
|
130
|
-
/** Invokes a method on all components including children (if a method with that name exists) */
|
|
131
|
-
static invokeOnChildren(go, functionName, ...args) {
|
|
132
|
-
this.invoke(go, functionName, true, args);
|
|
133
|
-
}
|
|
134
|
-
/** Invokes a method on all components that have a method matching the provided name
|
|
135
|
-
* @param go object to invoke the method on all components
|
|
136
|
-
* @param functionName name of the method to invoke
|
|
137
|
-
*/
|
|
138
|
-
static invoke(go, functionName, children = false, ...args) {
|
|
139
|
-
if (!go)
|
|
140
|
-
return;
|
|
141
|
-
this.foreachComponent(go, c => {
|
|
142
|
-
const fn = c[functionName];
|
|
143
|
-
if (fn && typeof fn === "function") {
|
|
144
|
-
fn?.call(c, ...args);
|
|
145
|
-
}
|
|
146
|
-
}, children);
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Adds a new component to the provided object
|
|
150
|
-
* @param go object to add the component to
|
|
151
|
-
* @param type type of the component to add
|
|
152
|
-
* @param callAwake if true, the component will be added and awake will be called immediately
|
|
153
|
-
*/
|
|
154
|
-
static addNewComponent(go, type, callAwake = true) {
|
|
155
|
-
const instance = new type();
|
|
156
|
-
//@ts-ignore
|
|
157
|
-
addNewComponent(go, instance, callAwake);
|
|
158
|
-
return instance;
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Moves a component to a new object
|
|
162
|
-
* BEWARE: this does MOVE a component. If you want to add a new component use `addNewComponent`
|
|
163
|
-
* @param go component to move the component to
|
|
164
|
-
* @param instance component to move to the GO
|
|
165
|
-
*/
|
|
166
|
-
static addComponent(go, instance) {
|
|
167
|
-
return this.moveComponent(go, instance);
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Moves a component to a new object
|
|
171
|
-
* @param go component to move the component to
|
|
172
|
-
* @param instance component to move to the GO
|
|
173
|
-
*/
|
|
174
|
-
static moveComponent(go, instance) {
|
|
175
|
-
return moveComponentInstance(go, instance);
|
|
176
|
-
}
|
|
177
|
-
/** Removes a component from its object
|
|
178
|
-
* @param instance component to remove
|
|
179
|
-
*/
|
|
180
|
-
static removeComponent(instance) {
|
|
181
|
-
removeComponent(instance.gameObject, instance);
|
|
182
|
-
return instance;
|
|
183
|
-
}
|
|
184
|
-
static getOrAddComponent(go, typeName) {
|
|
185
|
-
return getOrAddComponent(go, typeName);
|
|
186
|
-
}
|
|
187
|
-
/** Gets a component on the provided object */
|
|
188
|
-
static getComponent(go, typeName) {
|
|
189
|
-
if (go === null)
|
|
190
|
-
return null;
|
|
191
|
-
// if names are minified we could also use the type store and work with strings everywhere
|
|
192
|
-
// not ideal, but I dont know a good/sane way to do this otherwise
|
|
193
|
-
// const res = TypeStore.get(typeName);
|
|
194
|
-
// if(res) typeName = res;
|
|
195
|
-
return getComponent(go, typeName);
|
|
196
|
-
}
|
|
197
|
-
static getComponents(go, typeName, arr = null) {
|
|
198
|
-
if (go === null)
|
|
199
|
-
return arr ?? [];
|
|
200
|
-
return getComponents(go, typeName, arr);
|
|
201
|
-
}
|
|
202
|
-
static findByGuid(guid, hierarchy) {
|
|
203
|
-
const res = findByGuid(guid, hierarchy);
|
|
204
|
-
return res;
|
|
205
|
-
}
|
|
206
|
-
static findObjectOfType(typeName, context, includeInactive = true) {
|
|
207
|
-
return findObjectOfType(typeName, context ?? Context.Current, includeInactive);
|
|
208
|
-
}
|
|
209
|
-
static findObjectsOfType(typeName, context) {
|
|
210
|
-
const arr = [];
|
|
211
|
-
findObjectsOfType(typeName, arr, context);
|
|
212
|
-
return arr;
|
|
213
|
-
}
|
|
214
|
-
static getComponentInChildren(go, typeName) {
|
|
215
|
-
return getComponentInChildren(go, typeName);
|
|
216
|
-
}
|
|
217
|
-
static getComponentsInChildren(go, typeName, arr = null) {
|
|
218
|
-
return getComponentsInChildren(go, typeName, arr ?? undefined);
|
|
219
|
-
}
|
|
220
|
-
static getComponentInParent(go, typeName) {
|
|
221
|
-
return getComponentInParent(go, typeName);
|
|
222
|
-
}
|
|
223
|
-
static getComponentsInParent(go, typeName, arr = null) {
|
|
224
|
-
return getComponentsInParent(go, typeName, arr);
|
|
225
|
-
}
|
|
226
|
-
static getAllComponents(go) {
|
|
227
|
-
const componentsList = go.userData?.components;
|
|
228
|
-
const newList = [...componentsList];
|
|
229
|
-
return newList;
|
|
230
|
-
}
|
|
231
|
-
static *iterateComponents(go) {
|
|
232
|
-
const list = go?.userData?.components;
|
|
233
|
-
if (list && Array.isArray(list)) {
|
|
234
|
-
for (let i = 0; i < list.length; i++) {
|
|
235
|
-
yield list[i];
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
export class Component {
|
|
241
|
-
get isComponent() { return true; }
|
|
242
|
-
__context;
|
|
243
|
-
get context() {
|
|
244
|
-
return this.__context ?? Context.Current;
|
|
245
|
-
}
|
|
246
|
-
set context(context) {
|
|
247
|
-
this.__context = context;
|
|
248
|
-
}
|
|
249
|
-
get scene() { return this.context.scene; }
|
|
250
|
-
get layer() {
|
|
251
|
-
return this.gameObject?.userData?.layer;
|
|
252
|
-
}
|
|
253
|
-
get name() {
|
|
254
|
-
if (this.gameObject?.name) {
|
|
255
|
-
return this.gameObject.name;
|
|
256
|
-
}
|
|
257
|
-
return this.gameObject?.userData.name;
|
|
258
|
-
}
|
|
259
|
-
__name;
|
|
260
|
-
set name(str) {
|
|
261
|
-
if (this.gameObject) {
|
|
262
|
-
if (!this.gameObject.userData)
|
|
263
|
-
this.gameObject.userData = {};
|
|
264
|
-
this.gameObject.userData.name = str;
|
|
265
|
-
this.__name = str;
|
|
266
|
-
}
|
|
267
|
-
else {
|
|
268
|
-
this.__name = str;
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
get tag() {
|
|
272
|
-
return this.gameObject?.userData.tag;
|
|
273
|
-
}
|
|
274
|
-
set tag(str) {
|
|
275
|
-
if (this.gameObject) {
|
|
276
|
-
if (!this.gameObject.userData)
|
|
277
|
-
this.gameObject.userData = {};
|
|
278
|
-
this.gameObject.userData.tag = str;
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
get static() {
|
|
282
|
-
return this.gameObject?.userData.static;
|
|
283
|
-
}
|
|
284
|
-
get hideFlags() {
|
|
285
|
-
return this.gameObject?.userData.hideFlags;
|
|
286
|
-
}
|
|
287
|
-
get activeAndEnabled() {
|
|
288
|
-
if (this.destroyed)
|
|
289
|
-
return false;
|
|
290
|
-
if (this.__isEnabled === false)
|
|
291
|
-
return false;
|
|
292
|
-
if (!this.__isActiveInHierarchy)
|
|
293
|
-
return false;
|
|
294
|
-
// let go = this.gameObject;
|
|
295
|
-
// do {
|
|
296
|
-
// // console.log(go.name, go.visible)
|
|
297
|
-
// if (!go.visible) return false;
|
|
298
|
-
// go = go.parent as GameObject;
|
|
299
|
-
// }
|
|
300
|
-
// while (go);
|
|
301
|
-
return true;
|
|
302
|
-
}
|
|
303
|
-
get __isActive() {
|
|
304
|
-
return this.gameObject.visible;
|
|
305
|
-
}
|
|
306
|
-
get __isActiveInHierarchy() {
|
|
307
|
-
if (!this.gameObject)
|
|
308
|
-
return false;
|
|
309
|
-
const res = this.gameObject[activeInHierarchyFieldName];
|
|
310
|
-
if (res === undefined)
|
|
311
|
-
return true;
|
|
312
|
-
return res;
|
|
313
|
-
}
|
|
314
|
-
set __isActiveInHierarchy(val) {
|
|
315
|
-
if (!this.gameObject)
|
|
316
|
-
return;
|
|
317
|
-
this.gameObject[activeInHierarchyFieldName] = val;
|
|
318
|
-
}
|
|
319
|
-
gameObject;
|
|
320
|
-
guid = "invalid";
|
|
321
|
-
sourceId;
|
|
322
|
-
/** called once when the component becomes active for the first time */
|
|
323
|
-
awake() { }
|
|
324
|
-
/** called every time when the component gets enabled (this is invoked after awake and before start) */
|
|
325
|
-
onEnable() { }
|
|
326
|
-
onDisable() { }
|
|
327
|
-
onDestroy() {
|
|
328
|
-
this.__destroyed = true;
|
|
329
|
-
}
|
|
330
|
-
startCoroutine(routine, evt = FrameEvent.Update) {
|
|
331
|
-
return this.context.registerCoroutineUpdate(this, routine, evt);
|
|
332
|
-
}
|
|
333
|
-
stopCoroutine(routine, evt = FrameEvent.Update) {
|
|
334
|
-
this.context.unregisterCoroutineUpdate(routine, evt);
|
|
335
|
-
}
|
|
336
|
-
get destroyed() {
|
|
337
|
-
return this.__destroyed;
|
|
338
|
-
}
|
|
339
|
-
destroy() {
|
|
340
|
-
if (this.__destroyed)
|
|
341
|
-
return;
|
|
342
|
-
this.__internalDestroy();
|
|
343
|
-
}
|
|
344
|
-
/** @internal */
|
|
345
|
-
__didAwake = false;
|
|
346
|
-
/** @internal */
|
|
347
|
-
__didStart = false;
|
|
348
|
-
/** @internal */
|
|
349
|
-
__didEnable = false;
|
|
350
|
-
/** @internal */
|
|
351
|
-
__isEnabled = undefined;
|
|
352
|
-
/** @internal */
|
|
353
|
-
__destroyed = false;
|
|
354
|
-
/** @internal */
|
|
355
|
-
get __internalDidAwakeAndStart() { return this.__didAwake && this.__didStart; }
|
|
356
|
-
/** @internal */
|
|
357
|
-
constructor() {
|
|
358
|
-
this.__internalNewInstanceCreated();
|
|
359
|
-
}
|
|
360
|
-
/** @internal */
|
|
361
|
-
__internalNewInstanceCreated() {
|
|
362
|
-
this.__didAwake = false;
|
|
363
|
-
this.__didStart = false;
|
|
364
|
-
this.__didEnable = false;
|
|
365
|
-
this.__isEnabled = undefined;
|
|
366
|
-
this.__destroyed = false;
|
|
367
|
-
}
|
|
368
|
-
/** @internal */
|
|
369
|
-
__internalAwake() {
|
|
370
|
-
if (this.__didAwake)
|
|
371
|
-
return;
|
|
372
|
-
this.__didAwake = true;
|
|
373
|
-
this.awake();
|
|
374
|
-
}
|
|
375
|
-
/** @internal */
|
|
376
|
-
__internalStart() {
|
|
377
|
-
if (this.__didStart)
|
|
378
|
-
return;
|
|
379
|
-
this.__didStart = true;
|
|
380
|
-
if (this.start)
|
|
381
|
-
this.start();
|
|
382
|
-
}
|
|
383
|
-
/** @internal */
|
|
384
|
-
__internalEnable(isAddingToScene) {
|
|
385
|
-
if (this.__destroyed) {
|
|
386
|
-
if (isDevEnvironment()) {
|
|
387
|
-
console.warn("[Needle Engine Dev] Trying to enable destroyed component");
|
|
388
|
-
}
|
|
389
|
-
return false;
|
|
390
|
-
}
|
|
391
|
-
// Don't change enable before awake
|
|
392
|
-
// But a user can change enable during awake
|
|
393
|
-
if (!this.__didAwake)
|
|
394
|
-
return false;
|
|
395
|
-
if (this.__didEnable) {
|
|
396
|
-
// We dont want to change the enable state if we are adding to scene
|
|
397
|
-
// But we want to change the state when e.g. a user changes the enable state during awake
|
|
398
|
-
if (isAddingToScene !== true)
|
|
399
|
-
this.__isEnabled = true;
|
|
400
|
-
return false;
|
|
401
|
-
}
|
|
402
|
-
// console.trace("INTERNAL ENABLE");
|
|
403
|
-
this.__didEnable = true;
|
|
404
|
-
this.__isEnabled = true;
|
|
405
|
-
this.onEnable();
|
|
406
|
-
return true;
|
|
407
|
-
}
|
|
408
|
-
/** @internal */
|
|
409
|
-
__internalDisable(isRemovingFromScene) {
|
|
410
|
-
// Don't change enable before awake
|
|
411
|
-
// But a user can change enable during awake
|
|
412
|
-
if (!this.__didAwake)
|
|
413
|
-
return;
|
|
414
|
-
if (!this.__didEnable) {
|
|
415
|
-
// We dont want to change the enable state if we are removing from a scene
|
|
416
|
-
if (isRemovingFromScene !== true)
|
|
417
|
-
this.__isEnabled = false;
|
|
418
|
-
return;
|
|
419
|
-
}
|
|
420
|
-
this.__didEnable = false;
|
|
421
|
-
this.__isEnabled = false;
|
|
422
|
-
this.onDisable();
|
|
423
|
-
}
|
|
424
|
-
/** @internal */
|
|
425
|
-
__internalDestroy() {
|
|
426
|
-
if (this.__destroyed)
|
|
427
|
-
return;
|
|
428
|
-
this.__destroyed = true;
|
|
429
|
-
if (this.__didAwake) {
|
|
430
|
-
this.onDestroy?.call(this);
|
|
431
|
-
this.dispatchEvent(new CustomEvent("destroyed", { detail: this }));
|
|
432
|
-
}
|
|
433
|
-
destroyComponentInstance(this);
|
|
434
|
-
}
|
|
435
|
-
get enabled() {
|
|
436
|
-
return typeof this.__isEnabled === "boolean" ? this.__isEnabled : true; // if it has no enabled field it is always enabled
|
|
437
|
-
}
|
|
438
|
-
set enabled(val) {
|
|
439
|
-
if (this.__destroyed) {
|
|
440
|
-
if (isDevEnvironment()) {
|
|
441
|
-
console.warn(`[Needle Engine Dev] Trying to ${val ? "enable" : "disable"} destroyed component`);
|
|
442
|
-
}
|
|
443
|
-
return;
|
|
444
|
-
}
|
|
445
|
-
// when called from animationclip we receive numbers
|
|
446
|
-
// due to interpolation they can be anything between 0 and 1
|
|
447
|
-
if (typeof val === "number") {
|
|
448
|
-
if (val >= 0.5)
|
|
449
|
-
val = true;
|
|
450
|
-
else
|
|
451
|
-
val = false;
|
|
452
|
-
}
|
|
453
|
-
// need to check here because codegen is calling this before everything is setup
|
|
454
|
-
if (!this.__didAwake) {
|
|
455
|
-
this.__isEnabled = val;
|
|
456
|
-
return;
|
|
457
|
-
}
|
|
458
|
-
if (val) {
|
|
459
|
-
this.__internalEnable();
|
|
460
|
-
}
|
|
461
|
-
else {
|
|
462
|
-
this.__internalDisable();
|
|
463
|
-
}
|
|
464
|
-
}
|
|
465
|
-
get worldPosition() {
|
|
466
|
-
return threeutils.getWorldPosition(this.gameObject);
|
|
467
|
-
}
|
|
468
|
-
set worldPosition(val) {
|
|
469
|
-
threeutils.setWorldPosition(this.gameObject, val);
|
|
470
|
-
}
|
|
471
|
-
setWorldPosition(x, y, z) {
|
|
472
|
-
threeutils.setWorldPositionXYZ(this.gameObject, x, y, z);
|
|
473
|
-
}
|
|
474
|
-
get worldQuaternion() {
|
|
475
|
-
return threeutils.getWorldQuaternion(this.gameObject);
|
|
476
|
-
}
|
|
477
|
-
set worldQuaternion(val) {
|
|
478
|
-
threeutils.setWorldQuaternion(this.gameObject, val);
|
|
479
|
-
}
|
|
480
|
-
setWorldQuaternion(x, y, z, w) {
|
|
481
|
-
threeutils.setWorldQuaternionXYZW(this.gameObject, x, y, z, w);
|
|
482
|
-
}
|
|
483
|
-
// world euler (in radians)
|
|
484
|
-
get worldEuler() {
|
|
485
|
-
return threeutils.getWorldEuler(this.gameObject);
|
|
486
|
-
}
|
|
487
|
-
// world euler (in radians)
|
|
488
|
-
set worldEuler(val) {
|
|
489
|
-
threeutils.setWorldEuler(this.gameObject, val);
|
|
490
|
-
}
|
|
491
|
-
// returns rotation in degrees
|
|
492
|
-
get worldRotation() {
|
|
493
|
-
return this.gameObject.worldRotation;
|
|
494
|
-
;
|
|
495
|
-
}
|
|
496
|
-
set worldRotation(val) {
|
|
497
|
-
this.setWorldRotation(val.x, val.y, val.z, true);
|
|
498
|
-
}
|
|
499
|
-
setWorldRotation(x, y, z, degrees = true) {
|
|
500
|
-
threeutils.setWorldRotationXYZ(this.gameObject, x, y, z, degrees);
|
|
501
|
-
}
|
|
502
|
-
static _forward = new Vector3();
|
|
503
|
-
/** Forward (0,0,-1) vector in world space */
|
|
504
|
-
get forward() {
|
|
505
|
-
return Component._forward.set(0, 0, -1).applyQuaternion(this.worldQuaternion);
|
|
506
|
-
}
|
|
507
|
-
static _right = new Vector3();
|
|
508
|
-
/** Right (1,0,0) vector in world space */
|
|
509
|
-
get right() {
|
|
510
|
-
return Component._right.set(1, 0, 0).applyQuaternion(this.worldQuaternion);
|
|
511
|
-
}
|
|
512
|
-
static _up = new Vector3();
|
|
513
|
-
/** Up (0,1,0) vector in world space */
|
|
514
|
-
get up() {
|
|
515
|
-
return Component._up.set(0, 1, 0).applyQuaternion(this.worldQuaternion);
|
|
516
|
-
}
|
|
517
|
-
// EventTarget implementation:
|
|
518
|
-
_eventListeners = new Map();
|
|
519
|
-
addEventListener(type, listener) {
|
|
520
|
-
this._eventListeners[type] = this._eventListeners[type] || [];
|
|
521
|
-
this._eventListeners[type].push(listener);
|
|
522
|
-
}
|
|
523
|
-
removeEventListener(type, listener) {
|
|
524
|
-
if (!this._eventListeners[type])
|
|
525
|
-
return;
|
|
526
|
-
const index = this._eventListeners[type].indexOf(listener);
|
|
527
|
-
if (index >= 0)
|
|
528
|
-
this._eventListeners[type].splice(index, 1);
|
|
529
|
-
}
|
|
530
|
-
dispatchEvent(evt) {
|
|
531
|
-
if (!evt || !this._eventListeners[evt.type])
|
|
532
|
-
return false;
|
|
533
|
-
const listeners = this._eventListeners[evt.type];
|
|
534
|
-
for (let i = 0; i < listeners.length; i++) {
|
|
535
|
-
listeners[i](evt);
|
|
536
|
-
}
|
|
537
|
-
return false;
|
|
538
|
-
}
|
|
539
|
-
}
|
|
540
|
-
export class Behaviour extends Component {
|
|
541
|
-
}
|
|
1
|
+
import * as threeutils from "../engine/engine_three_utils.js";
|
|
2
|
+
import { activeInHierarchyFieldName } from "../engine/engine_constants.js";
|
|
3
|
+
import { Context, FrameEvent } from "../engine/engine_setup.js";
|
|
4
|
+
import * as main from "../engine/engine_mainloop_utils.js";
|
|
5
|
+
import { syncDestroy, syncInstantiate } from "../engine/engine_networking_instantiate.js";
|
|
6
|
+
import { addNewComponent, destroyComponentInstance, findObjectOfType, findObjectsOfType, getComponent, getComponentInChildren, getComponentInParent, getComponents, getComponentsInChildren, getComponentsInParent, getOrAddComponent, moveComponentInstance, removeComponent } from "../engine/engine_components.js";
|
|
7
|
+
import { findByGuid, destroy, instantiate, foreachComponent, markAsInstancedRendered, isActiveInHierarchy, isActiveSelf, isUsingInstancing, setActive, isDestroyed } from "../engine/engine_gameobject.js";
|
|
8
|
+
import { Object3D, Vector3 } from "three";
|
|
9
|
+
import { isDevEnvironment } from "../engine/debug/index.js";
|
|
10
|
+
// export interface ISerializationCallbackReceiver {
|
|
11
|
+
// onBeforeSerialize?(): object | void;
|
|
12
|
+
// onAfterSerialize?();
|
|
13
|
+
// onBeforeDeserialize?(data?: any);
|
|
14
|
+
// onAfterDeserialize?();
|
|
15
|
+
// onDeserialize?(key: string, value: any): any | void;
|
|
16
|
+
// }
|
|
17
|
+
export class GameObject extends Object3D {
|
|
18
|
+
guid;
|
|
19
|
+
static isDestroyed(go) {
|
|
20
|
+
return isDestroyed(go);
|
|
21
|
+
}
|
|
22
|
+
static setActive(go, active, processStart = true) {
|
|
23
|
+
if (!go)
|
|
24
|
+
return;
|
|
25
|
+
setActive(go, active);
|
|
26
|
+
// TODO: do we still need this?:
|
|
27
|
+
main.updateIsActive(go);
|
|
28
|
+
if (active && processStart)
|
|
29
|
+
main.processStart(Context.Current, go);
|
|
30
|
+
}
|
|
31
|
+
/** If the object is active (same as go.visible) */
|
|
32
|
+
static isActiveSelf(go) {
|
|
33
|
+
return isActiveSelf(go);
|
|
34
|
+
}
|
|
35
|
+
/** If the object is active in the hierarchy (e.g. if any parent is invisible or not in the scene it will be false)
|
|
36
|
+
* @param go object to check
|
|
37
|
+
*/
|
|
38
|
+
static isActiveInHierarchy(go) {
|
|
39
|
+
return isActiveInHierarchy(go);
|
|
40
|
+
}
|
|
41
|
+
static markAsInstancedRendered(go, instanced) {
|
|
42
|
+
markAsInstancedRendered(go, instanced);
|
|
43
|
+
}
|
|
44
|
+
static isUsingInstancing(instance) { return isUsingInstancing(instance); }
|
|
45
|
+
/** Run a callback for all components of the provided type on the provided object and its children (if recursive is true)
|
|
46
|
+
* @param instance object to run the method on
|
|
47
|
+
* @param cb callback to run on each component, "return undefined;" to continue and "return <anything>;" to break the loop
|
|
48
|
+
* @param recursive if true, the method will be run on all children as well
|
|
49
|
+
* @returns the last return value of the callback
|
|
50
|
+
*/
|
|
51
|
+
static foreachComponent(instance, cb, recursive = true) {
|
|
52
|
+
return foreachComponent(instance, cb, recursive);
|
|
53
|
+
}
|
|
54
|
+
/** Creates a new instance of the provided object. The new instance will be created on all connected clients
|
|
55
|
+
* @param instance object to instantiate
|
|
56
|
+
* @param opts options for the instantiation
|
|
57
|
+
*/
|
|
58
|
+
static instantiateSynced(instance, opts) {
|
|
59
|
+
if (!instance)
|
|
60
|
+
return null;
|
|
61
|
+
return syncInstantiate(instance, opts);
|
|
62
|
+
}
|
|
63
|
+
/** Creates a new instance of the provided object (like cloning it including all components and children)
|
|
64
|
+
* @param instance object to instantiate
|
|
65
|
+
* @param opts options for the instantiation (e.g. with what parent, position, etc.)
|
|
66
|
+
*/
|
|
67
|
+
static instantiate(instance, opts = null) {
|
|
68
|
+
return instantiate(instance, opts);
|
|
69
|
+
}
|
|
70
|
+
/** Destroys a object on all connected clients (if you are in a networked session)
|
|
71
|
+
* @param instance object to destroy
|
|
72
|
+
*/
|
|
73
|
+
static destroySynced(instance, context, recursive = true) {
|
|
74
|
+
if (!instance)
|
|
75
|
+
return;
|
|
76
|
+
const go = instance;
|
|
77
|
+
context = context ?? Context.Current;
|
|
78
|
+
syncDestroy(go, context.connection, recursive);
|
|
79
|
+
}
|
|
80
|
+
/** Destroys a object
|
|
81
|
+
* @param instance object to destroy
|
|
82
|
+
* @param recursive if true, all children will be destroyed as well. true by default
|
|
83
|
+
*/
|
|
84
|
+
static destroy(instance, recursive = true, isRoot = true) {
|
|
85
|
+
return destroy(instance, recursive, isRoot);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Add an object to parent and also ensure all components are being registered
|
|
89
|
+
*/
|
|
90
|
+
static add(instance, parent, context) {
|
|
91
|
+
if (!instance || !parent)
|
|
92
|
+
return;
|
|
93
|
+
if (instance === parent) {
|
|
94
|
+
console.warn("Can not add object to self", instance);
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
if (!context) {
|
|
98
|
+
context = Context.Current;
|
|
99
|
+
}
|
|
100
|
+
parent.add(instance);
|
|
101
|
+
setActive(instance, true);
|
|
102
|
+
main.updateIsActive(instance);
|
|
103
|
+
if (context) {
|
|
104
|
+
GameObject.foreachComponent(instance, (comp) => {
|
|
105
|
+
main.addScriptToArrays(comp, context);
|
|
106
|
+
if (comp.__internalDidAwakeAndStart)
|
|
107
|
+
return;
|
|
108
|
+
if (context.new_script_start.includes(comp) === false) {
|
|
109
|
+
context.new_script_start.push(comp);
|
|
110
|
+
}
|
|
111
|
+
}, true);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
console.warn("Missing context");
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Removes the object from its parent and deactivates all of its components
|
|
119
|
+
*/
|
|
120
|
+
static remove(instance) {
|
|
121
|
+
if (!instance)
|
|
122
|
+
return;
|
|
123
|
+
instance.parent?.remove(instance);
|
|
124
|
+
setActive(instance, false);
|
|
125
|
+
main.updateIsActive(instance);
|
|
126
|
+
GameObject.foreachComponent(instance, (comp) => {
|
|
127
|
+
main.processRemoveFromScene(comp);
|
|
128
|
+
}, true);
|
|
129
|
+
}
|
|
130
|
+
/** Invokes a method on all components including children (if a method with that name exists) */
|
|
131
|
+
static invokeOnChildren(go, functionName, ...args) {
|
|
132
|
+
this.invoke(go, functionName, true, args);
|
|
133
|
+
}
|
|
134
|
+
/** Invokes a method on all components that have a method matching the provided name
|
|
135
|
+
* @param go object to invoke the method on all components
|
|
136
|
+
* @param functionName name of the method to invoke
|
|
137
|
+
*/
|
|
138
|
+
static invoke(go, functionName, children = false, ...args) {
|
|
139
|
+
if (!go)
|
|
140
|
+
return;
|
|
141
|
+
this.foreachComponent(go, c => {
|
|
142
|
+
const fn = c[functionName];
|
|
143
|
+
if (fn && typeof fn === "function") {
|
|
144
|
+
fn?.call(c, ...args);
|
|
145
|
+
}
|
|
146
|
+
}, children);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Adds a new component to the provided object
|
|
150
|
+
* @param go object to add the component to
|
|
151
|
+
* @param type type of the component to add
|
|
152
|
+
* @param callAwake if true, the component will be added and awake will be called immediately
|
|
153
|
+
*/
|
|
154
|
+
static addNewComponent(go, type, callAwake = true) {
|
|
155
|
+
const instance = new type();
|
|
156
|
+
//@ts-ignore
|
|
157
|
+
addNewComponent(go, instance, callAwake);
|
|
158
|
+
return instance;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Moves a component to a new object
|
|
162
|
+
* BEWARE: this does MOVE a component. If you want to add a new component use `addNewComponent`
|
|
163
|
+
* @param go component to move the component to
|
|
164
|
+
* @param instance component to move to the GO
|
|
165
|
+
*/
|
|
166
|
+
static addComponent(go, instance) {
|
|
167
|
+
return this.moveComponent(go, instance);
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Moves a component to a new object
|
|
171
|
+
* @param go component to move the component to
|
|
172
|
+
* @param instance component to move to the GO
|
|
173
|
+
*/
|
|
174
|
+
static moveComponent(go, instance) {
|
|
175
|
+
return moveComponentInstance(go, instance);
|
|
176
|
+
}
|
|
177
|
+
/** Removes a component from its object
|
|
178
|
+
* @param instance component to remove
|
|
179
|
+
*/
|
|
180
|
+
static removeComponent(instance) {
|
|
181
|
+
removeComponent(instance.gameObject, instance);
|
|
182
|
+
return instance;
|
|
183
|
+
}
|
|
184
|
+
static getOrAddComponent(go, typeName) {
|
|
185
|
+
return getOrAddComponent(go, typeName);
|
|
186
|
+
}
|
|
187
|
+
/** Gets a component on the provided object */
|
|
188
|
+
static getComponent(go, typeName) {
|
|
189
|
+
if (go === null)
|
|
190
|
+
return null;
|
|
191
|
+
// if names are minified we could also use the type store and work with strings everywhere
|
|
192
|
+
// not ideal, but I dont know a good/sane way to do this otherwise
|
|
193
|
+
// const res = TypeStore.get(typeName);
|
|
194
|
+
// if(res) typeName = res;
|
|
195
|
+
return getComponent(go, typeName);
|
|
196
|
+
}
|
|
197
|
+
static getComponents(go, typeName, arr = null) {
|
|
198
|
+
if (go === null)
|
|
199
|
+
return arr ?? [];
|
|
200
|
+
return getComponents(go, typeName, arr);
|
|
201
|
+
}
|
|
202
|
+
static findByGuid(guid, hierarchy) {
|
|
203
|
+
const res = findByGuid(guid, hierarchy);
|
|
204
|
+
return res;
|
|
205
|
+
}
|
|
206
|
+
static findObjectOfType(typeName, context, includeInactive = true) {
|
|
207
|
+
return findObjectOfType(typeName, context ?? Context.Current, includeInactive);
|
|
208
|
+
}
|
|
209
|
+
static findObjectsOfType(typeName, context) {
|
|
210
|
+
const arr = [];
|
|
211
|
+
findObjectsOfType(typeName, arr, context);
|
|
212
|
+
return arr;
|
|
213
|
+
}
|
|
214
|
+
static getComponentInChildren(go, typeName) {
|
|
215
|
+
return getComponentInChildren(go, typeName);
|
|
216
|
+
}
|
|
217
|
+
static getComponentsInChildren(go, typeName, arr = null) {
|
|
218
|
+
return getComponentsInChildren(go, typeName, arr ?? undefined);
|
|
219
|
+
}
|
|
220
|
+
static getComponentInParent(go, typeName) {
|
|
221
|
+
return getComponentInParent(go, typeName);
|
|
222
|
+
}
|
|
223
|
+
static getComponentsInParent(go, typeName, arr = null) {
|
|
224
|
+
return getComponentsInParent(go, typeName, arr);
|
|
225
|
+
}
|
|
226
|
+
static getAllComponents(go) {
|
|
227
|
+
const componentsList = go.userData?.components;
|
|
228
|
+
const newList = [...componentsList];
|
|
229
|
+
return newList;
|
|
230
|
+
}
|
|
231
|
+
static *iterateComponents(go) {
|
|
232
|
+
const list = go?.userData?.components;
|
|
233
|
+
if (list && Array.isArray(list)) {
|
|
234
|
+
for (let i = 0; i < list.length; i++) {
|
|
235
|
+
yield list[i];
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
export class Component {
|
|
241
|
+
get isComponent() { return true; }
|
|
242
|
+
__context;
|
|
243
|
+
get context() {
|
|
244
|
+
return this.__context ?? Context.Current;
|
|
245
|
+
}
|
|
246
|
+
set context(context) {
|
|
247
|
+
this.__context = context;
|
|
248
|
+
}
|
|
249
|
+
get scene() { return this.context.scene; }
|
|
250
|
+
get layer() {
|
|
251
|
+
return this.gameObject?.userData?.layer;
|
|
252
|
+
}
|
|
253
|
+
get name() {
|
|
254
|
+
if (this.gameObject?.name) {
|
|
255
|
+
return this.gameObject.name;
|
|
256
|
+
}
|
|
257
|
+
return this.gameObject?.userData.name;
|
|
258
|
+
}
|
|
259
|
+
__name;
|
|
260
|
+
set name(str) {
|
|
261
|
+
if (this.gameObject) {
|
|
262
|
+
if (!this.gameObject.userData)
|
|
263
|
+
this.gameObject.userData = {};
|
|
264
|
+
this.gameObject.userData.name = str;
|
|
265
|
+
this.__name = str;
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
this.__name = str;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
get tag() {
|
|
272
|
+
return this.gameObject?.userData.tag;
|
|
273
|
+
}
|
|
274
|
+
set tag(str) {
|
|
275
|
+
if (this.gameObject) {
|
|
276
|
+
if (!this.gameObject.userData)
|
|
277
|
+
this.gameObject.userData = {};
|
|
278
|
+
this.gameObject.userData.tag = str;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
get static() {
|
|
282
|
+
return this.gameObject?.userData.static;
|
|
283
|
+
}
|
|
284
|
+
get hideFlags() {
|
|
285
|
+
return this.gameObject?.userData.hideFlags;
|
|
286
|
+
}
|
|
287
|
+
get activeAndEnabled() {
|
|
288
|
+
if (this.destroyed)
|
|
289
|
+
return false;
|
|
290
|
+
if (this.__isEnabled === false)
|
|
291
|
+
return false;
|
|
292
|
+
if (!this.__isActiveInHierarchy)
|
|
293
|
+
return false;
|
|
294
|
+
// let go = this.gameObject;
|
|
295
|
+
// do {
|
|
296
|
+
// // console.log(go.name, go.visible)
|
|
297
|
+
// if (!go.visible) return false;
|
|
298
|
+
// go = go.parent as GameObject;
|
|
299
|
+
// }
|
|
300
|
+
// while (go);
|
|
301
|
+
return true;
|
|
302
|
+
}
|
|
303
|
+
get __isActive() {
|
|
304
|
+
return this.gameObject.visible;
|
|
305
|
+
}
|
|
306
|
+
get __isActiveInHierarchy() {
|
|
307
|
+
if (!this.gameObject)
|
|
308
|
+
return false;
|
|
309
|
+
const res = this.gameObject[activeInHierarchyFieldName];
|
|
310
|
+
if (res === undefined)
|
|
311
|
+
return true;
|
|
312
|
+
return res;
|
|
313
|
+
}
|
|
314
|
+
set __isActiveInHierarchy(val) {
|
|
315
|
+
if (!this.gameObject)
|
|
316
|
+
return;
|
|
317
|
+
this.gameObject[activeInHierarchyFieldName] = val;
|
|
318
|
+
}
|
|
319
|
+
gameObject;
|
|
320
|
+
guid = "invalid";
|
|
321
|
+
sourceId;
|
|
322
|
+
/** called once when the component becomes active for the first time */
|
|
323
|
+
awake() { }
|
|
324
|
+
/** called every time when the component gets enabled (this is invoked after awake and before start) */
|
|
325
|
+
onEnable() { }
|
|
326
|
+
onDisable() { }
|
|
327
|
+
onDestroy() {
|
|
328
|
+
this.__destroyed = true;
|
|
329
|
+
}
|
|
330
|
+
startCoroutine(routine, evt = FrameEvent.Update) {
|
|
331
|
+
return this.context.registerCoroutineUpdate(this, routine, evt);
|
|
332
|
+
}
|
|
333
|
+
stopCoroutine(routine, evt = FrameEvent.Update) {
|
|
334
|
+
this.context.unregisterCoroutineUpdate(routine, evt);
|
|
335
|
+
}
|
|
336
|
+
get destroyed() {
|
|
337
|
+
return this.__destroyed;
|
|
338
|
+
}
|
|
339
|
+
destroy() {
|
|
340
|
+
if (this.__destroyed)
|
|
341
|
+
return;
|
|
342
|
+
this.__internalDestroy();
|
|
343
|
+
}
|
|
344
|
+
/** @internal */
|
|
345
|
+
__didAwake = false;
|
|
346
|
+
/** @internal */
|
|
347
|
+
__didStart = false;
|
|
348
|
+
/** @internal */
|
|
349
|
+
__didEnable = false;
|
|
350
|
+
/** @internal */
|
|
351
|
+
__isEnabled = undefined;
|
|
352
|
+
/** @internal */
|
|
353
|
+
__destroyed = false;
|
|
354
|
+
/** @internal */
|
|
355
|
+
get __internalDidAwakeAndStart() { return this.__didAwake && this.__didStart; }
|
|
356
|
+
/** @internal */
|
|
357
|
+
constructor() {
|
|
358
|
+
this.__internalNewInstanceCreated();
|
|
359
|
+
}
|
|
360
|
+
/** @internal */
|
|
361
|
+
__internalNewInstanceCreated() {
|
|
362
|
+
this.__didAwake = false;
|
|
363
|
+
this.__didStart = false;
|
|
364
|
+
this.__didEnable = false;
|
|
365
|
+
this.__isEnabled = undefined;
|
|
366
|
+
this.__destroyed = false;
|
|
367
|
+
}
|
|
368
|
+
/** @internal */
|
|
369
|
+
__internalAwake() {
|
|
370
|
+
if (this.__didAwake)
|
|
371
|
+
return;
|
|
372
|
+
this.__didAwake = true;
|
|
373
|
+
this.awake();
|
|
374
|
+
}
|
|
375
|
+
/** @internal */
|
|
376
|
+
__internalStart() {
|
|
377
|
+
if (this.__didStart)
|
|
378
|
+
return;
|
|
379
|
+
this.__didStart = true;
|
|
380
|
+
if (this.start)
|
|
381
|
+
this.start();
|
|
382
|
+
}
|
|
383
|
+
/** @internal */
|
|
384
|
+
__internalEnable(isAddingToScene) {
|
|
385
|
+
if (this.__destroyed) {
|
|
386
|
+
if (isDevEnvironment()) {
|
|
387
|
+
console.warn("[Needle Engine Dev] Trying to enable destroyed component");
|
|
388
|
+
}
|
|
389
|
+
return false;
|
|
390
|
+
}
|
|
391
|
+
// Don't change enable before awake
|
|
392
|
+
// But a user can change enable during awake
|
|
393
|
+
if (!this.__didAwake)
|
|
394
|
+
return false;
|
|
395
|
+
if (this.__didEnable) {
|
|
396
|
+
// We dont want to change the enable state if we are adding to scene
|
|
397
|
+
// But we want to change the state when e.g. a user changes the enable state during awake
|
|
398
|
+
if (isAddingToScene !== true)
|
|
399
|
+
this.__isEnabled = true;
|
|
400
|
+
return false;
|
|
401
|
+
}
|
|
402
|
+
// console.trace("INTERNAL ENABLE");
|
|
403
|
+
this.__didEnable = true;
|
|
404
|
+
this.__isEnabled = true;
|
|
405
|
+
this.onEnable();
|
|
406
|
+
return true;
|
|
407
|
+
}
|
|
408
|
+
/** @internal */
|
|
409
|
+
__internalDisable(isRemovingFromScene) {
|
|
410
|
+
// Don't change enable before awake
|
|
411
|
+
// But a user can change enable during awake
|
|
412
|
+
if (!this.__didAwake)
|
|
413
|
+
return;
|
|
414
|
+
if (!this.__didEnable) {
|
|
415
|
+
// We dont want to change the enable state if we are removing from a scene
|
|
416
|
+
if (isRemovingFromScene !== true)
|
|
417
|
+
this.__isEnabled = false;
|
|
418
|
+
return;
|
|
419
|
+
}
|
|
420
|
+
this.__didEnable = false;
|
|
421
|
+
this.__isEnabled = false;
|
|
422
|
+
this.onDisable();
|
|
423
|
+
}
|
|
424
|
+
/** @internal */
|
|
425
|
+
__internalDestroy() {
|
|
426
|
+
if (this.__destroyed)
|
|
427
|
+
return;
|
|
428
|
+
this.__destroyed = true;
|
|
429
|
+
if (this.__didAwake) {
|
|
430
|
+
this.onDestroy?.call(this);
|
|
431
|
+
this.dispatchEvent(new CustomEvent("destroyed", { detail: this }));
|
|
432
|
+
}
|
|
433
|
+
destroyComponentInstance(this);
|
|
434
|
+
}
|
|
435
|
+
get enabled() {
|
|
436
|
+
return typeof this.__isEnabled === "boolean" ? this.__isEnabled : true; // if it has no enabled field it is always enabled
|
|
437
|
+
}
|
|
438
|
+
set enabled(val) {
|
|
439
|
+
if (this.__destroyed) {
|
|
440
|
+
if (isDevEnvironment()) {
|
|
441
|
+
console.warn(`[Needle Engine Dev] Trying to ${val ? "enable" : "disable"} destroyed component`);
|
|
442
|
+
}
|
|
443
|
+
return;
|
|
444
|
+
}
|
|
445
|
+
// when called from animationclip we receive numbers
|
|
446
|
+
// due to interpolation they can be anything between 0 and 1
|
|
447
|
+
if (typeof val === "number") {
|
|
448
|
+
if (val >= 0.5)
|
|
449
|
+
val = true;
|
|
450
|
+
else
|
|
451
|
+
val = false;
|
|
452
|
+
}
|
|
453
|
+
// need to check here because codegen is calling this before everything is setup
|
|
454
|
+
if (!this.__didAwake) {
|
|
455
|
+
this.__isEnabled = val;
|
|
456
|
+
return;
|
|
457
|
+
}
|
|
458
|
+
if (val) {
|
|
459
|
+
this.__internalEnable();
|
|
460
|
+
}
|
|
461
|
+
else {
|
|
462
|
+
this.__internalDisable();
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
get worldPosition() {
|
|
466
|
+
return threeutils.getWorldPosition(this.gameObject);
|
|
467
|
+
}
|
|
468
|
+
set worldPosition(val) {
|
|
469
|
+
threeutils.setWorldPosition(this.gameObject, val);
|
|
470
|
+
}
|
|
471
|
+
setWorldPosition(x, y, z) {
|
|
472
|
+
threeutils.setWorldPositionXYZ(this.gameObject, x, y, z);
|
|
473
|
+
}
|
|
474
|
+
get worldQuaternion() {
|
|
475
|
+
return threeutils.getWorldQuaternion(this.gameObject);
|
|
476
|
+
}
|
|
477
|
+
set worldQuaternion(val) {
|
|
478
|
+
threeutils.setWorldQuaternion(this.gameObject, val);
|
|
479
|
+
}
|
|
480
|
+
setWorldQuaternion(x, y, z, w) {
|
|
481
|
+
threeutils.setWorldQuaternionXYZW(this.gameObject, x, y, z, w);
|
|
482
|
+
}
|
|
483
|
+
// world euler (in radians)
|
|
484
|
+
get worldEuler() {
|
|
485
|
+
return threeutils.getWorldEuler(this.gameObject);
|
|
486
|
+
}
|
|
487
|
+
// world euler (in radians)
|
|
488
|
+
set worldEuler(val) {
|
|
489
|
+
threeutils.setWorldEuler(this.gameObject, val);
|
|
490
|
+
}
|
|
491
|
+
// returns rotation in degrees
|
|
492
|
+
get worldRotation() {
|
|
493
|
+
return this.gameObject.worldRotation;
|
|
494
|
+
;
|
|
495
|
+
}
|
|
496
|
+
set worldRotation(val) {
|
|
497
|
+
this.setWorldRotation(val.x, val.y, val.z, true);
|
|
498
|
+
}
|
|
499
|
+
setWorldRotation(x, y, z, degrees = true) {
|
|
500
|
+
threeutils.setWorldRotationXYZ(this.gameObject, x, y, z, degrees);
|
|
501
|
+
}
|
|
502
|
+
static _forward = new Vector3();
|
|
503
|
+
/** Forward (0,0,-1) vector in world space */
|
|
504
|
+
get forward() {
|
|
505
|
+
return Component._forward.set(0, 0, -1).applyQuaternion(this.worldQuaternion);
|
|
506
|
+
}
|
|
507
|
+
static _right = new Vector3();
|
|
508
|
+
/** Right (1,0,0) vector in world space */
|
|
509
|
+
get right() {
|
|
510
|
+
return Component._right.set(1, 0, 0).applyQuaternion(this.worldQuaternion);
|
|
511
|
+
}
|
|
512
|
+
static _up = new Vector3();
|
|
513
|
+
/** Up (0,1,0) vector in world space */
|
|
514
|
+
get up() {
|
|
515
|
+
return Component._up.set(0, 1, 0).applyQuaternion(this.worldQuaternion);
|
|
516
|
+
}
|
|
517
|
+
// EventTarget implementation:
|
|
518
|
+
_eventListeners = new Map();
|
|
519
|
+
addEventListener(type, listener) {
|
|
520
|
+
this._eventListeners[type] = this._eventListeners[type] || [];
|
|
521
|
+
this._eventListeners[type].push(listener);
|
|
522
|
+
}
|
|
523
|
+
removeEventListener(type, listener) {
|
|
524
|
+
if (!this._eventListeners[type])
|
|
525
|
+
return;
|
|
526
|
+
const index = this._eventListeners[type].indexOf(listener);
|
|
527
|
+
if (index >= 0)
|
|
528
|
+
this._eventListeners[type].splice(index, 1);
|
|
529
|
+
}
|
|
530
|
+
dispatchEvent(evt) {
|
|
531
|
+
if (!evt || !this._eventListeners[evt.type])
|
|
532
|
+
return false;
|
|
533
|
+
const listeners = this._eventListeners[evt.type];
|
|
534
|
+
for (let i = 0; i < listeners.length; i++) {
|
|
535
|
+
listeners[i](evt);
|
|
536
|
+
}
|
|
537
|
+
return false;
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
export class Behaviour extends Component {
|
|
541
|
+
}
|
|
542
542
|
//# sourceMappingURL=Component.js.map
|