@carbonenginejs/runtime-trinity 0.6.0 → 0.7.0
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/README.md +35 -243
- package/dist/controllers/CjsControllerExpressionProgram.js +157 -0
- package/dist/controllers/CjsControllerExpressionProgram.js.map +1 -1
- package/dist/controllers/ITr2ControllerAction.js +57 -0
- package/dist/controllers/ITr2ControllerAction.js.map +1 -1
- package/dist/controllers/Tr2ActionAnimateCurveSet.js +10 -0
- package/dist/controllers/Tr2ActionAnimateCurveSet.js.map +1 -1
- package/dist/controllers/Tr2ActionAnimateValue.js +26 -0
- package/dist/controllers/Tr2ActionAnimateValue.js.map +1 -1
- package/dist/controllers/Tr2ActionBindRTPC.js +11 -0
- package/dist/controllers/Tr2ActionBindRTPC.js.map +1 -1
- package/dist/controllers/Tr2ActionCallback.js +5 -0
- package/dist/controllers/Tr2ActionCallback.js.map +1 -1
- package/dist/controllers/Tr2ActionChildEffect.js +63 -0
- package/dist/controllers/Tr2ActionChildEffect.js.map +1 -1
- package/dist/controllers/Tr2ActionOverlay.js +68 -0
- package/dist/controllers/Tr2ActionOverlay.js.map +1 -1
- package/dist/controllers/Tr2ActionPlayCurveSet.js +16 -0
- package/dist/controllers/Tr2ActionPlayCurveSet.js.map +1 -1
- package/dist/controllers/Tr2ActionPlayMeshAnimation.js +29 -0
- package/dist/controllers/Tr2ActionPlayMeshAnimation.js.map +1 -1
- package/dist/controllers/Tr2ActionPlaySound.js +11 -0
- package/dist/controllers/Tr2ActionPlaySound.js.map +1 -1
- package/dist/controllers/Tr2ActionPython.js +11 -0
- package/dist/controllers/Tr2ActionPython.js.map +1 -1
- package/dist/controllers/Tr2ActionResetClipSphereCenter.js +17 -0
- package/dist/controllers/Tr2ActionResetClipSphereCenter.js.map +1 -1
- package/dist/controllers/Tr2ActionSetAttenuationScaling.js +5 -0
- package/dist/controllers/Tr2ActionSetAttenuationScaling.js.map +1 -1
- package/dist/controllers/Tr2ActionSetAudioEmitterPrefix.js +5 -0
- package/dist/controllers/Tr2ActionSetAudioEmitterPrefix.js.map +1 -1
- package/dist/controllers/Tr2ActionSetAudioSwitch.js +5 -0
- package/dist/controllers/Tr2ActionSetAudioSwitch.js.map +1 -1
- package/dist/controllers/Tr2ActionSetExternalControllerVariable.js +23 -0
- package/dist/controllers/Tr2ActionSetExternalControllerVariable.js.map +1 -1
- package/dist/controllers/Tr2ActionSetShaderOption.js +5 -0
- package/dist/controllers/Tr2ActionSetShaderOption.js.map +1 -1
- package/dist/controllers/Tr2ActionSetValue.js +35 -0
- package/dist/controllers/Tr2ActionSetValue.js.map +1 -1
- package/dist/controllers/Tr2ActionSpawnParticles.js +10 -0
- package/dist/controllers/Tr2ActionSpawnParticles.js.map +1 -1
- package/dist/controllers/Tr2BindingPoint.js +67 -0
- package/dist/controllers/Tr2BindingPoint.js.map +1 -1
- package/dist/controllers/Tr2Controller.js +37 -0
- package/dist/controllers/Tr2Controller.js.map +1 -1
- package/dist/controllers/Tr2ControllerEventHandler.js +10 -0
- package/dist/controllers/Tr2ControllerEventHandler.js.map +1 -1
- package/dist/controllers/Tr2ControllerExpression.js +17 -0
- package/dist/controllers/Tr2ControllerExpression.js.map +1 -1
- package/dist/controllers/Tr2ControllerFloatVariable.js +6 -0
- package/dist/controllers/Tr2ControllerFloatVariable.js.map +1 -1
- package/dist/controllers/Tr2ControllerReference.js +11 -0
- package/dist/controllers/Tr2ControllerReference.js.map +1 -1
- package/dist/controllers/Tr2StateMachine.js +17 -0
- package/dist/controllers/Tr2StateMachine.js.map +1 -1
- package/dist/controllers/Tr2StateMachineState.js +47 -0
- package/dist/controllers/Tr2StateMachineState.js.map +1 -1
- package/dist/controllers/Tr2StateMachineTransition.js +29 -0
- package/dist/controllers/Tr2StateMachineTransition.js.map +1 -1
- package/dist/controllers/Tr2SyncToAnimation.js +5 -0
- package/dist/controllers/Tr2SyncToAnimation.js.map +1 -1
- package/dist/controllers/Tr2TimelineController.js +61 -0
- package/dist/controllers/Tr2TimelineController.js.map +1 -1
- package/dist/controllers/contracts.js +24 -1
- package/dist/controllers/contracts.js.map +1 -1
- package/dist/controllers/index.js +1 -1
- package/dist/curves/CjsGrannyCurves.js +150 -0
- package/dist/curves/CjsGrannyCurves.js.map +1 -1
- package/dist/curves/Tr2BoneMatrixCurve.js +23 -0
- package/dist/curves/Tr2BoneMatrixCurve.js.map +1 -1
- package/dist/curves/Tr2CameraFollowCurveKey.js +6 -0
- package/dist/curves/Tr2CameraFollowCurveKey.js.map +1 -1
- package/dist/curves/Tr2CurveColor.js +6 -0
- package/dist/curves/Tr2CurveColor.js.map +1 -1
- package/dist/curves/Tr2CurveColorMixer.js +6 -0
- package/dist/curves/Tr2CurveColorMixer.js.map +1 -1
- package/dist/curves/Tr2CurveCombiner.js +5 -0
- package/dist/curves/Tr2CurveCombiner.js.map +1 -1
- package/dist/curves/Tr2CurveConstant.js +16 -0
- package/dist/curves/Tr2CurveConstant.js.map +1 -1
- package/dist/curves/Tr2CurveEulerRotation.js +5 -0
- package/dist/curves/Tr2CurveEulerRotation.js.map +1 -1
- package/dist/curves/Tr2CurveEulerRotationExpression.js +66 -0
- package/dist/curves/Tr2CurveEulerRotationExpression.js.map +1 -1
- package/dist/curves/Tr2CurveQuaternion.js +5 -0
- package/dist/curves/Tr2CurveQuaternion.js.map +1 -1
- package/dist/curves/Tr2CurveQuaternionKey.js +5 -0
- package/dist/curves/Tr2CurveQuaternionKey.js.map +1 -1
- package/dist/curves/Tr2CurveRandomAxisRotation.js +28 -0
- package/dist/curves/Tr2CurveRandomAxisRotation.js.map +1 -1
- package/dist/curves/Tr2CurveScalar.js +35 -0
- package/dist/curves/Tr2CurveScalar.js.map +1 -1
- package/dist/curves/Tr2CurveScalarExpression.js +11 -0
- package/dist/curves/Tr2CurveScalarExpression.js.map +1 -1
- package/dist/curves/Tr2CurveScalarKey.js +6 -0
- package/dist/curves/Tr2CurveScalarKey.js.map +1 -1
- package/dist/curves/Tr2CurveSetRange.js +5 -0
- package/dist/curves/Tr2CurveSetRange.js.map +1 -1
- package/dist/curves/Tr2CurveVector2.js +5 -0
- package/dist/curves/Tr2CurveVector2.js.map +1 -1
- package/dist/curves/Tr2CurveVector3.js +5 -0
- package/dist/curves/Tr2CurveVector3.js.map +1 -1
- package/dist/curves/Tr2CurveVector3Expression.js +71 -0
- package/dist/curves/Tr2CurveVector3Expression.js.map +1 -1
- package/dist/curves/Tr2CurveVector3Lerp.js +6 -0
- package/dist/curves/Tr2CurveVector3Lerp.js.map +1 -1
- package/dist/curves/Tr2DistanceTracker.js +6 -0
- package/dist/curves/Tr2DistanceTracker.js.map +1 -1
- package/dist/curves/Tr2FollowCurve.js +6 -0
- package/dist/curves/Tr2FollowCurve.js.map +1 -1
- package/dist/curves/Tr2GrannyEventTrack.js +5 -0
- package/dist/curves/Tr2GrannyEventTrack.js.map +1 -1
- package/dist/curves/Tr2GrannyTrack.js +6 -0
- package/dist/curves/Tr2GrannyTrack.js.map +1 -1
- package/dist/curves/Tr2GrannyTransformTrack.js +6 -0
- package/dist/curves/Tr2GrannyTransformTrack.js.map +1 -1
- package/dist/curves/Tr2GrannyVectorTrack.js +5 -0
- package/dist/curves/Tr2GrannyVectorTrack.js.map +1 -1
- package/dist/curves/Tr2MatrixKey.js +5 -0
- package/dist/curves/Tr2MatrixKey.js.map +1 -1
- package/dist/curves/Tr2ObjectFollowCurveKey.js +6 -0
- package/dist/curves/Tr2ObjectFollowCurveKey.js.map +1 -1
- package/dist/curves/Tr2QuaternionLerpCurve.js +6 -0
- package/dist/curves/Tr2QuaternionLerpCurve.js.map +1 -1
- package/dist/curves/Tr2RotationAdapter.js +6 -0
- package/dist/curves/Tr2RotationAdapter.js.map +1 -1
- package/dist/curves/Tr2ScalarExprKey.js +18 -0
- package/dist/curves/Tr2ScalarExprKey.js.map +1 -1
- package/dist/curves/Tr2ScalarExprKeyCurve.js +23 -0
- package/dist/curves/Tr2ScalarExprKeyCurve.js.map +1 -1
- package/dist/curves/Tr2ScalarFader.js +11 -0
- package/dist/curves/Tr2ScalarFader.js.map +1 -1
- package/dist/curves/Tr2TranslationAdapter.js +6 -0
- package/dist/curves/Tr2TranslationAdapter.js.map +1 -1
- package/dist/curves/TriColorSequencer.js +6 -0
- package/dist/curves/TriColorSequencer.js.map +1 -1
- package/dist/curves/TriCurveSet.js +23 -0
- package/dist/curves/TriCurveSet.js.map +1 -1
- package/dist/curves/TriEventCurve.js +23 -0
- package/dist/curves/TriEventCurve.js.map +1 -1
- package/dist/curves/TriEventKey.js +5 -0
- package/dist/curves/TriEventKey.js.map +1 -1
- package/dist/curves/TriPerlinCurve.js +30 -0
- package/dist/curves/TriPerlinCurve.js.map +1 -1
- package/dist/curves/TriVectorSequencer.js +6 -0
- package/dist/curves/TriVectorSequencer.js.map +1 -1
- package/dist/eve/AudioGameObject.js +89 -1
- package/dist/eve/AudioGameObject.js.map +1 -1
- package/dist/eve/BackAndForthData.js +7 -0
- package/dist/eve/BackAndForthData.js.map +1 -1
- package/dist/eve/CjsDistributionRandom.js +6 -0
- package/dist/eve/CjsDistributionRandom.js.map +1 -1
- package/dist/eve/CjsEveThrottleableState.js +11 -0
- package/dist/eve/CjsEveThrottleableState.js.map +1 -1
- package/dist/eve/EveChildUpdateParams.js +7 -0
- package/dist/eve/EveChildUpdateParams.js.map +1 -1
- package/dist/eve/EveComponentTypes.js.map +1 -1
- package/dist/eve/EveCustomMask.js +58 -27
- package/dist/eve/EveCustomMask.js.map +1 -1
- package/dist/eve/EveDistanceField.js +84 -0
- package/dist/eve/EveDistanceField.js.map +1 -1
- package/dist/eve/EveEntity.js +138 -0
- package/dist/eve/EveEntity.js.map +1 -0
- package/dist/eve/EveImpactOverlay.js +61 -0
- package/dist/eve/EveImpactOverlay.js.map +1 -1
- package/dist/eve/EveLODHelper.js +17 -13
- package/dist/eve/EveLODHelper.js.map +1 -1
- package/dist/eve/EveLineData.js +2 -0
- package/dist/eve/EveLineData.js.map +1 -1
- package/dist/eve/EveThrottleable.js +11 -0
- package/dist/eve/EveThrottleable.js.map +1 -1
- package/dist/eve/FollowASplineData.js +7 -0
- package/dist/eve/FollowASplineData.js.map +1 -1
- package/dist/eve/FormationData.js +6 -0
- package/dist/eve/FormationData.js.map +1 -1
- package/dist/eve/InertiaData.js +7 -0
- package/dist/eve/InertiaData.js.map +1 -1
- package/dist/eve/PlacementDataWithIdentifier.js +7 -0
- package/dist/eve/PlacementDataWithIdentifier.js.map +1 -1
- package/dist/eve/PlayFXData.js +7 -0
- package/dist/eve/PlayFXData.js.map +1 -1
- package/dist/eve/SeekTargetData.js +7 -0
- package/dist/eve/SeekTargetData.js.map +1 -1
- package/dist/eve/{EveSpaceObjectAttachmentUtils.js → attachment/EveSpaceObjectAttachmentUtils.js} +11 -11
- package/dist/eve/attachment/EveSpaceObjectAttachmentUtils.js.map +1 -0
- package/dist/eve/attachment/banner/EveBannerItem.js +70 -0
- package/dist/eve/attachment/banner/EveBannerItem.js.map +1 -0
- package/dist/eve/{EveBannerLight.js → attachment/banner/EveBannerLight.js} +13 -2
- package/dist/eve/attachment/banner/EveBannerLight.js.map +1 -0
- package/dist/eve/attachment/banner/EveBannerSet.js +537 -0
- package/dist/eve/attachment/banner/EveBannerSet.js.map +1 -0
- package/dist/eve/{EveBoosterSet2.js → attachment/booster/EveBoosterSet2.js} +204 -35
- package/dist/eve/attachment/booster/EveBoosterSet2.js.map +1 -0
- package/dist/eve/{EveBoosterSet2Renderable.js → attachment/booster/EveBoosterSet2Renderable.js} +205 -12
- package/dist/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -0
- package/dist/eve/{EveTrailsSet.js → attachment/booster/EveTrailsSet.js} +49 -1
- package/dist/eve/attachment/booster/EveTrailsSet.js.map +1 -0
- package/dist/eve/attachment/decal/EveSpaceObjectDecal.js +512 -0
- package/dist/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -0
- package/dist/eve/{EveHazeSet.js → attachment/haze/EveHazeSet.js} +65 -6
- package/dist/eve/attachment/haze/EveHazeSet.js.map +1 -0
- package/dist/eve/attachment/haze/EveHazeSetItem.js +64 -0
- package/dist/eve/attachment/haze/EveHazeSetItem.js.map +1 -0
- package/dist/eve/{EveHazeSetLight.js → attachment/haze/EveHazeSetLight.js} +13 -2
- package/dist/eve/attachment/haze/EveHazeSetLight.js.map +1 -0
- package/dist/eve/attachment/itemSetBounds.js +131 -0
- package/dist/eve/attachment/itemSetBounds.js.map +1 -0
- package/dist/eve/{EvePlaneLight.js → attachment/plane/EvePlaneLight.js} +14 -2
- package/dist/eve/attachment/plane/EvePlaneLight.js.map +1 -0
- package/dist/eve/{EvePlaneSet.js → attachment/plane/EvePlaneSet.js} +119 -7
- package/dist/eve/attachment/plane/EvePlaneSet.js.map +1 -0
- package/dist/eve/attachment/plane/EvePlaneSetItem.js +72 -0
- package/dist/eve/attachment/plane/EvePlaneSetItem.js.map +1 -0
- package/dist/eve/{EveSpotlightLight.js → attachment/spotlight/EveSpotlightLight.js} +13 -2
- package/dist/eve/attachment/spotlight/EveSpotlightLight.js.map +1 -0
- package/dist/eve/{EveSpotlightSet.js → attachment/spotlight/EveSpotlightSet.js} +86 -6
- package/dist/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -0
- package/dist/eve/attachment/spotlight/EveSpotlightSetItem.js +61 -0
- package/dist/eve/attachment/spotlight/EveSpotlightSetItem.js.map +1 -0
- package/dist/eve/{EveSpriteLight.js → attachment/sprite/EveSpriteLight.js} +14 -2
- package/dist/eve/attachment/sprite/EveSpriteLight.js.map +1 -0
- package/dist/eve/{EveSpriteLineSet.js → attachment/sprite/EveSpriteLineSet.js} +69 -7
- package/dist/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -0
- package/dist/eve/{EveSpriteLineSetItem.js → attachment/sprite/EveSpriteLineSetItem.js} +29 -4
- package/dist/eve/attachment/sprite/EveSpriteLineSetItem.js.map +1 -0
- package/dist/eve/{EveSpriteSet.js → attachment/sprite/EveSpriteSet.js} +87 -8
- package/dist/eve/attachment/sprite/EveSpriteSet.js.map +1 -0
- package/dist/{generated/eve/attachment/sprites → eve/attachment/sprite}/EveSpriteSetItem.js +23 -26
- package/dist/eve/attachment/sprite/EveSpriteSetItem.js.map +1 -0
- package/dist/eve/attachment/turrets/EveTurretFiringFX.js +184 -2
- package/dist/eve/attachment/turrets/EveTurretFiringFX.js.map +1 -1
- package/dist/eve/attachment/turrets/EveTurretSet.js +236 -7
- package/dist/eve/attachment/turrets/EveTurretSet.js.map +1 -1
- package/dist/eve/attachment/turrets/EveTurretTarget.js +112 -0
- package/dist/eve/attachment/turrets/EveTurretTarget.js.map +1 -1
- package/dist/eve/camera/EveCamera.js +644 -0
- package/dist/eve/camera/EveCamera.js.map +1 -0
- package/dist/eve/child/EveChildAudio.js +63 -0
- package/dist/eve/child/EveChildAudio.js.map +1 -1
- package/dist/eve/child/EveChildBehaviorSystem.js +412 -0
- package/dist/eve/child/EveChildBehaviorSystem.js.map +1 -0
- package/dist/{generated/eve → eve}/child/EveChildBulletStorm.js +41 -3
- package/dist/eve/child/EveChildBulletStorm.js.map +1 -0
- package/dist/eve/child/EveChildContainer.js +175 -16
- package/dist/eve/child/EveChildContainer.js.map +1 -1
- package/dist/eve/child/EveChildEffectPropagator.js +1 -1
- package/dist/eve/child/EveChildEffectPropagator.js.map +1 -1
- package/dist/eve/child/EveChildFogVolume.js +72 -0
- package/dist/eve/child/EveChildFogVolume.js.map +1 -1
- package/dist/eve/child/EveChildInheritProperties.js +17 -0
- package/dist/eve/child/EveChildInheritProperties.js.map +1 -1
- package/dist/eve/child/EveChildInstancedMeshes.js +211 -1
- package/dist/eve/child/EveChildInstancedMeshes.js.map +1 -1
- package/dist/eve/child/EveChildLightingOverride.js +74 -0
- package/dist/eve/child/EveChildLightingOverride.js.map +1 -1
- package/dist/{generated/eve → eve}/child/EveChildLink.js +17 -16
- package/dist/eve/child/EveChildLink.js.map +1 -0
- package/dist/eve/child/EveChildMesh.js +351 -105
- package/dist/eve/child/EveChildMesh.js.map +1 -1
- package/dist/eve/child/EveChildSpherePin.js +108 -0
- package/dist/eve/child/EveChildSpherePin.js.map +1 -0
- package/dist/eve/child/EveChildTransform.js +44 -1
- package/dist/eve/child/EveChildTransform.js.map +1 -1
- package/dist/eve/child/IEveSpaceObjectChild.js +5 -0
- package/dist/eve/child/IEveSpaceObjectChild.js.map +1 -1
- package/dist/eve/child/behaviors/CollisionAvoidance.js +112 -0
- package/dist/eve/child/behaviors/CollisionAvoidance.js.map +1 -0
- package/dist/eve/child/behaviors/InclusionVolume.js +131 -0
- package/dist/eve/child/behaviors/InclusionVolume.js.map +1 -0
- package/dist/eve/child/behaviors/Wander.js +99 -0
- package/dist/eve/child/behaviors/Wander.js.map +1 -0
- package/dist/{generated/eve → eve}/child/behaviors/enums.js +1 -1
- package/dist/eve/child/behaviors/enums.js.map +1 -0
- package/dist/eve/child/behaviors/lifecycle/ProcessLifetime.js +540 -0
- package/dist/eve/child/behaviors/lifecycle/ProcessLifetime.js.map +1 -0
- package/dist/eve/{ProcessLifetimeData.js → child/behaviors/lifecycle/ProcessLifetimeData.js} +8 -2
- package/dist/eve/child/behaviors/lifecycle/ProcessLifetimeData.js.map +1 -0
- package/dist/eve/child/behaviors/{SplineTunnel.js → tunnels/SplineTunnel.js} +9 -7
- package/dist/eve/child/behaviors/tunnels/SplineTunnel.js.map +1 -0
- package/dist/eve/child/behaviors/tunnels/SplineTunnelGroup.js +211 -0
- package/dist/eve/child/behaviors/tunnels/SplineTunnelGroup.js.map +1 -0
- package/dist/eve/child/behaviors/{SplineTunnelPoint.js → tunnels/SplineTunnelPoint.js} +3 -3
- package/dist/eve/child/behaviors/tunnels/SplineTunnelPoint.js.map +1 -0
- package/dist/eve/child/lineSetPaths/EveBezierCurve.js +65 -0
- package/dist/eve/child/lineSetPaths/EveBezierCurve.js.map +1 -1
- package/dist/eve/child/lineSetPaths/EveCircle.js +63 -0
- package/dist/eve/child/lineSetPaths/EveCircle.js.map +1 -1
- package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierAttachToBone.js +24 -16
- package/dist/eve/child/modifiers/EveChildModifierAttachToBone.js.map +1 -0
- package/dist/eve/child/modifiers/EveChildModifierBillboard2D.js +5 -0
- package/dist/eve/child/modifiers/EveChildModifierBillboard2D.js.map +1 -1
- package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierBillboard3D.js +22 -19
- package/dist/eve/child/modifiers/EveChildModifierBillboard3D.js.map +1 -0
- package/dist/eve/child/modifiers/EveChildModifierBooster.js +6 -0
- package/dist/eve/child/modifiers/EveChildModifierBooster.js.map +1 -1
- package/dist/eve/child/modifiers/EveChildModifierCameraOrientedRotationConstrained.js +5 -0
- package/dist/eve/child/modifiers/EveChildModifierCameraOrientedRotationConstrained.js.map +1 -1
- package/dist/eve/child/modifiers/EveChildModifierHalo.js +5 -0
- package/dist/eve/child/modifiers/EveChildModifierHalo.js.map +1 -1
- package/dist/eve/child/modifiers/EveChildModifierHaloInverted.js +6 -0
- package/dist/eve/child/modifiers/EveChildModifierHaloInverted.js.map +1 -1
- package/dist/eve/child/modifiers/EveChildModifierSRT.js +5 -0
- package/dist/eve/child/modifiers/EveChildModifierSRT.js.map +1 -1
- package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierStretch.js +31 -17
- package/dist/eve/child/modifiers/EveChildModifierStretch.js.map +1 -0
- package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierTranslateWithCamera.js +16 -14
- package/dist/eve/child/modifiers/EveChildModifierTranslateWithCamera.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/EveChildProceduralContainer.js +11 -4
- package/dist/eve/child/procedural/EveChildProceduralContainer.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodAttributeMap.js +12 -12
- package/dist/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js +6 -6
- package/dist/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodCycling.js +12 -12
- package/dist/eve/child/procedural/selection/EveProceduralMethodCycling.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodCyclingParameter.js +8 -8
- package/dist/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodRandom.js +17 -17
- package/dist/eve/child/procedural/selection/EveProceduralMethodRandom.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodRandomParameter.js +7 -7
- package/dist/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodThresholdParameter.js +7 -7
- package/dist/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodThresholds.js +17 -17
- package/dist/eve/child/procedural/selection/EveProceduralMethodThresholds.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/EveBaseDistributionMethod.js +132 -3
- package/dist/eve/distribution/EveBaseDistributionMethod.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js +12 -1
- package/dist/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js +9 -1
- package/dist/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js +12 -1
- package/dist/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js.map +1 -0
- package/dist/eve/distribution/attributeModifiers/enums.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorLocators.js +16 -3
- package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js +31 -3
- package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorVolume.js +34 -3
- package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js +14 -2
- package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js +13 -2
- package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js +13 -2
- package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js +13 -2
- package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerBurst.js +19 -1
- package/dist/eve/distribution/spawners/EveDistributionSpawnerBurst.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerControllerTrigger.js +25 -1
- package/dist/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerInterval.js +17 -1
- package/dist/eve/distribution/spawners/EveDistributionSpawnerInterval.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerPlane.js +20 -1
- package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerSnake.js +20 -1
- package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerSphere.js +20 -1
- package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js.map +1 -0
- package/dist/{generated/eve/effect → eve/effect/lensflare}/EveLensflare.js +44 -2
- package/dist/eve/effect/lensflare/EveLensflare.js.map +1 -0
- package/dist/eve/effect/multiEffect/EveMultiEffect.js +302 -0
- package/dist/eve/effect/multiEffect/EveMultiEffect.js.map +1 -0
- package/dist/eve/effect/multiEffect/EveMultiEffectParameter.js +92 -0
- package/dist/eve/effect/multiEffect/EveMultiEffectParameter.js.map +1 -0
- package/dist/eve/index.js +117 -47
- package/dist/eve/index.js.map +1 -1
- package/dist/eve/lights/CjsLightData.js +7 -0
- package/dist/eve/lights/CjsLightData.js.map +1 -1
- package/dist/eve/lights/Tr2Light.js +41 -0
- package/dist/eve/lights/Tr2Light.js.map +1 -1
- package/dist/eve/lights/Tr2PointLight.js +5 -0
- package/dist/eve/lights/Tr2PointLight.js.map +1 -1
- package/dist/eve/lights/Tr2SpotLight.js +5 -0
- package/dist/eve/lights/Tr2SpotLight.js.map +1 -1
- package/dist/eve/lights/Tr2TexturedPointLight.js +10 -0
- package/dist/eve/lights/Tr2TexturedPointLight.js.map +1 -1
- package/dist/eve/lights/lightConversion.js +29 -27
- package/dist/eve/lights/lightConversion.js.map +1 -1
- package/dist/eve/{EveLocator2.js → locator/EveLocator2.js} +20 -1
- package/dist/eve/locator/EveLocator2.js.map +1 -0
- package/dist/eve/{EveLocatorSets.js → locator/EveLocatorSets.js} +43 -1
- package/dist/eve/locator/EveLocatorSets.js.map +1 -0
- package/dist/eve/{Locator.js → locator/Locator.js} +6 -1
- package/dist/eve/locator/Locator.js.map +1 -0
- package/dist/eve/{LocatorData.js → locator/LocatorData.js} +3 -1
- package/dist/eve/locator/LocatorData.js.map +1 -0
- package/dist/eve/overlays/EveMeshOverlayEffect.js +208 -0
- package/dist/eve/overlays/EveMeshOverlayEffect.js.map +1 -0
- package/dist/eve/{EveParticleDirectForce.js → particles/force/EveParticleDirectForce.js} +5 -5
- package/dist/eve/particles/force/EveParticleDirectForce.js.map +1 -0
- package/dist/eve/{EveParticleDragForce.js → particles/force/EveParticleDragForce.js} +5 -5
- package/dist/eve/particles/force/EveParticleDragForce.js.map +1 -0
- package/dist/eve/{EveParticleSpring.js → particles/force/EveParticleSpring.js} +6 -6
- package/dist/eve/particles/force/EveParticleSpring.js.map +1 -0
- package/dist/{generated/eve/scene → eve/particles/static}/EveSceneStaticParticles.js +70 -36
- package/dist/eve/particles/static/EveSceneStaticParticles.js.map +1 -0
- package/dist/eve/perObjectData/childPerObjectRecords.js +90 -0
- package/dist/eve/perObjectData/childPerObjectRecords.js.map +1 -0
- package/dist/eve/renderable/stretch/CjsStretchRuntime.js +76 -0
- package/dist/eve/renderable/stretch/CjsStretchRuntime.js.map +1 -1
- package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js +85 -1
- package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js.map +1 -1
- package/dist/eve/renderable/stretch/EveLocalPositionCurve.js +91 -0
- package/dist/eve/renderable/stretch/EveLocalPositionCurve.js.map +1 -1
- package/dist/eve/renderable/stretch/EveRemotePositionCurve.js +36 -0
- package/dist/eve/renderable/stretch/EveRemotePositionCurve.js.map +1 -1
- package/dist/eve/renderable/stretch/EveStretch.js +158 -9
- package/dist/eve/renderable/stretch/EveStretch.js.map +1 -1
- package/dist/eve/renderable/stretch/EveStretch2.js +121 -12
- package/dist/eve/renderable/stretch/EveStretch2.js.map +1 -1
- package/dist/eve/renderable/stretch/EveStretch3.js +261 -8
- package/dist/eve/renderable/stretch/EveStretch3.js.map +1 -1
- package/dist/eve/scene/EveSpaceScene.js +56 -6
- package/dist/eve/scene/EveSpaceScene.js.map +1 -1
- package/dist/{generated/eve/scene → eve/scene/components}/EveComponentCollection.js +24 -1
- package/dist/eve/scene/components/EveComponentCollection.js.map +1 -0
- package/dist/{generated/eve/scene → eve/scene/components}/EveComponentRegistry.js +74 -2
- package/dist/eve/scene/components/EveComponentRegistry.js.map +1 -0
- package/dist/eve/scene/picking/EvePickingContext.js +61 -0
- package/dist/eve/scene/picking/EvePickingContext.js.map +1 -0
- package/dist/eve/scene/shadows/TriShadowFrustum.js +70 -0
- package/dist/eve/scene/shadows/TriShadowFrustum.js.map +1 -0
- package/dist/eve/scene/shadows/TriShadowOrthoFrustum.js +129 -0
- package/dist/eve/scene/shadows/TriShadowOrthoFrustum.js.map +1 -0
- package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js +19 -19
- package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js.map +1 -0
- package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js +19 -19
- package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js.map +1 -0
- package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js +12 -12
- package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js.map +1 -0
- package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js +12 -12
- package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js.map +1 -0
- package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js +30 -30
- package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js.map +1 -0
- package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js +9 -9
- package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js.map +1 -0
- package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js +23 -23
- package/dist/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js.map +1 -0
- package/dist/eve/smartLights/attributeModifiers/enums.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterBindingBase.js +26 -1
- package/dist/eve/socket/EveSocketParameterBindingBase.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterBool.js +17 -1
- package/dist/eve/socket/EveSocketParameterBool.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterColor.js +21 -5
- package/dist/eve/socket/EveSocketParameterColor.js.map +1 -0
- package/dist/eve/socket/EveSocketParameterFilePath.js +5 -5
- package/dist/eve/socket/EveSocketParameterFilePath.js.map +1 -1
- package/dist/{generated/eve → eve}/socket/EveSocketParameterFloat.js +17 -1
- package/dist/eve/socket/EveSocketParameterFloat.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterInt.js +17 -1
- package/dist/eve/socket/EveSocketParameterInt.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterString.js +42 -2
- package/dist/eve/socket/EveSocketParameterString.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterVector2.js +17 -1
- package/dist/eve/socket/EveSocketParameterVector2.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterVector3.js +17 -1
- package/dist/eve/socket/EveSocketParameterVector3.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterVector4.js +17 -1
- package/dist/eve/socket/EveSocketParameterVector4.js.map +1 -0
- package/dist/eve/spaceObject/EveEffectRoot2.js +58 -31
- package/dist/eve/spaceObject/EveEffectRoot2.js.map +1 -1
- package/dist/eve/spaceObject/EveMissile.js +49 -1
- package/dist/eve/spaceObject/EveMissile.js.map +1 -1
- package/dist/eve/spaceObject/EveMissileWarhead.js +100 -1
- package/dist/eve/spaceObject/EveMissileWarhead.js.map +1 -1
- package/dist/eve/spaceObject/EveMobile.js +104 -0
- package/dist/eve/spaceObject/EveMobile.js.map +1 -1
- package/dist/eve/spaceObject/EveRootTransform.js +17 -0
- package/dist/eve/spaceObject/EveRootTransform.js.map +1 -1
- package/dist/{generated/eve → eve}/spaceObject/EveShip2.js +32 -12
- package/dist/eve/spaceObject/EveShip2.js.map +1 -0
- package/dist/eve/spaceObject/EveSpaceObject2.js +726 -199
- package/dist/eve/spaceObject/EveSpaceObject2.js.map +1 -1
- package/dist/eve/spaceObject/EveTransform.js +100 -4
- package/dist/eve/spaceObject/EveTransform.js.map +1 -1
- package/dist/eve/spaceObject/IEveSpaceObject2ParentData.js +70 -0
- package/dist/eve/spaceObject/IEveSpaceObject2ParentData.js.map +1 -0
- package/dist/eve/spaceObject/createEveSpaceObjectMainPerObjectValues.js +19 -16
- package/dist/eve/spaceObject/createEveSpaceObjectMainPerObjectValues.js.map +1 -1
- package/dist/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js +92 -0
- package/dist/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js.map +1 -0
- package/dist/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js +158 -0
- package/dist/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js.map +1 -0
- package/dist/{generated/eve/spaceObject → eve/spaceObject/planet}/EvePlanet.js +2 -2
- package/dist/eve/spaceObject/planet/EvePlanet.js.map +1 -0
- package/dist/{generated/eve → eve}/spaceObject/swarm/EveSwarmRenderable.js +102 -64
- package/dist/eve/spaceObject/swarm/EveSwarmRenderable.js.map +1 -0
- package/dist/eve/ui/EveEllipseDefinition.js +15 -0
- package/dist/eve/ui/EveEllipseDefinition.js.map +1 -1
- package/dist/eve/ui/EveEllipseSet.js +42 -0
- package/dist/eve/ui/EveEllipseSet.js.map +1 -1
- package/dist/{generated/eve → eve}/ui/EveSpherePin.js +76 -11
- package/dist/eve/ui/EveSpherePin.js.map +1 -0
- package/dist/eve/ui/EveSprite2dBracket.js +5 -0
- package/dist/eve/ui/EveSprite2dBracket.js.map +1 -1
- package/dist/eve/ui/EveUiObject.js +11 -0
- package/dist/eve/ui/EveUiObject.js.map +1 -1
- package/dist/{generated/eve/ui → eve/ui/lines}/EveLineSet.js +67 -6
- package/dist/eve/ui/lines/EveLineSet.js.map +1 -0
- package/dist/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js +78 -0
- package/dist/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js.map +1 -0
- package/dist/{generated/eve/ui → eve/ui/tacticalOverlay}/EveTacticalTrails.js +22 -2
- package/dist/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -0
- package/dist/eve/virtualCamera/EveVirtualCamera.js +152 -0
- package/dist/eve/virtualCamera/EveVirtualCamera.js.map +1 -1
- package/dist/eve/virtualCamera/EveVirtualCameraSystem.js +65 -0
- package/dist/eve/virtualCamera/EveVirtualCameraSystem.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js +17 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js +19 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js +17 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js +29 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js +15 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js +38 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js +17 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js +18 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js +20 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js +20 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveRight.js +11 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveRight.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveUp.js +14 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveUp.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js +16 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js +20 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js +36 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js.map +1 -1
- package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionBase.js +36 -0
- package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionBase.js.map +1 -1
- package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionCut.js +11 -0
- package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionCut.js.map +1 -1
- package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js +37 -0
- package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js.map +1 -1
- package/dist/eve/volume/EveBoxVolume.js +59 -0
- package/dist/eve/volume/EveBoxVolume.js.map +1 -1
- package/dist/eve/volume/EveEllipsoidVolume.js +54 -0
- package/dist/eve/volume/EveEllipsoidVolume.js.map +1 -1
- package/dist/eve/volume/EveSphereVolume.js +34 -0
- package/dist/eve/volume/EveSphereVolume.js.map +1 -1
- package/dist/generated/eve/child/EveChildCloud2.js +138 -138
- package/dist/generated/eve/child/EveChildCloud2.js.map +1 -1
- package/dist/generated/eve/child/EveChildParticleSystem.js +10 -4
- package/dist/generated/eve/child/EveChildParticleSystem.js.map +1 -1
- package/dist/generated/eve/child/EveChildSocket.js +1 -1
- package/dist/generated/eve/child/EveChildSocket.js.map +1 -1
- package/dist/generated/eve/child/behaviors/BackAndForth.js +14 -17
- package/dist/generated/eve/child/behaviors/BackAndForth.js.map +1 -1
- package/dist/generated/eve/child/behaviors/BehaviorGroup.js +2 -2
- package/dist/generated/eve/child/behaviors/BehaviorGroup.js.map +1 -1
- package/dist/generated/eve/child/behaviors/EveKDdroneManagementTree.js +26 -29
- package/dist/generated/eve/child/behaviors/EveKDdroneManagementTree.js.map +1 -1
- package/dist/generated/eve/child/behaviors/FollowASpline.js +13 -17
- package/dist/generated/eve/child/behaviors/FollowASpline.js.map +1 -1
- package/dist/generated/eve/child/behaviors/PlayFX.js +14 -14
- package/dist/generated/eve/child/behaviors/PlayFX.js.map +1 -1
- package/dist/generated/eve/child/behaviors/SeekTarget.js +1 -1
- package/dist/generated/eve/child/behaviors/SeekTarget.js.map +1 -1
- package/dist/generated/eve/child/behaviors/index.js +0 -6
- package/dist/generated/eve/child/behaviors/index.js.map +1 -1
- package/dist/generated/eve/child/index.js +0 -23
- package/dist/generated/eve/child/index.js.map +1 -1
- package/dist/generated/eve/effect/index.js +0 -3
- package/dist/generated/eve/effect/index.js.map +1 -1
- package/dist/generated/eve/index.js +0 -88
- package/dist/generated/eve/index.js.map +1 -1
- package/dist/generated/eve/scene/index.js +0 -6
- package/dist/generated/eve/scene/index.js.map +1 -1
- package/dist/generated/eve/smartLights/EveSmartLightColorShareGroup.js +20 -20
- package/dist/generated/eve/smartLights/EveSmartLightColorShareGroup.js.map +1 -1
- package/dist/generated/eve/smartLights/EveSmartLightPointLight.js +1 -1
- package/dist/generated/eve/smartLights/EveSmartLightPointLight.js.map +1 -1
- package/dist/generated/eve/smartLights/index.js +0 -8
- package/dist/generated/eve/smartLights/index.js.map +1 -1
- package/dist/generated/eve/spaceObject/index.js +0 -4
- package/dist/generated/eve/spaceObject/index.js.map +1 -1
- package/dist/generated/eve/spaceObject/swarm/EveSwarm.js +11 -11
- package/dist/generated/eve/spaceObject/swarm/EveSwarm.js.map +1 -1
- package/dist/generated/eve/spaceObject/swarm/index.js +0 -1
- package/dist/generated/eve/spaceObject/swarm/index.js.map +1 -1
- package/dist/generated/eve/ui/index.js +0 -4
- package/dist/generated/eve/ui/index.js.map +1 -1
- package/dist/generated/index.js +0 -93
- package/dist/generated/index.js.map +1 -1
- package/dist/generated/trinityCore/index.js +0 -5
- package/dist/generated/trinityCore/index.js.map +1 -1
- package/dist/index.js +130 -155
- package/dist/index.js.map +1 -1
- package/dist/particle/Tr2GpuSharedEmitter.js +39 -0
- package/dist/particle/Tr2GpuSharedEmitter.js.map +1 -1
- package/dist/particle/Tr2GpuUniqueEmitter.js +5 -0
- package/dist/particle/Tr2GpuUniqueEmitter.js.map +1 -1
- package/dist/particle/Tr2ParticleAttractorForce.js +10 -0
- package/dist/particle/Tr2ParticleAttractorForce.js.map +1 -1
- package/dist/particle/Tr2ParticleDirectForce.js +7 -0
- package/dist/particle/Tr2ParticleDirectForce.js.map +1 -1
- package/dist/particle/Tr2ParticleDragForce.js +7 -0
- package/dist/particle/Tr2ParticleDragForce.js.map +1 -1
- package/dist/particle/Tr2ParticleElementDeclaration.js +5 -0
- package/dist/particle/Tr2ParticleElementDeclaration.js.map +1 -1
- package/dist/particle/Tr2ParticleFluidDragForce.js +10 -0
- package/dist/particle/Tr2ParticleFluidDragForce.js.map +1 -1
- package/dist/particle/Tr2ParticleSpring.js +10 -0
- package/dist/particle/Tr2ParticleSpring.js.map +1 -1
- package/dist/particle/Tr2ParticleVortexForce.js +10 -0
- package/dist/particle/Tr2ParticleVortexForce.js.map +1 -1
- package/dist/particle/particleElementBinding.js +12 -0
- package/dist/particle/particleElementBinding.js.map +1 -1
- package/dist/postProcess/Tr2PPBloomEffect.js +6 -0
- package/dist/postProcess/Tr2PPBloomEffect.js.map +1 -1
- package/dist/postProcess/Tr2PPDepthOfFieldEffect.js +16 -0
- package/dist/postProcess/Tr2PPDepthOfFieldEffect.js.map +1 -1
- package/dist/postProcess/Tr2PPGenericEffect.js +7 -0
- package/dist/postProcess/Tr2PPGenericEffect.js.map +1 -1
- package/dist/postProcess/Tr2PPTaaEffect.js +10 -0
- package/dist/postProcess/Tr2PPTaaEffect.js.map +1 -1
- package/dist/postProcess/Tr2PPTonemappingEffect.js +5 -0
- package/dist/postProcess/Tr2PPTonemappingEffect.js.map +1 -1
- package/dist/postProcess/Tr2PostProcess.js +5 -0
- package/dist/postProcess/Tr2PostProcess.js.map +1 -1
- package/dist/postProcess/Tr2PostProcess2.js +147 -0
- package/dist/postProcess/Tr2PostProcess2.js.map +1 -1
- package/dist/postProcess/Tr2PostProcessAttributes.js +89 -0
- package/dist/postProcess/Tr2PostProcessAttributes.js.map +1 -1
- package/dist/renderJob/Tr2RenderJobs.js +34 -0
- package/dist/renderJob/Tr2RenderJobs.js.map +1 -1
- package/dist/renderJob/TriRenderJob.js +59 -0
- package/dist/renderJob/TriRenderJob.js.map +1 -1
- package/dist/renderJob/TriRenderStep.js +20 -0
- package/dist/renderJob/TriRenderStep.js.map +1 -1
- package/dist/renderJob/TriStepClear.js +18 -0
- package/dist/renderJob/TriStepClear.js.map +1 -1
- package/dist/renderJob/TriStepCopyRenderTarget.js +51 -0
- package/dist/renderJob/TriStepCopyRenderTarget.js.map +1 -1
- package/dist/renderJob/TriStepEnableWireframeMode.js +9 -0
- package/dist/renderJob/TriStepEnableWireframeMode.js.map +1 -1
- package/dist/renderJob/TriStepGenerateMipMaps.js +9 -0
- package/dist/renderJob/TriStepGenerateMipMaps.js.map +1 -1
- package/dist/renderJob/TriStepPopDepthStencil.js +6 -0
- package/dist/renderJob/TriStepPopDepthStencil.js.map +1 -1
- package/dist/renderJob/TriStepPopProjection.js +6 -0
- package/dist/renderJob/TriStepPopProjection.js.map +1 -1
- package/dist/renderJob/TriStepPopRenderTarget.js +12 -0
- package/dist/renderJob/TriStepPopRenderTarget.js.map +1 -1
- package/dist/renderJob/TriStepPopViewTransform.js +6 -0
- package/dist/renderJob/TriStepPopViewTransform.js.map +1 -1
- package/dist/renderJob/TriStepPopViewport.js +6 -0
- package/dist/renderJob/TriStepPopViewport.js.map +1 -1
- package/dist/renderJob/TriStepPresentSwapChain.js +12 -0
- package/dist/renderJob/TriStepPresentSwapChain.js.map +1 -1
- package/dist/renderJob/TriStepPushDepthStencil.js +17 -0
- package/dist/renderJob/TriStepPushDepthStencil.js.map +1 -1
- package/dist/renderJob/TriStepPushProjection.js +6 -0
- package/dist/renderJob/TriStepPushProjection.js.map +1 -1
- package/dist/renderJob/TriStepPushRenderTarget.js +9 -0
- package/dist/renderJob/TriStepPushRenderTarget.js.map +1 -1
- package/dist/renderJob/TriStepPushViewTransform.js +6 -0
- package/dist/renderJob/TriStepPushViewTransform.js.map +1 -1
- package/dist/renderJob/TriStepPushViewport.js +6 -0
- package/dist/renderJob/TriStepPushViewport.js.map +1 -1
- package/dist/renderJob/TriStepRemoteSync.js +17 -0
- package/dist/renderJob/TriStepRemoteSync.js.map +1 -1
- package/dist/renderJob/TriStepResolve.js +13 -0
- package/dist/renderJob/TriStepResolve.js.map +1 -1
- package/dist/renderJob/TriStepRunJob.js +12 -0
- package/dist/renderJob/TriStepRunJob.js.map +1 -1
- package/dist/renderJob/TriStepSetDepthStencil.js +12 -0
- package/dist/renderJob/TriStepSetDepthStencil.js.map +1 -1
- package/dist/renderJob/TriStepSetProjection.js +14 -0
- package/dist/renderJob/TriStepSetProjection.js.map +1 -1
- package/dist/renderJob/TriStepSetRenderState.js +20 -0
- package/dist/renderJob/TriStepSetRenderState.js.map +1 -1
- package/dist/renderJob/TriStepSetRenderTarget.js +12 -0
- package/dist/renderJob/TriStepSetRenderTarget.js.map +1 -1
- package/dist/renderJob/TriStepSetStdRndStates.js +18 -0
- package/dist/renderJob/TriStepSetStdRndStates.js.map +1 -1
- package/dist/renderJob/TriStepSetView.js +29 -2
- package/dist/renderJob/TriStepSetView.js.map +1 -1
- package/dist/renderJob/TriStepSetViewport.js +17 -0
- package/dist/renderJob/TriStepSetViewport.js.map +1 -1
- package/dist/renderJob/TriStepSetVisualizationMode.js +19 -0
- package/dist/renderJob/TriStepSetVisualizationMode.js.map +1 -1
- package/dist/shader/Tr2Effect.js +217 -2
- package/dist/shader/Tr2Effect.js.map +1 -1
- package/dist/shader/Tr2Material.js +41 -0
- package/dist/shader/Tr2Material.js.map +1 -1
- package/dist/shader/index.js +1 -11
- package/dist/shader/index.js.map +1 -1
- package/dist/shader/material/Tr2EffectLibraryParameters.js +7 -0
- package/dist/shader/material/Tr2EffectLibraryParameters.js.map +1 -1
- package/dist/shader/material/Tr2EffectPassParameters.js +23 -0
- package/dist/shader/material/Tr2EffectPassParameters.js.map +1 -1
- package/dist/shader/material/Tr2MaterialStageInput.js +15 -0
- package/dist/shader/material/Tr2MaterialStageInput.js.map +1 -1
- package/dist/shader/parameter/CjsParameter.js +94 -0
- package/dist/shader/parameter/CjsParameter.js.map +1 -1
- package/dist/shader/parameter/CjsVectorParameter.js +20 -0
- package/dist/shader/parameter/CjsVectorParameter.js.map +1 -1
- package/dist/shader/parameter/Tr2FloatParameter.js +53 -0
- package/dist/shader/parameter/Tr2FloatParameter.js.map +1 -1
- package/dist/shader/parameter/Tr2GeometryBufferParameter.js +39 -0
- package/dist/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
- package/dist/shader/parameter/Tr2Matrix4Parameter.js +54 -0
- package/dist/shader/parameter/Tr2Matrix4Parameter.js.map +1 -1
- package/dist/shader/parameter/Tr2RuntimeTextureParameter.js +54 -0
- package/dist/shader/parameter/Tr2RuntimeTextureParameter.js.map +1 -1
- package/dist/shader/parameter/Tr2TextureAnimationParameter.js +35 -0
- package/dist/shader/parameter/Tr2TextureAnimationParameter.js.map +1 -1
- package/dist/shader/parameter/Tr2Vector2Parameter.js +86 -0
- package/dist/shader/parameter/Tr2Vector2Parameter.js.map +1 -1
- package/dist/shader/parameter/Tr2Vector3Parameter.js +95 -0
- package/dist/shader/parameter/Tr2Vector3Parameter.js.map +1 -1
- package/dist/shader/parameter/Tr2Vector4Parameter.js +105 -0
- package/dist/shader/parameter/Tr2Vector4Parameter.js.map +1 -1
- package/dist/shader/parameter/TriFloatArrayParameter.js +26 -0
- package/dist/shader/parameter/TriFloatArrayParameter.js.map +1 -1
- package/dist/shader/parameter/TriTextureParameter.js +84 -0
- package/dist/shader/parameter/TriTextureParameter.js.map +1 -1
- package/dist/shader/parameter/TriTransformParameter.js +2 -0
- package/dist/shader/parameter/TriTransformParameter.js.map +1 -1
- package/dist/shader/parameter/TriVariableParameter.js +38 -0
- package/dist/shader/parameter/TriVariableParameter.js.map +1 -1
- package/dist/shader/parameter/TriVector4.js +2 -0
- package/dist/shader/parameter/TriVector4.js.map +1 -1
- package/dist/shader/reflection/Tr2ShaderOption.js +6 -1
- package/dist/shader/reflection/Tr2ShaderOption.js.map +1 -1
- package/dist/shader/support/CjsVariableStore.js +140 -0
- package/dist/shader/support/CjsVariableStore.js.map +1 -1
- package/dist/shader/support/Tr2ShaderBuffer.js +15 -0
- package/dist/shader/support/Tr2ShaderBuffer.js.map +1 -1
- package/dist/trinityCore/CjsBatchManager.js +62 -2
- package/dist/trinityCore/CjsBatchManager.js.map +1 -1
- package/dist/trinityCore/GrannyBoneOffset.js +51 -0
- package/dist/trinityCore/GrannyBoneOffset.js.map +1 -1
- package/dist/trinityCore/ITriRenderBatchAccumulator.js +65 -3
- package/dist/trinityCore/ITriRenderBatchAccumulator.js.map +1 -1
- package/dist/trinityCore/Tr2DirectInstanceData.js +19 -0
- package/dist/trinityCore/Tr2DirectInstanceData.js.map +1 -1
- package/dist/trinityCore/Tr2ExpressionTermInfo.js +21 -0
- package/dist/trinityCore/Tr2ExpressionTermInfo.js.map +1 -1
- package/dist/trinityCore/Tr2GpuBuffer.js +5 -0
- package/dist/trinityCore/Tr2GpuBuffer.js.map +1 -1
- package/dist/{generated/trinityCore → trinityCore}/Tr2GrannyAnimation.js +137 -8
- package/dist/trinityCore/Tr2GrannyAnimation.js.map +1 -0
- package/dist/trinityCore/Tr2InstancedMesh.js +52 -0
- package/dist/trinityCore/Tr2InstancedMesh.js.map +1 -1
- package/dist/trinityCore/Tr2MaterialParameterStore.js +5 -0
- package/dist/trinityCore/Tr2MaterialParameterStore.js.map +1 -1
- package/dist/trinityCore/Tr2Mesh.js +37 -0
- package/dist/trinityCore/Tr2Mesh.js.map +1 -1
- package/dist/trinityCore/Tr2MeshArea.js +78 -0
- package/dist/trinityCore/Tr2MeshArea.js.map +1 -1
- package/dist/trinityCore/Tr2MeshBase.js +98 -2
- package/dist/trinityCore/Tr2MeshBase.js.map +1 -1
- package/dist/trinityCore/Tr2PerObjectData.js +10 -0
- package/dist/trinityCore/Tr2PerObjectData.js.map +1 -1
- package/dist/trinityCore/Tr2PickType.js +33 -0
- package/dist/trinityCore/Tr2PickType.js.map +1 -0
- package/dist/trinityCore/Tr2RenderBatch.js +137 -0
- package/dist/trinityCore/Tr2RenderBatch.js.map +1 -1
- package/dist/trinityCore/Tr2RenderContext.js +271 -0
- package/dist/trinityCore/Tr2RenderContext.js.map +1 -1
- package/dist/trinityCore/Tr2RuntimeInstanceData.js +179 -0
- package/dist/trinityCore/Tr2RuntimeInstanceData.js.map +1 -1
- package/dist/trinityCore/Tr2ShLightingManager.js +397 -0
- package/dist/trinityCore/Tr2ShLightingManager.js.map +1 -0
- package/dist/trinityCore/Tr2VariableStore.js +26 -0
- package/dist/trinityCore/Tr2VariableStore.js.map +1 -1
- package/dist/trinityCore/Tr2VisibilityResults.js +5 -0
- package/dist/trinityCore/Tr2VisibilityResults.js.map +1 -1
- package/dist/trinityCore/TriDevice.js +5 -0
- package/dist/trinityCore/TriDevice.js.map +1 -1
- package/dist/trinityCore/TriFrustum.js +21 -14
- package/dist/trinityCore/TriFrustum.js.map +1 -1
- package/dist/trinityCore/TriObserverLocal.js +43 -0
- package/dist/trinityCore/TriObserverLocal.js.map +1 -1
- package/dist/trinityCore/TriProjection.js +86 -32
- package/dist/trinityCore/TriProjection.js.map +1 -1
- package/dist/trinityCore/TriRect.js +12 -0
- package/dist/trinityCore/TriRect.js.map +1 -1
- package/dist/trinityCore/TriRenderBatchAccumulator.js +46 -0
- package/dist/trinityCore/TriRenderBatchAccumulator.js.map +1 -1
- package/dist/trinityCore/TriRenderBatchMap.js +39 -2
- package/dist/trinityCore/TriRenderBatchMap.js.map +1 -1
- package/dist/trinityCore/TriSettings.js +38 -0
- package/dist/trinityCore/TriSettings.js.map +1 -1
- package/dist/trinityCore/TriVariable.js +30 -0
- package/dist/trinityCore/TriVariable.js.map +1 -1
- package/dist/trinityCore/TriView.js +16 -1
- package/dist/trinityCore/TriView.js.map +1 -1
- package/dist/trinityCore/TriViewport.js +12 -0
- package/dist/trinityCore/TriViewport.js.map +1 -1
- package/dist/trinityCore/{Tr2BindingVector3.js → binding/Tr2BindingVector3.js} +1 -1
- package/dist/trinityCore/binding/Tr2BindingVector3.js.map +1 -0
- package/dist/trinityCore/binding/Tr2DynamicBinding.js +266 -0
- package/dist/trinityCore/binding/Tr2DynamicBinding.js.map +1 -0
- package/dist/trinityCore/binding/Tr2ExternalParameter.js +392 -0
- package/dist/trinityCore/binding/Tr2ExternalParameter.js.map +1 -0
- package/dist/trinityCore/{Tr2PyValueBinding.js → binding/Tr2PyValueBinding.js} +30 -6
- package/dist/trinityCore/binding/Tr2PyValueBinding.js.map +1 -0
- package/dist/trinityCore/binding/TriValueBinding.js +648 -0
- package/dist/trinityCore/binding/TriValueBinding.js.map +1 -0
- package/dist/trinityCore/index.js +11 -4
- package/dist/trinityCore/index.js.map +1 -1
- package/dist/trinityCore/pickRay.js +84 -0
- package/dist/trinityCore/pickRay.js.map +1 -0
- package/dist/trinityCore/rawData/CjsPerObjectLayouts.js +931 -0
- package/dist/trinityCore/rawData/CjsPerObjectLayouts.js.map +1 -0
- package/dist/trinityCore/rawData/RawData.js +294 -38
- package/dist/trinityCore/rawData/RawData.js.map +1 -1
- package/dist/trinityCore/rawData/TriPoolAllocator.js +357 -0
- package/dist/trinityCore/rawData/TriPoolAllocator.js.map +1 -0
- package/dist/utilities/Range.js +53 -0
- package/dist/utilities/Range.js.map +1 -1
- package/docs/README.md +88 -0
- package/docs/architecture.md +162 -0
- package/docs/concepts/eve-runtime-behavior.md +86 -0
- package/docs/concepts/generated-class-lifecycle.md +116 -0
- package/docs/reference/api.md +76 -0
- package/docs/reference/classes/eve-runtime.md +106 -0
- package/docs/reference/classes/trinity-core.md +26 -0
- package/docs/reference/implementation-status.md +104 -0
- package/docs/reference/main-semantic-extraction.md +104 -0
- package/package.json +33 -24
- package/dist/eve/DecalVSPerObjectData.js +0 -34
- package/dist/eve/DecalVSPerObjectData.js.map +0 -1
- package/dist/eve/EveBannerItem.js +0 -43
- package/dist/eve/EveBannerItem.js.map +0 -1
- package/dist/eve/EveBannerLight.js.map +0 -1
- package/dist/eve/EveBannerSet.js +0 -190
- package/dist/eve/EveBannerSet.js.map +0 -1
- package/dist/eve/EveBasicPerObjectData.js +0 -31
- package/dist/eve/EveBasicPerObjectData.js.map +0 -1
- package/dist/eve/EveBoosterSet2.js.map +0 -1
- package/dist/eve/EveBoosterSet2Renderable.js.map +0 -1
- package/dist/eve/EveChildSpherePinPerObjectData.js +0 -37
- package/dist/eve/EveChildSpherePinPerObjectData.js.map +0 -1
- package/dist/eve/EveHazeSet.js.map +0 -1
- package/dist/eve/EveHazeSetLight.js.map +0 -1
- package/dist/eve/EveLocator2.js.map +0 -1
- package/dist/eve/EveLocatorSets.js.map +0 -1
- package/dist/eve/EveParticleDirectForce.js.map +0 -1
- package/dist/eve/EveParticleDragForce.js.map +0 -1
- package/dist/eve/EveParticleSpring.js.map +0 -1
- package/dist/eve/EvePerObjectPSData.js +0 -29
- package/dist/eve/EvePerObjectPSData.js.map +0 -1
- package/dist/eve/EvePerObjectVSData.js +0 -29
- package/dist/eve/EvePerObjectVSData.js.map +0 -1
- package/dist/eve/EvePlaneLight.js.map +0 -1
- package/dist/eve/EvePlaneSet.js.map +0 -1
- package/dist/eve/EvePlaneSetItem.js +0 -45
- package/dist/eve/EvePlaneSetItem.js.map +0 -1
- package/dist/eve/EveSpaceObjectAttachmentUtils.js.map +0 -1
- package/dist/eve/EveSpaceObjectDecal.js +0 -150
- package/dist/eve/EveSpaceObjectDecal.js.map +0 -1
- package/dist/eve/EveSpaceObjectPSData.js +0 -73
- package/dist/eve/EveSpaceObjectPSData.js.map +0 -1
- package/dist/eve/EveSpaceObjectVSData.js +0 -79
- package/dist/eve/EveSpaceObjectVSData.js.map +0 -1
- package/dist/eve/EveSpacePerObjectData.js +0 -97
- package/dist/eve/EveSpacePerObjectData.js.map +0 -1
- package/dist/eve/EveSpherePinPerObjectData.js +0 -37
- package/dist/eve/EveSpherePinPerObjectData.js.map +0 -1
- package/dist/eve/EveSpotlightLight.js.map +0 -1
- package/dist/eve/EveSpotlightSet.js.map +0 -1
- package/dist/eve/EveSpriteLight.js.map +0 -1
- package/dist/eve/EveSpriteLineSet.js.map +0 -1
- package/dist/eve/EveSpriteLineSetItem.js.map +0 -1
- package/dist/eve/EveSpriteSet.js.map +0 -1
- package/dist/eve/EveTrailsSet.js.map +0 -1
- package/dist/eve/Locator.js.map +0 -1
- package/dist/eve/LocatorData.js.map +0 -1
- package/dist/eve/ProcessLifetimeData.js.map +0 -1
- package/dist/eve/attachment/turrets/EveTurretSetPSData.js +0 -47
- package/dist/eve/attachment/turrets/EveTurretSetPSData.js.map +0 -1
- package/dist/eve/attachment/turrets/EveTurretSetVSData.js +0 -62
- package/dist/eve/attachment/turrets/EveTurretSetVSData.js.map +0 -1
- package/dist/eve/child/behaviors/SplineTunnel.js.map +0 -1
- package/dist/eve/child/behaviors/SplineTunnelPoint.js.map +0 -1
- package/dist/eve/perObjectData/DecalPSPerObjectData.js +0 -56
- package/dist/eve/perObjectData/DecalPSPerObjectData.js.map +0 -1
- package/dist/eve/perObjectData/EveMissileWarheadPerObjectData.js +0 -31
- package/dist/eve/perObjectData/EveMissileWarheadPerObjectData.js.map +0 -1
- package/dist/eve/perObjectData/EveTurretSetPerObjectData.js +0 -36
- package/dist/eve/perObjectData/EveTurretSetPerObjectData.js.map +0 -1
- package/dist/eve/perObjectData/MergeMorphsConstantBuffer.js +0 -64
- package/dist/eve/perObjectData/MergeMorphsConstantBuffer.js.map +0 -1
- package/dist/generated/eve/EveCamera.js +0 -264
- package/dist/generated/eve/EveCamera.js.map +0 -1
- package/dist/generated/eve/EveEntity.js +0 -81
- package/dist/generated/eve/EveEntity.js.map +0 -1
- package/dist/generated/eve/attachment/decal/index.js +0 -2
- package/dist/generated/eve/attachment/decal/index.js.map +0 -1
- package/dist/generated/eve/attachment/haze/EveHazeSetItem.js +0 -52
- package/dist/generated/eve/attachment/haze/EveHazeSetItem.js.map +0 -1
- package/dist/generated/eve/attachment/haze/index.js +0 -2
- package/dist/generated/eve/attachment/haze/index.js.map +0 -1
- package/dist/generated/eve/attachment/index.js +0 -5
- package/dist/generated/eve/attachment/index.js.map +0 -1
- package/dist/generated/eve/attachment/spotlights/EveSpotlightSetItem.js +0 -55
- package/dist/generated/eve/attachment/spotlights/EveSpotlightSetItem.js.map +0 -1
- package/dist/generated/eve/attachment/spotlights/index.js +0 -2
- package/dist/generated/eve/attachment/spotlights/index.js.map +0 -1
- package/dist/generated/eve/attachment/sprites/EveSpriteSetItem.js.map +0 -1
- package/dist/generated/eve/attachment/sprites/index.js +0 -2
- package/dist/generated/eve/attachment/sprites/index.js.map +0 -1
- package/dist/generated/eve/attachment/turrets/enums.js +0 -32
- package/dist/generated/eve/attachment/turrets/enums.js.map +0 -1
- package/dist/generated/eve/attachment/turrets/index.js +0 -2
- package/dist/generated/eve/attachment/turrets/index.js.map +0 -1
- package/dist/generated/eve/child/EveChildBehaviorSystem.js +0 -357
- package/dist/generated/eve/child/EveChildBehaviorSystem.js.map +0 -1
- package/dist/generated/eve/child/EveChildBulletStorm.js.map +0 -1
- package/dist/generated/eve/child/EveChildLink.js.map +0 -1
- package/dist/generated/eve/child/EveChildSpherePin.js +0 -54
- package/dist/generated/eve/child/EveChildSpherePin.js.map +0 -1
- package/dist/generated/eve/child/behaviors/CollisionAvoidance.js +0 -85
- package/dist/generated/eve/child/behaviors/CollisionAvoidance.js.map +0 -1
- package/dist/generated/eve/child/behaviors/InclusionVolume.js +0 -104
- package/dist/generated/eve/child/behaviors/InclusionVolume.js.map +0 -1
- package/dist/generated/eve/child/behaviors/ProcessLifetime.js +0 -458
- package/dist/generated/eve/child/behaviors/ProcessLifetime.js.map +0 -1
- package/dist/generated/eve/child/behaviors/SplineTunnelGroup.js +0 -161
- package/dist/generated/eve/child/behaviors/SplineTunnelGroup.js.map +0 -1
- package/dist/generated/eve/child/behaviors/Wander.js +0 -92
- package/dist/generated/eve/child/behaviors/Wander.js.map +0 -1
- package/dist/generated/eve/child/behaviors/enums.js.map +0 -1
- package/dist/generated/eve/child/modifiers/EveChildModifierAttachToBone.js.map +0 -1
- package/dist/generated/eve/child/modifiers/EveChildModifierBillboard3D.js.map +0 -1
- package/dist/generated/eve/child/modifiers/EveChildModifierStretch.js.map +0 -1
- package/dist/generated/eve/child/modifiers/EveChildModifierTranslateWithCamera.js.map +0 -1
- package/dist/generated/eve/child/modifiers/index.js +0 -5
- package/dist/generated/eve/child/modifiers/index.js.map +0 -1
- package/dist/generated/eve/child/procedural/EveChildProceduralContainer.js.map +0 -1
- package/dist/generated/eve/child/procedural/index.js +0 -10
- package/dist/generated/eve/child/procedural/index.js.map +0 -1
- package/dist/generated/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js.map +0 -1
- package/dist/generated/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js.map +0 -1
- package/dist/generated/eve/child/procedural/selection/EveProceduralMethodCycling.js.map +0 -1
- package/dist/generated/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js.map +0 -1
- package/dist/generated/eve/child/procedural/selection/EveProceduralMethodRandom.js.map +0 -1
- package/dist/generated/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js.map +0 -1
- package/dist/generated/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js.map +0 -1
- package/dist/generated/eve/child/procedural/selection/EveProceduralMethodThresholds.js.map +0 -1
- package/dist/generated/eve/child/procedural/selection/index.js +0 -9
- package/dist/generated/eve/child/procedural/selection/index.js.map +0 -1
- package/dist/generated/eve/distribution/EveBaseDistributionMethod.js.map +0 -1
- package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js.map +0 -1
- package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js.map +0 -1
- package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js.map +0 -1
- package/dist/generated/eve/distribution/attributeModifiers/enums.js.map +0 -1
- package/dist/generated/eve/distribution/attributeModifiers/index.js +0 -5
- package/dist/generated/eve/distribution/attributeModifiers/index.js.map +0 -1
- package/dist/generated/eve/distribution/index.js +0 -19
- package/dist/generated/eve/distribution/index.js.map +0 -1
- package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js.map +0 -1
- package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js.map +0 -1
- package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js.map +0 -1
- package/dist/generated/eve/distribution/placement/index.js +0 -4
- package/dist/generated/eve/distribution/placement/index.js.map +0 -1
- package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js.map +0 -1
- package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js.map +0 -1
- package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js.map +0 -1
- package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js.map +0 -1
- package/dist/generated/eve/distribution/spawnModifiers/index.js +0 -5
- package/dist/generated/eve/distribution/spawnModifiers/index.js.map +0 -1
- package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerBurst.js.map +0 -1
- package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js.map +0 -1
- package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerInterval.js.map +0 -1
- package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js.map +0 -1
- package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js.map +0 -1
- package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js.map +0 -1
- package/dist/generated/eve/distribution/spawners/index.js +0 -7
- package/dist/generated/eve/distribution/spawners/index.js.map +0 -1
- package/dist/generated/eve/effect/EveLensflare.js.map +0 -1
- package/dist/generated/eve/effect/EveMultiEffect.js +0 -84
- package/dist/generated/eve/effect/EveMultiEffect.js.map +0 -1
- package/dist/generated/eve/effect/EveMultiEffectParameter.js +0 -45
- package/dist/generated/eve/effect/EveMultiEffectParameter.js.map +0 -1
- package/dist/generated/eve/fxAttributes/EveCameraFxAttributes.js +0 -47
- package/dist/generated/eve/fxAttributes/EveCameraFxAttributes.js.map +0 -1
- package/dist/generated/eve/fxAttributes/EveSpaceObjectFxAttributes.js +0 -63
- package/dist/generated/eve/fxAttributes/EveSpaceObjectFxAttributes.js.map +0 -1
- package/dist/generated/eve/fxAttributes/index.js +0 -3
- package/dist/generated/eve/fxAttributes/index.js.map +0 -1
- package/dist/generated/eve/overlays/EveMeshOverlayEffect.js +0 -58
- package/dist/generated/eve/overlays/EveMeshOverlayEffect.js.map +0 -1
- package/dist/generated/eve/overlays/index.js +0 -2
- package/dist/generated/eve/overlays/index.js.map +0 -1
- package/dist/generated/eve/perObjectData/EveBoosterSetPerObjectData.js +0 -66
- package/dist/generated/eve/perObjectData/EveBoosterSetPerObjectData.js.map +0 -1
- package/dist/generated/eve/perObjectData/EveChildBulletStormPerObjectData.js +0 -39
- package/dist/generated/eve/perObjectData/EveChildBulletStormPerObjectData.js.map +0 -1
- package/dist/generated/eve/perObjectData/EveDecalPerObjectData.js +0 -34
- package/dist/generated/eve/perObjectData/EveDecalPerObjectData.js.map +0 -1
- package/dist/generated/eve/perObjectData/EveSceneStaticParticlesPerObjectData.js +0 -32
- package/dist/generated/eve/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +0 -1
- package/dist/generated/eve/perObjectData/index.js +0 -5
- package/dist/generated/eve/perObjectData/index.js.map +0 -1
- package/dist/generated/eve/scene/EveComponentCollection.js.map +0 -1
- package/dist/generated/eve/scene/EveComponentRegistry.js.map +0 -1
- package/dist/generated/eve/scene/EvePickingContext.js +0 -43
- package/dist/generated/eve/scene/EvePickingContext.js.map +0 -1
- package/dist/generated/eve/scene/EveSceneStaticParticles.js.map +0 -1
- package/dist/generated/eve/scene/TriShadowFrustum.js +0 -83
- package/dist/generated/eve/scene/TriShadowFrustum.js.map +0 -1
- package/dist/generated/eve/scene/TriShadowOrthoFrustum.js +0 -140
- package/dist/generated/eve/scene/TriShadowOrthoFrustum.js.map +0 -1
- package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js.map +0 -1
- package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js.map +0 -1
- package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js.map +0 -1
- package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js.map +0 -1
- package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js.map +0 -1
- package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js.map +0 -1
- package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js.map +0 -1
- package/dist/generated/eve/smartLights/attributeModifiers/enums.js.map +0 -1
- package/dist/generated/eve/smartLights/attributeModifiers/index.js +0 -9
- package/dist/generated/eve/smartLights/attributeModifiers/index.js.map +0 -1
- package/dist/generated/eve/socket/EveSocketParameterBindingBase.js.map +0 -1
- package/dist/generated/eve/socket/EveSocketParameterBool.js.map +0 -1
- package/dist/generated/eve/socket/EveSocketParameterColor.js.map +0 -1
- package/dist/generated/eve/socket/EveSocketParameterFloat.js.map +0 -1
- package/dist/generated/eve/socket/EveSocketParameterInt.js.map +0 -1
- package/dist/generated/eve/socket/EveSocketParameterString.js.map +0 -1
- package/dist/generated/eve/socket/EveSocketParameterVector2.js.map +0 -1
- package/dist/generated/eve/socket/EveSocketParameterVector3.js.map +0 -1
- package/dist/generated/eve/socket/EveSocketParameterVector4.js.map +0 -1
- package/dist/generated/eve/socket/index.js +0 -10
- package/dist/generated/eve/socket/index.js.map +0 -1
- package/dist/generated/eve/spaceObject/EvePlanet.js.map +0 -1
- package/dist/generated/eve/spaceObject/EveShip2.js.map +0 -1
- package/dist/generated/eve/spaceObject/IEveSpaceObject2.js +0 -46
- package/dist/generated/eve/spaceObject/IEveSpaceObject2.js.map +0 -1
- package/dist/generated/eve/spaceObject/swarm/EveSwarmRenderable.js.map +0 -1
- package/dist/generated/eve/ui/EveLineSet.js.map +0 -1
- package/dist/generated/eve/ui/EveSpherePin.js.map +0 -1
- package/dist/generated/eve/ui/EveTacticalOverlayTrackObject.js +0 -44
- package/dist/generated/eve/ui/EveTacticalOverlayTrackObject.js.map +0 -1
- package/dist/generated/eve/ui/EveTacticalTrails.js.map +0 -1
- package/dist/generated/trinityCore/Tr2DynamicBinding.js +0 -58
- package/dist/generated/trinityCore/Tr2DynamicBinding.js.map +0 -1
- package/dist/generated/trinityCore/Tr2ExternalParameter.js +0 -164
- package/dist/generated/trinityCore/Tr2ExternalParameter.js.map +0 -1
- package/dist/generated/trinityCore/Tr2GrannyAnimation.js.map +0 -1
- package/dist/generated/trinityCore/Tr2ShLightingManager.js +0 -48
- package/dist/generated/trinityCore/Tr2ShLightingManager.js.map +0 -1
- package/dist/generated/trinityCore/TriValueBinding.js +0 -249
- package/dist/generated/trinityCore/TriValueBinding.js.map +0 -1
- package/dist/shader/Tr2Shader.js +0 -150
- package/dist/shader/Tr2Shader.js.map +0 -1
- package/dist/shader/reflection/Tr2EffectConstant.js +0 -61
- package/dist/shader/reflection/Tr2EffectConstant.js.map +0 -1
- package/dist/shader/reflection/Tr2EffectDefine.js +0 -34
- package/dist/shader/reflection/Tr2EffectDefine.js.map +0 -1
- package/dist/shader/reflection/Tr2EffectDescription.js +0 -34
- package/dist/shader/reflection/Tr2EffectDescription.js.map +0 -1
- package/dist/shader/reflection/Tr2EffectLibrary.js +0 -61
- package/dist/shader/reflection/Tr2EffectLibrary.js.map +0 -1
- package/dist/shader/reflection/Tr2EffectParameterAnnotation.js +0 -54
- package/dist/shader/reflection/Tr2EffectParameterAnnotation.js.map +0 -1
- package/dist/shader/reflection/Tr2EffectResource.js +0 -63
- package/dist/shader/reflection/Tr2EffectResource.js.map +0 -1
- package/dist/shader/reflection/Tr2EffectStageInput.js +0 -58
- package/dist/shader/reflection/Tr2EffectStageInput.js.map +0 -1
- package/dist/shader/reflection/Tr2EffectTechnique.js +0 -40
- package/dist/shader/reflection/Tr2EffectTechnique.js.map +0 -1
- package/dist/shader/reflection/Tr2Pass.js +0 -46
- package/dist/shader/reflection/Tr2Pass.js.map +0 -1
- package/dist/shader/sampler/Tr2SamplerSetup.js +0 -34
- package/dist/shader/sampler/Tr2SamplerSetup.js.map +0 -1
- package/dist/trinityCore/Tr2BindingVector3.js.map +0 -1
- package/dist/trinityCore/Tr2PyValueBinding.js.map +0 -1
- package/dist/trinityCore/rawData/RawDataStore.js +0 -232
- package/dist/trinityCore/rawData/RawDataStore.js.map +0 -1
- /package/dist/{generated/eve → eve}/distribution/attributeModifiers/enums.js +0 -0
- /package/dist/{generated/eve → eve}/smartLights/attributeModifiers/enums.js +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { identity as _identity, applyDecs2311 as _applyDecs2311 } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
2
|
import { io, type, carbon, impl, schema } from '@carbonenginejs/runtime-utils/schema';
|
|
3
|
-
import { EveEntity as _EveEntity } from '
|
|
3
|
+
import { EveEntity as _EveEntity } from '../EveEntity.js';
|
|
4
4
|
import { EveChildUpdateParams as _EveChildUpdateParams } from '../EveChildUpdateParams.js';
|
|
5
5
|
import { EveChildInheritProperties as _EveChildInheritPrope } from '../child/EveChildInheritProperties.js';
|
|
6
6
|
import { box3 } from '@carbonenginejs/runtime-utils/box3';
|
|
@@ -12,12 +12,18 @@ import { vec4 } from '@carbonenginejs/runtime-utils/vec4';
|
|
|
12
12
|
import { ReflectionMode } from '../../generated/eve/enums.js';
|
|
13
13
|
import { EveComponentType, ShouldReflect } from '../EveComponentTypes.js';
|
|
14
14
|
import { ImpactConfiguration } from '../../generated/include/enums.js';
|
|
15
|
-
import {
|
|
15
|
+
import { EveLODHelper } from '../EveLODHelper.js';
|
|
16
16
|
import { TriBatchType } from '@carbonenginejs/runtime-utils/graphics';
|
|
17
|
-
import {
|
|
17
|
+
import { MatrixCopyFrom3x4 } from '../lights/lightConversion.js';
|
|
18
|
+
import { getBoneList } from '../../trinityCore/Tr2GrannyAnimation.js';
|
|
18
19
|
import { TriRenderBatchAreaBlock, Tr2RenderBatch } from '../../trinityCore/Tr2RenderBatch.js';
|
|
20
|
+
import { RawData } from '../../trinityCore/rawData/RawData.js';
|
|
21
|
+
import { TR2_PICK_TYPE_DEFAULT, Tr2PickType } from '../../trinityCore/Tr2PickType.js';
|
|
22
|
+
import { IEveSpaceObject2ParentData as _IEveSpaceObject2Pare } from './IEveSpaceObject2ParentData.js';
|
|
23
|
+
import { EveCustomMask as _EveCustomMask } from '../EveCustomMask.js';
|
|
24
|
+
import { Tr2Lod } from '@carbonenginejs/runtime-utils/const/trinity';
|
|
19
25
|
|
|
20
|
-
let _initProto, _initClass, _init_reflectionMode, _init_extra_reflectionMode, _init_effectChildren, _init_extra_effectChildren, _init_children, _init_extra_children, _init_name, _init_extra_name, _init_mute, _init_extra_mute, _init_inheritProperties, _init_extra_inheritProperties, _init_customMasks, _init_extra_customMasks, _init_overlayEffects, _init_extra_overlayEffects, _init_positionDelta, _init_extra_positionDelta, _init_lodLevel, _init_extra_lodLevel, _init_curveSets, _init_extra_curveSets, _init_isPickable, _init_extra_isPickable, _init_estimatedPixelDiameter, _init_extra_estimatedPixelDiameter, _init_estimatedPixelDiameterWithChildren, _init_extra_estimatedPixelDiameterWithChildren, _init_generatedShapeEllipsoidCenter, _init_extra_generatedShapeEllipsoidCenter, _init_generatedShapeEllipsoidRadius, _init_extra_generatedShapeEllipsoidRadius, _init_animationUpdater, _init_extra_animationUpdater, _init_dna, _init_extra_dna, _init_castShadow, _init_extra_castShadow, _init_isAnimated, _init_extra_isAnimated, _init_dynamicBoundingSphereEnabled, _init_extra_dynamicBoundingSphereEnabled, _init_attachments, _init_extra_attachments, _init_decals, _init_extra_decals, _init_lights, _init_extra_lights, _init_externalParameters, _init_extra_externalParameters, _init_controllers, _init_extra_controllers, _init_locators, _init_extra_locators, _init_mesh, _init_extra_mesh, _init_impactOverlay, _init_extra_impactOverlay, _init_clipSphereCenter, _init_extra_clipSphereCenter, _init_clipSphereFactor, _init_extra_clipSphereFactor, _init_clipSphereFactor2, _init_extra_clipSphereFactor2, _init_observers, _init_extra_observers, _init_worldPosition, _init_extra_worldPosition, _init_rotationCurve, _init_extra_rotationCurve, _init_worldRotation, _init_extra_worldRotation, _init_modelScale, _init_extra_modelScale, _init_locatorSets, _init_extra_locatorSets, _init_activationStrength, _init_extra_activationStrength, _init_albedoColor, _init_extra_albedoColor, _init_display, _init_extra_display, _init_update, _init_extra_update, _init_secondaryLightingSphereRadius, _init_extra_secondaryLightingSphereRadius, _init_boundingSphereCenter, _init_extra_boundingSphereCenter, _init_dirtLevel, _init_extra_dirtLevel, _init_customShaderData, _init_extra_customShaderData, _init_lastDamageLocatorHit, _init_extra_lastDamageLocatorHit, _init_boundingSphereRadius, _init_extra_boundingSphereRadius, _init_modelWorldPosition, _init_extra_modelWorldPosition, _init_modelTranslationCurve, _init_extra_modelTranslationCurve, _init_modelRotationCurve, _init_extra_modelRotationCurve, _init_shapeEllipsoidCenter, _init_extra_shapeEllipsoidCenter, _init_shapeEllipsoidRadius, _init_extra_shapeEllipsoidRadius, _init_translationCurve, _init_extra_translationCurve, _init_worldTransform, _init_extra_worldTransform, _init_inverseWorldTransform, _init_extra_inverseWorldTransform, _init_lastWorldTransform, _init_extra_lastWorldTransform, _init_worldVelocity, _init_extra_worldVelocity, _init_audioGeometry, _init_extra_audioGeometry, _init_isVisible, _init_extra_isVisible;
|
|
26
|
+
let _initProto, _initClass, _init_reflectionMode, _init_extra_reflectionMode, _init_effectChildren, _init_extra_effectChildren, _init_children, _init_extra_children, _init_name, _init_extra_name, _init_mute, _init_extra_mute, _init_inheritProperties, _init_extra_inheritProperties, _init_customMasks, _init_extra_customMasks, _init_overlayEffects, _init_extra_overlayEffects, _init_positionDelta, _init_extra_positionDelta, _init_lodLevel, _init_extra_lodLevel, _init_curveSets, _init_extra_curveSets, _init_isPickable, _init_extra_isPickable, _init_estimatedPixelDiameter, _init_extra_estimatedPixelDiameter, _init_estimatedPixelDiameterWithChildren, _init_extra_estimatedPixelDiameterWithChildren, _init_generatedShapeEllipsoidCenter, _init_extra_generatedShapeEllipsoidCenter, _init_generatedShapeEllipsoidRadius, _init_extra_generatedShapeEllipsoidRadius, _init_animationUpdater, _init_extra_animationUpdater, _init_dna, _init_extra_dna, _init_castShadow, _init_extra_castShadow, _init_isAnimated, _init_extra_isAnimated, _init_dynamicBoundingSphereEnabled, _init_extra_dynamicBoundingSphereEnabled, _init_attachments, _init_extra_attachments, _init_decals, _init_extra_decals, _init_lights, _init_extra_lights, _init_externalParameters, _init_extra_externalParameters, _init_controllers, _init_extra_controllers, _init_locators, _init_extra_locators, _init_mesh, _init_extra_mesh, _init_impactOverlay, _init_extra_impactOverlay, _init_clipSphereCenter, _init_extra_clipSphereCenter, _init_clipSphereFactor, _init_extra_clipSphereFactor, _init_clipSphereFactor2, _init_extra_clipSphereFactor2, _init_observers, _init_extra_observers, _init_worldPosition, _init_extra_worldPosition, _init_rotationCurve, _init_extra_rotationCurve, _init_worldRotation, _init_extra_worldRotation, _init_modelScale, _init_extra_modelScale, _init_locatorSets, _init_extra_locatorSets, _init_activationStrength, _init_extra_activationStrength, _init_albedoColor, _init_extra_albedoColor, _init_display, _init_extra_display, _init_update, _init_extra_update, _init_secondaryLightingSphereRadius, _init_extra_secondaryLightingSphereRadius, _init_boundingSphereCenter, _init_extra_boundingSphereCenter, _init_dirtLevel, _init_extra_dirtLevel, _init_customShaderData, _init_extra_customShaderData, _init_spaceObjectShipData, _init_extra_spaceObjectShipData, _init_lastDamageLocatorHit, _init_extra_lastDamageLocatorHit, _init_boundingSphereRadius, _init_extra_boundingSphereRadius, _init_modelWorldPosition, _init_extra_modelWorldPosition, _init_modelTranslationCurve, _init_extra_modelTranslationCurve, _init_modelRotationCurve, _init_extra_modelRotationCurve, _init_shapeEllipsoidCenter, _init_extra_shapeEllipsoidCenter, _init_shapeEllipsoidRadius, _init_extra_shapeEllipsoidRadius, _init_translationCurve, _init_extra_translationCurve, _init_worldTransform, _init_extra_worldTransform, _init_inverseWorldTransform, _init_extra_inverseWorldTransform, _init_lastWorldTransform, _init_extra_lastWorldTransform, _init_worldVelocity, _init_extra_worldVelocity, _init_audioGeometry, _init_extra_audioGeometry, _init_isVisible, _init_extra_isVisible;
|
|
21
27
|
|
|
22
28
|
// Static scratch for the sorted-transparent area pass (allocation rules: hot
|
|
23
29
|
// per-frame path, copy-into, never allocate per call).
|
|
@@ -28,17 +34,24 @@ const TRANSPARENT_CENTER = vec3.create();
|
|
|
28
34
|
// Carbon EveMeshOverlayEffect::OverlayType (EveMeshOverlayEffect.h:35-41).
|
|
29
35
|
const OVERLAY_TYPE_OPAQUEONLY = 0;
|
|
30
36
|
const OVERLAY_TYPE_ALL = 1;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* The hull of an EVE space object - its mesh, locators, locator sets, decals,
|
|
40
|
+
* attachments, lights, effect children, overlay effects, impact overlay and
|
|
41
|
+
* controllers - together with the curve-driven world transform, visibility, LOD
|
|
42
|
+
* and batch submission that drive them each frame.
|
|
43
|
+
*/
|
|
31
44
|
let _EveSpaceObject;
|
|
32
45
|
new class extends _identity {
|
|
33
46
|
static [class EveSpaceObject2 extends _EveEntity {
|
|
34
47
|
static {
|
|
35
48
|
({
|
|
36
|
-
e: [_init_reflectionMode, _init_extra_reflectionMode, _init_effectChildren, _init_extra_effectChildren, _init_children, _init_extra_children, _init_name, _init_extra_name, _init_mute, _init_extra_mute, _init_inheritProperties, _init_extra_inheritProperties, _init_customMasks, _init_extra_customMasks, _init_overlayEffects, _init_extra_overlayEffects, _init_positionDelta, _init_extra_positionDelta, _init_lodLevel, _init_extra_lodLevel, _init_curveSets, _init_extra_curveSets, _init_isPickable, _init_extra_isPickable, _init_estimatedPixelDiameter, _init_extra_estimatedPixelDiameter, _init_estimatedPixelDiameterWithChildren, _init_extra_estimatedPixelDiameterWithChildren, _init_generatedShapeEllipsoidCenter, _init_extra_generatedShapeEllipsoidCenter, _init_generatedShapeEllipsoidRadius, _init_extra_generatedShapeEllipsoidRadius, _init_animationUpdater, _init_extra_animationUpdater, _init_dna, _init_extra_dna, _init_castShadow, _init_extra_castShadow, _init_isAnimated, _init_extra_isAnimated, _init_dynamicBoundingSphereEnabled, _init_extra_dynamicBoundingSphereEnabled, _init_attachments, _init_extra_attachments, _init_decals, _init_extra_decals, _init_lights, _init_extra_lights, _init_externalParameters, _init_extra_externalParameters, _init_controllers, _init_extra_controllers, _init_locators, _init_extra_locators, _init_mesh, _init_extra_mesh, _init_impactOverlay, _init_extra_impactOverlay, _init_clipSphereCenter, _init_extra_clipSphereCenter, _init_clipSphereFactor, _init_extra_clipSphereFactor, _init_clipSphereFactor2, _init_extra_clipSphereFactor2, _init_observers, _init_extra_observers, _init_worldPosition, _init_extra_worldPosition, _init_rotationCurve, _init_extra_rotationCurve, _init_worldRotation, _init_extra_worldRotation, _init_modelScale, _init_extra_modelScale, _init_locatorSets, _init_extra_locatorSets, _init_activationStrength, _init_extra_activationStrength, _init_albedoColor, _init_extra_albedoColor, _init_display, _init_extra_display, _init_update, _init_extra_update, _init_secondaryLightingSphereRadius, _init_extra_secondaryLightingSphereRadius, _init_boundingSphereCenter, _init_extra_boundingSphereCenter, _init_dirtLevel, _init_extra_dirtLevel, _init_customShaderData, _init_extra_customShaderData, _init_lastDamageLocatorHit, _init_extra_lastDamageLocatorHit, _init_boundingSphereRadius, _init_extra_boundingSphereRadius, _init_modelWorldPosition, _init_extra_modelWorldPosition, _init_modelTranslationCurve, _init_extra_modelTranslationCurve, _init_modelRotationCurve, _init_extra_modelRotationCurve, _init_shapeEllipsoidCenter, _init_extra_shapeEllipsoidCenter, _init_shapeEllipsoidRadius, _init_extra_shapeEllipsoidRadius, _init_translationCurve, _init_extra_translationCurve, _init_worldTransform, _init_extra_worldTransform, _init_inverseWorldTransform, _init_extra_inverseWorldTransform, _init_lastWorldTransform, _init_extra_lastWorldTransform, _init_worldVelocity, _init_extra_worldVelocity, _init_audioGeometry, _init_extra_audioGeometry, _init_isVisible, _init_extra_isVisible, _initProto],
|
|
49
|
+
e: [_init_reflectionMode, _init_extra_reflectionMode, _init_effectChildren, _init_extra_effectChildren, _init_children, _init_extra_children, _init_name, _init_extra_name, _init_mute, _init_extra_mute, _init_inheritProperties, _init_extra_inheritProperties, _init_customMasks, _init_extra_customMasks, _init_overlayEffects, _init_extra_overlayEffects, _init_positionDelta, _init_extra_positionDelta, _init_lodLevel, _init_extra_lodLevel, _init_curveSets, _init_extra_curveSets, _init_isPickable, _init_extra_isPickable, _init_estimatedPixelDiameter, _init_extra_estimatedPixelDiameter, _init_estimatedPixelDiameterWithChildren, _init_extra_estimatedPixelDiameterWithChildren, _init_generatedShapeEllipsoidCenter, _init_extra_generatedShapeEllipsoidCenter, _init_generatedShapeEllipsoidRadius, _init_extra_generatedShapeEllipsoidRadius, _init_animationUpdater, _init_extra_animationUpdater, _init_dna, _init_extra_dna, _init_castShadow, _init_extra_castShadow, _init_isAnimated, _init_extra_isAnimated, _init_dynamicBoundingSphereEnabled, _init_extra_dynamicBoundingSphereEnabled, _init_attachments, _init_extra_attachments, _init_decals, _init_extra_decals, _init_lights, _init_extra_lights, _init_externalParameters, _init_extra_externalParameters, _init_controllers, _init_extra_controllers, _init_locators, _init_extra_locators, _init_mesh, _init_extra_mesh, _init_impactOverlay, _init_extra_impactOverlay, _init_clipSphereCenter, _init_extra_clipSphereCenter, _init_clipSphereFactor, _init_extra_clipSphereFactor, _init_clipSphereFactor2, _init_extra_clipSphereFactor2, _init_observers, _init_extra_observers, _init_worldPosition, _init_extra_worldPosition, _init_rotationCurve, _init_extra_rotationCurve, _init_worldRotation, _init_extra_worldRotation, _init_modelScale, _init_extra_modelScale, _init_locatorSets, _init_extra_locatorSets, _init_activationStrength, _init_extra_activationStrength, _init_albedoColor, _init_extra_albedoColor, _init_display, _init_extra_display, _init_update, _init_extra_update, _init_secondaryLightingSphereRadius, _init_extra_secondaryLightingSphereRadius, _init_boundingSphereCenter, _init_extra_boundingSphereCenter, _init_dirtLevel, _init_extra_dirtLevel, _init_customShaderData, _init_extra_customShaderData, _init_spaceObjectShipData, _init_extra_spaceObjectShipData, _init_lastDamageLocatorHit, _init_extra_lastDamageLocatorHit, _init_boundingSphereRadius, _init_extra_boundingSphereRadius, _init_modelWorldPosition, _init_extra_modelWorldPosition, _init_modelTranslationCurve, _init_extra_modelTranslationCurve, _init_modelRotationCurve, _init_extra_modelRotationCurve, _init_shapeEllipsoidCenter, _init_extra_shapeEllipsoidCenter, _init_shapeEllipsoidRadius, _init_extra_shapeEllipsoidRadius, _init_translationCurve, _init_extra_translationCurve, _init_worldTransform, _init_extra_worldTransform, _init_inverseWorldTransform, _init_extra_inverseWorldTransform, _init_lastWorldTransform, _init_extra_lastWorldTransform, _init_worldVelocity, _init_extra_worldVelocity, _init_audioGeometry, _init_extra_audioGeometry, _init_isVisible, _init_extra_isVisible, _initProto],
|
|
37
50
|
c: [_EveSpaceObject, _initClass]
|
|
38
51
|
} = _applyDecs2311(this, [type.define({
|
|
39
52
|
className: "EveSpaceObject2",
|
|
40
53
|
family: "eve/spaceObject"
|
|
41
|
-
})], [[[io, io.notify, io, io.persist, type, type.int32, void 0, schema.enum("ReflectionMode")], 16, "reflectionMode"], [[io, io.persist, void 0, type.list("IEveSpaceObjectChild")], 16, "effectChildren"], [[io, io.persist, void 0, type.list("IEveTransform")], 16, "children"], [[io, io.notify, io, io.persist, type, type.string], 16, "name"], [[io, io.notify, io, io.readwrite, type, type.boolean], 16, "mute"], [[io, io.readwrite, void 0, type.objectRef("EveChildInheritProperties")], 16, "inheritProperties"], [[io, io.persist, void 0, type.list("EveCustomMask")], 16, "customMasks"], [[io, io.persist, void 0, type.list("EveMeshOverlayEffect")], 16, "overlayEffects"], [[io, io.read, void 0, type.objectRef("Tr2BindingVector3")], 16, "positionDelta"], [[io, io.read, type, type.int32, void 0, schema.enum("Tr2Lod")], 16, "lodLevel"], [[io, io.persist, void 0, type.list("TriCurveSet")], 16, "curveSets"], [[io, io.readwrite, type, type.boolean], 16, "isPickable"], [[io, io.read, type, type.float32], 16, "estimatedPixelDiameter"], [[io, io.read, type, type.float32], 16, "estimatedPixelDiameterWithChildren"], [[io, io.read, type, type.vec3], 16, "generatedShapeEllipsoidCenter"], [[io, io.read, type, type.vec3], 16, "generatedShapeEllipsoidRadius"], [[io, io.read, void 0, type.objectRef("Tr2GrannyAnimation")], 16, "animationUpdater"], [[io, io.persist, type, type.string], 16, "dna"], [[io, io.notify, io, io.persist, type, type.boolean], 16, "castShadow"], [[io, io.persist, type, type.boolean], 16, "isAnimated"], [[io, io.persist, type, type.boolean], 16, "dynamicBoundingSphereEnabled"], [[io, io.persist, void 0, type.list("IEveSpaceObjectAttachment")], 16, "attachments"], [[io, io.persist, void 0, type.list("EveSpaceObjectDecal")], 16, "decals"], [[io, io.notify, io, io.persist, void 0, type.list("Tr2Light")], 16, "lights"], [[io, io.persist, void 0, type.list("Tr2ExternalParameter")], 16, "externalParameters"], [[io, io.persist, void 0, type.list("ITr2Controller")], 16, "controllers"], [[io, io.persist, void 0, type.list("EveLocator2")], 16, "locators"], [[io, io.persist, void 0, type.objectRef("Tr2MeshBase")], 16, "mesh"], [[io, io.persist, void 0, type.objectRef("EveImpactOverlay")], 16, "impactOverlay"], [[io, io.persist, type, type.vec3], 16, "clipSphereCenter"], [[io, io.notify, io, io.readwrite, type, type.float32], 16, "clipSphereFactor2"], [[io, io.notify, io, io.readwrite, type, type.float32], 16, "clipSphereFactor"], [[io, io.persist, void 0, type.list("TriObserverLocal")], 16, "observers"], [[io, io.read, type, type.vec3], 16, "worldPosition"], [[io, io.persist, void 0, type.objectRef("ITriQuaternionFunction")], 16, "rotationCurve"], [[io, io.read, type, type.quat], 16, "worldRotation"], [[io, io.persist, type, type.float32], 16, "modelScale"], [[io, io.persist, void 0, type.list("EveLocatorSets")], 16, "locatorSets"], [[io, io.readwrite, type, type.float32], 16, "activationStrength"], [[io, io.readwrite, type, type.color], 16, "albedoColor"], [[io, io.notify, io, io.persist, type, type.boolean], 16, "display"], [[io, io.persist, type, type.boolean], 16, "update"], [[io, io.read, type, type.float32], 16, "secondaryLightingSphereRadius"], [[io, io.persist, type, type.vec3], 16, "boundingSphereCenter"], [[io, io.notify, io, io.readwrite, type, type.float32], 16, "dirtLevel"], [[io, io.readwrite, type, type.vec4], 16, "customShaderData"], [[io, io.read, type, type.int32], 16, "lastDamageLocatorHit"], [[io, io.persist, type, type.float32], 16, "boundingSphereRadius"], [[io, io.read, type, type.vec3], 16, "modelWorldPosition"], [[io, io.persist, void 0, type.objectRef("ITriVectorFunction")], 16, "modelTranslationCurve"], [[io, io.persist, void 0, type.objectRef("ITriQuaternionFunction")], 16, "modelRotationCurve"], [[io, io.persist, type, type.vec3], 16, "shapeEllipsoidCenter"], [[io, io.persist, type, type.vec3], 16, "shapeEllipsoidRadius"], [[io, io.persist, void 0, type.objectRef("ITriVectorFunction")], 16, "translationCurve"], [[io, io.read, type, type.mat4], 16, "worldTransform"], [[io, io.read, type, type.mat4], 16, "inverseWorldTransform"], [[io, io.read, type, type.mat4], 16, "lastWorldTransform"], [[io, io.read, type, type.vec3], 16, "worldVelocity"], [[io, io.readwrite, void 0, type.objectRef("ITr2AudGeometry")], 16, "audioGeometry"], [[type, type.boolean], 16, "isVisible"], [[carbon, carbon.method, impl, impl.adapted], 18, "Initialize"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetMesh"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetMesh"], [[carbon, carbon.method, impl, impl.adapted], 18, "AddController"], [[carbon, carbon.method, impl, impl.implemented], 18, "AddObserver"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetInheritProperties"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetEffectChildByName"], [[carbon, carbon.method, impl, impl.adapted], 18, "AddToEffectChildrenList"], [[carbon, carbon.method, impl, impl.implemented], 18, "AddLight"], [[carbon, carbon.method, impl, impl.implemented], 18, "ClearLights"], [[carbon, carbon.method, impl, impl.implemented], 18, "RemoveFromEffectChildrenList"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetModelRotationCurve"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetModelRotationCurve"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetModelTranslationCurve"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetModelTranslationCurve"], [[carbon, carbon.method, impl, impl.adapted], 18, "UpdateWorldTransform"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The browser runtime refreshes the cache with world-transform updates instead of Carbon's renderer-side PrepareShaderData pass.")], 18, "UpdateWorldBounds"], [[carbon, carbon.method, impl, impl.adapted], 18, "UpdateSyncronous"], [[carbon, carbon.method, impl, impl.adapted], 18, "UpdateAsyncronous"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Native impostor, raytracing, and audio-emitter realization remain engine-owned; graph visibility and LOD state are preserved.")], 18, "UpdateVisibility"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Impostor submission and decal mesh caches are engine-owned; Trinity returns the backend-neutral renderable graph.")], 18, "GetRenderables"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Overlay area-block batches are deferred; the view position arrives via the appended render-context argument instead of Carbon's renderer global.")], 18, "GetBatches"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon rebuilds from the geometry-resource notify callback; the GPU-free port rebuilds lazily on first batch use from the mesh areas alone.")], 18, "RebuildCachedData"], [[carbon, carbon.method, impl, impl.implemented], 18, "ReleaseCachedData"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Realized-LOD draw args are engine-resolved from the geometry source descriptor; primitive-count gating happens at realization.")], 18, "GetShadowBatches"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Generated EveMeshOverlayEffect has no method surface yet, so the per-batch-type effect selection reads its fields here until the class is promoted; realized-LOD draw args defer to the engine.")], 18, "GetBatchesFromOverlayVector"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The overlay HasTransparentArea predicate reads the generated class's transparentEffects field until the class is promoted.")], 18, "HasTransparentBatches"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon reads the Tr2Renderer view-position global; the relocated camera state arrives via the threaded render context.")], 18, "GetSortValue"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Persistent VS/PS device buffers are engine-owned; the record carries the object reference the engine serializer consumes.")], 18, "GetPerObjectData"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShadowPerObjectData"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The granny bone list (Tr2GrannyAnimationUtils::GetBoneList, cpp:3545-3547) awaits the JS animation seam - (null, 0) is passed, the established EveChildMesh convention.")], 18, "GetLights"], [[carbon, carbon.method, impl, impl.notImplemented], 18, "IsCastingShadow"], [[carbon, carbon.method, impl, impl.implemented], 18, "RegisterComponents"], [[carbon, carbon.method, impl, impl.implemented], 18, "UnRegisterComponents"], [[carbon, carbon.method, impl, impl.implemented], 18, "DisplayChildren"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetObserverTransform"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLocalToWorldTransform"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetWorldPosition"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetWorldRotation"], [[carbon, carbon.method, impl, impl.implemented], 18, "FindSoundEmitter"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetMute"], [[carbon, carbon.method, impl, impl.adapted], 18, "PlayAnimationEx"], [[carbon, carbon.method, impl, impl.adapted], 18, "CalculateSkinnedBoundingBoxFromTransform"], [[carbon, carbon.method, impl, impl.adapted], 18, "CalculateSkinnedBoundingSphere"], [[carbon, carbon.method, impl, impl.implemented], 18, "ClearImpactDamage"], [[carbon, carbon.method, impl, impl.implemented], 18, "ClearAnimations"], [[carbon, carbon.method, impl, impl.implemented], 18, "CreateImpactFromPosition"], [[carbon, carbon.method, impl, impl.adapted], 18, "CreateImpact"], [[carbon, carbon.method, impl, impl.implemented], 18, "EndAnimation"], [[carbon, carbon.method, impl, impl.implemented], 18, "FreezeHighDetailMesh"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetDamageLocatorCount"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLocatorCount"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLocatorsForSet"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetCloseLocatorIndex"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetGoodLocatorIndex"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetDamageLocatorDirection"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("CarbonEngineJS keeps output parameters last and returns a validity flag for targetable callers.")], 18, "GetDamageLocatorPosition"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetClosestDamageLocatorIndex"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("TriRand is represented by Math.random; all locator scoring remains source-faithful.")], 18, "GetGoodDamageLocatorIndex"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetRadius"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetMissPosition"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetImpactConfiguration"], [[carbon, carbon.method, impl, impl.implemented], 18, "HasImpactConfigurationShield"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("CarbonEngineJS uses an out-last signature; the ellipsoid intersection is otherwise source-faithful CPU math.")], 18, "GetImpactPosition"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateImpact"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetDamageLocator"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetTransformedDamageLocator"], [[carbon, carbon.method, impl, impl.adapted], 18, "IsImpostor"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLocatorPositionFromSet"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLocatorRotationFromSet"], [[carbon, carbon.method, impl, impl.implemented], 18, "HandleControllerEvent"], [[carbon, carbon.method, impl, impl.adapted], 18, "PlayAnimation"], [[carbon, carbon.method, impl, impl.implemented], 18, "ChainAnimation"], [[carbon, carbon.method, impl, impl.implemented], 18, "ChainAnimationEx"], [[carbon, carbon.method, impl, impl.adapted], 18, "RebuildBoundingSphereInformation"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon's CcpMath::Sphere is represented by core-math sph3; object-shaped center/radius input is accepted at adapter boundaries.")], 18, "SetBoundingSphereInformation"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetControllerVariables"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Geometry resources without multi-LOD support expose their sole browser LOD as index zero.")], 18, "GetLastUsedMeshLod"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetLocatorTransform"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetLocalBoundingBox"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetWorldBoundingBox"], [[carbon, carbon.method, impl, impl.implemented], 18, "IsBoundingBoxReady"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetBoundingSphere"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("TriFrustum is supplied structurally by the active engine; both exact and estimated browser frustum methods are supported.")], 18, "EstimatePixelDiameter"], [[carbon, carbon.method, impl, impl.implemented], 18, "IsInFrustum"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetBoundingSphereCenter"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetBoundingSphereRadius"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetBoneCount"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetImpactDamageState"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetImpactAnimation"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetControllerVariable"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetProceduralContainerVariable"], [[carbon, carbon.method, impl, impl.implemented], 18, "StartControllers"], [[carbon, carbon.method, impl, impl.adapted], 18, "TransformLocators"]], 0, void 0, _EveEntity));
|
|
54
|
+
})], [[[io, io.notify, io, io.persist, type, type.int32, void 0, schema.enum("ReflectionMode")], 16, "reflectionMode"], [[io, io.persist, void 0, type.list("IEveSpaceObjectChild")], 16, "effectChildren"], [[io, io.persist, void 0, type.list("IEveTransform")], 16, "children"], [[io, io.notify, io, io.persist, type, type.string], 16, "name"], [[io, io.notify, io, io.readwrite, type, type.boolean], 16, "mute"], [[io, io.readwrite, void 0, type.objectRef("EveChildInheritProperties")], 16, "inheritProperties"], [[io, io.persist, void 0, type.list("EveCustomMask")], 16, "customMasks"], [[io, io.persist, void 0, type.list("EveMeshOverlayEffect")], 16, "overlayEffects"], [[io, io.read, void 0, type.objectRef("Tr2BindingVector3")], 16, "positionDelta"], [[io, io.read, type, type.int32, void 0, schema.enum("Tr2Lod")], 16, "lodLevel"], [[io, io.persist, void 0, type.list("TriCurveSet")], 16, "curveSets"], [[io, io.readwrite, type, type.boolean], 16, "isPickable"], [[io, io.read, type, type.float32], 16, "estimatedPixelDiameter"], [[io, io.read, type, type.float32], 16, "estimatedPixelDiameterWithChildren"], [[io, io.read, type, type.vec3], 16, "generatedShapeEllipsoidCenter"], [[io, io.read, type, type.vec3], 16, "generatedShapeEllipsoidRadius"], [[io, io.read, void 0, type.objectRef("Tr2GrannyAnimation")], 16, "animationUpdater"], [[io, io.persist, type, type.string], 16, "dna"], [[io, io.notify, io, io.persist, type, type.boolean], 16, "castShadow"], [[io, io.persist, type, type.boolean], 16, "isAnimated"], [[io, io.persist, type, type.boolean], 16, "dynamicBoundingSphereEnabled"], [[io, io.persist, void 0, type.list("IEveSpaceObjectAttachment")], 16, "attachments"], [[io, io.persist, void 0, type.list("EveSpaceObjectDecal")], 16, "decals"], [[io, io.notify, io, io.persist, void 0, type.list("Tr2Light")], 16, "lights"], [[io, io.persist, void 0, type.list("Tr2ExternalParameter")], 16, "externalParameters"], [[io, io.persist, void 0, type.list("ITr2Controller")], 16, "controllers"], [[io, io.persist, void 0, type.list("EveLocator2")], 16, "locators"], [[io, io.persist, void 0, type.objectRef("Tr2MeshBase")], 16, "mesh"], [[io, io.persist, void 0, type.objectRef("EveImpactOverlay")], 16, "impactOverlay"], [[io, io.persist, type, type.vec3], 16, "clipSphereCenter"], [[io, io.notify, io, io.readwrite, type, type.float32], 16, "clipSphereFactor2"], [[io, io.notify, io, io.readwrite, type, type.float32], 16, "clipSphereFactor"], [[io, io.persist, void 0, type.list("TriObserverLocal")], 16, "observers"], [[io, io.read, type, type.vec3], 16, "worldPosition"], [[io, io.persist, void 0, type.objectRef("ITriQuaternionFunction")], 16, "rotationCurve"], [[io, io.read, type, type.quat], 16, "worldRotation"], [[io, io.persist, type, type.float32], 16, "modelScale"], [[io, io.persist, void 0, type.list("EveLocatorSets")], 16, "locatorSets"], [[io, io.readwrite, type, type.float32], 16, "activationStrength"], [[io, io.readwrite, type, type.color], 16, "albedoColor"], [[io, io.notify, io, io.persist, type, type.boolean], 16, "display"], [[io, io.persist, type, type.boolean], 16, "update"], [[io, io.read, type, type.float32], 16, "secondaryLightingSphereRadius"], [[io, io.persist, type, type.vec3], 16, "boundingSphereCenter"], [[io, io.notify, io, io.readwrite, type, type.float32], 16, "dirtLevel"], [[io, io.readwrite, type, type.vec4], 16, "customShaderData"], [[io, io.read, type, type.vec4], 16, "spaceObjectShipData"], [[io, io.read, type, type.int32], 16, "lastDamageLocatorHit"], [[io, io.persist, type, type.float32], 16, "boundingSphereRadius"], [[io, io.read, type, type.vec3], 16, "modelWorldPosition"], [[io, io.persist, void 0, type.objectRef("ITriVectorFunction")], 16, "modelTranslationCurve"], [[io, io.persist, void 0, type.objectRef("ITriQuaternionFunction")], 16, "modelRotationCurve"], [[io, io.persist, type, type.vec3], 16, "shapeEllipsoidCenter"], [[io, io.persist, type, type.vec3], 16, "shapeEllipsoidRadius"], [[io, io.persist, void 0, type.objectRef("ITriVectorFunction")], 16, "translationCurve"], [[io, io.read, type, type.mat4], 16, "worldTransform"], [[io, io.read, type, type.mat4], 16, "inverseWorldTransform"], [[io, io.read, type, type.mat4], 16, "lastWorldTransform"], [[io, io.read, type, type.vec3], 16, "worldVelocity"], [[io, io.readwrite, void 0, type.objectRef("ITr2AudGeometry")], 16, "audioGeometry"], [[type, type.boolean], 16, "isVisible"], [[carbon, carbon.method, impl, impl.adapted], 18, "Initialize"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetMesh"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetMesh"], [[carbon, carbon.method, impl, impl.adapted], 18, "AddController"], [[carbon, carbon.method, impl, impl.implemented], 18, "AddObserver"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetInheritProperties"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetEffectChildByName"], [[carbon, carbon.method, impl, impl.adapted], 18, "AddToEffectChildrenList"], [[carbon, carbon.method, impl, impl.implemented], 18, "AddLight"], [[carbon, carbon.method, impl, impl.implemented], 18, "ClearLights"], [[carbon, carbon.method, impl, impl.implemented], 18, "RemoveFromEffectChildrenList"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetModelRotationCurve"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetModelRotationCurve"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetModelTranslationCurve"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetModelTranslationCurve"], [[carbon, carbon.method, impl, impl.adapted], 18, "UpdateWorldTransform"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The browser runtime refreshes the cache with world-transform updates instead of Carbon's renderer-side PrepareShaderData pass.")], 18, "UpdateWorldBounds"], [[carbon, carbon.method, impl, impl.implemented], 18, "PrepareShaderData"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateShLighting"], [[carbon, carbon.method, impl, impl.implemented], 18, "ClearShLighting"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetParentData"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPerObjectStructs"], [[carbon, carbon.method, impl, impl.adapted], 18, "UpdateSyncronous"], [[carbon, carbon.method, impl, impl.adapted], 18, "UpdateAsyncronous"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Native impostor, raytracing, and audio-emitter realization remain engine-owned; graph visibility and LOD state are preserved.")], 18, "UpdateVisibility"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Impostor submission and decal mesh caches are engine-owned; Trinity returns the backend-neutral renderable graph.")], 18, "GetRenderables"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Overlay area-block batches are deferred; the view position arrives via the appended render-context argument instead of Carbon's renderer global.")], 18, "GetBatches"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon rebuilds from the geometry-resource notify callback; the GPU-free port rebuilds lazily on first batch use from the mesh areas alone.")], 18, "RebuildCachedData"], [[carbon, carbon.method, impl, impl.implemented], 18, "ReleaseCachedData"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPickingBatches"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetID"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Realized-LOD draw args are engine-resolved from the geometry source descriptor; primitive-count gating happens at realization.")], 18, "GetShadowBatches"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Overlay selection is fully represented in the CPU graph; realized-LOD draw arguments remain engine-owned.")], 18, "GetBatchesFromOverlayVector"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Portable mesh area access replaces Carbon's native mesh-area vectors.")], 18, "HasTransparentBatches"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon reads the Tr2Renderer view-position global; the relocated camera state arrives via the threaded render context.")], 18, "GetSortValue"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Persistent VS/PS device buffers are engine-owned; the record carries the object reference the engine serializer consumes.")], 18, "GetPerObjectData"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShadowPerObjectData"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLights"], [[carbon, carbon.method, impl, impl.notImplemented], 18, "IsCastingShadow"], [[carbon, carbon.method, impl, impl.implemented], 18, "RegisterComponents"], [[carbon, carbon.method, impl, impl.implemented], 18, "UnRegisterComponents"], [[carbon, carbon.method, impl, impl.implemented], 18, "DisplayChildren"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetObserverTransform"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLocalToWorldTransform"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetModelCenterWorldPosition"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetWorldPosition"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetWorldRotation"], [[carbon, carbon.method, impl, impl.implemented], 18, "FindSoundEmitter"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetMute"], [[carbon, carbon.method, impl, impl.adapted], 18, "PlayAnimationEx"], [[carbon, carbon.method, impl, impl.adapted], 18, "CalculateSkinnedBoundingBoxFromTransform"], [[carbon, carbon.method, impl, impl.adapted], 18, "CalculateSkinnedBoundingSphere"], [[carbon, carbon.method, impl, impl.implemented], 18, "ClearImpactDamage"], [[carbon, carbon.method, impl, impl.implemented], 18, "ClearAnimations"], [[carbon, carbon.method, impl, impl.implemented], 18, "CreateImpactFromPosition"], [[carbon, carbon.method, impl, impl.adapted], 18, "CreateImpact"], [[carbon, carbon.method, impl, impl.implemented], 18, "EndAnimation"], [[carbon, carbon.method, impl, impl.implemented], 18, "FreezeHighDetailMesh"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetDamageLocatorCount"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLocatorCount"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLocatorsForSet"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetCloseLocatorIndex"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetGoodLocatorIndex"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetDamageLocatorDirection"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("CarbonEngineJS keeps output parameters last and returns a validity flag for targetable callers.")], 18, "GetDamageLocatorPosition"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetClosestDamageLocatorIndex"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("TriRand is represented by Math.random; all locator scoring remains source-faithful.")], 18, "GetGoodDamageLocatorIndex"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetRadius"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetMissPosition"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetImpactConfiguration"], [[carbon, carbon.method, impl, impl.implemented], 18, "HasImpactConfigurationShield"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("CarbonEngineJS uses an out-last signature; the ellipsoid intersection is otherwise source-faithful CPU math.")], 18, "GetImpactPosition"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateImpact"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetDamageLocator"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetTransformedDamageLocator"], [[carbon, carbon.method, impl, impl.adapted], 18, "IsImpostor"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLocatorPositionFromSet"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLocatorRotationFromSet"], [[carbon, carbon.method, impl, impl.implemented], 18, "HandleControllerEvent"], [[carbon, carbon.method, impl, impl.adapted], 18, "PlayAnimation"], [[carbon, carbon.method, impl, impl.implemented], 18, "ChainAnimation"], [[carbon, carbon.method, impl, impl.implemented], 18, "ChainAnimationEx"], [[carbon, carbon.method, impl, impl.adapted], 18, "RebuildBoundingSphereInformation"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon's CcpMath::Sphere is represented by core-math sph3; object-shaped center/radius input is accepted at adapter boundaries.")], 18, "SetBoundingSphereInformation"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetControllerVariables"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Geometry resources without multi-LOD support expose their sole browser LOD as index zero.")], 18, "GetLastUsedMeshLod"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetLocatorTransform"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetLocalBoundingBox"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetWorldBoundingBox"], [[carbon, carbon.method, impl, impl.implemented], 18, "IsBoundingBoxReady"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetBoundingSphere"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("TriFrustum is supplied structurally by the active engine; both exact and estimated browser frustum methods are supported.")], 18, "EstimatePixelDiameter"], [[carbon, carbon.method, impl, impl.implemented], 18, "IsInFrustum"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetBoundingSphereCenter"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetBoundingSphereRadius"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetBoneCount"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetImpactDamageState"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetImpactAnimation"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetControllerVariable"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetProceduralContainerVariable"], [[carbon, carbon.method, impl, impl.implemented], 18, "StartControllers"], [[carbon, carbon.method, impl, impl.adapted], 18, "TransformLocators"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShapeEllipsoid"]], 0, void 0, _EveEntity));
|
|
42
55
|
}
|
|
43
56
|
/** m_reflectionMode (EntityComponents::ReflectionMode - enum ReflectionMode) [READWRITE, PERSIST, NOTIFY, ENUM] */
|
|
44
57
|
reflectionMode = (_initProto(this), _init_reflectionMode(this, 3));
|
|
@@ -178,8 +191,15 @@ new class extends _identity {
|
|
|
178
191
|
/** m_psData.customData (Vector4) [READWRITE] - script/SOF-driven custom shader data. */
|
|
179
192
|
customShaderData = (_init_extra_dirtLevel(this), _init_customShaderData(this, vec4.create()));
|
|
180
193
|
|
|
194
|
+
/**
|
|
195
|
+
* m_spaceObjectShipData (Vector4) [READ] - the packed shader ship data:
|
|
196
|
+
* .y activation strength, .z dirt level, .w bounding-sphere radius
|
|
197
|
+
* (PrepareShaderData, cpp:734-744). .x is authored elsewhere and left alone.
|
|
198
|
+
*/
|
|
199
|
+
spaceObjectShipData = (_init_extra_customShaderData(this), _init_spaceObjectShipData(this, vec4.create()));
|
|
200
|
+
|
|
181
201
|
/** m_lastDamageLocatorHit (int) [READ] */
|
|
182
|
-
lastDamageLocatorHit = (
|
|
202
|
+
lastDamageLocatorHit = (_init_extra_spaceObjectShipData(this), _init_lastDamageLocatorHit(this, -1));
|
|
183
203
|
|
|
184
204
|
/** m_boundingSphereRadius (float) [READWRITE, PERSIST] */
|
|
185
205
|
boundingSphereRadius = (_init_extra_lastDamageLocatorHit(this), _init_boundingSphereRadius(this, -1));
|
|
@@ -241,12 +261,43 @@ new class extends _identity {
|
|
|
241
261
|
|
|
242
262
|
// Carbon m_impostorMode: the impostor system that raises it is unported.
|
|
243
263
|
#impostorMode = false;
|
|
264
|
+
|
|
265
|
+
/** EVE_SPACEOBJECT_CUSTOWMASK_MAX (EveSpaceObject2.h:49) - custom-mask slots. */
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* Carbon g_secondaryLightingRadiusCutoffFactor (cpp:52), a registered engine
|
|
269
|
+
* setting defaulting to 0.3. It scales this hull's bounding radius into the
|
|
270
|
+
* cutoff below which a secondary light source is too small to matter.
|
|
271
|
+
*/
|
|
272
|
+
|
|
273
|
+
/** Scratch for the per-frame shader-data fill; never allocate in it. */
|
|
274
|
+
|
|
275
|
+
// Carbon m_vsData / m_psData: the PERSISTENT per-object records. They are
|
|
276
|
+
// owner-held members across frames rather than pool leases, because the
|
|
277
|
+
// object fills them during update and reads them back afterwards
|
|
278
|
+
// (cpp:3747 takes the world translation out of the STORED transposed matrix).
|
|
279
|
+
// Carbon's paired m_perObjectDataVs/m_perObjectDataPs GPU buffers are the
|
|
280
|
+
// engine's business; Invalidate on these records carries the same signal.
|
|
281
|
+
#vsData = RawData.create("EveSpaceObjectVSData");
|
|
282
|
+
#psData = RawData.create("EveSpaceObjectPSData");
|
|
283
|
+
|
|
284
|
+
/** Alias for the mesh property; reads and writes go straight to mesh. */
|
|
244
285
|
get meshLod() {
|
|
245
286
|
return this.mesh;
|
|
246
287
|
}
|
|
288
|
+
|
|
289
|
+
/** Alias for the mesh property; reads and writes go straight to mesh. */
|
|
247
290
|
set meshLod(mesh) {
|
|
248
291
|
this.mesh = mesh ?? null;
|
|
249
292
|
}
|
|
293
|
+
|
|
294
|
+
/**
|
|
295
|
+
* Links the authored controllers, pushes authored inherit properties down to
|
|
296
|
+
* the effect children and lights, and derives the impact overlay's damage
|
|
297
|
+
* locator count from the "damage" locator set - which Carbon does at build
|
|
298
|
+
* time - so a field-populated graph reaches the same live state as the
|
|
299
|
+
* authoring path.
|
|
300
|
+
*/
|
|
250
301
|
Initialize() {
|
|
251
302
|
for (const controller of this.controllers) {
|
|
252
303
|
if (!controller?.IsLinked?.()) {
|
|
@@ -271,12 +322,24 @@ new class extends _identity {
|
|
|
271
322
|
}
|
|
272
323
|
return true;
|
|
273
324
|
}
|
|
325
|
+
|
|
326
|
+
/** Returns the hull mesh, or null when none is attached. */
|
|
274
327
|
GetMesh() {
|
|
275
328
|
return this.mesh;
|
|
276
329
|
}
|
|
330
|
+
|
|
331
|
+
/**
|
|
332
|
+
* Replaces the hull mesh; the cached area blocks are only rebuilt on the next
|
|
333
|
+
* batch call.
|
|
334
|
+
*/
|
|
277
335
|
SetMesh(mesh) {
|
|
278
336
|
this.mesh = mesh ?? null;
|
|
279
337
|
}
|
|
338
|
+
|
|
339
|
+
/**
|
|
340
|
+
* Appends a controller, links it to this object when it is not already linked,
|
|
341
|
+
* and replays the current controller variables onto it.
|
|
342
|
+
*/
|
|
280
343
|
AddController(controller) {
|
|
281
344
|
this.controllers.push(controller);
|
|
282
345
|
if (!controller?.IsLinked?.()) {
|
|
@@ -285,10 +348,22 @@ new class extends _identity {
|
|
|
285
348
|
_EveSpaceObject.#ApplyControllerVariables(controller, this.#controllerVariables, "SetVariable");
|
|
286
349
|
return controller;
|
|
287
350
|
}
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* Appends a placement observer, which is repositioned from the observer
|
|
354
|
+
* transform on every synchronous update; the observer is returned for
|
|
355
|
+
* chaining.
|
|
356
|
+
*/
|
|
288
357
|
AddObserver(observer) {
|
|
289
358
|
this.observers.push(observer);
|
|
290
359
|
return observer;
|
|
291
360
|
}
|
|
361
|
+
|
|
362
|
+
/**
|
|
363
|
+
* Sets the colour set that effect children and lights inherit, creating the
|
|
364
|
+
* inherit-properties holder on first use, and pushes it to the existing
|
|
365
|
+
* children and lights.
|
|
366
|
+
*/
|
|
292
367
|
SetInheritProperties(colorSet) {
|
|
293
368
|
if (!this.inheritProperties) {
|
|
294
369
|
this.inheritProperties = new _EveChildInheritPrope();
|
|
@@ -296,6 +371,8 @@ new class extends _identity {
|
|
|
296
371
|
this.inheritProperties.SetProperties(colorSet);
|
|
297
372
|
this.#PropagateInheritProperties();
|
|
298
373
|
}
|
|
374
|
+
|
|
375
|
+
/** Pushes the current inherited properties to every effect child and light. */
|
|
299
376
|
#PropagateInheritProperties() {
|
|
300
377
|
const properties = this.inheritProperties.GetProperties();
|
|
301
378
|
for (const child of this.effectChildren) {
|
|
@@ -305,6 +382,11 @@ new class extends _identity {
|
|
|
305
382
|
light?.SetInheritProperties?.(properties);
|
|
306
383
|
}
|
|
307
384
|
}
|
|
385
|
+
|
|
386
|
+
/**
|
|
387
|
+
* Returns the first effect child with the given name, or null when none
|
|
388
|
+
* matches.
|
|
389
|
+
*/
|
|
308
390
|
GetEffectChildByName(name) {
|
|
309
391
|
const target = String(name ?? "");
|
|
310
392
|
for (const child of this.effectChildren) {
|
|
@@ -314,6 +396,12 @@ new class extends _identity {
|
|
|
314
396
|
}
|
|
315
397
|
return null;
|
|
316
398
|
}
|
|
399
|
+
|
|
400
|
+
/**
|
|
401
|
+
* Appends an effect child, first giving it the hull's inherited properties and
|
|
402
|
+
* then replaying the current controller variables onto it, so a late addition
|
|
403
|
+
* starts in the same state as the rest.
|
|
404
|
+
*/
|
|
317
405
|
AddToEffectChildrenList(child) {
|
|
318
406
|
if (this.inheritProperties) {
|
|
319
407
|
child?.SetInheritProperties?.(this.inheritProperties.GetProperties());
|
|
@@ -322,15 +410,27 @@ new class extends _identity {
|
|
|
322
410
|
_EveSpaceObject.#ApplyControllerVariables(child, this.#controllerVariables, "SetControllerVariable");
|
|
323
411
|
return child;
|
|
324
412
|
}
|
|
413
|
+
|
|
414
|
+
/** Appends a light, first giving it the hull's inherited properties. */
|
|
325
415
|
AddLight(light) {
|
|
326
416
|
if (this.inheritProperties) {
|
|
327
417
|
light?.SetInheritProperties?.(this.inheritProperties.GetProperties());
|
|
328
418
|
}
|
|
329
419
|
this.lights.push(light);
|
|
330
420
|
}
|
|
421
|
+
|
|
422
|
+
/**
|
|
423
|
+
* Drops every light from the hull; component registration is not revisited
|
|
424
|
+
* here.
|
|
425
|
+
*/
|
|
331
426
|
ClearLights() {
|
|
332
427
|
this.lights.length = 0;
|
|
333
428
|
}
|
|
429
|
+
|
|
430
|
+
/**
|
|
431
|
+
* Removes an effect child, returning false when it is not attached to this
|
|
432
|
+
* hull.
|
|
433
|
+
*/
|
|
334
434
|
RemoveFromEffectChildrenList(child) {
|
|
335
435
|
const index = this.effectChildren.indexOf(child);
|
|
336
436
|
if (index === -1) {
|
|
@@ -339,18 +439,38 @@ new class extends _identity {
|
|
|
339
439
|
this.effectChildren.splice(index, 1);
|
|
340
440
|
return true;
|
|
341
441
|
}
|
|
442
|
+
|
|
443
|
+
/**
|
|
444
|
+
* Sets the curve that rotates the model within the hull's ball rotation, or
|
|
445
|
+
* clears it when passed nothing.
|
|
446
|
+
*/
|
|
342
447
|
SetModelRotationCurve(curve) {
|
|
343
448
|
this.modelRotationCurve = curve ?? null;
|
|
344
449
|
}
|
|
450
|
+
|
|
451
|
+
/** Returns the model rotation curve, or null when none is set. */
|
|
345
452
|
GetModelRotationCurve() {
|
|
346
453
|
return this.modelRotationCurve;
|
|
347
454
|
}
|
|
455
|
+
|
|
456
|
+
/**
|
|
457
|
+
* Sets the curve that offsets the model within the hull's ball position, or
|
|
458
|
+
* clears it when passed nothing.
|
|
459
|
+
*/
|
|
348
460
|
SetModelTranslationCurve(curve) {
|
|
349
461
|
this.modelTranslationCurve = curve ?? null;
|
|
350
462
|
}
|
|
463
|
+
|
|
464
|
+
/** Returns the model translation curve, or null when none is set. */
|
|
351
465
|
GetModelTranslationCurve() {
|
|
352
466
|
return this.modelTranslationCurve;
|
|
353
467
|
}
|
|
468
|
+
|
|
469
|
+
/**
|
|
470
|
+
* Rebuilds the hull world transform for a frame from the ball position and rotation curves plus the optional model translation and rotation curves, applies modelScale as a uniform scale, then refreshes the inverse transform and the world bounds; the previous world transform is kept for motion vectors and the world velocity comes from the position curve's derivative.
|
|
471
|
+
* @param {number} time Frame time; repeating the previous call's time is a no-op.
|
|
472
|
+
* @returns {boolean} False when the transform had already been built for this time.
|
|
473
|
+
*/
|
|
354
474
|
UpdateWorldTransform(time) {
|
|
355
475
|
const nextTime = Number(time) || 0;
|
|
356
476
|
if (this.#lastUpdateTransformTime === nextTime) {
|
|
@@ -358,6 +478,10 @@ new class extends _identity {
|
|
|
358
478
|
}
|
|
359
479
|
this.#lastUpdateTransformTime = nextTime;
|
|
360
480
|
mat4.copy(this.lastWorldTransform, this.worldTransform);
|
|
481
|
+
// Carbon cpp:2675-2676: the OUTGOING transform becomes worldTransformLast,
|
|
482
|
+
// stored transposed in both records, before the new one is built.
|
|
483
|
+
this.#vsData.SetAndTranspose("worldTransformLast", this.lastWorldTransform);
|
|
484
|
+
this.#psData.SetAndTranspose("worldTransformLast", this.lastWorldTransform);
|
|
361
485
|
_EveSpaceObject.#UpdateCurve(this.translationCurve, nextTime, this.worldPosition, _EveSpaceObject.#zero);
|
|
362
486
|
if (this.translationCurve?.GetValueDotAt) {
|
|
363
487
|
this.translationCurve.GetValueDotAt(nextTime, this.worldVelocity);
|
|
@@ -400,9 +524,9 @@ new class extends _identity {
|
|
|
400
524
|
return true;
|
|
401
525
|
}
|
|
402
526
|
|
|
403
|
-
/**
|
|
404
|
-
* Refreshes Carbon's realized world-space sphere from the dynamic skinned
|
|
405
|
-
* sphere when available, otherwise from the authored local sphere.
|
|
527
|
+
/**
|
|
528
|
+
* Refreshes Carbon's realized world-space sphere from the dynamic skinned
|
|
529
|
+
* sphere when available, otherwise from the authored local sphere.
|
|
406
530
|
*/
|
|
407
531
|
UpdateWorldBounds() {
|
|
408
532
|
const updater = this.animationUpdater;
|
|
@@ -421,6 +545,114 @@ new class extends _identity {
|
|
|
421
545
|
}
|
|
422
546
|
return false;
|
|
423
547
|
}
|
|
548
|
+
|
|
549
|
+
/**
|
|
550
|
+
* Carbon EveSpaceObject2::PrepareShaderData (cpp:734-763): refreshes the
|
|
551
|
+
* world bounds, packs the ship data, and derives the clip-sphere dissolve
|
|
552
|
+
* values into the persistent per-object records.
|
|
553
|
+
*/
|
|
554
|
+
PrepareShaderData(updateContext = null) {
|
|
555
|
+
this.UpdateWorldBounds();
|
|
556
|
+
|
|
557
|
+
// An impact overlay may damp the activation strength; otherwise full on.
|
|
558
|
+
this.spaceObjectShipData[1] = this.impactOverlay ? this.impactOverlay.GetActivationStrength?.(updateContext) ?? 1 : 1;
|
|
559
|
+
this.spaceObjectShipData[3] = this.GetBoundingSphereRadius();
|
|
560
|
+
this.spaceObjectShipData[2] = this.dirtLevel;
|
|
561
|
+
|
|
562
|
+
// clipSphereFactor runs 0 (fully visible) to 1 (invisible); the shader gets
|
|
563
|
+
// a signed squared radius rather than the factor itself.
|
|
564
|
+
let normalizedBoundingRadius = this.GetBoundingSphereRadius() / (this.modelScale === 0 ? 1 : this.modelScale);
|
|
565
|
+
const clipOffset = vec3.length(this.clipSphereCenter);
|
|
566
|
+
normalizedBoundingRadius += clipOffset;
|
|
567
|
+
const insideSpherePercentage = Math.min(1, clipOffset / normalizedBoundingRadius);
|
|
568
|
+
const dissolveRadius = this.clipSphereFactor * normalizedBoundingRadius * (1 + insideSpherePercentage);
|
|
569
|
+
const center = this.GetBoundingSphereCenter();
|
|
570
|
+
const clipSphereCenter = _EveSpaceObject.#clipSphereCenterScratch;
|
|
571
|
+
vec3.add(clipSphereCenter, this.clipSphereCenter, center);
|
|
572
|
+
const clipRadiusSq = Math.sign(dissolveRadius) * dissolveRadius * dissolveRadius;
|
|
573
|
+
this.#psData.Set("clipSphereCenter", clipSphereCenter);
|
|
574
|
+
this.#psData.Set("clipRadiusSq", [clipRadiusSq]);
|
|
575
|
+
this.#vsData.Set("clipData", [clipSphereCenter[0], clipSphereCenter[1], clipSphereCenter[2], clipRadiusSq]);
|
|
576
|
+
const dissolveRadius2 = this.clipSphereFactor2 * normalizedBoundingRadius * (1 + insideSpherePercentage);
|
|
577
|
+
this.#psData.Set("clipRadius2Sq", [Math.sign(dissolveRadius2) * dissolveRadius2 * dissolveRadius2]);
|
|
578
|
+
this.#psData.Set("clipSphereFactor", [this.clipSphereFactor]);
|
|
579
|
+
this.#psData.Set("clipSphereFactor2", [this.clipSphereFactor2]);
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
/**
|
|
583
|
+
* Carbon EveSpaceObject2::UpdateShLighting (cpp:1411-1421): asks the scene's
|
|
584
|
+
* SH lighting manager for this hull's secondary-lighting coefficients, faded
|
|
585
|
+
* in across the low-detail threshold so a hull entering that range does not
|
|
586
|
+
* pop. The coefficients are cleared first, which is also what leaves the
|
|
587
|
+
* unwritten tail zero on the L1 path.
|
|
588
|
+
* @param {Object} manager - Tr2ShLightingManager
|
|
589
|
+
* @param {Object} [updateContext] - frame context, for the detail thresholds
|
|
590
|
+
*/
|
|
591
|
+
UpdateShLighting(manager, updateContext = null) {
|
|
592
|
+
const coefficients = this.#psData.Get("shLightingCoefficients");
|
|
593
|
+
coefficients.fill(0);
|
|
594
|
+
const lowThreshold = _EveSpaceObject.#GetContextValue(updateContext, "GetLowDetailThreshold", "lowDetailThreshold");
|
|
595
|
+
if (!(this.estimatedPixelDiameterWithChildren > lowThreshold) || typeof manager?.GetLighting !== "function") {
|
|
596
|
+
return false;
|
|
597
|
+
}
|
|
598
|
+
const mediumThreshold = _EveSpaceObject.#GetContextValue(updateContext, "GetMediumDetailThreshold", "mediumDetailThreshold");
|
|
599
|
+
const intensityFadeRadius = (mediumThreshold - lowThreshold) * 0.25;
|
|
600
|
+
const intensity = Math.min(Math.max((this.estimatedPixelDiameterWithChildren - lowThreshold) / intensityFadeRadius, 0), 1);
|
|
601
|
+
manager.GetLighting(this.worldPosition, intensity, this.boundingSphereRadius * _EveSpaceObject.SECONDARY_LIGHTING_RADIUS_CUTOFF_FACTOR, coefficients);
|
|
602
|
+
return true;
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
/**
|
|
606
|
+
* Carbon EveSpaceObject2::ClearShLighting (cpp:1423-1426): drops this hull's
|
|
607
|
+
* secondary-lighting contribution back to nothing.
|
|
608
|
+
*/
|
|
609
|
+
ClearShLighting() {
|
|
610
|
+
this.#psData.Get("shLightingCoefficients").fill(0);
|
|
611
|
+
return true;
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
/**
|
|
615
|
+
* Carbon EveSpaceObject2::GetParentData (cpp:1872-1885): the values an
|
|
616
|
+
* attachment needs from its hull. `shLighting` is a LIVE view into the PS
|
|
617
|
+
* record, exactly as Carbon hands out a raw pointer into m_psData - an
|
|
618
|
+
* attachment reading it sees the hull's current coefficients.
|
|
619
|
+
* @param {Object} [out] - caller-owned record, refreshed in place
|
|
620
|
+
*/
|
|
621
|
+
GetParentData(out = new _IEveSpaceObject2Pare()) {
|
|
622
|
+
mat4.copy(out.transform, this.worldTransform);
|
|
623
|
+
// Carbon memsets the record and never assigns killCount on this path.
|
|
624
|
+
out.killCount = 0;
|
|
625
|
+
vec4.copy(out.shipData, this.spaceObjectShipData);
|
|
626
|
+
vec3.copy(out.clipSphereCenter, this.#psData.Get("clipSphereCenter"));
|
|
627
|
+
out.clipRadiusSq = this.#psData.Get("clipRadiusSq")[0];
|
|
628
|
+
out.clipRadius2Sq = this.#psData.Get("clipRadius2Sq")[0];
|
|
629
|
+
out.clipFactor = this.#psData.Get("clipSphereFactor")[0];
|
|
630
|
+
out.clipFactor2 = this.#psData.Get("clipSphereFactor2")[0];
|
|
631
|
+
out.shLighting = this.#psData.Get("shLightingCoefficients");
|
|
632
|
+
vec4.copy(out.customData, this.#psData.Get("customData"));
|
|
633
|
+
return out;
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
/**
|
|
637
|
+
* Carbon EveSpaceObject2::GetPerObjectStructs (cpp:1485-1490): hands a copy
|
|
638
|
+
* of both records to a caller, with the VS record's customData taken from the
|
|
639
|
+
* PS record as Carbon does.
|
|
640
|
+
* @returns {{vs: RawData, ps: RawData}} independent copies, not live records
|
|
641
|
+
*/
|
|
642
|
+
GetPerObjectStructs(vsData = RawData.create("EveSpaceObjectVSData"), psData = RawData.create("EveSpaceObjectPSData")) {
|
|
643
|
+
vsData.CopyFrom(this.#vsData);
|
|
644
|
+
psData.CopyFrom(this.#psData);
|
|
645
|
+
vsData.Set("customData", this.#psData.Get("customData"));
|
|
646
|
+
return {
|
|
647
|
+
vs: vsData,
|
|
648
|
+
ps: psData
|
|
649
|
+
};
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
/**
|
|
653
|
+
* Refreshes the world transform, then - when the update flag is on - places the observers, stamps the LOD-gated curve clock while advancing the overlay effects, runs the effect children's synchronous pass with the current placement, and updates the impact overlay; the overlay effects receive the context time as both clocks, as Carbon does.
|
|
654
|
+
* @returns {boolean} False when the update flag is off; the world transform is refreshed either way.
|
|
655
|
+
*/
|
|
424
656
|
UpdateSyncronous(updateContext = null) {
|
|
425
657
|
const time = _EveSpaceObject.#GetContextValue(updateContext, "GetTime", "currentTime", "time");
|
|
426
658
|
this.UpdateWorldTransform(time);
|
|
@@ -457,6 +689,11 @@ new class extends _identity {
|
|
|
457
689
|
this.impactOverlay?.UpdateSyncronous?.(updateContext, this);
|
|
458
690
|
return true;
|
|
459
691
|
}
|
|
692
|
+
|
|
693
|
+
/**
|
|
694
|
+
* Runs the controllers at a frequency derived from the hull's estimated pixel diameter against the context's high-detail threshold, advances the object curve sets only on frames the synchronous LOD gate stamped, then updates the transform children, the effect children and the impact overlay.
|
|
695
|
+
* @returns {number} The controller update frequency in 0..1, which is also handed to the effect children; 0 when the hull is not visible or the update flag is off.
|
|
696
|
+
*/
|
|
460
697
|
UpdateAsyncronous(updateContext = null) {
|
|
461
698
|
if (!this.update) {
|
|
462
699
|
return 0;
|
|
@@ -467,6 +704,42 @@ new class extends _identity {
|
|
|
467
704
|
controller?.Update?.(frequency);
|
|
468
705
|
}
|
|
469
706
|
|
|
707
|
+
// Carbon cpp:626-663: the persistent buffers are invalidated once per
|
|
708
|
+
// frame, then the shader data is prepared and copied into both records.
|
|
709
|
+
this.#vsData.Invalidate();
|
|
710
|
+
this.#psData.Invalidate();
|
|
711
|
+
const previousActivationStrength = this.spaceObjectShipData[1];
|
|
712
|
+
this.PrepareShaderData(updateContext);
|
|
713
|
+
if (previousActivationStrength !== this.spaceObjectShipData[1]) {
|
|
714
|
+
this.SetControllerVariable?.("ActivationStrength", this.spaceObjectShipData[1]);
|
|
715
|
+
}
|
|
716
|
+
this.#psData.Set("shipData", this.spaceObjectShipData);
|
|
717
|
+
this.#vsData.Set("shipData", this.spaceObjectShipData);
|
|
718
|
+
// m_psData.customData is script/SOF-driven; the model field is its author.
|
|
719
|
+
this.#psData.Set("customData", this.customShaderData);
|
|
720
|
+
// Both records carry the same two matrices; each is written from the
|
|
721
|
+
// LOGICAL transform, which produces the bytes Carbon's `m_psData.x =
|
|
722
|
+
// m_vsData.x` copy of the already-transposed value produces.
|
|
723
|
+
this.#vsData.SetAndTranspose("worldTransform", this.worldTransform);
|
|
724
|
+
this.#vsData.SetAndTranspose("invWorldTransform", this.inverseWorldTransform);
|
|
725
|
+
this.#psData.SetAndTranspose("worldTransform", this.worldTransform);
|
|
726
|
+
this.#psData.SetAndTranspose("invWorldTransform", this.inverseWorldTransform);
|
|
727
|
+
const shapeCenter = _EveSpaceObject.#shapeCenterScratch;
|
|
728
|
+
const shapeRadius = _EveSpaceObject.#shapeRadiusScratch;
|
|
729
|
+
this.GetShapeEllipsoid(shapeCenter, shapeRadius);
|
|
730
|
+
this.#vsData.Set("ellpsoidRadii", [shapeRadius[0], shapeRadius[1], shapeRadius[2], 0]);
|
|
731
|
+
this.#vsData.Set("ellpsoidCenter", [shapeCenter[0], shapeCenter[1], shapeCenter[2], 0]);
|
|
732
|
+
if (this.impactOverlay) {
|
|
733
|
+
this.#psData.Set("impactDataOffset", [this.impactOverlay.GetDataTextureOffset?.() ?? 0]);
|
|
734
|
+
}
|
|
735
|
+
for (let slot = 0; slot < _EveSpaceObject.CUSTOM_MASK_MAX; slot++) {
|
|
736
|
+
if (this.customMasks.length > slot) {
|
|
737
|
+
this.customMasks[slot]?.FillPerObjectData?.(slot, this.#vsData, this.#psData);
|
|
738
|
+
} else {
|
|
739
|
+
_EveCustomMask.ZeroPerObjectData(slot, this.#vsData, this.#psData);
|
|
740
|
+
}
|
|
741
|
+
}
|
|
742
|
+
|
|
470
743
|
// Object-level curve sets update only on frames the sync-side LOD gate
|
|
471
744
|
// stamped, receiving the context time as BOTH realTime and simTime
|
|
472
745
|
// (Carbon EveSpaceObject2::UpdateAsyncronous: if (m_lastCurveUpdateTime ==
|
|
@@ -496,9 +769,9 @@ new class extends _identity {
|
|
|
496
769
|
return frequency;
|
|
497
770
|
}
|
|
498
771
|
|
|
499
|
-
/**
|
|
500
|
-
* Updates Carbon's visibility, pixel-size, and mesh-LOD state, then forwards
|
|
501
|
-
* visibility to the explicitly owned visual branches.
|
|
772
|
+
/**
|
|
773
|
+
* Updates Carbon's visibility, pixel-size, and mesh-LOD state, then forwards
|
|
774
|
+
* visibility to the explicitly owned visual branches.
|
|
502
775
|
*/
|
|
503
776
|
UpdateVisibility(updateContext = null, _parentTransform = _EveSpaceObject.#identityTransform) {
|
|
504
777
|
this.isVisible = false;
|
|
@@ -523,8 +796,15 @@ new class extends _identity {
|
|
|
523
796
|
this.#isMeshVisible = true;
|
|
524
797
|
}
|
|
525
798
|
}
|
|
799
|
+
|
|
800
|
+
// Bones so a bone-parented attachment's bounds follow its bone, which is
|
|
801
|
+
// what drives the per-bone AABB union (Carbon BoundingBox.cpp:815-833).
|
|
802
|
+
const {
|
|
803
|
+
bones,
|
|
804
|
+
boneCount
|
|
805
|
+
} = getBoneList(this.animationUpdater);
|
|
526
806
|
for (const attachment of this.attachments) {
|
|
527
|
-
if (attachment?.UpdateVisibility?.(updateContext, this.worldTransform,
|
|
807
|
+
if (attachment?.UpdateVisibility?.(updateContext, this.worldTransform, bones, boneCount)) {
|
|
528
808
|
this.#isMeshVisible = true;
|
|
529
809
|
this.isVisible = true;
|
|
530
810
|
}
|
|
@@ -587,10 +867,10 @@ new class extends _identity {
|
|
|
587
867
|
return out;
|
|
588
868
|
}
|
|
589
869
|
|
|
590
|
-
/** Carbon ITr2Renderable contract (EveSpaceObject2.cpp:1097-1140): activated
|
|
591
|
-
* attachments recurse, the impact overlay contributes, the hull mesh delegates
|
|
592
|
-
* per batch type, and TRANSPARENT routes through the distance-sorted area
|
|
593
|
-
* path. GetBatchesFromOverlayVector (precomputed overlay area blocks) is
|
|
870
|
+
/** Carbon ITr2Renderable contract (EveSpaceObject2.cpp:1097-1140): activated
|
|
871
|
+
* attachments recurse, the impact overlay contributes, the hull mesh delegates
|
|
872
|
+
* per batch type, and TRANSPARENT routes through the distance-sorted area
|
|
873
|
+
* path. GetBatchesFromOverlayVector (precomputed overlay area blocks) is
|
|
594
874
|
* deferred with the overlay realization work. */
|
|
595
875
|
GetBatches(batches, batchType, perObjectData, reason, renderContext = null) {
|
|
596
876
|
if (!this.mesh) return false;
|
|
@@ -625,6 +905,13 @@ new class extends _identity {
|
|
|
625
905
|
// order into the order-preserving TRANSPARENT accumulator. Bounding boxes come
|
|
626
906
|
// from the geometry resource when it exposes them; a failed lookup keeps
|
|
627
907
|
// Carbon's origin-center fallback.
|
|
908
|
+
|
|
909
|
+
/**
|
|
910
|
+
* Commits the mesh's transparent areas back-to-front, ordering them by the
|
|
911
|
+
* squared distance from the view position to each area's world-space
|
|
912
|
+
* bounding-box center and falling back to the object origin when the geometry
|
|
913
|
+
* resource cannot supply a box.
|
|
914
|
+
*/
|
|
628
915
|
#GetSortedTransparentBatches(areas, batches, perObjectData, renderContext) {
|
|
629
916
|
const geometry = this.mesh.GetGeometryResource?.() ?? null;
|
|
630
917
|
const viewPosition = renderContext?.GetViewPosition?.();
|
|
@@ -655,10 +942,10 @@ new class extends _identity {
|
|
|
655
942
|
}
|
|
656
943
|
}
|
|
657
944
|
|
|
658
|
-
/** Rebuilds the cached overlay/shadow area-block lists from the current mesh
|
|
659
|
-
* (Carbon RebuildCachedData, EveSpaceObject2.cpp:2077-2097, triggered there by
|
|
660
|
-
* the geometry-resource load callback). TYPE_ALL = shadow-casting OPAQUE +
|
|
661
|
-
* TRANSPARENT + DECAL areas; TYPE_OPAQUEONLY = shadow-casting OPAQUE; the
|
|
945
|
+
/** Rebuilds the cached overlay/shadow area-block lists from the current mesh
|
|
946
|
+
* (Carbon RebuildCachedData, EveSpaceObject2.cpp:2077-2097, triggered there by
|
|
947
|
+
* the geometry-resource load callback). TYPE_ALL = shadow-casting OPAQUE +
|
|
948
|
+
* TRANSPARENT + DECAL areas; TYPE_OPAQUEONLY = shadow-casting OPAQUE; the
|
|
662
949
|
* shadow list groups OPAQUE areas by shared material. All coalesced. */
|
|
663
950
|
RebuildCachedData() {
|
|
664
951
|
this.ReleaseCachedData();
|
|
@@ -677,6 +964,11 @@ new class extends _identity {
|
|
|
677
964
|
}
|
|
678
965
|
this.#cachedAreaBlocksBuilt = true;
|
|
679
966
|
}
|
|
967
|
+
|
|
968
|
+
/**
|
|
969
|
+
* Drops the cached overlay and shadow area-block lists so the next batch call
|
|
970
|
+
* rebuilds them from the current mesh.
|
|
971
|
+
*/
|
|
680
972
|
ReleaseCachedData() {
|
|
681
973
|
for (const blocks of this.#overlayMeshAreaBlocks) {
|
|
682
974
|
blocks.length = 0;
|
|
@@ -684,14 +976,68 @@ new class extends _identity {
|
|
|
684
976
|
this.#shadowMeshOpaqueAreas.length = 0;
|
|
685
977
|
this.#cachedAreaBlocksBuilt = false;
|
|
686
978
|
}
|
|
979
|
+
|
|
980
|
+
/**
|
|
981
|
+
* Rebuilds the cached area blocks on first use when a mesh is attached; Carbon
|
|
982
|
+
* instead rebuilds them from the geometry-resource load callback.
|
|
983
|
+
*/
|
|
687
984
|
#EnsureCachedAreaBlocks() {
|
|
688
985
|
if (!this.#cachedAreaBlocksBuilt && this.mesh) this.RebuildCachedData();
|
|
689
986
|
}
|
|
690
987
|
|
|
691
|
-
/**
|
|
692
|
-
*
|
|
693
|
-
*
|
|
694
|
-
* engine
|
|
988
|
+
/**
|
|
989
|
+
* Carbon EveSpaceObject2::GetPickingBatches (cpp:3645-3675): collects the
|
|
990
|
+
* geometry a pick pass should test, by mask. It is ordinary batch collection
|
|
991
|
+
* - the pick itself is an engine pass that renders these and reads IDs back.
|
|
992
|
+
*
|
|
993
|
+
* The OPAQUE bit deliberately pulls in the transparent and additive OVERLAY
|
|
994
|
+
* effects too, so a cloaking hull stays pickable.
|
|
995
|
+
*
|
|
996
|
+
* @param {Object} batches - the picking accumulator
|
|
997
|
+
* @param {Number} pickTypes - a Tr2PickType mask
|
|
998
|
+
* @param {Object} perObjectData - this hull's per-object record
|
|
999
|
+
*/
|
|
1000
|
+
GetPickingBatches(batches, pickTypes = TR2_PICK_TYPE_DEFAULT, perObjectData = null) {
|
|
1001
|
+
if (pickTypes & Tr2PickType.PICK_TYPE_PICKING) {
|
|
1002
|
+
this.GetBatches(batches, TriBatchType.TRIBATCHTYPE_PICKING, perObjectData);
|
|
1003
|
+
}
|
|
1004
|
+
if (pickTypes & Tr2PickType.PICK_TYPE_OPAQUE) {
|
|
1005
|
+
this.GetBatches(batches, TriBatchType.TRIBATCHTYPE_OPAQUE, perObjectData);
|
|
1006
|
+
this.GetBatches(batches, TriBatchType.TRIBATCHTYPE_DECAL, perObjectData);
|
|
1007
|
+
this.GetBatchesFromOverlayVector(batches, perObjectData, TriBatchType.TRIBATCHTYPE_TRANSPARENT, this.mesh);
|
|
1008
|
+
this.GetBatchesFromOverlayVector(batches, perObjectData, TriBatchType.TRIBATCHTYPE_ADDITIVE, this.mesh);
|
|
1009
|
+
}
|
|
1010
|
+
if (pickTypes & Tr2PickType.PICK_TYPE_TRANSPARENT) {
|
|
1011
|
+
// Carbon takes the mesh's OWN areas here rather than going through
|
|
1012
|
+
// GetBatches, and returns early when the mesh is absent or hidden - so a
|
|
1013
|
+
// hidden mesh suppresses the transparent pass only, not the ones above.
|
|
1014
|
+
if (!this.mesh || this.mesh.display === false) {
|
|
1015
|
+
return true;
|
|
1016
|
+
}
|
|
1017
|
+
for (const batchType of [TriBatchType.TRIBATCHTYPE_TRANSPARENT, TriBatchType.TRIBATCHTYPE_ADDITIVE]) {
|
|
1018
|
+
const areas = this.mesh.GetAreas?.(batchType);
|
|
1019
|
+
if (areas) {
|
|
1020
|
+
this.mesh.GetBatches?.(batches, areas, perObjectData);
|
|
1021
|
+
}
|
|
1022
|
+
}
|
|
1023
|
+
}
|
|
1024
|
+
return true;
|
|
1025
|
+
}
|
|
1026
|
+
|
|
1027
|
+
/**
|
|
1028
|
+
* Carbon EveSpaceObject2::GetID (cpp:3640-3643): a picked area resolves to
|
|
1029
|
+
* the hull itself, so the area index is deliberately ignored.
|
|
1030
|
+
* @param {Number} [_areaID] - the picked area, unused by this class
|
|
1031
|
+
* @returns {EveSpaceObject2} this
|
|
1032
|
+
*/
|
|
1033
|
+
GetID(_areaID = 0) {
|
|
1034
|
+
return this;
|
|
1035
|
+
}
|
|
1036
|
+
|
|
1037
|
+
/** Carbon GetShadowBatches (EveSpaceObject2.cpp:1143-1184): one batch per
|
|
1038
|
+
* cached shared-material OPAQUE area block, using the area's own material.
|
|
1039
|
+
* Carbon bakes realized-LOD draw args; the GPU-free port defers them to the
|
|
1040
|
+
* engine via the geometry source descriptor, so shadowPixelSize travels unused
|
|
695
1041
|
* until engine LOD selection consumes it. */
|
|
696
1042
|
GetShadowBatches(batches, perObjectData, _shadowPixelSize) {
|
|
697
1043
|
if (!this.mesh || this.mesh.display === false) return false;
|
|
@@ -714,10 +1060,10 @@ new class extends _identity {
|
|
|
714
1060
|
return committed;
|
|
715
1061
|
}
|
|
716
1062
|
|
|
717
|
-
/** Carbon GetBatchesFromOverlayVector (EveSpaceObject2.cpp:1199-1285): the
|
|
718
|
-
* impact overlay's armor-damage shader draws over the TYPE_ALL blocks at
|
|
719
|
-
* maximum priority; each displayed overlay effect draws its per-batch-type
|
|
720
|
-
* effects over its overlay-type blocks (OPAQUE -> TYPE_OPAQUEONLY, everything
|
|
1063
|
+
/** Carbon GetBatchesFromOverlayVector (EveSpaceObject2.cpp:1199-1285): the
|
|
1064
|
+
* impact overlay's armor-damage shader draws over the TYPE_ALL blocks at
|
|
1065
|
+
* maximum priority; each displayed overlay effect draws its per-batch-type
|
|
1066
|
+
* effects over its overlay-type blocks (OPAQUE -> TYPE_OPAQUEONLY, everything
|
|
721
1067
|
* else -> TYPE_ALL). */
|
|
722
1068
|
GetBatchesFromOverlayVector(batches, perObjectData, batchType, mesh) {
|
|
723
1069
|
const impactEffect = this.impactOverlay?.GetArmorDamageShader?.(batchType) ?? null;
|
|
@@ -735,7 +1081,7 @@ new class extends _identity {
|
|
|
735
1081
|
for (const overlay of this.overlayEffects) {
|
|
736
1082
|
const effects = this.#OverlayEffectsFor(overlay, batchType);
|
|
737
1083
|
if (!effects) continue;
|
|
738
|
-
const overlayType = batchType
|
|
1084
|
+
const overlayType = overlay.GetType(batchType);
|
|
739
1085
|
const blocks = this.#overlayMeshAreaBlocks[overlayType];
|
|
740
1086
|
for (const effect of effects) {
|
|
741
1087
|
for (const block of blocks) {
|
|
@@ -745,6 +1091,12 @@ new class extends _identity {
|
|
|
745
1091
|
}
|
|
746
1092
|
return (batches.GetBatchCount?.() ?? 0) > committedBefore;
|
|
747
1093
|
}
|
|
1094
|
+
|
|
1095
|
+
/**
|
|
1096
|
+
* Builds and commits one render batch drawing a single cached area block with
|
|
1097
|
+
* the given material and optional priority, skipping the block when the
|
|
1098
|
+
* material yields no valid batch.
|
|
1099
|
+
*/
|
|
748
1100
|
#CommitBlockBatch(batches, material, geometry, meshIndex, block, perObjectData, priority) {
|
|
749
1101
|
const batch = new Tr2RenderBatch();
|
|
750
1102
|
batch.SetMaterial(material);
|
|
@@ -755,35 +1107,34 @@ new class extends _identity {
|
|
|
755
1107
|
batches.Commit(batch);
|
|
756
1108
|
}
|
|
757
1109
|
|
|
758
|
-
// EveMeshOverlayEffect::GetEffects (display-gated, per batch type).
|
|
759
|
-
|
|
1110
|
+
// EveMeshOverlayEffect::GetEffects (display-gated, per batch type).
|
|
1111
|
+
|
|
1112
|
+
/**
|
|
1113
|
+
* Returns an overlay effect's display-gated effect list for a batch type, or
|
|
1114
|
+
* null when it contributes none.
|
|
1115
|
+
*/
|
|
760
1116
|
#OverlayEffectsFor(overlay, batchType) {
|
|
761
|
-
|
|
762
|
-
if (typeof overlay.GetEffects === "function") return overlay.GetEffects(batchType) ?? null;
|
|
763
|
-
if (overlay.display === false) return null;
|
|
764
|
-
switch (batchType) {
|
|
765
|
-
case TriBatchType.TRIBATCHTYPE_OPAQUE:
|
|
766
|
-
return overlay.opaqueEffects ?? null;
|
|
767
|
-
case TriBatchType.TRIBATCHTYPE_DECAL:
|
|
768
|
-
return overlay.decalEffects ?? null;
|
|
769
|
-
case TriBatchType.TRIBATCHTYPE_TRANSPARENT:
|
|
770
|
-
return overlay.transparentEffects ?? null;
|
|
771
|
-
case TriBatchType.TRIBATCHTYPE_ADDITIVE:
|
|
772
|
-
return overlay.additiveEffects ?? null;
|
|
773
|
-
case TriBatchType.TRIBATCHTYPE_DISTORTION:
|
|
774
|
-
return overlay.distortionEffects ?? null;
|
|
775
|
-
default:
|
|
776
|
-
return null;
|
|
777
|
-
}
|
|
1117
|
+
return overlay?.GetEffects?.(batchType) ?? null;
|
|
778
1118
|
}
|
|
1119
|
+
|
|
1120
|
+
/**
|
|
1121
|
+
* Reports whether the hull mesh has transparent areas or any overlay effect
|
|
1122
|
+
* does, which tells the renderer to route this object through the sorted
|
|
1123
|
+
* transparent pass.
|
|
1124
|
+
*/
|
|
779
1125
|
HasTransparentBatches() {
|
|
780
1126
|
if (!this.mesh) return false;
|
|
781
1127
|
if ((this.mesh.GetAreas?.(TriBatchType.TRIBATCHTYPE_TRANSPARENT)?.length ?? 0) > 0) return true;
|
|
782
1128
|
for (const overlay of this.overlayEffects) {
|
|
783
|
-
if (overlay?.HasTransparentArea?.()
|
|
1129
|
+
if (overlay?.HasTransparentArea?.()) return true;
|
|
784
1130
|
}
|
|
785
1131
|
return false;
|
|
786
1132
|
}
|
|
1133
|
+
|
|
1134
|
+
/**
|
|
1135
|
+
* Returns the distance from the render context's view position to the hull
|
|
1136
|
+
* world translation, used to order transparent renderables back-to-front.
|
|
1137
|
+
*/
|
|
787
1138
|
GetSortValue(renderContext = null) {
|
|
788
1139
|
const viewPosition = renderContext?.GetViewPosition?.();
|
|
789
1140
|
const x = (viewPosition?.[0] ?? 0) - this.worldTransform[12];
|
|
@@ -792,14 +1143,25 @@ new class extends _identity {
|
|
|
792
1143
|
return Math.hypot(x, y, z);
|
|
793
1144
|
}
|
|
794
1145
|
|
|
795
|
-
/** Carbon allocates Tr2PerObjectDataWithPersistentBuffers<EveSpaceObject2>,
|
|
796
|
-
* which calls back into the object at upload time; the GPU-free record carries
|
|
797
|
-
* the same live object reference for the engine serializer (the space-object
|
|
1146
|
+
/** Carbon allocates Tr2PerObjectDataWithPersistentBuffers<EveSpaceObject2>,
|
|
1147
|
+
* which calls back into the object at upload time; the GPU-free record carries
|
|
1148
|
+
* the same live object reference for the engine serializer (the space-object
|
|
798
1149
|
* Main profile) to pull current values at realization. */
|
|
799
|
-
GetPerObjectData(
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
1150
|
+
GetPerObjectData(_accumulator = null) {
|
|
1151
|
+
// Carbon cpp:1437-1445: the bone ring is uploaded and its OFFSETS stamped
|
|
1152
|
+
// into the record, then a pooled handle referencing the two persistent
|
|
1153
|
+
// buffers is returned. The offsets are GPU addresses with no CPU
|
|
1154
|
+
// derivation, so they stay at their zero default here; the bone count is
|
|
1155
|
+
// CPU-known and is written.
|
|
1156
|
+
const boneCount = this.animationUpdater?.IsInitialized?.() ? this.animationUpdater.GetMeshBoneCount?.() ?? 0 : null;
|
|
1157
|
+
if (boneCount !== null) {
|
|
1158
|
+
this.#vsData.SetIndex("boneOffsets", 2, [boneCount]);
|
|
1159
|
+
}
|
|
1160
|
+
this.#vsData.Set("customData", this.#psData.Get("customData"));
|
|
1161
|
+
return {
|
|
1162
|
+
vs: this.#vsData,
|
|
1163
|
+
ps: this.#psData
|
|
1164
|
+
};
|
|
803
1165
|
}
|
|
804
1166
|
|
|
805
1167
|
/** Carbon forwards the shadow pass to the same per-object record. */
|
|
@@ -807,34 +1169,41 @@ new class extends _identity {
|
|
|
807
1169
|
return this.GetPerObjectData(accumulator);
|
|
808
1170
|
}
|
|
809
1171
|
|
|
810
|
-
/** Carbon EveSpaceObject2::GetLights (cpp:3536-3555): display gate only
|
|
811
|
-
* (no lights-empty early-out, unlike EveChildMesh), then per light
|
|
812
|
-
* AddLight(manager, worldTransform, 1, bones, boneCount) FOLLOWED by
|
|
813
|
-
* SetBrightnessMultiplier(m_activationStrength) - the order is contract:
|
|
814
|
-
* the submission uses the multiplier stamped on the PREVIOUS pass (first
|
|
815
|
-
* pass uses the Tr2Light default 1) - one frame of activation-strength
|
|
816
|
-
* lag, preserved verbatim. cpp:3554's dead `DisplayChildren()` local is
|
|
1172
|
+
/** Carbon EveSpaceObject2::GetLights (cpp:3536-3555): display gate only
|
|
1173
|
+
* (no lights-empty early-out, unlike EveChildMesh), then per light
|
|
1174
|
+
* AddLight(manager, worldTransform, 1, bones, boneCount) FOLLOWED by
|
|
1175
|
+
* SetBrightnessMultiplier(m_activationStrength) - the order is contract:
|
|
1176
|
+
* the submission uses the multiplier stamped on the PREVIOUS pass (first
|
|
1177
|
+
* pass uses the Tr2Light default 1) - one frame of activation-strength
|
|
1178
|
+
* lag, preserved verbatim. cpp:3554's dead `DisplayChildren()` local is
|
|
817
1179
|
* not ported. */
|
|
818
1180
|
GetLights(lightManager) {
|
|
819
1181
|
if (!this.display) {
|
|
820
1182
|
return;
|
|
821
1183
|
}
|
|
1184
|
+
|
|
1185
|
+
// cpp:3545-3547 - Tr2GrannyAnimationUtils::GetBoneList, so a bone-parented
|
|
1186
|
+
// light is placed by its bone rather than by the object transform alone.
|
|
1187
|
+
const {
|
|
1188
|
+
bones,
|
|
1189
|
+
boneCount
|
|
1190
|
+
} = getBoneList(this.animationUpdater);
|
|
822
1191
|
for (const light of this.lights) {
|
|
823
|
-
light?.AddLight?.(lightManager, this.worldTransform, 1,
|
|
1192
|
+
light?.AddLight?.(lightManager, this.worldTransform, 1, bones, boneCount);
|
|
824
1193
|
light?.SetBrightnessMultiplier?.(this.activationStrength);
|
|
825
1194
|
}
|
|
826
1195
|
}
|
|
827
1196
|
|
|
828
|
-
/** Carbon EveSpaceObject2::IsCastingShadow (cpp:1940-1990) culls against the
|
|
829
|
-
* camera/shadow frustums; awaits the TriFrustum port (visibility pass).
|
|
1197
|
+
/** Carbon EveSpaceObject2::IsCastingShadow (cpp:1940-1990) culls against the
|
|
1198
|
+
* camera/shadow frustums; awaits the TriFrustum port (visibility pass).
|
|
830
1199
|
* Presence satisfies the "ShadowCaster" duck contract. */
|
|
831
1200
|
IsCastingShadow(..._args) {
|
|
832
1201
|
throw new Error("EveSpaceObject2.IsCastingShadow is not implemented in CarbonEngineJS.");
|
|
833
1202
|
}
|
|
834
1203
|
|
|
835
|
-
/** Carbon EveSpaceObject2::RegisterComponents (cpp:3568-3609): registers its
|
|
836
|
-
* own components and its children with the scene registration container "so
|
|
837
|
-
* we don't have to traverse the tree every frame". RegisterAudioGeometry
|
|
1204
|
+
/** Carbon EveSpaceObject2::RegisterComponents (cpp:3568-3609): registers its
|
|
1205
|
+
* own components and its children with the scene registration container "so
|
|
1206
|
+
* we don't have to traverse the tree every frame". RegisterAudioGeometry
|
|
838
1207
|
* (cpp:3572-3575) is audio-engine-owned and unported. Gate m_display. */
|
|
839
1208
|
RegisterComponents() {
|
|
840
1209
|
const registry = this.GetComponentRegistry();
|
|
@@ -857,10 +1226,10 @@ new class extends _identity {
|
|
|
857
1226
|
}
|
|
858
1227
|
}
|
|
859
1228
|
|
|
860
|
-
/** Carbon EveSpaceObject2::UnRegisterComponents (cpp:3615-3638): forwards
|
|
861
|
-
* the un-registration to the children only - EveEntity::UnRegister already
|
|
862
|
-
* called UnRegisterAllComponents(this) first (EveEntity.cpp:90) - and does
|
|
863
|
-
* not re-check display. UnregisterAudioGeometry (cpp:3617) is
|
|
1229
|
+
/** Carbon EveSpaceObject2::UnRegisterComponents (cpp:3615-3638): forwards
|
|
1230
|
+
* the un-registration to the children only - EveEntity::UnRegister already
|
|
1231
|
+
* called UnRegisterAllComponents(this) first (EveEntity.cpp:90) - and does
|
|
1232
|
+
* not re-check display. UnregisterAudioGeometry (cpp:3617) is
|
|
864
1233
|
* audio-engine-owned and unported. */
|
|
865
1234
|
UnRegisterComponents() {
|
|
866
1235
|
const registry = this.GetComponentRegistry();
|
|
@@ -873,21 +1242,57 @@ new class extends _identity {
|
|
|
873
1242
|
}
|
|
874
1243
|
}
|
|
875
1244
|
}
|
|
1245
|
+
|
|
1246
|
+
/**
|
|
1247
|
+
* Reports whether children and effect children should be shown; always true on
|
|
1248
|
+
* the base hull, subclasses gate it on activation state.
|
|
1249
|
+
*/
|
|
876
1250
|
DisplayChildren() {
|
|
877
1251
|
return true;
|
|
878
1252
|
}
|
|
1253
|
+
|
|
1254
|
+
/**
|
|
1255
|
+
* Returns the transform placement observers are attached to - the live hull
|
|
1256
|
+
* world transform.
|
|
1257
|
+
*/
|
|
879
1258
|
GetObserverTransform() {
|
|
880
1259
|
return this.worldTransform;
|
|
881
1260
|
}
|
|
1261
|
+
|
|
1262
|
+
/**
|
|
1263
|
+
* Returns the transform effect children are placed against - the live hull
|
|
1264
|
+
* world transform, not a copy.
|
|
1265
|
+
*/
|
|
882
1266
|
GetLocalToWorldTransform() {
|
|
883
1267
|
return this.worldTransform;
|
|
884
1268
|
}
|
|
1269
|
+
|
|
1270
|
+
/** Carbon's non-updating model-center query. */
|
|
1271
|
+
GetModelCenterWorldPosition(out) {
|
|
1272
|
+
vec3.transformMat4(out, this.boundingSphereCenter, this.worldTransform);
|
|
1273
|
+
}
|
|
1274
|
+
|
|
1275
|
+
/**
|
|
1276
|
+
* Returns the live curve-sampled ball position; the array is the object's own
|
|
1277
|
+
* field and is rewritten by the next transform update.
|
|
1278
|
+
*/
|
|
885
1279
|
GetWorldPosition() {
|
|
886
1280
|
return this.worldPosition;
|
|
887
1281
|
}
|
|
1282
|
+
|
|
1283
|
+
/**
|
|
1284
|
+
* Returns the live curve-sampled ball rotation, which excludes the model
|
|
1285
|
+
* rotation curve; the quaternion is the object's own field and is rewritten by
|
|
1286
|
+
* the next transform update.
|
|
1287
|
+
*/
|
|
888
1288
|
GetWorldRotation() {
|
|
889
1289
|
return this.worldRotation;
|
|
890
1290
|
}
|
|
1291
|
+
|
|
1292
|
+
/**
|
|
1293
|
+
* Finds a sound emitter by observer name on this hull and then recursively in
|
|
1294
|
+
* the effect children, returning null when no emitter carries the name.
|
|
1295
|
+
*/
|
|
891
1296
|
FindSoundEmitter(name) {
|
|
892
1297
|
const target = String(name ?? "");
|
|
893
1298
|
for (const observer of this.observers) {
|
|
@@ -903,6 +1308,11 @@ new class extends _identity {
|
|
|
903
1308
|
}
|
|
904
1309
|
return null;
|
|
905
1310
|
}
|
|
1311
|
+
|
|
1312
|
+
/**
|
|
1313
|
+
* Sets the mute flag and pushes it to every effect child and placement
|
|
1314
|
+
* observer.
|
|
1315
|
+
*/
|
|
906
1316
|
SetMute(mute) {
|
|
907
1317
|
this.mute = !!mute;
|
|
908
1318
|
for (const child of this.effectChildren) {
|
|
@@ -913,19 +1323,19 @@ new class extends _identity {
|
|
|
913
1323
|
}
|
|
914
1324
|
}
|
|
915
1325
|
|
|
916
|
-
/**
|
|
917
|
-
* Plays an animation with explicit loop, start, and speed settings
|
|
918
|
-
* (Carbon PlayAnimationEx, MAP_METHOD_AND_WRAP_OPTIONAL_ARGS).
|
|
1326
|
+
/**
|
|
1327
|
+
* Plays an animation with explicit loop, start, and speed settings
|
|
1328
|
+
* (Carbon PlayAnimationEx, MAP_METHOD_AND_WRAP_OPTIONAL_ARGS).
|
|
919
1329
|
*/
|
|
920
1330
|
PlayAnimationEx(animName, loopCount, start, speed, clearWhenDone = true) {
|
|
921
1331
|
this.#PlayAnimation(animName, true, loopCount, start, speed, clearWhenDone);
|
|
922
1332
|
}
|
|
923
1333
|
|
|
924
|
-
/**
|
|
925
|
-
* Calculates the skinned bounding box under a transform (CMF path: the
|
|
926
|
-
* local box corners transformed with perspective divide). The granny path
|
|
927
|
-
* is unported. Returns an inverted-empty { min, max } box when dynamic
|
|
928
|
-
* bounds are disabled, as Carbon's BoundingBoxInitialize does.
|
|
1334
|
+
/**
|
|
1335
|
+
* Calculates the skinned bounding box under a transform (CMF path: the
|
|
1336
|
+
* local box corners transformed with perspective divide). The granny path
|
|
1337
|
+
* is unported. Returns an inverted-empty { min, max } box when dynamic
|
|
1338
|
+
* bounds are disabled, as Carbon's BoundingBoxInitialize does.
|
|
929
1339
|
*/
|
|
930
1340
|
CalculateSkinnedBoundingBoxFromTransform(transform) {
|
|
931
1341
|
const min = vec3.fromValues(Infinity, Infinity, Infinity);
|
|
@@ -949,10 +1359,10 @@ new class extends _identity {
|
|
|
949
1359
|
};
|
|
950
1360
|
}
|
|
951
1361
|
|
|
952
|
-
/**
|
|
953
|
-
* Calculates the skinned bounding sphere (CMF path: the current bounding
|
|
954
|
-
* sphere; granny path unported). Returns (0,0,0,-1) when dynamic bounds
|
|
955
|
-
* are disabled.
|
|
1362
|
+
/**
|
|
1363
|
+
* Calculates the skinned bounding sphere (CMF path: the current bounding
|
|
1364
|
+
* sphere; granny path unported). Returns (0,0,0,-1) when dynamic bounds
|
|
1365
|
+
* are disabled.
|
|
956
1366
|
*/
|
|
957
1367
|
CalculateSkinnedBoundingSphere(out = vec4.create()) {
|
|
958
1368
|
if (this.dynamicBoundingSphereEnabled && this.mesh?.GetGeometryResource?.()?.IsUsingCMF?.()) {
|
|
@@ -962,30 +1372,30 @@ new class extends _identity {
|
|
|
962
1372
|
return vec4.set(out, 0, 0, 0, -1);
|
|
963
1373
|
}
|
|
964
1374
|
|
|
965
|
-
/**
|
|
966
|
-
* Clears all impact and damage effects on the impact overlay.
|
|
1375
|
+
/**
|
|
1376
|
+
* Clears all impact and damage effects on the impact overlay.
|
|
967
1377
|
*/
|
|
968
1378
|
ClearImpactDamage() {
|
|
969
1379
|
this.impactOverlay?.Clear?.();
|
|
970
1380
|
}
|
|
971
1381
|
|
|
972
|
-
/**
|
|
973
|
-
* Clears all animations on the animation updater.
|
|
1382
|
+
/**
|
|
1383
|
+
* Clears all animations on the animation updater.
|
|
974
1384
|
*/
|
|
975
1385
|
ClearAnimations() {
|
|
976
1386
|
this.animationUpdater?.ClearAnimations?.();
|
|
977
1387
|
}
|
|
978
1388
|
|
|
979
|
-
/**
|
|
980
|
-
* Creates an impact facing a position on the closest facing damage locator.
|
|
1389
|
+
/**
|
|
1390
|
+
* Creates an impact facing a position on the closest facing damage locator.
|
|
981
1391
|
*/
|
|
982
1392
|
CreateImpactFromPosition(position, direction, lifeTime, size) {
|
|
983
1393
|
const closestDamageLocator = this.#GetClosestLocatorIndex(position, _EveSpaceObject.#damageLocatorSetName);
|
|
984
1394
|
return this.CreateImpact(closestDamageLocator, direction, lifeTime, size);
|
|
985
1395
|
}
|
|
986
1396
|
|
|
987
|
-
/**
|
|
988
|
-
* Creates an impact effect on a damage locator through the impact overlay.
|
|
1397
|
+
/**
|
|
1398
|
+
* Creates an impact effect on a damage locator through the impact overlay.
|
|
989
1399
|
*/
|
|
990
1400
|
CreateImpact(damageLocatorIndex, direction, lifeTime, size) {
|
|
991
1401
|
if (this.impactOverlay) {
|
|
@@ -994,16 +1404,16 @@ new class extends _identity {
|
|
|
994
1404
|
return -1;
|
|
995
1405
|
}
|
|
996
1406
|
|
|
997
|
-
/**
|
|
998
|
-
* Ends the current animation on the animation updater.
|
|
1407
|
+
/**
|
|
1408
|
+
* Ends the current animation on the animation updater.
|
|
999
1409
|
*/
|
|
1000
1410
|
EndAnimation() {
|
|
1001
1411
|
this.animationUpdater?.EndAnimation?.();
|
|
1002
1412
|
}
|
|
1003
1413
|
|
|
1004
|
-
/**
|
|
1005
|
-
* Freezes LOD selection at the current mesh and marks decal geometry
|
|
1006
|
-
* frozen.
|
|
1414
|
+
/**
|
|
1415
|
+
* Freezes LOD selection at the current mesh and marks decal geometry
|
|
1416
|
+
* frozen.
|
|
1007
1417
|
*/
|
|
1008
1418
|
FreezeHighDetailMesh() {
|
|
1009
1419
|
this.#allowLodSelection = false;
|
|
@@ -1012,31 +1422,31 @@ new class extends _identity {
|
|
|
1012
1422
|
}
|
|
1013
1423
|
}
|
|
1014
1424
|
|
|
1015
|
-
/**
|
|
1016
|
-
* Gets the number of damage locators on this object.
|
|
1425
|
+
/**
|
|
1426
|
+
* Gets the number of damage locators on this object.
|
|
1017
1427
|
*/
|
|
1018
1428
|
GetDamageLocatorCount() {
|
|
1019
1429
|
return this.GetLocatorCount(_EveSpaceObject.#damageLocatorSetName);
|
|
1020
1430
|
}
|
|
1021
1431
|
|
|
1022
|
-
/**
|
|
1023
|
-
* Gets the number of locators in a named locator set.
|
|
1432
|
+
/**
|
|
1433
|
+
* Gets the number of locators in a named locator set.
|
|
1024
1434
|
*/
|
|
1025
1435
|
GetLocatorCount(locatorSetName) {
|
|
1026
1436
|
return this.#GetLocatorsForSet(locatorSetName)?.length ?? 0;
|
|
1027
1437
|
}
|
|
1028
1438
|
|
|
1029
|
-
/**
|
|
1030
|
-
* Gets the first locator list whose set has the requested Carbon name.
|
|
1031
|
-
* The returned list remains owned by the locator set.
|
|
1439
|
+
/**
|
|
1440
|
+
* Gets the first locator list whose set has the requested Carbon name.
|
|
1441
|
+
* The returned list remains owned by the locator set.
|
|
1032
1442
|
*/
|
|
1033
1443
|
GetLocatorsForSet(locatorSetName) {
|
|
1034
1444
|
return this.#GetLocatorsForSet(locatorSetName);
|
|
1035
1445
|
}
|
|
1036
1446
|
|
|
1037
|
-
/**
|
|
1038
|
-
* Gets the closest locator in a set to a world position, ignoring locator
|
|
1039
|
-
* facing. Returns -1 when the set is missing or empty.
|
|
1447
|
+
/**
|
|
1448
|
+
* Gets the closest locator in a set to a world position, ignoring locator
|
|
1449
|
+
* facing. Returns -1 when the set is missing or empty.
|
|
1040
1450
|
*/
|
|
1041
1451
|
GetCloseLocatorIndex(position, locatorSetName) {
|
|
1042
1452
|
const locators = this.#GetLocatorsForSet(locatorSetName);
|
|
@@ -1059,19 +1469,19 @@ new class extends _identity {
|
|
|
1059
1469
|
return closestIndex;
|
|
1060
1470
|
}
|
|
1061
1471
|
|
|
1062
|
-
/**
|
|
1063
|
-
* Carbon's script surface maps GetGoodLocatorIndex to GetCloseLocatorIndex
|
|
1064
|
-
* (EveSpaceObject2_Blue.cpp); the internal randomized fit heuristic is not
|
|
1065
|
-
* script-exposed.
|
|
1472
|
+
/**
|
|
1473
|
+
* Carbon's script surface maps GetGoodLocatorIndex to GetCloseLocatorIndex
|
|
1474
|
+
* (EveSpaceObject2_Blue.cpp); the internal randomized fit heuristic is not
|
|
1475
|
+
* script-exposed.
|
|
1066
1476
|
*/
|
|
1067
1477
|
GetGoodLocatorIndex(position, locatorSetName) {
|
|
1068
1478
|
return this.GetCloseLocatorIndex(position, locatorSetName);
|
|
1069
1479
|
}
|
|
1070
1480
|
|
|
1071
|
-
/**
|
|
1072
|
-
* Gets the local direction of an indexed damage locator, (0,0,0) for
|
|
1073
|
-
* indices out of range (Carbon script GetDamageLocatorDirection maps to
|
|
1074
|
-
* GetDamageLocatorDirectionLocal).
|
|
1481
|
+
/**
|
|
1482
|
+
* Gets the local direction of an indexed damage locator, (0,0,0) for
|
|
1483
|
+
* indices out of range (Carbon script GetDamageLocatorDirection maps to
|
|
1484
|
+
* GetDamageLocatorDirectionLocal).
|
|
1075
1485
|
*/
|
|
1076
1486
|
GetDamageLocatorDirection(index, inWorldSpaceOrOut = vec3.create(), out = vec3.create()) {
|
|
1077
1487
|
const targetableCall = typeof inWorldSpaceOrOut === "boolean";
|
|
@@ -1191,7 +1601,7 @@ new class extends _identity {
|
|
|
1191
1601
|
vec3.transformMat4(_EveSpaceObject.#rayOrigin, posPrev, this.inverseWorldTransform);
|
|
1192
1602
|
vec3.transformMat4(_EveSpaceObject.#rayEnd, posNow, this.inverseWorldTransform);
|
|
1193
1603
|
vec3.subtract(_EveSpaceObject.#rayDirection, _EveSpaceObject.#rayEnd, _EveSpaceObject.#rayOrigin);
|
|
1194
|
-
this
|
|
1604
|
+
this.GetShapeEllipsoid(_EveSpaceObject.#ellipsoidCenter, _EveSpaceObject.#ellipsoidRadii);
|
|
1195
1605
|
const t = _EveSpaceObject.#IntersectEllipsoidRay(out, _EveSpaceObject.#ellipsoidCenter, _EveSpaceObject.#ellipsoidRadii, _EveSpaceObject.#rayOrigin, _EveSpaceObject.#rayDirection);
|
|
1196
1606
|
if (t !== null && t >= -1 && t <= 1) {
|
|
1197
1607
|
vec3.transformMat4(out, out, this.worldTransform);
|
|
@@ -1209,9 +1619,9 @@ new class extends _identity {
|
|
|
1209
1619
|
return this.impactOverlay?.UpdateImpact?.(out, direction, impactIndex) ?? false;
|
|
1210
1620
|
}
|
|
1211
1621
|
|
|
1212
|
-
/**
|
|
1213
|
-
* Gets the local position of an indexed damage locator, (0,0,0) for
|
|
1214
|
-
* indices out of range.
|
|
1622
|
+
/**
|
|
1623
|
+
* Gets the local position of an indexed damage locator, (0,0,0) for
|
|
1624
|
+
* indices out of range.
|
|
1215
1625
|
*/
|
|
1216
1626
|
GetDamageLocator(index, out = vec3.create()) {
|
|
1217
1627
|
const locators = this.#GetLocatorsForSet(_EveSpaceObject.#damageLocatorSetName);
|
|
@@ -1223,9 +1633,9 @@ new class extends _identity {
|
|
|
1223
1633
|
return out;
|
|
1224
1634
|
}
|
|
1225
1635
|
|
|
1226
|
-
/**
|
|
1227
|
-
* Gets the world-space position of an indexed damage locator, (0,0,0) for
|
|
1228
|
-
* indices out of range (returned untransformed, as Carbon does).
|
|
1636
|
+
/**
|
|
1637
|
+
* Gets the world-space position of an indexed damage locator, (0,0,0) for
|
|
1638
|
+
* indices out of range (returned untransformed, as Carbon does).
|
|
1229
1639
|
*/
|
|
1230
1640
|
GetTransformedDamageLocator(index, out = vec3.create()) {
|
|
1231
1641
|
const locators = this.#GetLocatorsForSet(_EveSpaceObject.#damageLocatorSetName);
|
|
@@ -1237,18 +1647,18 @@ new class extends _identity {
|
|
|
1237
1647
|
return vec3.transformMat4(out, out, this.worldTransform);
|
|
1238
1648
|
}
|
|
1239
1649
|
|
|
1240
|
-
/**
|
|
1241
|
-
* Checks whether this object is in impostor mode. The impostor system that
|
|
1242
|
-
* raises the flag is unported, so this reports the default until then.
|
|
1650
|
+
/**
|
|
1651
|
+
* Checks whether this object is in impostor mode. The impostor system that
|
|
1652
|
+
* raises the flag is unported, so this reports the default until then.
|
|
1243
1653
|
*/
|
|
1244
1654
|
IsImpostor() {
|
|
1245
1655
|
return this.#impostorMode;
|
|
1246
1656
|
}
|
|
1247
1657
|
|
|
1248
|
-
/**
|
|
1249
|
-
* Gets a locator position from a named set. Out-of-range or missing-set
|
|
1250
|
-
* queries return the world translation in world space and (0,0,0) in
|
|
1251
|
-
* object space, as Carbon does.
|
|
1658
|
+
/**
|
|
1659
|
+
* Gets a locator position from a named set. Out-of-range or missing-set
|
|
1660
|
+
* queries return the world translation in world space and (0,0,0) in
|
|
1661
|
+
* object space, as Carbon does.
|
|
1252
1662
|
*/
|
|
1253
1663
|
GetLocatorPositionFromSet(index, inWorldSpace, locatorSetName, out = vec3.create()) {
|
|
1254
1664
|
const locators = this.#GetLocatorsForSet(locatorSetName);
|
|
@@ -1266,9 +1676,9 @@ new class extends _identity {
|
|
|
1266
1676
|
return out;
|
|
1267
1677
|
}
|
|
1268
1678
|
|
|
1269
|
-
/**
|
|
1270
|
-
* Gets a locator direction from a named set. Out-of-range or missing-set
|
|
1271
|
-
* queries return (0,1,0), as Carbon does.
|
|
1679
|
+
/**
|
|
1680
|
+
* Gets a locator direction from a named set. Out-of-range or missing-set
|
|
1681
|
+
* queries return (0,1,0), as Carbon does.
|
|
1272
1682
|
*/
|
|
1273
1683
|
GetLocatorRotationFromSet(index, inWorldSpace, locatorSetName, out = vec3.create()) {
|
|
1274
1684
|
const locators = this.#GetLocatorsForSet(locatorSetName);
|
|
@@ -1282,6 +1692,11 @@ new class extends _identity {
|
|
|
1282
1692
|
}
|
|
1283
1693
|
return out;
|
|
1284
1694
|
}
|
|
1695
|
+
|
|
1696
|
+
/**
|
|
1697
|
+
* Raises a named controller event on this hull's controllers and forwards it
|
|
1698
|
+
* to the effect children and overlay effects.
|
|
1699
|
+
*/
|
|
1285
1700
|
HandleControllerEvent(name) {
|
|
1286
1701
|
const eventName = String(name ?? "");
|
|
1287
1702
|
for (const controller of this.controllers) {
|
|
@@ -1295,24 +1710,24 @@ new class extends _identity {
|
|
|
1295
1710
|
}
|
|
1296
1711
|
}
|
|
1297
1712
|
|
|
1298
|
-
/**
|
|
1299
|
-
* Plays an animation once, replacing the current one
|
|
1300
|
-
* (Carbon script PlayAnimation maps to PlayAnimationOnce).
|
|
1713
|
+
/**
|
|
1714
|
+
* Plays an animation once, replacing the current one
|
|
1715
|
+
* (Carbon script PlayAnimation maps to PlayAnimationOnce).
|
|
1301
1716
|
*/
|
|
1302
1717
|
PlayAnimation(animName) {
|
|
1303
1718
|
this.#PlayAnimation(animName, true, 1, 0, 1, true);
|
|
1304
1719
|
}
|
|
1305
1720
|
|
|
1306
|
-
/**
|
|
1307
|
-
* Chains an animation once after the current one (Carbon ChainAnimation).
|
|
1721
|
+
/**
|
|
1722
|
+
* Chains an animation once after the current one (Carbon ChainAnimation).
|
|
1308
1723
|
*/
|
|
1309
1724
|
ChainAnimation(animName) {
|
|
1310
1725
|
this.#PlayAnimation(animName, false, 1, 0, 1, true);
|
|
1311
1726
|
}
|
|
1312
1727
|
|
|
1313
|
-
/**
|
|
1314
|
-
* Chains an animation with explicit loop, start, and speed settings
|
|
1315
|
-
* (Carbon ChainAnimationEx).
|
|
1728
|
+
/**
|
|
1729
|
+
* Chains an animation with explicit loop, start, and speed settings
|
|
1730
|
+
* (Carbon ChainAnimationEx).
|
|
1316
1731
|
*/
|
|
1317
1732
|
ChainAnimationEx(animName, loopCount, start, speed) {
|
|
1318
1733
|
this.#PlayAnimation(animName, false, loopCount, start, speed, true);
|
|
@@ -1321,13 +1736,18 @@ new class extends _identity {
|
|
|
1321
1736
|
// Carbon EveSpaceObject2::PlayAnimation: every playback wrapper funnels
|
|
1322
1737
|
// into the animation updater, which owns playback state; a missing updater
|
|
1323
1738
|
// is a Carbon-faithful no-op.
|
|
1739
|
+
|
|
1740
|
+
/**
|
|
1741
|
+
* Forwards a playback request to the animation updater, which owns all
|
|
1742
|
+
* animation state; a hull without an updater does nothing, as in Carbon.
|
|
1743
|
+
*/
|
|
1324
1744
|
#PlayAnimation(animName, replace, loopCount, delay, speed, clearWhenDone) {
|
|
1325
1745
|
this.animationUpdater?.PlayAnimation?.(String(animName ?? ""), replace, loopCount, delay, speed, clearWhenDone);
|
|
1326
1746
|
}
|
|
1327
1747
|
|
|
1328
|
-
/**
|
|
1329
|
-
* Recalculates the authored bounding sphere from the mesh geometry
|
|
1330
|
-
* resource. Fails when no mesh or ready geometry resource is attached.
|
|
1748
|
+
/**
|
|
1749
|
+
* Recalculates the authored bounding sphere from the mesh geometry
|
|
1750
|
+
* resource. Fails when no mesh or ready geometry resource is attached.
|
|
1331
1751
|
*/
|
|
1332
1752
|
RebuildBoundingSphereInformation() {
|
|
1333
1753
|
const mesh = this.mesh;
|
|
@@ -1357,6 +1777,11 @@ new class extends _identity {
|
|
|
1357
1777
|
this.UpdateWorldBounds();
|
|
1358
1778
|
return this;
|
|
1359
1779
|
}
|
|
1780
|
+
|
|
1781
|
+
/**
|
|
1782
|
+
* Returns a plain-object snapshot of the controller variables currently
|
|
1783
|
+
* stamped on this hull.
|
|
1784
|
+
*/
|
|
1360
1785
|
GetControllerVariables() {
|
|
1361
1786
|
return Object.fromEntries(this.#controllerVariables);
|
|
1362
1787
|
}
|
|
@@ -1369,11 +1794,11 @@ new class extends _identity {
|
|
|
1369
1794
|
return geometryResource.GetLodIndexForScreenSize?.(this.mesh?.GetMeshIndex?.() ?? 0, this.#meshScreenSize) ?? 0;
|
|
1370
1795
|
}
|
|
1371
1796
|
|
|
1372
|
-
/**
|
|
1373
|
-
* Gets a named locator's transform (Carbon script GetLocatorTransform maps
|
|
1374
|
-
* to GetEveLocatorTransform): the identity for unknown names, the animated
|
|
1375
|
-
* bone world transform when the animation updater resolves the name, else
|
|
1376
|
-
* the authored locator transform.
|
|
1797
|
+
/**
|
|
1798
|
+
* Gets a named locator's transform (Carbon script GetLocatorTransform maps
|
|
1799
|
+
* to GetEveLocatorTransform): the identity for unknown names, the animated
|
|
1800
|
+
* bone world transform when the animation updater resolves the name, else
|
|
1801
|
+
* the authored locator transform.
|
|
1377
1802
|
*/
|
|
1378
1803
|
GetLocatorTransform(name, out = mat4.create()) {
|
|
1379
1804
|
const target = String(name ?? "");
|
|
@@ -1393,11 +1818,11 @@ new class extends _identity {
|
|
|
1393
1818
|
return mat4.copy(out, locator.GetTransform());
|
|
1394
1819
|
}
|
|
1395
1820
|
|
|
1396
|
-
/**
|
|
1397
|
-
* Gets the local axis-aligned bounding box: dynamic skinned bounds when
|
|
1398
|
-
* enabled, else the mesh box, else the cached box (at worst it lags one
|
|
1399
|
-
* frame). With out arguments it fills them and returns true; without, it
|
|
1400
|
-
* returns { min, max }.
|
|
1821
|
+
/**
|
|
1822
|
+
* Gets the local axis-aligned bounding box: dynamic skinned bounds when
|
|
1823
|
+
* enabled, else the mesh box, else the cached box (at worst it lags one
|
|
1824
|
+
* frame). With out arguments it fills them and returns true; without, it
|
|
1825
|
+
* returns { min, max }.
|
|
1401
1826
|
*/
|
|
1402
1827
|
GetLocalBoundingBox(minBounds, maxBounds) {
|
|
1403
1828
|
const min = vec3.create();
|
|
@@ -1429,7 +1854,7 @@ new class extends _identity {
|
|
|
1429
1854
|
/** Gets Carbon's cached local box transformed into a world-axis-aligned box. */
|
|
1430
1855
|
GetWorldBoundingBox(minBounds, maxBounds) {
|
|
1431
1856
|
box3.fromBounds(_EveSpaceObject.#localBox, this.#localAabbMin, this.#localAabbMax);
|
|
1432
|
-
|
|
1857
|
+
box3.transformMat4(_EveSpaceObject.#worldBox, _EveSpaceObject.#localBox, this.worldTransform);
|
|
1433
1858
|
const min = minBounds ?? vec3.create();
|
|
1434
1859
|
const max = maxBounds ?? vec3.create();
|
|
1435
1860
|
vec3.set(min, _EveSpaceObject.#worldBox[0], _EveSpaceObject.#worldBox[1], _EveSpaceObject.#worldBox[2]);
|
|
@@ -1446,9 +1871,9 @@ new class extends _identity {
|
|
|
1446
1871
|
return !!geometryResource?.IsGood?.();
|
|
1447
1872
|
}
|
|
1448
1873
|
|
|
1449
|
-
/**
|
|
1450
|
-
* Gets Carbon's realized world sphere, optionally accumulated with transform
|
|
1451
|
-
* and effect children when query is EVE_BOUNDS_WITH_CHILDREN.
|
|
1874
|
+
/**
|
|
1875
|
+
* Gets Carbon's realized world sphere, optionally accumulated with transform
|
|
1876
|
+
* and effect children when query is EVE_BOUNDS_WITH_CHILDREN.
|
|
1452
1877
|
*/
|
|
1453
1878
|
GetBoundingSphere(out = sph3.create(), query = 0) {
|
|
1454
1879
|
if (!this.UpdateWorldBounds()) return false;
|
|
@@ -1484,9 +1909,9 @@ new class extends _identity {
|
|
|
1484
1909
|
return this.#isInFrustum;
|
|
1485
1910
|
}
|
|
1486
1911
|
|
|
1487
|
-
/**
|
|
1488
|
-
* Gets the bounding sphere center, preferring the dynamic skinned sphere
|
|
1489
|
-
* when one is published.
|
|
1912
|
+
/**
|
|
1913
|
+
* Gets the bounding sphere center, preferring the dynamic skinned sphere
|
|
1914
|
+
* when one is published.
|
|
1490
1915
|
*/
|
|
1491
1916
|
GetBoundingSphereCenter(out = vec3.create()) {
|
|
1492
1917
|
if (this.#dynamicBoundingSphere[3] !== -1) {
|
|
@@ -1495,9 +1920,9 @@ new class extends _identity {
|
|
|
1495
1920
|
return vec3.copy(out, this.boundingSphereCenter);
|
|
1496
1921
|
}
|
|
1497
1922
|
|
|
1498
|
-
/**
|
|
1499
|
-
* Gets the model-scaled bounding sphere radius, preferring the dynamic
|
|
1500
|
-
* skinned sphere when one is published.
|
|
1923
|
+
/**
|
|
1924
|
+
* Gets the model-scaled bounding sphere radius, preferring the dynamic
|
|
1925
|
+
* skinned sphere when one is published.
|
|
1501
1926
|
*/
|
|
1502
1927
|
GetBoundingSphereRadius() {
|
|
1503
1928
|
if (this.#dynamicBoundingSphere[3] !== -1) {
|
|
@@ -1506,9 +1931,9 @@ new class extends _identity {
|
|
|
1506
1931
|
return this.modelScale * this.boundingSphereRadius;
|
|
1507
1932
|
}
|
|
1508
1933
|
|
|
1509
|
-
/**
|
|
1510
|
-
* Gets the number of mesh-bound bones. Carbon dereferences the animation
|
|
1511
|
-
* updater unchecked; CarbonEngineJS reports 0 when none is attached.
|
|
1934
|
+
/**
|
|
1935
|
+
* Gets the number of mesh-bound bones. Carbon dereferences the animation
|
|
1936
|
+
* updater unchecked; CarbonEngineJS reports 0 when none is attached.
|
|
1512
1937
|
*/
|
|
1513
1938
|
GetBoneCount() {
|
|
1514
1939
|
const updater = this.animationUpdater;
|
|
@@ -1523,6 +1948,12 @@ new class extends _identity {
|
|
|
1523
1948
|
}
|
|
1524
1949
|
return updater.GetMeshBindingBoneCount?.() ?? 0;
|
|
1525
1950
|
}
|
|
1951
|
+
|
|
1952
|
+
/**
|
|
1953
|
+
* Pushes shield, armor and hull damage levels to the impact overlay and
|
|
1954
|
+
* mirrors them into the ShieldDamage, ArmorDamage and HullDamage controller
|
|
1955
|
+
* variables so bound effects follow.
|
|
1956
|
+
*/
|
|
1526
1957
|
SetImpactDamageState(shield, armor, hull, doCreateArmorImpacts = true) {
|
|
1527
1958
|
this.impactOverlay?.SetDamageState?.(shield, armor, hull, doCreateArmorImpacts);
|
|
1528
1959
|
this.SetControllerVariable("ShieldDamage", shield);
|
|
@@ -1530,12 +1961,18 @@ new class extends _identity {
|
|
|
1530
1961
|
this.SetControllerVariable("HullDamage", hull);
|
|
1531
1962
|
}
|
|
1532
1963
|
|
|
1533
|
-
/**
|
|
1534
|
-
* Toggles a named impact-overlay animation (boosters, hardeners, ...).
|
|
1964
|
+
/**
|
|
1965
|
+
* Toggles a named impact-overlay animation (boosters, hardeners, ...).
|
|
1535
1966
|
*/
|
|
1536
1967
|
SetImpactAnimation(name, enable, duration) {
|
|
1537
1968
|
this.impactOverlay?.ToggleEffect?.(name, enable, duration);
|
|
1538
1969
|
}
|
|
1970
|
+
|
|
1971
|
+
/**
|
|
1972
|
+
* Stores a controller variable on the hull and pushes it to the controllers,
|
|
1973
|
+
* effect children and overlay effects; the stored value is replayed onto
|
|
1974
|
+
* controllers and children added later.
|
|
1975
|
+
*/
|
|
1539
1976
|
SetControllerVariable(name, value) {
|
|
1540
1977
|
const key = String(name ?? "");
|
|
1541
1978
|
const next = Number(value);
|
|
@@ -1550,11 +1987,21 @@ new class extends _identity {
|
|
|
1550
1987
|
overlay?.SetControllerVariable?.(key, next);
|
|
1551
1988
|
}
|
|
1552
1989
|
}
|
|
1990
|
+
|
|
1991
|
+
/**
|
|
1992
|
+
* Forwards a procedural-container variable to every effect child; the hull
|
|
1993
|
+
* itself keeps no copy.
|
|
1994
|
+
*/
|
|
1553
1995
|
SetProceduralContainerVariable(name, value) {
|
|
1554
1996
|
for (const child of this.effectChildren) {
|
|
1555
1997
|
child?.SetProceduralContainerVariable?.(name, value);
|
|
1556
1998
|
}
|
|
1557
1999
|
}
|
|
2000
|
+
|
|
2001
|
+
/**
|
|
2002
|
+
* Starts this hull's controllers and those of its effect children and overlay
|
|
2003
|
+
* effects.
|
|
2004
|
+
*/
|
|
1558
2005
|
StartControllers() {
|
|
1559
2006
|
for (const controller of this.controllers) {
|
|
1560
2007
|
controller?.Start?.();
|
|
@@ -1567,13 +2014,13 @@ new class extends _identity {
|
|
|
1567
2014
|
}
|
|
1568
2015
|
}
|
|
1569
2016
|
|
|
1570
|
-
/**
|
|
1571
|
-
* Applies bone and model transforms to locators and returns
|
|
1572
|
-
* [position, rotation, boneIndex] tuples, as the Carbon script surface
|
|
1573
|
-
* does (TransformLocators maps to PyTransformLocators). Accepts either
|
|
1574
|
-
* locator records ({ position, direction, boneIndex }, Carbon's
|
|
1575
|
-
* LocatorStructureList shape) or the same [position, rotation, boneIndex]
|
|
1576
|
-
* tuple shape it returns.
|
|
2017
|
+
/**
|
|
2018
|
+
* Applies bone and model transforms to locators and returns
|
|
2019
|
+
* [position, rotation, boneIndex] tuples, as the Carbon script surface
|
|
2020
|
+
* does (TransformLocators maps to PyTransformLocators). Accepts either
|
|
2021
|
+
* locator records ({ position, direction, boneIndex }, Carbon's
|
|
2022
|
+
* LocatorStructureList shape) or the same [position, rotation, boneIndex]
|
|
2023
|
+
* tuple shape it returns.
|
|
1577
2024
|
*/
|
|
1578
2025
|
TransformLocators(locators = []) {
|
|
1579
2026
|
const result = [];
|
|
@@ -1601,6 +2048,12 @@ new class extends _identity {
|
|
|
1601
2048
|
|
|
1602
2049
|
// Carbon Blue TransformLocator: bone-attached records pick up the mesh
|
|
1603
2050
|
// bone matrix; without bone data the authored values pass through.
|
|
2051
|
+
|
|
2052
|
+
/**
|
|
2053
|
+
* Applies the mesh bone matrix to a locator position and rotation for
|
|
2054
|
+
* bone-attached locators; the authored values pass through unchanged when
|
|
2055
|
+
* there is no usable bone data.
|
|
2056
|
+
*/
|
|
1604
2057
|
#TransformLocator(position, rotation, boneIndex) {
|
|
1605
2058
|
const updater = this.animationUpdater;
|
|
1606
2059
|
if (boneIndex <= 0 || !updater?.IsInitialized?.()) {
|
|
@@ -1618,6 +2071,12 @@ new class extends _identity {
|
|
|
1618
2071
|
// Carbon Blue ApplyModelTransform samples both curves at the Be::Time()
|
|
1619
2072
|
// origin (pure GetValueAt, no playback advance): translation adds, model
|
|
1620
2073
|
// rotation rotates the position and pre-multiplies.
|
|
2074
|
+
|
|
2075
|
+
/**
|
|
2076
|
+
* Applies the model translation and rotation curves sampled at time 0 to a
|
|
2077
|
+
* locator position and rotation, matching Carbon's Blue locator surface, which
|
|
2078
|
+
* reads the curves without advancing playback.
|
|
2079
|
+
*/
|
|
1621
2080
|
#ApplyModelTransform(position, rotation) {
|
|
1622
2081
|
if (this.modelTranslationCurve) {
|
|
1623
2082
|
const translation = vec3.create();
|
|
@@ -1633,6 +2092,11 @@ new class extends _identity {
|
|
|
1633
2092
|
}
|
|
1634
2093
|
|
|
1635
2094
|
// Carbon GetLocatorsForSet: first set matching the name wins.
|
|
2095
|
+
|
|
2096
|
+
/**
|
|
2097
|
+
* Returns the locator list of the first locator set carrying the name, or null
|
|
2098
|
+
* when no set matches; the list stays owned by the locator set.
|
|
2099
|
+
*/
|
|
1636
2100
|
#GetLocatorsForSet(locatorSetName) {
|
|
1637
2101
|
const target = String(locatorSetName ?? "");
|
|
1638
2102
|
for (const set of this.locatorSets) {
|
|
@@ -1647,6 +2111,13 @@ new class extends _identity {
|
|
|
1647
2111
|
// authored quaternion; bone-attached locators additionally apply the mesh
|
|
1648
2112
|
// bone matrix. Carbon leaves the outputs untouched (caller-uninitialized)
|
|
1649
2113
|
// when bone data is missing; CarbonEngineJS keeps the unskinned values.
|
|
2114
|
+
|
|
2115
|
+
/**
|
|
2116
|
+
* Writes a locator's object-space position and its direction, which is +Y
|
|
2117
|
+
* rotated by the authored quaternion, applying the mesh bone matrix for
|
|
2118
|
+
* bone-attached locators; where Carbon leaves the outputs untouched when bone
|
|
2119
|
+
* data is missing, this keeps the unskinned values.
|
|
2120
|
+
*/
|
|
1650
2121
|
#GetLocatorInObjectSpace(outPosition, outDirection, locator) {
|
|
1651
2122
|
vec3.transformQuat(outDirection, _EveSpaceObject.#unitY, locator.direction);
|
|
1652
2123
|
vec3.copy(outPosition, locator.position);
|
|
@@ -1665,6 +2136,12 @@ new class extends _identity {
|
|
|
1665
2136
|
|
|
1666
2137
|
// Carbon GetClosestLocatorIndex: facing-gated closest search; 0 when the
|
|
1667
2138
|
// set is missing, -1 when no locator faces the position.
|
|
2139
|
+
|
|
2140
|
+
/**
|
|
2141
|
+
* Returns the index of the nearest locator in a named set that faces the given
|
|
2142
|
+
* world position - 0 when the set is missing, -1 when no locator faces the
|
|
2143
|
+
* position.
|
|
2144
|
+
*/
|
|
1668
2145
|
#GetClosestLocatorIndex(position, locatorSetName) {
|
|
1669
2146
|
const locators = this.#GetLocatorsForSet(locatorSetName);
|
|
1670
2147
|
if (!locators) {
|
|
@@ -1688,7 +2165,16 @@ new class extends _identity {
|
|
|
1688
2165
|
}
|
|
1689
2166
|
return closestIndex;
|
|
1690
2167
|
}
|
|
1691
|
-
|
|
2168
|
+
|
|
2169
|
+
/**
|
|
2170
|
+
* Reports whether a locator faces a position, by testing that stepping the
|
|
2171
|
+
* object-space position back along the locator direction shortens it.
|
|
2172
|
+
*/
|
|
2173
|
+
|
|
2174
|
+
/** Rotates a direction by a matrix's rotation basis, ignoring its translation. */
|
|
2175
|
+
|
|
2176
|
+
/** Carbon's authored-or-derived local shape ellipsoid query. */
|
|
2177
|
+
GetShapeEllipsoid(outCenter, outRadii) {
|
|
1692
2178
|
if (this.shapeEllipsoidRadius[0] > 0) {
|
|
1693
2179
|
vec3.copy(outCenter, this.shapeEllipsoidCenter);
|
|
1694
2180
|
vec3.copy(outRadii, this.shapeEllipsoidRadius);
|
|
@@ -1706,12 +2192,67 @@ new class extends _identity {
|
|
|
1706
2192
|
vec3.copy(this.generatedShapeEllipsoidRadius, outRadii);
|
|
1707
2193
|
}
|
|
1708
2194
|
|
|
2195
|
+
/**
|
|
2196
|
+
* Maps the negated dot product of a locator direction and an offset direction
|
|
2197
|
+
* onto Carbon's square-root fit score, the ranking used to pick a varied
|
|
2198
|
+
* damage locator.
|
|
2199
|
+
*/
|
|
2200
|
+
|
|
2201
|
+
/**
|
|
2202
|
+
* Intersects a ray with an axis-aligned ellipsoid in the ellipsoid's own space and writes the hit point into out.
|
|
2203
|
+
* @returns {number|null} The ray parameter at the hit, or null when the ray is degenerate or misses.
|
|
2204
|
+
*/
|
|
2205
|
+
|
|
2206
|
+
/** Reports whether a point lies inside an axis-aligned ellipsoid. */
|
|
2207
|
+
|
|
1709
2208
|
// Mesh bone matrices come from the animation updater; only mat4-shaped
|
|
1710
2209
|
// entries are usable.
|
|
1711
2210
|
|
|
1712
|
-
|
|
1713
|
-
|
|
2211
|
+
/**
|
|
2212
|
+
* Unpacks one bone from the updater's palette into a mat4, or null when the
|
|
2213
|
+
* index is out of range.
|
|
2214
|
+
*
|
|
2215
|
+
* The palette is Carbon's storage - one contiguous Float4x3 buffer, stride
|
|
2216
|
+
* 12 - so a bone is expanded rather than borrowed. Carbon does the same at
|
|
2217
|
+
* every read site with TriMatrixCopyFrom3x4.
|
|
2218
|
+
*/
|
|
2219
|
+
|
|
2220
|
+
/**
|
|
2221
|
+
* Replays every stored controller variable onto a newly added controller or
|
|
2222
|
+
* effect child through the named setter, so late additions start with the same
|
|
2223
|
+
* state.
|
|
2224
|
+
*/
|
|
2225
|
+
|
|
2226
|
+
/**
|
|
2227
|
+
* Samples a curve into out through whichever of Update or GetValueAt it
|
|
2228
|
+
* exposes, writing the fallback when there is no curve and copying back curves
|
|
2229
|
+
* that return a new array instead of filling out.
|
|
2230
|
+
*/
|
|
2231
|
+
|
|
2232
|
+
/**
|
|
2233
|
+
* Reads a numeric value from the update context, preferring a getter method
|
|
2234
|
+
* and falling back to the named properties, and yields 0 when nothing supplies
|
|
2235
|
+
* it.
|
|
2236
|
+
*/
|
|
2237
|
+
|
|
2238
|
+
/**
|
|
2239
|
+
* Returns a world sphere's on-screen diameter in pixels from the frustum's
|
|
2240
|
+
* exact query, or 0 when the frustum does not expose it.
|
|
2241
|
+
*/
|
|
2242
|
+
|
|
2243
|
+
/**
|
|
2244
|
+
* Returns a world sphere's on-screen diameter in pixels, preferring the
|
|
2245
|
+
* frustum's cheaper estimated query and falling back to the exact one, or 0
|
|
2246
|
+
* when the frustum exposes neither.
|
|
2247
|
+
*/
|
|
2248
|
+
|
|
2249
|
+
/** Writes a center and radius into a caller-owned sph3. */
|
|
1714
2250
|
}];
|
|
2251
|
+
CUSTOM_MASK_MAX = _EveCustomMask.CUSTOM_MASK_COUNT;
|
|
2252
|
+
SECONDARY_LIGHTING_RADIUS_CUTOFF_FACTOR = 0.3;
|
|
2253
|
+
#clipSphereCenterScratch = vec3.create();
|
|
2254
|
+
#shapeCenterScratch = vec3.create();
|
|
2255
|
+
#shapeRadiusScratch = vec3.create();
|
|
1715
2256
|
#IsLocatorFacingPosition(locatorDirection, posInObjectSpace) {
|
|
1716
2257
|
const moved = vec3.subtract(vec3.create(), posInObjectSpace, locatorDirection);
|
|
1717
2258
|
return vec3.squaredLength(moved) < vec3.squaredLength(posInObjectSpace);
|
|
@@ -1756,8 +2297,10 @@ new class extends _identity {
|
|
|
1756
2297
|
}
|
|
1757
2298
|
#GetBoneMatrix(updater, boneIndex) {
|
|
1758
2299
|
const bones = updater.GetMeshBoneMatrixList?.();
|
|
1759
|
-
|
|
1760
|
-
|
|
2300
|
+
if (!bones || boneIndex < 0 || (boneIndex + 1) * 12 > bones.length) {
|
|
2301
|
+
return null;
|
|
2302
|
+
}
|
|
2303
|
+
return MatrixCopyFrom3x4(mat4.create(), bones, boneIndex);
|
|
1761
2304
|
}
|
|
1762
2305
|
#ApplyControllerVariables(target, variables, methodName) {
|
|
1763
2306
|
const setter = target?.[methodName];
|
|
@@ -1811,21 +2354,6 @@ new class extends _identity {
|
|
|
1811
2354
|
#SetSphere(out, center, radius) {
|
|
1812
2355
|
return sph3.set(out, center[0], center[1], center[2], radius);
|
|
1813
2356
|
}
|
|
1814
|
-
#TransformBox(out, bounds, transform) {
|
|
1815
|
-
out[0] = out[1] = out[2] = Infinity;
|
|
1816
|
-
out[3] = out[4] = out[5] = -Infinity;
|
|
1817
|
-
for (let index = 0; index < 8; index++) {
|
|
1818
|
-
vec3.set(_EveSpaceObject.#boxCorner, index & 1 ? bounds[3] : bounds[0], index & 2 ? bounds[4] : bounds[1], index & 4 ? bounds[5] : bounds[2]);
|
|
1819
|
-
vec3.transformMat4(_EveSpaceObject.#boxCorner, _EveSpaceObject.#boxCorner, transform);
|
|
1820
|
-
out[0] = Math.min(out[0], _EveSpaceObject.#boxCorner[0]);
|
|
1821
|
-
out[1] = Math.min(out[1], _EveSpaceObject.#boxCorner[1]);
|
|
1822
|
-
out[2] = Math.min(out[2], _EveSpaceObject.#boxCorner[2]);
|
|
1823
|
-
out[3] = Math.max(out[3], _EveSpaceObject.#boxCorner[0]);
|
|
1824
|
-
out[4] = Math.max(out[4], _EveSpaceObject.#boxCorner[1]);
|
|
1825
|
-
out[5] = Math.max(out[5], _EveSpaceObject.#boxCorner[2]);
|
|
1826
|
-
}
|
|
1827
|
-
return out;
|
|
1828
|
-
}
|
|
1829
2357
|
#zero = Object.freeze([0, 0, 0]);
|
|
1830
2358
|
#unitY = Object.freeze([0, 1, 0]);
|
|
1831
2359
|
#locatorDirection = vec3.create();
|
|
@@ -1846,7 +2374,6 @@ new class extends _identity {
|
|
|
1846
2374
|
#worldSphere = sph3.create();
|
|
1847
2375
|
#localBox = box3.create();
|
|
1848
2376
|
#worldBox = box3.create();
|
|
1849
|
-
#boxCorner = vec3.create();
|
|
1850
2377
|
#identityRotation = Object.freeze([0, 0, 0, 1]);
|
|
1851
2378
|
#identityTransform = mat4.create();
|
|
1852
2379
|
#damageLocatorSetName = "damage";
|