@carbonenginejs/runtime-trinity 0.6.0 → 0.8.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 +342 -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 +143 -5
- 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/CjsPerFrameLayouts.js +517 -0
- package/dist/trinityCore/rawData/CjsPerFrameLayouts.js.map +1 -0
- package/dist/trinityCore/rawData/CjsPerObjectLayouts.js +790 -0
- package/dist/trinityCore/rawData/CjsPerObjectLayouts.js.map +1 -0
- package/dist/trinityCore/rawData/RawData.js +323 -39
- 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/trinityCore/rawData/constantLayout.js +175 -0
- package/dist/trinityCore/rawData/constantLayout.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 +34 -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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EveMissileWarhead.js","sources":["../../../../src/eve/spaceObject/EveMissileWarhead.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\EveMissileWarhead.h\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\EveMissileWarhead.cpp\nimport { mat4 } from \"@carbonenginejs/runtime-utils/mat4\";\nimport { carbonPerlin1D } from \"@carbonenginejs/runtime-utils/noise\";\nimport { quat } from \"@carbonenginejs/runtime-utils/quat\";\nimport { sph3 } from \"@carbonenginejs/runtime-utils/sph3\";\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\nimport { vec4 } from \"@carbonenginejs/runtime-utils/vec4\";\nimport { carbon, impl, io, type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { EveTransform } from \"./EveTransform.js\";\n\n\n@type.define({ className: \"EveMissileWarhead\", family: \"eve/spaceObject\" })\nexport class EveMissileWarhead extends EveTransform\n{\n @io.persist @type.float32 pathOffsetNoiseScale = 0;\n @io.persist @type.float32 pathOffsetNoiseSpeed = 1;\n @io.readwrite @type.boolean startDataValid = false;\n @io.readwrite @type.vec3 pathOffset = vec3.create();\n @io.persist @type.float32 maxExplosionDistance = 40;\n @io.persist @type.float32 impactDuration = 0.6;\n @io.read @type.vec3 explosionPosition = vec3.create();\n @io.persist @type.float32 impactSize = 0;\n @io.persist @type.model(\"EveSpriteSet\") spriteSet = null;\n @io.read @type.int32 targetLocatorID = -1;\n @io.persist @type.float32 durationEjectPhase = 0;\n @io.readwrite @type.boolean doSpread = true;\n @io.persist @type.float32 acceleration = 1;\n @io.readwrite @type.int32 id = -1;\n @io.persist @type.float32 startEjectVelocity = 0;\n @io.persist @type.float32 warheadLength = 1;\n @io.persist @type.float32 warheadRadius = 1;\n\n #state = EveMissileWarhead.State.STATE_DELAYED;\n #flyingTime = 0;\n #movement = vec3.create();\n #positionLastFrame = vec3.create();\n #lastRelativePosition = vec3.create();\n #currentStartOffset = vec3.create();\n #startOrientation = quat.create();\n #oldEndOffset = vec3.create();\n #currentEndOffset = vec3.create();\n #endOffset = vec3.create();\n #currentOffset = vec3.create();\n #currentOrientation = quat.create();\n #currentEjectVelocity = 0;\n #currentDurationEjectPhase = 0;\n #currentOffsetTransform = mat4.create();\n #finalDestinationTimer = 0;\n #finalTargetTime = 0.75 - Math.random() * 0.1;\n #speedModifier = 1.04 - Math.random() * 0.08;\n #explosionDistance = 0;\n #bombFlightpath = false;\n #lastPositionValid = false;\n #noisePhase = EveMissileWarhead.#nextNoisePhase++ & 0xfff;\n #isVisible = true;\n\n @carbon.method\n @impl.implemented\n PrepareLaunch()\n {\n this.#currentEjectVelocity = this.startEjectVelocity;\n this.#currentDurationEjectPhase = this.durationEjectPhase;\n const distance = this.maxExplosionDistance - Math.random() * this.maxExplosionDistance * 0.5;\n this.#explosionDistance = distance * distance;\n this.#state = EveMissileWarhead.State.STATE_DELAYED;\n this.#flyingTime = 0;\n vec3.set(this.#currentStartOffset, 0, 0, 0);\n quat.identity(this.#startOrientation);\n this.startDataValid = false;\n vec3.set(this.#oldEndOffset, 0, 0, 0);\n vec3.set(this.#currentEndOffset, 0, 0, 0);\n vec3.set(this.#endOffset, 0, 0, 0);\n vec3.set(this.#currentOffset, 0, 0, 0);\n quat.identity(this.#currentOrientation);\n this.#finalDestinationTimer = 0;\n this.targetLocatorID = -1;\n vec3.set(this.explosionPosition, 0, 0, 0);\n mat4.identity(this.#currentOffsetTransform);\n this.#speedModifier = 1.04 - Math.random() * 0.08;\n this.#finalTargetTime = 0.75 - Math.random() * 0.1;\n this.#bombFlightpath = false;\n this.#lastPositionValid = false;\n }\n\n @carbon.method\n @impl.implemented\n Launch(startTransform)\n {\n mat4.getRotation(this.#startOrientation, startTransform);\n vec3.set(this.#currentStartOffset, startTransform[12], startTransform[13], startTransform[14]);\n quat.copy(this.#currentOrientation, this.#startOrientation);\n vec3.copy(this.#currentOffset, this.#currentStartOffset);\n this.startDataValid = true;\n this.#lastPositionValid = false;\n }\n\n @carbon.method\n @impl.implemented\n UpdateEndTransform(endTransform, switchLocators)\n {\n vec3.set(this.#endOffset, endTransform[12], endTransform[13], endTransform[14]);\n if (switchLocators)\n {\n this.#finalDestinationTimer = this.#flyingTime;\n vec3.copy(this.#oldEndOffset, this.#currentEndOffset);\n }\n }\n\n @carbon.method\n @impl.implemented\n UpdateState(deltaTime, estimatedTotalAliveTime, target)\n {\n this.#bombFlightpath = !target;\n let event = EveMissileWarhead.StateChangeEvent.EVT_NONE;\n const totalFlyingTime = Math.max((Number(estimatedTotalAliveTime) + 0.1) * this.#speedModifier, Number.EPSILON);\n const flight = clamp01(this.#flyingTime / totalFlyingTime);\n switch (this.#state)\n {\n case EveMissileWarhead.State.STATE_DELAYED:\n if (this.startDataValid) this.#state = EveMissileWarhead.State.STATE_LAUNCH;\n break;\n case EveMissileWarhead.State.STATE_LAUNCH:\n this.EnableParticleEmitting(true);\n this.#state = EveMissileWarhead.State.STATE_EJECTING;\n break;\n case EveMissileWarhead.State.STATE_EJECTING:\n this.#currentDurationEjectPhase -= Number(deltaTime);\n if (this.#currentDurationEjectPhase <= 0)\n {\n this.#currentDurationEjectPhase = 0;\n this.#state = EveMissileWarhead.State.STATE_START_TRACKING;\n }\n break;\n case EveMissileWarhead.State.STATE_START_TRACKING:\n this.targetLocatorID = target ? Number(target.GetGoodDamageLocatorIndex?.(this.GetWorldPosition()) ?? -1) | 0 : -1;\n this.#state = estimatedTotalAliveTime >= 5 && this.doSpread\n ? EveMissileWarhead.State.STATE_TRACKING_SPREAD\n : EveMissileWarhead.State.STATE_TRACKING_FINAL;\n break;\n case EveMissileWarhead.State.STATE_TRACKING_SPREAD:\n if (flight >= this.#finalTargetTime)\n {\n this.targetLocatorID = target ? Number(target.GetGoodDamageLocatorIndex?.(this.GetWorldPosition()) ?? -1) | 0 : -1;\n event = EveMissileWarhead.StateChangeEvent.EVT_SWITCH_TARGET;\n this.#state = EveMissileWarhead.State.STATE_TRACKING_FINAL;\n }\n break;\n case EveMissileWarhead.State.STATE_EXPLODED:\n this.#state = EveMissileWarhead.State.STATE_DEAD;\n break;\n default:\n break;\n }\n return event;\n }\n\n @carbon.method\n @impl.adapted\n @impl.reason(\"Targetable output parameters use the org-standard out-last calling convention.\")\n CheckImpact(deltaTime, estimatedTotalAliveTime, target)\n {\n if (this.#state !== EveMissileWarhead.State.STATE_TRACKING_FINAL || this.id < 0) return EveMissileWarhead.StateChangeEvent.EVT_NONE;\n const totalFlyingTime = Math.max((Number(estimatedTotalAliveTime) + 0.1) * this.#speedModifier, Number.EPSILON);\n const flight = clamp01((this.#flyingTime - Number(deltaTime)) / totalFlyingTime);\n const positionNow = this.GetWorldPosition(EveMissileWarhead.#positionNow);\n if (!target)\n {\n vec3.copy(this.explosionPosition, positionNow);\n this.#state = EveMissileWarhead.State.STATE_EXPLODED;\n return EveMissileWarhead.StateChangeEvent.EVT_EXPLODE;\n }\n\n vec3.subtract(EveMissileWarhead.#positionLast, positionNow, this.#movement);\n vec3.copy(EveMissileWarhead.#targetPosition, positionNow);\n const hit = target.GetImpactPosition?.(this.targetLocatorID, EveMissileWarhead.#positionLast, positionNow, this.#explosionDistance, EveMissileWarhead.#targetPosition) ?? false;\n if (flight < 1 && !hit) return EveMissileWarhead.StateChangeEvent.EVT_NONE;\n\n vec3.copy(this.explosionPosition, positionNow);\n vec3.subtract(EveMissileWarhead.#impactDirection, EveMissileWarhead.#targetPosition, positionNow);\n if (vec3.dot(EveMissileWarhead.#impactDirection, this.#movement) < 0) vec3.copy(this.explosionPosition, EveMissileWarhead.#targetPosition);\n if (this.impactSize > 0)\n {\n vec3.negate(EveMissileWarhead.#impactDirection, this.#movement);\n target.CreateImpact?.(this.targetLocatorID, EveMissileWarhead.#impactDirection, this.impactDuration, this.impactSize);\n }\n this.#state = EveMissileWarhead.State.STATE_EXPLODED;\n return EveMissileWarhead.StateChangeEvent.EVT_EXPLODE;\n }\n\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon's pointer-derived Perlin phase is replaced with a stable per-instance 12-bit sequence.\")\n Update(context)\n {\n const position = this.#flyingTime * this.pathOffsetNoiseSpeed + this.#noisePhase;\n this.pathOffset[0] = carbonPerlin1D(position, 1.1, 2, 3) * this.pathOffsetNoiseScale;\n this.pathOffset[1] = carbonPerlin1D(position + 10.1, 1.1, 2, 3) * this.pathOffsetNoiseScale;\n this.pathOffset[2] = carbonPerlin1D(position + 18.3, 1.1, 2, 3) * this.pathOffsetNoiseScale;\n vec3.subtract(this.#positionLastFrame, this.#positionLastFrame, context?.GetOriginShift?.() ?? context?.originShift ?? EveMissileWarhead.#zero);\n super.Update(context);\n this.GetWorldPosition(EveMissileWarhead.#positionNow);\n vec3.subtract(this.#movement, EveMissileWarhead.#positionNow, this.#positionLastFrame);\n vec3.copy(this.#positionLastFrame, EveMissileWarhead.#positionNow);\n }\n\n @carbon.method\n @impl.adapted\n @impl.reason(\"The CPU flight calculation is source-faithful; current world composition is also published immediately for headless graph consumers.\")\n UpdateWarhead(deltaTime, estimatedTotalAliveTime, currentBallVelocity, currentInheritedVelocity, inverseBallRotation, missileTransform, originShift = EveMissileWarhead.#zero)\n {\n const dt = Number(deltaTime) || 0;\n vec3.set(EveMissileWarhead.#ejectVelocity, 0, 0, this.#currentEjectVelocity);\n vec3.transformQuat(EveMissileWarhead.#ejectVelocity, EveMissileWarhead.#ejectVelocity, this.#startOrientation);\n transformNormal(EveMissileWarhead.#globalBallVelocity, currentBallVelocity, inverseBallRotation);\n if (this.#state >= EveMissileWarhead.State.STATE_START_TRACKING) this.#flyingTime += dt;\n\n const totalFlyingTime = Math.max((Number(estimatedTotalAliveTime) + 0.1) * this.#speedModifier, Number.EPSILON);\n const flight = clamp01(this.#flyingTime / totalFlyingTime);\n const quickFlight = clamp01(3 * flight);\n if (this.#state >= EveMissileWarhead.State.STATE_EJECTING) vec3.scaleAndAdd(this.#currentStartOffset, this.#currentStartOffset, EveMissileWarhead.#ejectVelocity, dt);\n vec3.scaleAndAdd(this.#currentStartOffset, this.#currentStartOffset, currentInheritedVelocity, dt);\n\n const denominator = totalFlyingTime - this.#finalDestinationTimer;\n const targetTime = denominator ? clamp01((this.#flyingTime - this.#finalDestinationTimer) / denominator) : 1;\n vec3.scale(EveMissileWarhead.#modifiedOldOffset, this.#oldEndOffset, 1 - clamp01(targetTime * 2));\n vec3.lerp(this.#currentEndOffset, EveMissileWarhead.#modifiedOldOffset, this.#endOffset, targetTime);\n vec3.lerp(this.#currentOffset, this.#currentStartOffset, this.#currentEndOffset, Math.pow(flight, 1 + this.acceleration));\n\n vec3.scale(EveMissileWarhead.#globalBallVelocity, EveMissileWarhead.#globalBallVelocity, 1 - flight);\n vec3.scaleAndAdd(this.#currentStartOffset, this.#currentStartOffset, EveMissileWarhead.#globalBallVelocity, -dt);\n this.#currentEjectVelocity = this.startEjectVelocity * (1 - Math.pow(quickFlight, 1 + this.acceleration));\n vec3.scaleAndAdd(this.#currentOffset, this.#currentOffset, this.pathOffset, Math.sin(Math.PI * flight) ** 2);\n if (this.#bombFlightpath) vec3.scale(this.#currentOffset, this.#currentOffset, (1 - quickFlight) ** 2);\n\n vec3.transformMat4(EveMissileWarhead.#relativePosition, this.#currentOffset, missileTransform);\n vec3.subtract(EveMissileWarhead.#translation, this.#lastRelativePosition, EveMissileWarhead.#relativePosition);\n vec3.add(EveMissileWarhead.#translation, EveMissileWarhead.#translation, originShift);\n vec3.copy(this.#lastRelativePosition, EveMissileWarhead.#relativePosition);\n if (this.#lastPositionValid && this.startDataValid)\n {\n const distanceSquared = vec3.squaredLength(EveMissileWarhead.#translation);\n if (distanceSquared > 0)\n {\n transformNormal(EveMissileWarhead.#translation, EveMissileWarhead.#translation, inverseBallRotation);\n mat4.arcFromForward(EveMissileWarhead.#orientationMatrix, EveMissileWarhead.#translation);\n mat4.getRotation(EveMissileWarhead.#orientationNow, EveMissileWarhead.#orientationMatrix);\n if (distanceSquared < 1)\n {\n quat.slerp(this.#currentOrientation, this.#currentOrientation, EveMissileWarhead.#orientationNow, distanceSquared);\n quat.normalize(this.#currentOrientation, this.#currentOrientation);\n }\n else quat.copy(this.#currentOrientation, EveMissileWarhead.#orientationNow);\n }\n }\n else this.#lastPositionValid = true;\n\n mat4.fromRotationTranslation(this.#currentOffsetTransform, this.#currentOrientation, this.#currentOffset);\n mat4.multiply(this.worldTransform, missileTransform, this.#currentOffsetTransform);\n }\n\n @carbon.method\n @impl.implemented\n EnableParticleEmitting(enable)\n {\n for (const child of this.children) for (const emitter of child?.particleEmitters ?? []) enableEmitter(emitter, enable);\n for (const emitter of this.particleEmitters) enableEmitter(emitter, enable);\n }\n\n @carbon.method\n @impl.implemented\n UpdateVisibility(context, parentTransform)\n {\n this.#isVisible = false;\n if (!this.startDataValid || this.#state === EveMissileWarhead.State.STATE_DEAD || !this.display) return false;\n mat4.copy(this.worldTransform, parentTransform);\n this.#isVisible = true;\n super.UpdateVisibility(context, parentTransform);\n return true;\n }\n\n @carbon.method\n @impl.implemented\n GetRenderables(out = [])\n {\n if (!this.#isVisible || this.lodLevel <= EveTransform.Tr2Lod.TR2_LOD_LOW) return out;\n if (this.mesh) out.push(this);\n this.spriteSet?.GetRenderables?.(out);\n return out;\n }\n\n @carbon.method\n @impl.implemented\n GetBoundingSphere(out = vec4.create())\n {\n vec4.set(EveMissileWarhead.#localSphere, 0, 0, this.warheadLength * 0.5, this.warheadLength * 0.5);\n sph3.transformMat4(out, EveMissileWarhead.#localSphere, this.worldTransform);\n return true;\n }\n\n @carbon.method\n @impl.implemented\n GetLocalBoundingSphere(out = vec4.create())\n {\n vec4.set(EveMissileWarhead.#localSphere, 0, 0, this.warheadLength * 0.5, this.warheadLength * 0.5);\n sph3.transformMat4(out, EveMissileWarhead.#localSphere, this.#currentOffsetTransform);\n return true;\n }\n\n @carbon.method\n @impl.implemented\n GetCurrentOffsetTransform()\n {\n return this.#currentOffsetTransform;\n }\n\n @carbon.method\n @impl.implemented\n GetTargetLocator()\n {\n return this.targetLocatorID;\n }\n\n @carbon.method\n @impl.implemented\n SetTargetLocator(locator)\n {\n this.targetLocatorID = Number(locator) | 0;\n }\n\n @carbon.method\n @impl.implemented\n GetState()\n {\n return this.#state;\n }\n\n @carbon.method\n @impl.implemented\n GetWarheadID()\n {\n return this.id;\n }\n\n @carbon.method\n @impl.adapted\n @impl.reason(\"Constant-buffer layout/packing is engine-owned; Trinity Allocs the record from the accumulator's store and Sets logical values by name (the store transposes the matrix per the engine layout).\")\n GetPerObjectData(accumulator)\n {\n const data = accumulator.Alloc(\"EveMissileWarheadPerObjectData\");\n data.Set(\"world\", this.worldTransform);\n data.Set(\"missileSize\", [this.warheadRadius, this.warheadLength, 0, 0]);\n return data;\n }\n\n static State = Object.freeze({\n STATE_DELAYED: 0,\n STATE_LAUNCH: 1,\n STATE_EJECTING: 2,\n STATE_START_TRACKING: 3,\n STATE_TRACKING_SPREAD: 4,\n STATE_TRACKING_FINAL: 5,\n STATE_EXPLODED: 6,\n STATE_DEAD: 7\n });\n\n static StateChangeEvent = Object.freeze({ EVT_SWITCH_TARGET: 0, EVT_EXPLODE: 1, EVT_NONE: 2 });\n\n static #nextNoisePhase = 1;\n static #zero = vec3.create();\n static #localSphere = vec4.create();\n static #positionNow = vec3.create();\n static #positionLast = vec3.create();\n static #targetPosition = vec3.create();\n static #impactDirection = vec3.create();\n static #ejectVelocity = vec3.create();\n static #globalBallVelocity = vec3.create();\n static #modifiedOldOffset = vec3.create();\n static #relativePosition = vec3.create();\n static #translation = vec3.create();\n static #orientationNow = quat.create();\n static #orientationMatrix = mat4.create();\n}\n\nfunction clamp01(value)\n{\n return Math.max(0, Math.min(1, Number(value) || 0));\n}\n\nfunction transformNormal(out, vector, matrix)\n{\n const x = vector?.[0] ?? 0;\n const y = vector?.[1] ?? 0;\n const z = vector?.[2] ?? 0;\n out[0] = matrix[0] * x + matrix[4] * y + matrix[8] * z;\n out[1] = matrix[1] * x + matrix[5] * y + matrix[9] * z;\n out[2] = matrix[2] * x + matrix[6] * y + matrix[10] * z;\n return out;\n}\n\nfunction enableEmitter(emitter, enable)\n{\n if (typeof emitter?.Enable === \"function\") emitter.Enable(!!enable);\n else if (typeof emitter?.SetEnabled === \"function\") emitter.SetEnabled(!!enable);\n else if (emitter) emitter.enabled = !!enable;\n}\n"],"names":["_EveMissileWarhead","_identity","EveMissileWarhead","EveTransform","e","_init_pathOffsetNoiseScale","_init_extra_pathOffsetNoiseScale","_init_pathOffsetNoiseSpeed","_init_extra_pathOffsetNoiseSpeed","_init_startDataValid","_init_extra_startDataValid","_init_pathOffset","_init_extra_pathOffset","_init_maxExplosionDistance","_init_extra_maxExplosionDistance","_init_impactDuration","_init_extra_impactDuration","_init_explosionPosition","_init_extra_explosionPosition","_init_impactSize","_init_extra_impactSize","_init_spriteSet","_init_extra_spriteSet","_init_targetLocatorID","_init_extra_targetLocatorID","_init_durationEjectPhase","_init_extra_durationEjectPhase","_init_doSpread","_init_extra_doSpread","_init_acceleration","_init_extra_acceleration","_init_id","_init_extra_id","_init_startEjectVelocity","_init_extra_startEjectVelocity","_init_warheadLength","_init_extra_warheadLength","_init_warheadRadius","_init_extra_warheadRadius","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","float32","readwrite","boolean","vec3","read","model","int32","carbon","method","impl","implemented","adapted","reason","pathOffsetNoiseScale","pathOffsetNoiseSpeed","startDataValid","pathOffset","create","maxExplosionDistance","impactDuration","explosionPosition","impactSize","spriteSet","targetLocatorID","durationEjectPhase","doSpread","acceleration","id","startEjectVelocity","warheadLength","warheadRadius","State","STATE_DELAYED","quat","mat4","Math","random","PrepareLaunch","distance","set","identity","Launch","startTransform","getRotation","copy","UpdateEndTransform","endTransform","switchLocators","UpdateState","deltaTime","estimatedTotalAliveTime","target","event","StateChangeEvent","EVT_NONE","totalFlyingTime","max","Number","EPSILON","flight","clamp01","STATE_LAUNCH","EnableParticleEmitting","STATE_EJECTING","STATE_START_TRACKING","GetGoodDamageLocatorIndex","GetWorldPosition","STATE_TRACKING_SPREAD","STATE_TRACKING_FINAL","EVT_SWITCH_TARGET","STATE_EXPLODED","STATE_DEAD","CheckImpact","positionNow","EVT_EXPLODE","subtract","hit","GetImpactPosition","dot","negate","CreateImpact","Update","context","position","carbonPerlin1D","GetOriginShift","originShift","UpdateWarhead","currentBallVelocity","currentInheritedVelocity","inverseBallRotation","missileTransform","dt","transformQuat","transformNormal","quickFlight","scaleAndAdd","denominator","targetTime","scale","lerp","pow","sin","PI","transformMat4","add","distanceSquared","squaredLength","arcFromForward","slerp","normalize","fromRotationTranslation","multiply","worldTransform","enable","child","children","emitter","particleEmitters","enableEmitter","UpdateVisibility","parentTransform","display","GetRenderables","out","lodLevel","Tr2Lod","TR2_LOD_LOW","mesh","push","GetBoundingSphere","vec4","sph3","GetLocalBoundingSphere","GetCurrentOffsetTransform","GetTargetLocator","SetTargetLocator","locator","GetState","GetWarheadID","GetPerObjectData","accumulator","data","Alloc","Set","Object","freeze","constructor","value","min","vector","matrix","x","y","z","Enable","SetEnabled","enabled"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EveMissileWarhead.js","sources":["../../../../src/eve/spaceObject/EveMissileWarhead.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\EveMissileWarhead.h\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\EveMissileWarhead.cpp\nimport { mat4 } from \"@carbonenginejs/runtime-utils/mat4\";\nimport { carbonPerlin1D } from \"@carbonenginejs/runtime-utils/noise\";\nimport { quat } from \"@carbonenginejs/runtime-utils/quat\";\nimport { sph3 } from \"@carbonenginejs/runtime-utils/sph3\";\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\nimport { vec4 } from \"@carbonenginejs/runtime-utils/vec4\";\nimport { carbon, impl, io, type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { EveTransform } from \"./EveTransform.js\";\n\n\n/**\n * One warhead of a missile: its launch-to-explosion state machine, the\n * noise-perturbed offset path it flies relative to the missile, and the impact\n * test against the target.\n */\n@type.define({ className: \"EveMissileWarhead\", family: \"eve/spaceObject\" })\nexport class EveMissileWarhead extends EveTransform\n{\n @io.persist @type.float32 pathOffsetNoiseScale = 0;\n @io.persist @type.float32 pathOffsetNoiseSpeed = 1;\n @io.readwrite @type.boolean startDataValid = false;\n @io.readwrite @type.vec3 pathOffset = vec3.create();\n @io.persist @type.float32 maxExplosionDistance = 40;\n @io.persist @type.float32 impactDuration = 0.6;\n @io.read @type.vec3 explosionPosition = vec3.create();\n @io.persist @type.float32 impactSize = 0;\n @io.persist @type.model(\"EveSpriteSet\") spriteSet = null;\n @io.read @type.int32 targetLocatorID = -1;\n @io.persist @type.float32 durationEjectPhase = 0;\n @io.readwrite @type.boolean doSpread = true;\n @io.persist @type.float32 acceleration = 1;\n @io.readwrite @type.int32 id = -1;\n @io.persist @type.float32 startEjectVelocity = 0;\n @io.persist @type.float32 warheadLength = 1;\n @io.persist @type.float32 warheadRadius = 1;\n\n #state = EveMissileWarhead.State.STATE_DELAYED;\n #flyingTime = 0;\n #movement = vec3.create();\n #positionLastFrame = vec3.create();\n #lastRelativePosition = vec3.create();\n #currentStartOffset = vec3.create();\n #startOrientation = quat.create();\n #oldEndOffset = vec3.create();\n #currentEndOffset = vec3.create();\n #endOffset = vec3.create();\n #currentOffset = vec3.create();\n #currentOrientation = quat.create();\n #currentEjectVelocity = 0;\n #currentDurationEjectPhase = 0;\n #currentOffsetTransform = mat4.create();\n #finalDestinationTimer = 0;\n #finalTargetTime = 0.75 - Math.random() * 0.1;\n #speedModifier = 1.04 - Math.random() * 0.08;\n #explosionDistance = 0;\n #bombFlightpath = false;\n #lastPositionValid = false;\n #noisePhase = EveMissileWarhead.#nextNoisePhase++ & 0xfff;\n #isVisible = true;\n\n /**\n * Resets the warhead to its pre-launch state and re-rolls the randomized\n * explosion distance, speed modifier and final-target timing that vary this\n * flight.\n */\n @carbon.method\n @impl.implemented\n PrepareLaunch()\n {\n this.#currentEjectVelocity = this.startEjectVelocity;\n this.#currentDurationEjectPhase = this.durationEjectPhase;\n const distance = this.maxExplosionDistance - Math.random() * this.maxExplosionDistance * 0.5;\n this.#explosionDistance = distance * distance;\n this.#state = EveMissileWarhead.State.STATE_DELAYED;\n this.#flyingTime = 0;\n vec3.set(this.#currentStartOffset, 0, 0, 0);\n quat.identity(this.#startOrientation);\n this.startDataValid = false;\n vec3.set(this.#oldEndOffset, 0, 0, 0);\n vec3.set(this.#currentEndOffset, 0, 0, 0);\n vec3.set(this.#endOffset, 0, 0, 0);\n vec3.set(this.#currentOffset, 0, 0, 0);\n quat.identity(this.#currentOrientation);\n this.#finalDestinationTimer = 0;\n this.targetLocatorID = -1;\n vec3.set(this.explosionPosition, 0, 0, 0);\n mat4.identity(this.#currentOffsetTransform);\n this.#speedModifier = 1.04 - Math.random() * 0.08;\n this.#finalTargetTime = 0.75 - Math.random() * 0.1;\n this.#bombFlightpath = false;\n this.#lastPositionValid = false;\n }\n\n /**\n * Latches the launch transform as the warhead's start offset and orientation\n * and marks the start data valid, which releases the state machine from its\n * delayed state.\n */\n @carbon.method\n @impl.implemented\n Launch(startTransform)\n {\n mat4.getRotation(this.#startOrientation, startTransform);\n vec3.set(this.#currentStartOffset, startTransform[12], startTransform[13], startTransform[14]);\n quat.copy(this.#currentOrientation, this.#startOrientation);\n vec3.copy(this.#currentOffset, this.#currentStartOffset);\n this.startDataValid = true;\n this.#lastPositionValid = false;\n }\n\n /**\n * Sets the destination offset the warhead flies toward; on a target switch it\n * also snapshots the previous destination and flight time so the change is\n * blended in rather than snapped.\n */\n @carbon.method\n @impl.implemented\n UpdateEndTransform(endTransform, switchLocators)\n {\n vec3.set(this.#endOffset, endTransform[12], endTransform[13], endTransform[14]);\n if (switchLocators)\n {\n this.#finalDestinationTimer = this.#flyingTime;\n vec3.copy(this.#oldEndOffset, this.#currentEndOffset);\n }\n }\n\n /**\n * Advances the delayed/launch/ejecting/tracking state machine by one frame, picking a damage locator when tracking begins and again at the spread-to-final switch.\n * @returns {number} The state-change event the missile must act on, or EVT_NONE.\n */\n @carbon.method\n @impl.implemented\n UpdateState(deltaTime, estimatedTotalAliveTime, target)\n {\n this.#bombFlightpath = !target;\n let event = EveMissileWarhead.StateChangeEvent.EVT_NONE;\n const totalFlyingTime = Math.max((Number(estimatedTotalAliveTime) + 0.1) * this.#speedModifier, Number.EPSILON);\n const flight = clamp01(this.#flyingTime / totalFlyingTime);\n switch (this.#state)\n {\n case EveMissileWarhead.State.STATE_DELAYED:\n if (this.startDataValid) this.#state = EveMissileWarhead.State.STATE_LAUNCH;\n break;\n case EveMissileWarhead.State.STATE_LAUNCH:\n this.EnableParticleEmitting(true);\n this.#state = EveMissileWarhead.State.STATE_EJECTING;\n break;\n case EveMissileWarhead.State.STATE_EJECTING:\n this.#currentDurationEjectPhase -= Number(deltaTime);\n if (this.#currentDurationEjectPhase <= 0)\n {\n this.#currentDurationEjectPhase = 0;\n this.#state = EveMissileWarhead.State.STATE_START_TRACKING;\n }\n break;\n case EveMissileWarhead.State.STATE_START_TRACKING:\n this.targetLocatorID = target ? Number(target.GetGoodDamageLocatorIndex?.(this.GetWorldPosition()) ?? -1) | 0 : -1;\n this.#state = estimatedTotalAliveTime >= 5 && this.doSpread\n ? EveMissileWarhead.State.STATE_TRACKING_SPREAD\n : EveMissileWarhead.State.STATE_TRACKING_FINAL;\n break;\n case EveMissileWarhead.State.STATE_TRACKING_SPREAD:\n if (flight >= this.#finalTargetTime)\n {\n this.targetLocatorID = target ? Number(target.GetGoodDamageLocatorIndex?.(this.GetWorldPosition()) ?? -1) | 0 : -1;\n event = EveMissileWarhead.StateChangeEvent.EVT_SWITCH_TARGET;\n this.#state = EveMissileWarhead.State.STATE_TRACKING_FINAL;\n }\n break;\n case EveMissileWarhead.State.STATE_EXPLODED:\n this.#state = EveMissileWarhead.State.STATE_DEAD;\n break;\n default:\n break;\n }\n return event;\n }\n\n /**\n * Tests the final tracking segment for a hit on the target - or detonates immediately when there is no target - recording the explosion position and spawning an impact on the target when impactSize is set.\n * @returns {number} EVT_EXPLODE when the warhead detonated this frame, otherwise EVT_NONE.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Targetable output parameters use the org-standard out-last calling convention.\")\n CheckImpact(deltaTime, estimatedTotalAliveTime, target)\n {\n if (this.#state !== EveMissileWarhead.State.STATE_TRACKING_FINAL || this.id < 0) return EveMissileWarhead.StateChangeEvent.EVT_NONE;\n const totalFlyingTime = Math.max((Number(estimatedTotalAliveTime) + 0.1) * this.#speedModifier, Number.EPSILON);\n const flight = clamp01((this.#flyingTime - Number(deltaTime)) / totalFlyingTime);\n const positionNow = this.GetWorldPosition(EveMissileWarhead.#positionNow);\n if (!target)\n {\n vec3.copy(this.explosionPosition, positionNow);\n this.#state = EveMissileWarhead.State.STATE_EXPLODED;\n return EveMissileWarhead.StateChangeEvent.EVT_EXPLODE;\n }\n\n vec3.subtract(EveMissileWarhead.#positionLast, positionNow, this.#movement);\n vec3.copy(EveMissileWarhead.#targetPosition, positionNow);\n const hit = target.GetImpactPosition?.(this.targetLocatorID, EveMissileWarhead.#positionLast, positionNow, this.#explosionDistance, EveMissileWarhead.#targetPosition) ?? false;\n if (flight < 1 && !hit) return EveMissileWarhead.StateChangeEvent.EVT_NONE;\n\n vec3.copy(this.explosionPosition, positionNow);\n vec3.subtract(EveMissileWarhead.#impactDirection, EveMissileWarhead.#targetPosition, positionNow);\n if (vec3.dot(EveMissileWarhead.#impactDirection, this.#movement) < 0) vec3.copy(this.explosionPosition, EveMissileWarhead.#targetPosition);\n if (this.impactSize > 0)\n {\n vec3.negate(EveMissileWarhead.#impactDirection, this.#movement);\n target.CreateImpact?.(this.targetLocatorID, EveMissileWarhead.#impactDirection, this.impactDuration, this.impactSize);\n }\n this.#state = EveMissileWarhead.State.STATE_EXPLODED;\n return EveMissileWarhead.StateChangeEvent.EVT_EXPLODE;\n }\n\n /**\n * Samples the Perlin path offset for the current flight time, advances the\n * base transform, and recomputes the per-frame movement vector that impact\n * direction and orientation depend on; the noise phase is a stable\n * per-instance sequence rather than Carbon's pointer-derived one.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon's pointer-derived Perlin phase is replaced with a stable per-instance 12-bit sequence.\")\n Update(context)\n {\n const position = this.#flyingTime * this.pathOffsetNoiseSpeed + this.#noisePhase;\n this.pathOffset[0] = carbonPerlin1D(position, 1.1, 2, 3) * this.pathOffsetNoiseScale;\n this.pathOffset[1] = carbonPerlin1D(position + 10.1, 1.1, 2, 3) * this.pathOffsetNoiseScale;\n this.pathOffset[2] = carbonPerlin1D(position + 18.3, 1.1, 2, 3) * this.pathOffsetNoiseScale;\n vec3.subtract(this.#positionLastFrame, this.#positionLastFrame, context?.GetOriginShift?.() ?? context?.originShift ?? EveMissileWarhead.#zero);\n super.Update(context);\n this.GetWorldPosition(EveMissileWarhead.#positionNow);\n vec3.subtract(this.#movement, EveMissileWarhead.#positionNow, this.#positionLastFrame);\n vec3.copy(this.#positionLastFrame, EveMissileWarhead.#positionNow);\n }\n\n /**\n * Integrates one frame of flight - eject velocity, inherited ship velocity,\n * start-to-destination interpolation shaped by acceleration, the noise path\n * offset and the bomb falloff - then rebuilds the warhead's offset transform\n * and slerps its orientation toward the direction of travel.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"The CPU flight calculation is source-faithful; current world composition is also published immediately for headless graph consumers.\")\n UpdateWarhead(deltaTime, estimatedTotalAliveTime, currentBallVelocity, currentInheritedVelocity, inverseBallRotation, missileTransform, originShift = EveMissileWarhead.#zero)\n {\n const dt = Number(deltaTime) || 0;\n vec3.set(EveMissileWarhead.#ejectVelocity, 0, 0, this.#currentEjectVelocity);\n vec3.transformQuat(EveMissileWarhead.#ejectVelocity, EveMissileWarhead.#ejectVelocity, this.#startOrientation);\n transformNormal(EveMissileWarhead.#globalBallVelocity, currentBallVelocity, inverseBallRotation);\n if (this.#state >= EveMissileWarhead.State.STATE_START_TRACKING) this.#flyingTime += dt;\n\n const totalFlyingTime = Math.max((Number(estimatedTotalAliveTime) + 0.1) * this.#speedModifier, Number.EPSILON);\n const flight = clamp01(this.#flyingTime / totalFlyingTime);\n const quickFlight = clamp01(3 * flight);\n if (this.#state >= EveMissileWarhead.State.STATE_EJECTING) vec3.scaleAndAdd(this.#currentStartOffset, this.#currentStartOffset, EveMissileWarhead.#ejectVelocity, dt);\n vec3.scaleAndAdd(this.#currentStartOffset, this.#currentStartOffset, currentInheritedVelocity, dt);\n\n const denominator = totalFlyingTime - this.#finalDestinationTimer;\n const targetTime = denominator ? clamp01((this.#flyingTime - this.#finalDestinationTimer) / denominator) : 1;\n vec3.scale(EveMissileWarhead.#modifiedOldOffset, this.#oldEndOffset, 1 - clamp01(targetTime * 2));\n vec3.lerp(this.#currentEndOffset, EveMissileWarhead.#modifiedOldOffset, this.#endOffset, targetTime);\n vec3.lerp(this.#currentOffset, this.#currentStartOffset, this.#currentEndOffset, Math.pow(flight, 1 + this.acceleration));\n\n vec3.scale(EveMissileWarhead.#globalBallVelocity, EveMissileWarhead.#globalBallVelocity, 1 - flight);\n vec3.scaleAndAdd(this.#currentStartOffset, this.#currentStartOffset, EveMissileWarhead.#globalBallVelocity, -dt);\n this.#currentEjectVelocity = this.startEjectVelocity * (1 - Math.pow(quickFlight, 1 + this.acceleration));\n vec3.scaleAndAdd(this.#currentOffset, this.#currentOffset, this.pathOffset, Math.sin(Math.PI * flight) ** 2);\n if (this.#bombFlightpath) vec3.scale(this.#currentOffset, this.#currentOffset, (1 - quickFlight) ** 2);\n\n vec3.transformMat4(EveMissileWarhead.#relativePosition, this.#currentOffset, missileTransform);\n vec3.subtract(EveMissileWarhead.#translation, this.#lastRelativePosition, EveMissileWarhead.#relativePosition);\n vec3.add(EveMissileWarhead.#translation, EveMissileWarhead.#translation, originShift);\n vec3.copy(this.#lastRelativePosition, EveMissileWarhead.#relativePosition);\n if (this.#lastPositionValid && this.startDataValid)\n {\n const distanceSquared = vec3.squaredLength(EveMissileWarhead.#translation);\n if (distanceSquared > 0)\n {\n transformNormal(EveMissileWarhead.#translation, EveMissileWarhead.#translation, inverseBallRotation);\n mat4.arcFromForward(EveMissileWarhead.#orientationMatrix, EveMissileWarhead.#translation);\n mat4.getRotation(EveMissileWarhead.#orientationNow, EveMissileWarhead.#orientationMatrix);\n if (distanceSquared < 1)\n {\n quat.slerp(this.#currentOrientation, this.#currentOrientation, EveMissileWarhead.#orientationNow, distanceSquared);\n quat.normalize(this.#currentOrientation, this.#currentOrientation);\n }\n else quat.copy(this.#currentOrientation, EveMissileWarhead.#orientationNow);\n }\n }\n else this.#lastPositionValid = true;\n\n mat4.fromRotationTranslation(this.#currentOffsetTransform, this.#currentOrientation, this.#currentOffset);\n mat4.multiply(this.worldTransform, missileTransform, this.#currentOffsetTransform);\n }\n\n /**\n * Turns the warhead's own particle emitters and those of its children on or\n * off.\n */\n @carbon.method\n @impl.implemented\n EnableParticleEmitting(enable)\n {\n for (const child of this.children) for (const emitter of child?.particleEmitters ?? []) enableEmitter(emitter, enable);\n for (const emitter of this.particleEmitters) enableEmitter(emitter, enable);\n }\n\n /**\n * Snaps the world transform to the supplied parent transform and runs the base\n * visibility pass; returns false while the warhead is unlaunched, dead or\n * hidden.\n */\n @carbon.method\n @impl.implemented\n UpdateVisibility(context, parentTransform)\n {\n this.#isVisible = false;\n if (!this.startDataValid || this.#state === EveMissileWarhead.State.STATE_DEAD || !this.display) return false;\n mat4.copy(this.worldTransform, parentTransform);\n this.#isVisible = true;\n super.UpdateVisibility(context, parentTransform);\n return true;\n }\n\n /**\n * Appends the warhead mesh and its sprite set; nothing is appended while the\n * warhead is invisible or at low LOD.\n */\n @carbon.method\n @impl.implemented\n GetRenderables(out = [])\n {\n if (!this.#isVisible || this.lodLevel <= EveTransform.Tr2Lod.TR2_LOD_LOW) return out;\n if (this.mesh) out.push(this);\n this.spriteSet?.GetRenderables?.(out);\n return out;\n }\n\n /**\n * Writes the world-space sphere enclosing the warhead body, sized and centred\n * from warheadLength.\n */\n @carbon.method\n @impl.implemented\n GetBoundingSphere(out = vec4.create())\n {\n vec4.set(EveMissileWarhead.#localSphere, 0, 0, this.warheadLength * 0.5, this.warheadLength * 0.5);\n sph3.transformMat4(out, EveMissileWarhead.#localSphere, this.worldTransform);\n return true;\n }\n\n /**\n * Writes the warhead body sphere in the missile's space, which the missile\n * unions into its own bounding sphere.\n */\n @carbon.method\n @impl.implemented\n GetLocalBoundingSphere(out = vec4.create())\n {\n vec4.set(EveMissileWarhead.#localSphere, 0, 0, this.warheadLength * 0.5, this.warheadLength * 0.5);\n sph3.transformMat4(out, EveMissileWarhead.#localSphere, this.#currentOffsetTransform);\n return true;\n }\n\n /**\n * Returns the warhead's live offset transform relative to the missile; it is\n * the warhead's own matrix and is rewritten by the next flight update.\n */\n @carbon.method\n @impl.implemented\n GetCurrentOffsetTransform()\n {\n return this.#currentOffsetTransform;\n }\n\n /**\n * Returns the damage locator index this warhead is tracking, or -1 when none\n * has been chosen.\n */\n @carbon.method\n @impl.implemented\n GetTargetLocator()\n {\n return this.targetLocatorID;\n }\n\n /** Overrides the damage locator index this warhead tracks. */\n @carbon.method\n @impl.implemented\n SetTargetLocator(locator)\n {\n this.targetLocatorID = Number(locator) | 0;\n }\n\n /** Returns the current flight state, one of EveMissileWarhead.State. */\n @carbon.method\n @impl.implemented\n GetState()\n {\n return this.#state;\n }\n\n /**\n * Returns the authored warhead id, which the missile passes to the explosion\n * callback.\n */\n @carbon.method\n @impl.implemented\n GetWarheadID()\n {\n return this.id;\n }\n\n /**\n * Allocates the warhead's per-object record and sets the world transform and\n * the radius/length pair the shader needs; the record carries values only,\n * never GPU resources.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Constant-buffer layout/packing is engine-owned; Trinity Allocs the record from the accumulator's store and Sets logical values by name (the store transposes the matrix per the engine layout).\")\n GetPerObjectData(accumulator)\n {\n const data = accumulator.Alloc(\"EveMissileWarheadPerObjectData\");\n data.SetAndTranspose(\"world\", this.worldTransform);\n data.Set(\"missileSize\", [this.warheadRadius, this.warheadLength, 0, 0]);\n return data;\n }\n\n static State = Object.freeze({\n STATE_DELAYED: 0,\n STATE_LAUNCH: 1,\n STATE_EJECTING: 2,\n STATE_START_TRACKING: 3,\n STATE_TRACKING_SPREAD: 4,\n STATE_TRACKING_FINAL: 5,\n STATE_EXPLODED: 6,\n STATE_DEAD: 7\n });\n\n static StateChangeEvent = Object.freeze({ EVT_SWITCH_TARGET: 0, EVT_EXPLODE: 1, EVT_NONE: 2 });\n\n static #nextNoisePhase = 1;\n static #zero = vec3.create();\n static #localSphere = vec4.create();\n static #positionNow = vec3.create();\n static #positionLast = vec3.create();\n static #targetPosition = vec3.create();\n static #impactDirection = vec3.create();\n static #ejectVelocity = vec3.create();\n static #globalBallVelocity = vec3.create();\n static #modifiedOldOffset = vec3.create();\n static #relativePosition = vec3.create();\n static #translation = vec3.create();\n static #orientationNow = quat.create();\n static #orientationMatrix = mat4.create();\n}\n\nfunction clamp01(value)\n{\n return Math.max(0, Math.min(1, Number(value) || 0));\n}\n\nfunction transformNormal(out, vector, matrix)\n{\n const x = vector?.[0] ?? 0;\n const y = vector?.[1] ?? 0;\n const z = vector?.[2] ?? 0;\n out[0] = matrix[0] * x + matrix[4] * y + matrix[8] * z;\n out[1] = matrix[1] * x + matrix[5] * y + matrix[9] * z;\n out[2] = matrix[2] * x + matrix[6] * y + matrix[10] * z;\n return out;\n}\n\nfunction enableEmitter(emitter, enable)\n{\n if (typeof emitter?.Enable === \"function\") emitter.Enable(!!enable);\n else if (typeof emitter?.SetEnabled === \"function\") emitter.SetEnabled(!!enable);\n else if (emitter) emitter.enabled = !!enable;\n}\n"],"names":["_EveMissileWarhead","_identity","EveMissileWarhead","EveTransform","e","_init_pathOffsetNoiseScale","_init_extra_pathOffsetNoiseScale","_init_pathOffsetNoiseSpeed","_init_extra_pathOffsetNoiseSpeed","_init_startDataValid","_init_extra_startDataValid","_init_pathOffset","_init_extra_pathOffset","_init_maxExplosionDistance","_init_extra_maxExplosionDistance","_init_impactDuration","_init_extra_impactDuration","_init_explosionPosition","_init_extra_explosionPosition","_init_impactSize","_init_extra_impactSize","_init_spriteSet","_init_extra_spriteSet","_init_targetLocatorID","_init_extra_targetLocatorID","_init_durationEjectPhase","_init_extra_durationEjectPhase","_init_doSpread","_init_extra_doSpread","_init_acceleration","_init_extra_acceleration","_init_id","_init_extra_id","_init_startEjectVelocity","_init_extra_startEjectVelocity","_init_warheadLength","_init_extra_warheadLength","_init_warheadRadius","_init_extra_warheadRadius","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","float32","readwrite","boolean","vec3","read","model","int32","carbon","method","impl","implemented","adapted","reason","pathOffsetNoiseScale","pathOffsetNoiseSpeed","startDataValid","pathOffset","create","maxExplosionDistance","impactDuration","explosionPosition","impactSize","spriteSet","targetLocatorID","durationEjectPhase","doSpread","acceleration","id","startEjectVelocity","warheadLength","warheadRadius","State","STATE_DELAYED","quat","mat4","Math","random","PrepareLaunch","distance","set","identity","Launch","startTransform","getRotation","copy","UpdateEndTransform","endTransform","switchLocators","UpdateState","deltaTime","estimatedTotalAliveTime","target","event","StateChangeEvent","EVT_NONE","totalFlyingTime","max","Number","EPSILON","flight","clamp01","STATE_LAUNCH","EnableParticleEmitting","STATE_EJECTING","STATE_START_TRACKING","GetGoodDamageLocatorIndex","GetWorldPosition","STATE_TRACKING_SPREAD","STATE_TRACKING_FINAL","EVT_SWITCH_TARGET","STATE_EXPLODED","STATE_DEAD","CheckImpact","positionNow","EVT_EXPLODE","subtract","hit","GetImpactPosition","dot","negate","CreateImpact","Update","context","position","carbonPerlin1D","GetOriginShift","originShift","UpdateWarhead","currentBallVelocity","currentInheritedVelocity","inverseBallRotation","missileTransform","dt","transformQuat","transformNormal","quickFlight","scaleAndAdd","denominator","targetTime","scale","lerp","pow","sin","PI","transformMat4","add","distanceSquared","squaredLength","arcFromForward","slerp","normalize","fromRotationTranslation","multiply","worldTransform","enable","child","children","emitter","particleEmitters","enableEmitter","UpdateVisibility","parentTransform","display","GetRenderables","out","lodLevel","Tr2Lod","TR2_LOD_LOW","mesh","push","GetBoundingSphere","vec4","sph3","GetLocalBoundingSphere","GetCurrentOffsetTransform","GetTargetLocator","SetTargetLocator","locator","GetState","GetWarheadID","GetPerObjectData","accumulator","data","Alloc","SetAndTranspose","Set","Object","freeze","constructor","value","min","vector","matrix","x","y","z","Enable","SetEnabled","enabled"],"mappings":"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"}
|
|
@@ -6,6 +6,12 @@ import { EveTurretSet as _EveTurretSet } from '../attachment/turrets/EveTurretSe
|
|
|
6
6
|
import { EveSpaceObject2 as _EveSpaceObject } from './EveSpaceObject2.js';
|
|
7
7
|
|
|
8
8
|
let _initProto, _initClass, _init_turretSets, _init_extra_turretSets, _init_ActiveTurretCount, _init_extra_ActiveTurretCount;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* A space object that carries turret sets, keeping each set bound to the hull
|
|
12
|
+
* locators or animated bones it fires from and tracking how many of its turrets
|
|
13
|
+
* are active.
|
|
14
|
+
*/
|
|
9
15
|
let _EveMobile;
|
|
10
16
|
new class extends _identity {
|
|
11
17
|
static [class EveMobile extends _EveSpaceObject {
|
|
@@ -22,12 +28,19 @@ new class extends _identity {
|
|
|
22
28
|
ActiveTurretCount = (_init_extra_turretSets(this), _init_ActiveTurretCount(this, 0));
|
|
23
29
|
#turretSetsLocatorInfo = (_init_extra_ActiveTurretCount(this), []);
|
|
24
30
|
#turretLocatorCountingInfo = new Map();
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Runs the base initialization, then seeds the turret locator counters from
|
|
34
|
+
* the current locators and binds every turret set to them.
|
|
35
|
+
*/
|
|
25
36
|
Initialize() {
|
|
26
37
|
super.Initialize();
|
|
27
38
|
this.#resetTurretLocatorCounter(true);
|
|
28
39
|
this.RebuildTurretPositions();
|
|
29
40
|
return true;
|
|
30
41
|
}
|
|
42
|
+
|
|
43
|
+
/** Rebinds the turret sets to their locators after the turret set list changes. */
|
|
31
44
|
OnListModified() {
|
|
32
45
|
this.RebuildTurretPositions();
|
|
33
46
|
}
|
|
@@ -55,9 +68,21 @@ new class extends _identity {
|
|
|
55
68
|
}
|
|
56
69
|
}
|
|
57
70
|
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Returns the locator index a turret slot was bound to, or 0 when the set or
|
|
74
|
+
* slot has no binding.
|
|
75
|
+
*/
|
|
58
76
|
GetTurretLocatorIndex(turretSetIndex, slotIndex) {
|
|
59
77
|
return this.#turretSetsLocatorInfo[turretSetIndex]?.locators?.[slotIndex]?.index ?? 0;
|
|
60
78
|
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Binds each turret set to the locators or animated bones whose names extend
|
|
82
|
+
* its locator name, allocating sets that do not name a turret locator from the
|
|
83
|
+
* shared locator_turret_ pool, and pushes each matched transform into the set
|
|
84
|
+
* as a local turret transform up to the per-set turret limit.
|
|
85
|
+
*/
|
|
61
86
|
RebuildTurretPositions() {
|
|
62
87
|
this.#turretSetsLocatorInfo.length = 0;
|
|
63
88
|
this.#resetTurretLocatorCounter(false);
|
|
@@ -118,6 +143,12 @@ new class extends _identity {
|
|
|
118
143
|
}
|
|
119
144
|
return true;
|
|
120
145
|
}
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Counts the unbroken run of locator_turret_<n>a/b locator pairs starting at
|
|
149
|
+
* 1, returning 0 when the set of 'a' locators does not match the set of 'b'
|
|
150
|
+
* locators.
|
|
151
|
+
*/
|
|
121
152
|
GetTurretLocatorCount() {
|
|
122
153
|
let foundA = 0;
|
|
123
154
|
let foundB = 0;
|
|
@@ -136,9 +167,20 @@ new class extends _identity {
|
|
|
136
167
|
}
|
|
137
168
|
return count;
|
|
138
169
|
}
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Returns how many turret sets were past the targeting state at the last
|
|
173
|
+
* synchronous update.
|
|
174
|
+
*/
|
|
139
175
|
GetActiveTurretCount() {
|
|
140
176
|
return this.ActiveTurretCount;
|
|
141
177
|
}
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Runs the base synchronous update, refreshes bone-driven turret locator
|
|
181
|
+
* transforms, updates every turret set against the hull transform, and
|
|
182
|
+
* recounts the active turrets.
|
|
183
|
+
*/
|
|
142
184
|
UpdateSyncronous(context) {
|
|
143
185
|
super.UpdateSyncronous(context);
|
|
144
186
|
let activeCount = 0;
|
|
@@ -159,28 +201,51 @@ new class extends _identity {
|
|
|
159
201
|
this.ActiveTurretCount = activeCount;
|
|
160
202
|
return true;
|
|
161
203
|
}
|
|
204
|
+
|
|
205
|
+
/** Runs the base asynchronous update and then the turret sets. */
|
|
162
206
|
UpdateAsyncronous(context) {
|
|
163
207
|
super.UpdateAsyncronous(context);
|
|
164
208
|
return this.UpdateTurretsAsyncronous(context);
|
|
165
209
|
}
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Advances every turret set's asynchronous work, handing it the hull transform
|
|
213
|
+
* as its parent placement.
|
|
214
|
+
*/
|
|
166
215
|
UpdateTurretsAsyncronous(context) {
|
|
167
216
|
for (const turretSet of this.turretSets) turretSet?.UpdateAsyncronous?.(context, {
|
|
168
217
|
transform: this.GetTurretTransform(turretSet.swarmID)
|
|
169
218
|
});
|
|
170
219
|
return true;
|
|
171
220
|
}
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* Runs the base visibility pass and, while display is on, forwards visibility
|
|
224
|
+
* to the turret sets.
|
|
225
|
+
*/
|
|
172
226
|
UpdateVisibility(context, _parentTransform = _EveMobile.#identity) {
|
|
173
227
|
const visible = super.UpdateVisibility(context, _parentTransform);
|
|
174
228
|
if (!this.display) return false;
|
|
175
229
|
for (const turretSet of this.turretSets) turretSet?.UpdateVisibility?.(context);
|
|
176
230
|
return visible;
|
|
177
231
|
}
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* Appends the base renderables followed by every turret set's renderables;
|
|
235
|
+
* nothing is appended while display is off.
|
|
236
|
+
*/
|
|
178
237
|
GetRenderables(out = []) {
|
|
179
238
|
if (!this.display) return out;
|
|
180
239
|
super.GetRenderables(out);
|
|
181
240
|
for (const turretSet of this.turretSets) turretSet?.GetRenderables?.(out);
|
|
182
241
|
return out;
|
|
183
242
|
}
|
|
243
|
+
|
|
244
|
+
/**
|
|
245
|
+
* Returns the hull's local bounding box grown to contain every turret set's
|
|
246
|
+
* box; with out parameters it fills them and returns true, without them it
|
|
247
|
+
* returns a { min, max } object.
|
|
248
|
+
*/
|
|
184
249
|
GetLocalBoundingBox(outMin, outMax) {
|
|
185
250
|
const returnObject = !outMin || !outMax;
|
|
186
251
|
outMin ??= vec3.create();
|
|
@@ -198,24 +263,46 @@ new class extends _identity {
|
|
|
198
263
|
max: outMax
|
|
199
264
|
} : true;
|
|
200
265
|
}
|
|
266
|
+
|
|
267
|
+
/** Sets a controller variable on the hull and forwards it to every turret set. */
|
|
201
268
|
SetControllerVariable(name, value) {
|
|
202
269
|
super.SetControllerVariable(name, value);
|
|
203
270
|
for (const turretSet of this.turretSets) turretSet?.SetControllerVariable?.(name, value);
|
|
204
271
|
}
|
|
272
|
+
|
|
273
|
+
/** Raises a controller event on the hull and forwards it to every turret set. */
|
|
205
274
|
HandleControllerEvent(name) {
|
|
206
275
|
super.HandleControllerEvent(name);
|
|
207
276
|
for (const turretSet of this.turretSets) turretSet?.HandleControllerEvent?.(name);
|
|
208
277
|
}
|
|
278
|
+
|
|
279
|
+
/** Starts the hull's controllers and every turret set's controllers. */
|
|
209
280
|
StartControllers() {
|
|
210
281
|
super.StartControllers();
|
|
211
282
|
for (const turretSet of this.turretSets) turretSet?.StartControllers?.();
|
|
212
283
|
}
|
|
284
|
+
|
|
285
|
+
/**
|
|
286
|
+
* Children, turret sets and boosters are shown only while activation strength
|
|
287
|
+
* is above 0.5.
|
|
288
|
+
*/
|
|
213
289
|
DisplayChildren() {
|
|
214
290
|
return this.activationStrength > 0.5;
|
|
215
291
|
}
|
|
292
|
+
|
|
293
|
+
/**
|
|
294
|
+
* Returns the parent transform turret sets are placed against - the live hull
|
|
295
|
+
* world transform, regardless of swarm index.
|
|
296
|
+
*/
|
|
216
297
|
GetTurretTransform(_turretSetIndex = 0) {
|
|
217
298
|
return this.worldTransform;
|
|
218
299
|
}
|
|
300
|
+
|
|
301
|
+
/**
|
|
302
|
+
* Rebuilds the per-name-prefix counters that allocate turret sets to numbered
|
|
303
|
+
* locators, resetting each prefix's running count and, when asked, recomputing
|
|
304
|
+
* its total from the digit that follows the prefix.
|
|
305
|
+
*/
|
|
219
306
|
#resetTurretLocatorCounter(updateTotal) {
|
|
220
307
|
for (const record of this.#locatorRecords()) {
|
|
221
308
|
const separator = record.name.lastIndexOf("_");
|
|
@@ -235,6 +322,11 @@ new class extends _identity {
|
|
|
235
322
|
}
|
|
236
323
|
}
|
|
237
324
|
}
|
|
325
|
+
|
|
326
|
+
/**
|
|
327
|
+
* Returns the next locator number to allocate for a name prefix together with
|
|
328
|
+
* that prefix's total, or null when the prefix is unknown.
|
|
329
|
+
*/
|
|
238
330
|
#getTurretLocatorCountingInfo(name) {
|
|
239
331
|
const info = this.#turretLocatorCountingInfo.get(name);
|
|
240
332
|
return info ? {
|
|
@@ -242,6 +334,12 @@ new class extends _identity {
|
|
|
242
334
|
total: info.totalCount
|
|
243
335
|
} : null;
|
|
244
336
|
}
|
|
337
|
+
|
|
338
|
+
/**
|
|
339
|
+
* Builds the name-keyed list of authored locators and animation-updater bones
|
|
340
|
+
* that turret binding searches; a bone whose name is already taken by a
|
|
341
|
+
* locator is skipped.
|
|
342
|
+
*/
|
|
245
343
|
#locatorRecords() {
|
|
246
344
|
const records = [];
|
|
247
345
|
for (let index = 0; index < this.locators.length; index++) {
|
|
@@ -268,6 +366,12 @@ new class extends _identity {
|
|
|
268
366
|
}
|
|
269
367
|
return records;
|
|
270
368
|
}
|
|
369
|
+
|
|
370
|
+
/**
|
|
371
|
+
* Copies a locator record's transform into the caller-owned out matrix - the
|
|
372
|
+
* animated bone world transform for bone records, the authored transform for
|
|
373
|
+
* locator records - and returns null when neither is available.
|
|
374
|
+
*/
|
|
271
375
|
#getLocatorRecordTransform(record, out) {
|
|
272
376
|
if (record.type === "bone") {
|
|
273
377
|
const value = this.animationUpdater?.GetBoneWorldTransform?.(record.name, out) ?? this.animationUpdater?.GetBoneTransform?.(record.index, out);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EveMobile.js","sources":["../../../../src/eve/spaceObject/EveMobile.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\EveMobile.h\r\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\EveMobile.cpp\r\nimport { mat4 } from \"@carbonenginejs/runtime-utils/mat4\";\r\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\r\nimport { carbon, impl, io, type } from \"@carbonenginejs/runtime-utils/schema\";\r\nimport { EveTurretSet } from \"../attachment/turrets/EveTurretSet.js\";\r\nimport { EveSpaceObject2 } from \"./EveSpaceObject2.js\";\r\n\r\n\r\n@type.define({ className: \"EveMobile\", family: \"eve/spaceObject\" })\r\nexport class EveMobile extends EveSpaceObject2\r\n{\r\n @io.notify\r\n @io.persist\r\n @type.list(\"EveTurretSet\")\r\n turretSets = [];\r\n\r\n @io.read\r\n @type.uint32\r\n ActiveTurretCount = 0;\r\n\r\n #turretSetsLocatorInfo = [];\r\n #turretLocatorCountingInfo = new Map();\r\n\r\n @carbon.method\r\n @impl.implemented\r\n Initialize()\r\n {\r\n super.Initialize();\r\n this.#resetTurretLocatorCounter(true);\r\n this.RebuildTurretPositions();\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"List notifications are represented by a direct browser callback; registry ownership remains runtime-engine work.\")\r\n OnListModified()\r\n {\r\n this.RebuildTurretPositions();\r\n }\r\n\r\n /** Carbon EveMobile::RegisterComponents (cpp:109-120): base registration,\r\n * then forwards the turret sets. Gate m_display. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n super.RegisterComponents();\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.display)\r\n {\r\n for (const turretSet of this.turretSets)\r\n {\r\n turretSet?.Register?.(registry);\r\n }\r\n }\r\n }\r\n\r\n /** Carbon EveMobile::UnRegisterComponents (cpp:126-138): base, then forwards\r\n * the turret sets without re-checking display. */\r\n @carbon.method\r\n @impl.implemented\r\n UnRegisterComponents()\r\n {\r\n super.UnRegisterComponents();\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n for (const turretSet of this.turretSets)\r\n {\r\n turretSet?.UnRegister?.(registry);\r\n }\r\n }\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetTurretLocatorIndex(turretSetIndex, slotIndex)\r\n {\r\n return this.#turretSetsLocatorInfo[turretSetIndex]?.locators?.[slotIndex]?.index ?? 0;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Authored EveLocator2 transforms and optional animation-updater bone transforms replace Carbon's locator-type pointer surface.\")\r\n RebuildTurretPositions()\r\n {\r\n this.#turretSetsLocatorInfo.length = 0;\r\n this.#resetTurretLocatorCounter(false);\r\n const records = this.#locatorRecords();\r\n for (const turretSet of this.turretSets)\r\n {\r\n if (!turretSet) continue;\r\n let name = String(turretSet.locatorName ?? \"\");\r\n let turretInName = name.includes(\"_turret_\");\r\n let locatorNumber = 0;\r\n if (!turretInName)\r\n {\r\n let counting = this.#getTurretLocatorCountingInfo(name);\r\n if (!counting)\r\n {\r\n name = \"locator_turret_\";\r\n counting = this.#getTurretLocatorCountingInfo(name);\r\n turretInName = true;\r\n }\r\n if (!counting)\r\n {\r\n this.#turretSetsLocatorInfo.push({ type: \"none\", locators: [] });\r\n continue;\r\n }\r\n locatorNumber = counting.current;\r\n if (locatorNumber > counting.total)\r\n {\r\n if (!turretInName)\r\n {\r\n name = \"locator_turret_\";\r\n counting = this.#getTurretLocatorCountingInfo(name);\r\n turretInName = true;\r\n }\r\n if (!counting || counting.current > counting.total)\r\n {\r\n this.#turretSetsLocatorInfo.push({ type: \"none\", locators: [] });\r\n continue;\r\n }\r\n locatorNumber = counting.current;\r\n }\r\n }\r\n if (turretInName) locatorNumber = Number(turretSet.slotNumber) | 0;\r\n const baseName = `${name}${locatorNumber}`;\r\n const matched = records\r\n .filter(record => record.name.startsWith(baseName))\r\n .sort((a, b) => a.name.localeCompare(b.name));\r\n const locatorInfo = { type: matched.some(record => record.type === \"bone\") ? \"bone\" : \"locator\", locators: [] };\r\n for (let index = 0; index < matched.length && index < EveTurretSet.MAX_TURRETS_PER_SET; index++)\r\n {\r\n const record = matched[index];\r\n const transform = this.#getLocatorRecordTransform(record, EveMobile.#locatorTransform);\r\n if (!transform) continue;\r\n turretSet.SetLocalTransform?.(index, transform);\r\n locatorInfo.locators.push(record);\r\n }\r\n this.#turretSetsLocatorInfo.push(locatorInfo);\r\n const counter = this.#turretLocatorCountingInfo.get(name);\r\n if (counter) counter.currentCount++;\r\n }\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetTurretLocatorCount()\r\n {\r\n let foundA = 0;\r\n let foundB = 0;\r\n for (const record of this.#locatorRecords())\r\n {\r\n const match = /^locator_turret_(\\d+)([ab])$/.exec(record.name);\r\n if (!match) continue;\r\n const index = Number(match[1]);\r\n if (!(index > 0 && index <= 32)) continue;\r\n if (match[2] === \"a\") foundA |= 1 << (index - 1);\r\n else foundB |= 1 << (index - 1);\r\n }\r\n if (foundA !== foundB && foundB) return 0;\r\n let count = 0;\r\n while (foundA & 1)\r\n {\r\n count++;\r\n foundA >>>= 1;\r\n }\r\n return count;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetActiveTurretCount()\r\n {\r\n return this.ActiveTurretCount;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Animated locator transforms use an optional animation-updater bone contract; all turret state updates remain in Trinity.\")\r\n UpdateSyncronous(context)\r\n {\r\n super.UpdateSyncronous(context);\r\n let activeCount = 0;\r\n for (let setIndex = 0; setIndex < this.turretSets.length; setIndex++)\r\n {\r\n const turretSet = this.turretSets[setIndex];\r\n if (!turretSet) continue;\r\n if (turretSet.state > EveTurretSet.State.STATE_TARGETING) activeCount++;\r\n const locatorInfo = this.#turretSetsLocatorInfo[setIndex];\r\n if (locatorInfo?.type === \"bone\")\r\n {\r\n for (let turretIndex = 0; turretIndex < locatorInfo.locators.length; turretIndex++)\r\n {\r\n const transform = this.#getLocatorRecordTransform(locatorInfo.locators[turretIndex], EveMobile.#locatorTransform);\r\n if (transform) turretSet.SetLocalTransform?.(turretIndex, transform);\r\n }\r\n turretSet.UpdateTurretTransforms?.(this.GetTurretTransform(turretSet.swarmID));\r\n }\r\n turretSet.UpdateSyncronous?.(context, this.GetTurretTransform(turretSet.swarmID));\r\n }\r\n this.ActiveTurretCount = activeCount;\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n UpdateAsyncronous(context)\r\n {\r\n super.UpdateAsyncronous(context);\r\n return this.UpdateTurretsAsyncronous(context);\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon's native ParentData constant buffers collapse to the portable parent transform required by turret graph updates.\")\r\n UpdateTurretsAsyncronous(context)\r\n {\r\n for (const turretSet of this.turretSets) turretSet?.UpdateAsyncronous?.(context, { transform: this.GetTurretTransform(turretSet.swarmID) });\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n UpdateVisibility(context, _parentTransform = EveMobile.#identity)\r\n {\r\n const visible = super.UpdateVisibility(context, _parentTransform);\r\n if (!this.display) return false;\r\n for (const turretSet of this.turretSets) turretSet?.UpdateVisibility?.(context);\r\n return visible;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetRenderables(out = [])\r\n {\r\n if (!this.display) return out;\r\n super.GetRenderables(out);\r\n for (const turretSet of this.turretSets) turretSet?.GetRenderables?.(out);\r\n return out;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetLocalBoundingBox(outMin, outMax)\r\n {\r\n const returnObject = !outMin || !outMax;\r\n outMin ??= vec3.create();\r\n outMax ??= vec3.create();\r\n const result = super.GetLocalBoundingBox(outMin, outMax);\r\n if (result === false) return false;\r\n for (const turretSet of this.turretSets)\r\n {\r\n if (turretSet?.GetLocalBoundingBox?.(EveMobile.#boundsMin, EveMobile.#boundsMax))\r\n {\r\n vec3.min(outMin, outMin, EveMobile.#boundsMin);\r\n vec3.max(outMax, outMax, EveMobile.#boundsMax);\r\n }\r\n }\r\n return returnObject ? { min: outMin, max: outMax } : true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetControllerVariable(name, value)\r\n {\r\n super.SetControllerVariable(name, value);\r\n for (const turretSet of this.turretSets) turretSet?.SetControllerVariable?.(name, value);\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n HandleControllerEvent(name)\r\n {\r\n super.HandleControllerEvent(name);\r\n for (const turretSet of this.turretSets) turretSet?.HandleControllerEvent?.(name);\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n StartControllers()\r\n {\r\n super.StartControllers();\r\n for (const turretSet of this.turretSets) turretSet?.StartControllers?.();\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n DisplayChildren()\r\n {\r\n return this.activationStrength > 0.5;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetTurretTransform(_turretSetIndex = 0)\r\n {\r\n return this.worldTransform;\r\n }\r\n\r\n #resetTurretLocatorCounter(updateTotal)\r\n {\r\n for (const record of this.#locatorRecords())\r\n {\r\n const separator = record.name.lastIndexOf(\"_\");\r\n if (separator < 0) continue;\r\n const prefix = record.name.slice(0, separator + 1);\r\n let info = this.#turretLocatorCountingInfo.get(prefix);\r\n if (!info)\r\n {\r\n info = { currentCount: 0, totalCount: 0 };\r\n this.#turretLocatorCountingInfo.set(prefix, info);\r\n }\r\n else info.currentCount = 0;\r\n if (updateTotal)\r\n {\r\n const number = Number.parseInt(record.name.slice(separator + 1, separator + 2), 10) || 0;\r\n info.totalCount = Math.max(info.totalCount, number);\r\n }\r\n }\r\n }\r\n\r\n #getTurretLocatorCountingInfo(name)\r\n {\r\n const info = this.#turretLocatorCountingInfo.get(name);\r\n return info ? { current: info.currentCount + 1, total: info.totalCount } : null;\r\n }\r\n\r\n #locatorRecords()\r\n {\r\n const records = [];\r\n for (let index = 0; index < this.locators.length; index++)\r\n {\r\n const locator = this.locators[index];\r\n const name = String(locator?.GetName?.() ?? locator?.name ?? \"\");\r\n if (name) records.push({ name, type: \"locator\", index, value: locator });\r\n }\r\n const updater = this.animationUpdater;\r\n const names = updater?.GetBoneNames?.() ?? updater?.boneNames ?? updater?.GetSkeleton?.()?.bones ?? updater?.skeleton?.bones ?? [];\r\n for (let index = 0; index < names.length; index++)\r\n {\r\n const value = names[index];\r\n const name = String(value?.name ?? value ?? \"\");\r\n if (name && !records.some(record => record.name === name)) records.push({ name, type: \"bone\", index, value });\r\n }\r\n return records;\r\n }\r\n\r\n #getLocatorRecordTransform(record, out)\r\n {\r\n if (record.type === \"bone\")\r\n {\r\n const value = this.animationUpdater?.GetBoneWorldTransform?.(record.name, out)\r\n ?? this.animationUpdater?.GetBoneTransform?.(record.index, out);\r\n if (value === false || value === null || value === undefined) return null;\r\n if (value?.length === 16 && value !== out) mat4.copy(out, value);\r\n return out;\r\n }\r\n const value = record.value?.GetTransform?.() ?? record.value?.transform;\r\n return value?.length === 16 ? mat4.copy(out, value) : null;\r\n }\r\n\r\n static #identity = mat4.create();\r\n static #locatorTransform = mat4.create();\r\n static #boundsMin = vec3.create();\r\n static #boundsMax = vec3.create();\r\n}\r\n"],"names":["_EveMobile","_identity","EveMobile","EveSpaceObject2","e","_init_turretSets","_init_extra_turretSets","_init_ActiveTurretCount","_init_extra_ActiveTurretCount","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","notify","persist","list","read","uint32","carbon","method","impl","implemented","adapted","reason","turretSets","ActiveTurretCount","Map","Initialize","RebuildTurretPositions","OnListModified","RegisterComponents","registry","GetComponentRegistry","display","turretSet","Register","UnRegisterComponents","UnRegister","GetTurretLocatorIndex","turretSetIndex","slotIndex","locators","index","length","records","name","String","locatorName","turretInName","includes","locatorNumber","counting","push","current","total","Number","slotNumber","baseName","matched","filter","record","startsWith","sort","a","b","localeCompare","locatorInfo","some","EveTurretSet","MAX_TURRETS_PER_SET","transform","SetLocalTransform","counter","get","currentCount","GetTurretLocatorCount","foundA","foundB","match","exec","count","GetActiveTurretCount","UpdateSyncronous","context","activeCount","setIndex","state","State","STATE_TARGETING","turretIndex","UpdateTurretTransforms","GetTurretTransform","swarmID","UpdateAsyncronous","UpdateTurretsAsyncronous","UpdateVisibility","_parentTransform","visible","GetRenderables","out","GetLocalBoundingBox","outMin","outMax","returnObject","vec3","create","result","min","max","SetControllerVariable","value","HandleControllerEvent","StartControllers","DisplayChildren","activationStrength","_turretSetIndex","worldTransform","#resetTurretLocatorCounter","updateTotal","separator","lastIndexOf","prefix","slice","info","totalCount","set","number","parseInt","Math","#getTurretLocatorCountingInfo","#locatorRecords","locator","GetName","updater","animationUpdater","names","GetBoneNames","boneNames","GetSkeleton","bones","skeleton","#getLocatorRecordTransform","GetBoneWorldTransform","GetBoneTransform","undefined","mat4","copy","GetTransform","constructor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EveMobile.js","sources":["../../../../src/eve/spaceObject/EveMobile.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\EveMobile.h\r\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\EveMobile.cpp\r\nimport { mat4 } from \"@carbonenginejs/runtime-utils/mat4\";\r\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\r\nimport { carbon, impl, io, type } from \"@carbonenginejs/runtime-utils/schema\";\r\nimport { EveTurretSet } from \"../attachment/turrets/EveTurretSet.js\";\r\nimport { EveSpaceObject2 } from \"./EveSpaceObject2.js\";\r\n\r\n\r\n/**\r\n * A space object that carries turret sets, keeping each set bound to the hull\r\n * locators or animated bones it fires from and tracking how many of its turrets\r\n * are active.\r\n */\r\n@type.define({ className: \"EveMobile\", family: \"eve/spaceObject\" })\r\nexport class EveMobile extends EveSpaceObject2\r\n{\r\n @io.notify\r\n @io.persist\r\n @type.list(\"EveTurretSet\")\r\n turretSets = [];\r\n\r\n @io.read\r\n @type.uint32\r\n ActiveTurretCount = 0;\r\n\r\n #turretSetsLocatorInfo = [];\r\n #turretLocatorCountingInfo = new Map();\r\n\r\n /**\r\n * Runs the base initialization, then seeds the turret locator counters from\r\n * the current locators and binds every turret set to them.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Initialize()\r\n {\r\n super.Initialize();\r\n this.#resetTurretLocatorCounter(true);\r\n this.RebuildTurretPositions();\r\n return true;\r\n }\r\n\r\n /** Rebinds the turret sets to their locators after the turret set list changes. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"List notifications are represented by a direct browser callback; registry ownership remains runtime-engine work.\")\r\n OnListModified()\r\n {\r\n this.RebuildTurretPositions();\r\n }\r\n\r\n /** Carbon EveMobile::RegisterComponents (cpp:109-120): base registration,\r\n * then forwards the turret sets. Gate m_display. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n super.RegisterComponents();\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.display)\r\n {\r\n for (const turretSet of this.turretSets)\r\n {\r\n turretSet?.Register?.(registry);\r\n }\r\n }\r\n }\r\n\r\n /** Carbon EveMobile::UnRegisterComponents (cpp:126-138): base, then forwards\r\n * the turret sets without re-checking display. */\r\n @carbon.method\r\n @impl.implemented\r\n UnRegisterComponents()\r\n {\r\n super.UnRegisterComponents();\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n for (const turretSet of this.turretSets)\r\n {\r\n turretSet?.UnRegister?.(registry);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Returns the locator index a turret slot was bound to, or 0 when the set or\r\n * slot has no binding.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetTurretLocatorIndex(turretSetIndex, slotIndex)\r\n {\r\n return this.#turretSetsLocatorInfo[turretSetIndex]?.locators?.[slotIndex]?.index ?? 0;\r\n }\r\n\r\n /**\r\n * Binds each turret set to the locators or animated bones whose names extend\r\n * its locator name, allocating sets that do not name a turret locator from the\r\n * shared locator_turret_ pool, and pushes each matched transform into the set\r\n * as a local turret transform up to the per-set turret limit.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Authored EveLocator2 transforms and optional animation-updater bone transforms replace Carbon's locator-type pointer surface.\")\r\n RebuildTurretPositions()\r\n {\r\n this.#turretSetsLocatorInfo.length = 0;\r\n this.#resetTurretLocatorCounter(false);\r\n const records = this.#locatorRecords();\r\n for (const turretSet of this.turretSets)\r\n {\r\n if (!turretSet) continue;\r\n let name = String(turretSet.locatorName ?? \"\");\r\n let turretInName = name.includes(\"_turret_\");\r\n let locatorNumber = 0;\r\n if (!turretInName)\r\n {\r\n let counting = this.#getTurretLocatorCountingInfo(name);\r\n if (!counting)\r\n {\r\n name = \"locator_turret_\";\r\n counting = this.#getTurretLocatorCountingInfo(name);\r\n turretInName = true;\r\n }\r\n if (!counting)\r\n {\r\n this.#turretSetsLocatorInfo.push({ type: \"none\", locators: [] });\r\n continue;\r\n }\r\n locatorNumber = counting.current;\r\n if (locatorNumber > counting.total)\r\n {\r\n if (!turretInName)\r\n {\r\n name = \"locator_turret_\";\r\n counting = this.#getTurretLocatorCountingInfo(name);\r\n turretInName = true;\r\n }\r\n if (!counting || counting.current > counting.total)\r\n {\r\n this.#turretSetsLocatorInfo.push({ type: \"none\", locators: [] });\r\n continue;\r\n }\r\n locatorNumber = counting.current;\r\n }\r\n }\r\n if (turretInName) locatorNumber = Number(turretSet.slotNumber) | 0;\r\n const baseName = `${name}${locatorNumber}`;\r\n const matched = records\r\n .filter(record => record.name.startsWith(baseName))\r\n .sort((a, b) => a.name.localeCompare(b.name));\r\n const locatorInfo = { type: matched.some(record => record.type === \"bone\") ? \"bone\" : \"locator\", locators: [] };\r\n for (let index = 0; index < matched.length && index < EveTurretSet.MAX_TURRETS_PER_SET; index++)\r\n {\r\n const record = matched[index];\r\n const transform = this.#getLocatorRecordTransform(record, EveMobile.#locatorTransform);\r\n if (!transform) continue;\r\n turretSet.SetLocalTransform?.(index, transform);\r\n locatorInfo.locators.push(record);\r\n }\r\n this.#turretSetsLocatorInfo.push(locatorInfo);\r\n const counter = this.#turretLocatorCountingInfo.get(name);\r\n if (counter) counter.currentCount++;\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Counts the unbroken run of locator_turret_<n>a/b locator pairs starting at\r\n * 1, returning 0 when the set of 'a' locators does not match the set of 'b'\r\n * locators.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetTurretLocatorCount()\r\n {\r\n let foundA = 0;\r\n let foundB = 0;\r\n for (const record of this.#locatorRecords())\r\n {\r\n const match = /^locator_turret_(\\d+)([ab])$/.exec(record.name);\r\n if (!match) continue;\r\n const index = Number(match[1]);\r\n if (!(index > 0 && index <= 32)) continue;\r\n if (match[2] === \"a\") foundA |= 1 << (index - 1);\r\n else foundB |= 1 << (index - 1);\r\n }\r\n if (foundA !== foundB && foundB) return 0;\r\n let count = 0;\r\n while (foundA & 1)\r\n {\r\n count++;\r\n foundA >>>= 1;\r\n }\r\n return count;\r\n }\r\n\r\n /**\r\n * Returns how many turret sets were past the targeting state at the last\r\n * synchronous update.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetActiveTurretCount()\r\n {\r\n return this.ActiveTurretCount;\r\n }\r\n\r\n /**\r\n * Runs the base synchronous update, refreshes bone-driven turret locator\r\n * transforms, updates every turret set against the hull transform, and\r\n * recounts the active turrets.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Animated locator transforms use an optional animation-updater bone contract; all turret state updates remain in Trinity.\")\r\n UpdateSyncronous(context)\r\n {\r\n super.UpdateSyncronous(context);\r\n let activeCount = 0;\r\n for (let setIndex = 0; setIndex < this.turretSets.length; setIndex++)\r\n {\r\n const turretSet = this.turretSets[setIndex];\r\n if (!turretSet) continue;\r\n if (turretSet.state > EveTurretSet.State.STATE_TARGETING) activeCount++;\r\n const locatorInfo = this.#turretSetsLocatorInfo[setIndex];\r\n if (locatorInfo?.type === \"bone\")\r\n {\r\n for (let turretIndex = 0; turretIndex < locatorInfo.locators.length; turretIndex++)\r\n {\r\n const transform = this.#getLocatorRecordTransform(locatorInfo.locators[turretIndex], EveMobile.#locatorTransform);\r\n if (transform) turretSet.SetLocalTransform?.(turretIndex, transform);\r\n }\r\n turretSet.UpdateTurretTransforms?.(this.GetTurretTransform(turretSet.swarmID));\r\n }\r\n turretSet.UpdateSyncronous?.(context, this.GetTurretTransform(turretSet.swarmID));\r\n }\r\n this.ActiveTurretCount = activeCount;\r\n return true;\r\n }\r\n\r\n /** Runs the base asynchronous update and then the turret sets. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateAsyncronous(context)\r\n {\r\n super.UpdateAsyncronous(context);\r\n return this.UpdateTurretsAsyncronous(context);\r\n }\r\n\r\n /**\r\n * Advances every turret set's asynchronous work, handing it the hull transform\r\n * as its parent placement.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon's native ParentData constant buffers collapse to the portable parent transform required by turret graph updates.\")\r\n UpdateTurretsAsyncronous(context)\r\n {\r\n for (const turretSet of this.turretSets) turretSet?.UpdateAsyncronous?.(context, { transform: this.GetTurretTransform(turretSet.swarmID) });\r\n return true;\r\n }\r\n\r\n /**\r\n * Runs the base visibility pass and, while display is on, forwards visibility\r\n * to the turret sets.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateVisibility(context, _parentTransform = EveMobile.#identity)\r\n {\r\n const visible = super.UpdateVisibility(context, _parentTransform);\r\n if (!this.display) return false;\r\n for (const turretSet of this.turretSets) turretSet?.UpdateVisibility?.(context);\r\n return visible;\r\n }\r\n\r\n /**\r\n * Appends the base renderables followed by every turret set's renderables;\r\n * nothing is appended while display is off.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetRenderables(out = [])\r\n {\r\n if (!this.display) return out;\r\n super.GetRenderables(out);\r\n for (const turretSet of this.turretSets) turretSet?.GetRenderables?.(out);\r\n return out;\r\n }\r\n\r\n /**\r\n * Returns the hull's local bounding box grown to contain every turret set's\r\n * box; with out parameters it fills them and returns true, without them it\r\n * returns a { min, max } object.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetLocalBoundingBox(outMin, outMax)\r\n {\r\n const returnObject = !outMin || !outMax;\r\n outMin ??= vec3.create();\r\n outMax ??= vec3.create();\r\n const result = super.GetLocalBoundingBox(outMin, outMax);\r\n if (result === false) return false;\r\n for (const turretSet of this.turretSets)\r\n {\r\n if (turretSet?.GetLocalBoundingBox?.(EveMobile.#boundsMin, EveMobile.#boundsMax))\r\n {\r\n vec3.min(outMin, outMin, EveMobile.#boundsMin);\r\n vec3.max(outMax, outMax, EveMobile.#boundsMax);\r\n }\r\n }\r\n return returnObject ? { min: outMin, max: outMax } : true;\r\n }\r\n\r\n /** Sets a controller variable on the hull and forwards it to every turret set. */\r\n @carbon.method\r\n @impl.implemented\r\n SetControllerVariable(name, value)\r\n {\r\n super.SetControllerVariable(name, value);\r\n for (const turretSet of this.turretSets) turretSet?.SetControllerVariable?.(name, value);\r\n }\r\n\r\n /** Raises a controller event on the hull and forwards it to every turret set. */\r\n @carbon.method\r\n @impl.implemented\r\n HandleControllerEvent(name)\r\n {\r\n super.HandleControllerEvent(name);\r\n for (const turretSet of this.turretSets) turretSet?.HandleControllerEvent?.(name);\r\n }\r\n\r\n /** Starts the hull's controllers and every turret set's controllers. */\r\n @carbon.method\r\n @impl.implemented\r\n StartControllers()\r\n {\r\n super.StartControllers();\r\n for (const turretSet of this.turretSets) turretSet?.StartControllers?.();\r\n }\r\n\r\n /**\r\n * Children, turret sets and boosters are shown only while activation strength\r\n * is above 0.5.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n DisplayChildren()\r\n {\r\n return this.activationStrength > 0.5;\r\n }\r\n\r\n /**\r\n * Returns the parent transform turret sets are placed against - the live hull\r\n * world transform, regardless of swarm index.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetTurretTransform(_turretSetIndex = 0)\r\n {\r\n return this.worldTransform;\r\n }\r\n\r\n /**\r\n * Rebuilds the per-name-prefix counters that allocate turret sets to numbered\r\n * locators, resetting each prefix's running count and, when asked, recomputing\r\n * its total from the digit that follows the prefix.\r\n */\r\n #resetTurretLocatorCounter(updateTotal)\r\n {\r\n for (const record of this.#locatorRecords())\r\n {\r\n const separator = record.name.lastIndexOf(\"_\");\r\n if (separator < 0) continue;\r\n const prefix = record.name.slice(0, separator + 1);\r\n let info = this.#turretLocatorCountingInfo.get(prefix);\r\n if (!info)\r\n {\r\n info = { currentCount: 0, totalCount: 0 };\r\n this.#turretLocatorCountingInfo.set(prefix, info);\r\n }\r\n else info.currentCount = 0;\r\n if (updateTotal)\r\n {\r\n const number = Number.parseInt(record.name.slice(separator + 1, separator + 2), 10) || 0;\r\n info.totalCount = Math.max(info.totalCount, number);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Returns the next locator number to allocate for a name prefix together with\r\n * that prefix's total, or null when the prefix is unknown.\r\n */\r\n #getTurretLocatorCountingInfo(name)\r\n {\r\n const info = this.#turretLocatorCountingInfo.get(name);\r\n return info ? { current: info.currentCount + 1, total: info.totalCount } : null;\r\n }\r\n\r\n /**\r\n * Builds the name-keyed list of authored locators and animation-updater bones\r\n * that turret binding searches; a bone whose name is already taken by a\r\n * locator is skipped.\r\n */\r\n #locatorRecords()\r\n {\r\n const records = [];\r\n for (let index = 0; index < this.locators.length; index++)\r\n {\r\n const locator = this.locators[index];\r\n const name = String(locator?.GetName?.() ?? locator?.name ?? \"\");\r\n if (name) records.push({ name, type: \"locator\", index, value: locator });\r\n }\r\n const updater = this.animationUpdater;\r\n const names = updater?.GetBoneNames?.() ?? updater?.boneNames ?? updater?.GetSkeleton?.()?.bones ?? updater?.skeleton?.bones ?? [];\r\n for (let index = 0; index < names.length; index++)\r\n {\r\n const value = names[index];\r\n const name = String(value?.name ?? value ?? \"\");\r\n if (name && !records.some(record => record.name === name)) records.push({ name, type: \"bone\", index, value });\r\n }\r\n return records;\r\n }\r\n\r\n /**\r\n * Copies a locator record's transform into the caller-owned out matrix - the\r\n * animated bone world transform for bone records, the authored transform for\r\n * locator records - and returns null when neither is available.\r\n */\r\n #getLocatorRecordTransform(record, out)\r\n {\r\n if (record.type === \"bone\")\r\n {\r\n const value = this.animationUpdater?.GetBoneWorldTransform?.(record.name, out)\r\n ?? this.animationUpdater?.GetBoneTransform?.(record.index, out);\r\n if (value === false || value === null || value === undefined) return null;\r\n if (value?.length === 16 && value !== out) mat4.copy(out, value);\r\n return out;\r\n }\r\n const value = record.value?.GetTransform?.() ?? record.value?.transform;\r\n return value?.length === 16 ? mat4.copy(out, value) : null;\r\n }\r\n\r\n static #identity = mat4.create();\r\n static #locatorTransform = mat4.create();\r\n static #boundsMin = vec3.create();\r\n static #boundsMax = vec3.create();\r\n}\r\n"],"names":["_EveMobile","_identity","EveMobile","EveSpaceObject2","e","_init_turretSets","_init_extra_turretSets","_init_ActiveTurretCount","_init_extra_ActiveTurretCount","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","notify","persist","list","read","uint32","carbon","method","impl","implemented","adapted","reason","turretSets","ActiveTurretCount","Map","Initialize","RebuildTurretPositions","OnListModified","RegisterComponents","registry","GetComponentRegistry","display","turretSet","Register","UnRegisterComponents","UnRegister","GetTurretLocatorIndex","turretSetIndex","slotIndex","locators","index","length","records","name","String","locatorName","turretInName","includes","locatorNumber","counting","push","current","total","Number","slotNumber","baseName","matched","filter","record","startsWith","sort","a","b","localeCompare","locatorInfo","some","EveTurretSet","MAX_TURRETS_PER_SET","transform","SetLocalTransform","counter","get","currentCount","GetTurretLocatorCount","foundA","foundB","match","exec","count","GetActiveTurretCount","UpdateSyncronous","context","activeCount","setIndex","state","State","STATE_TARGETING","turretIndex","UpdateTurretTransforms","GetTurretTransform","swarmID","UpdateAsyncronous","UpdateTurretsAsyncronous","UpdateVisibility","_parentTransform","visible","GetRenderables","out","GetLocalBoundingBox","outMin","outMax","returnObject","vec3","create","result","min","max","SetControllerVariable","value","HandleControllerEvent","StartControllers","DisplayChildren","activationStrength","_turretSetIndex","worldTransform","#resetTurretLocatorCounter","updateTotal","separator","lastIndexOf","prefix","slice","info","totalCount","set","number","parseInt","Math","#getTurretLocatorCountingInfo","#locatorRecords","locator","GetName","updater","animationUpdater","names","GetBoneNames","boneNames","GetSkeleton","bones","skeleton","#getLocatorRecordTransform","GetBoneWorldTransform","GetBoneTransform","undefined","mat4","copy","GetTransform","constructor"],"mappings":"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"}
|
|
@@ -6,6 +6,11 @@ import { io, type, carbon, impl } from '@carbonenginejs/runtime-utils/schema';
|
|
|
6
6
|
import { EveTransform as _EveTransform } from './EveTransform.js';
|
|
7
7
|
|
|
8
8
|
let _initProto, _initClass, _init_boundingSphereRadius, _init_extra_boundingSphereRadius, _init_rotationCurve, _init_extra_rotationCurve, _init_modelTranslationCurve, _init_extra_modelTranslationCurve, _init_modelRotationCurve, _init_extra_modelRotationCurve, _init_translationCurve, _init_extra_translationCurve;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* A detached transform root whose own ball and model curves drive its matrix and
|
|
12
|
+
* which stands in as a single targetable point for missiles and impacts.
|
|
13
|
+
*/
|
|
9
14
|
let _EveRootTransform;
|
|
10
15
|
new class extends _identity {
|
|
11
16
|
static [class EveRootTransform extends _EveTransform {
|
|
@@ -142,6 +147,18 @@ new class extends _identity {
|
|
|
142
147
|
GetBoundingSphereRadius() {
|
|
143
148
|
return this.boundingSphereRadius;
|
|
144
149
|
}
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Reads a numeric value from the update context, preferring a getter method
|
|
153
|
+
* and falling back to the named properties, and yields 0 when nothing supplies
|
|
154
|
+
* it.
|
|
155
|
+
*/
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Samples a curve into out through whichever of Update or GetValueAt it
|
|
159
|
+
* exposes, writing the fallback when there is no curve and copying back curves
|
|
160
|
+
* that return a new array instead of filling out.
|
|
161
|
+
*/
|
|
145
162
|
}];
|
|
146
163
|
#GetContextValue(context, methodName, ...propertyNames) {
|
|
147
164
|
const method = context?.[methodName];
|