@carbonenginejs/runtime-trinity 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -243
- package/dist/controllers/CjsControllerExpressionProgram.js +157 -0
- package/dist/controllers/CjsControllerExpressionProgram.js.map +1 -1
- package/dist/controllers/ITr2ControllerAction.js +57 -0
- package/dist/controllers/ITr2ControllerAction.js.map +1 -1
- package/dist/controllers/Tr2ActionAnimateCurveSet.js +10 -0
- package/dist/controllers/Tr2ActionAnimateCurveSet.js.map +1 -1
- package/dist/controllers/Tr2ActionAnimateValue.js +26 -0
- package/dist/controllers/Tr2ActionAnimateValue.js.map +1 -1
- package/dist/controllers/Tr2ActionBindRTPC.js +11 -0
- package/dist/controllers/Tr2ActionBindRTPC.js.map +1 -1
- package/dist/controllers/Tr2ActionCallback.js +5 -0
- package/dist/controllers/Tr2ActionCallback.js.map +1 -1
- package/dist/controllers/Tr2ActionChildEffect.js +63 -0
- package/dist/controllers/Tr2ActionChildEffect.js.map +1 -1
- package/dist/controllers/Tr2ActionOverlay.js +68 -0
- package/dist/controllers/Tr2ActionOverlay.js.map +1 -1
- package/dist/controllers/Tr2ActionPlayCurveSet.js +16 -0
- package/dist/controllers/Tr2ActionPlayCurveSet.js.map +1 -1
- package/dist/controllers/Tr2ActionPlayMeshAnimation.js +29 -0
- package/dist/controllers/Tr2ActionPlayMeshAnimation.js.map +1 -1
- package/dist/controllers/Tr2ActionPlaySound.js +11 -0
- package/dist/controllers/Tr2ActionPlaySound.js.map +1 -1
- package/dist/controllers/Tr2ActionPython.js +11 -0
- package/dist/controllers/Tr2ActionPython.js.map +1 -1
- package/dist/controllers/Tr2ActionResetClipSphereCenter.js +17 -0
- package/dist/controllers/Tr2ActionResetClipSphereCenter.js.map +1 -1
- package/dist/controllers/Tr2ActionSetAttenuationScaling.js +5 -0
- package/dist/controllers/Tr2ActionSetAttenuationScaling.js.map +1 -1
- package/dist/controllers/Tr2ActionSetAudioEmitterPrefix.js +5 -0
- package/dist/controllers/Tr2ActionSetAudioEmitterPrefix.js.map +1 -1
- package/dist/controllers/Tr2ActionSetAudioSwitch.js +5 -0
- package/dist/controllers/Tr2ActionSetAudioSwitch.js.map +1 -1
- package/dist/controllers/Tr2ActionSetExternalControllerVariable.js +23 -0
- package/dist/controllers/Tr2ActionSetExternalControllerVariable.js.map +1 -1
- package/dist/controllers/Tr2ActionSetShaderOption.js +5 -0
- package/dist/controllers/Tr2ActionSetShaderOption.js.map +1 -1
- package/dist/controllers/Tr2ActionSetValue.js +35 -0
- package/dist/controllers/Tr2ActionSetValue.js.map +1 -1
- package/dist/controllers/Tr2ActionSpawnParticles.js +10 -0
- package/dist/controllers/Tr2ActionSpawnParticles.js.map +1 -1
- package/dist/controllers/Tr2BindingPoint.js +67 -0
- package/dist/controllers/Tr2BindingPoint.js.map +1 -1
- package/dist/controllers/Tr2Controller.js +37 -0
- package/dist/controllers/Tr2Controller.js.map +1 -1
- package/dist/controllers/Tr2ControllerEventHandler.js +10 -0
- package/dist/controllers/Tr2ControllerEventHandler.js.map +1 -1
- package/dist/controllers/Tr2ControllerExpression.js +17 -0
- package/dist/controllers/Tr2ControllerExpression.js.map +1 -1
- package/dist/controllers/Tr2ControllerFloatVariable.js +6 -0
- package/dist/controllers/Tr2ControllerFloatVariable.js.map +1 -1
- package/dist/controllers/Tr2ControllerReference.js +11 -0
- package/dist/controllers/Tr2ControllerReference.js.map +1 -1
- package/dist/controllers/Tr2StateMachine.js +17 -0
- package/dist/controllers/Tr2StateMachine.js.map +1 -1
- package/dist/controllers/Tr2StateMachineState.js +47 -0
- package/dist/controllers/Tr2StateMachineState.js.map +1 -1
- package/dist/controllers/Tr2StateMachineTransition.js +29 -0
- package/dist/controllers/Tr2StateMachineTransition.js.map +1 -1
- package/dist/controllers/Tr2SyncToAnimation.js +5 -0
- package/dist/controllers/Tr2SyncToAnimation.js.map +1 -1
- package/dist/controllers/Tr2TimelineController.js +61 -0
- package/dist/controllers/Tr2TimelineController.js.map +1 -1
- package/dist/controllers/contracts.js +24 -1
- package/dist/controllers/contracts.js.map +1 -1
- package/dist/controllers/index.js +1 -1
- package/dist/curves/CjsGrannyCurves.js +150 -0
- package/dist/curves/CjsGrannyCurves.js.map +1 -1
- package/dist/curves/Tr2BoneMatrixCurve.js +23 -0
- package/dist/curves/Tr2BoneMatrixCurve.js.map +1 -1
- package/dist/curves/Tr2CameraFollowCurveKey.js +6 -0
- package/dist/curves/Tr2CameraFollowCurveKey.js.map +1 -1
- package/dist/curves/Tr2CurveColor.js +6 -0
- package/dist/curves/Tr2CurveColor.js.map +1 -1
- package/dist/curves/Tr2CurveColorMixer.js +6 -0
- package/dist/curves/Tr2CurveColorMixer.js.map +1 -1
- package/dist/curves/Tr2CurveCombiner.js +5 -0
- package/dist/curves/Tr2CurveCombiner.js.map +1 -1
- package/dist/curves/Tr2CurveConstant.js +16 -0
- package/dist/curves/Tr2CurveConstant.js.map +1 -1
- package/dist/curves/Tr2CurveEulerRotation.js +5 -0
- package/dist/curves/Tr2CurveEulerRotation.js.map +1 -1
- package/dist/curves/Tr2CurveEulerRotationExpression.js +66 -0
- package/dist/curves/Tr2CurveEulerRotationExpression.js.map +1 -1
- package/dist/curves/Tr2CurveQuaternion.js +5 -0
- package/dist/curves/Tr2CurveQuaternion.js.map +1 -1
- package/dist/curves/Tr2CurveQuaternionKey.js +5 -0
- package/dist/curves/Tr2CurveQuaternionKey.js.map +1 -1
- package/dist/curves/Tr2CurveRandomAxisRotation.js +28 -0
- package/dist/curves/Tr2CurveRandomAxisRotation.js.map +1 -1
- package/dist/curves/Tr2CurveScalar.js +35 -0
- package/dist/curves/Tr2CurveScalar.js.map +1 -1
- package/dist/curves/Tr2CurveScalarExpression.js +11 -0
- package/dist/curves/Tr2CurveScalarExpression.js.map +1 -1
- package/dist/curves/Tr2CurveScalarKey.js +6 -0
- package/dist/curves/Tr2CurveScalarKey.js.map +1 -1
- package/dist/curves/Tr2CurveSetRange.js +5 -0
- package/dist/curves/Tr2CurveSetRange.js.map +1 -1
- package/dist/curves/Tr2CurveVector2.js +5 -0
- package/dist/curves/Tr2CurveVector2.js.map +1 -1
- package/dist/curves/Tr2CurveVector3.js +5 -0
- package/dist/curves/Tr2CurveVector3.js.map +1 -1
- package/dist/curves/Tr2CurveVector3Expression.js +71 -0
- package/dist/curves/Tr2CurveVector3Expression.js.map +1 -1
- package/dist/curves/Tr2CurveVector3Lerp.js +6 -0
- package/dist/curves/Tr2CurveVector3Lerp.js.map +1 -1
- package/dist/curves/Tr2DistanceTracker.js +6 -0
- package/dist/curves/Tr2DistanceTracker.js.map +1 -1
- package/dist/curves/Tr2FollowCurve.js +6 -0
- package/dist/curves/Tr2FollowCurve.js.map +1 -1
- package/dist/curves/Tr2GrannyEventTrack.js +5 -0
- package/dist/curves/Tr2GrannyEventTrack.js.map +1 -1
- package/dist/curves/Tr2GrannyTrack.js +6 -0
- package/dist/curves/Tr2GrannyTrack.js.map +1 -1
- package/dist/curves/Tr2GrannyTransformTrack.js +6 -0
- package/dist/curves/Tr2GrannyTransformTrack.js.map +1 -1
- package/dist/curves/Tr2GrannyVectorTrack.js +5 -0
- package/dist/curves/Tr2GrannyVectorTrack.js.map +1 -1
- package/dist/curves/Tr2MatrixKey.js +5 -0
- package/dist/curves/Tr2MatrixKey.js.map +1 -1
- package/dist/curves/Tr2ObjectFollowCurveKey.js +6 -0
- package/dist/curves/Tr2ObjectFollowCurveKey.js.map +1 -1
- package/dist/curves/Tr2QuaternionLerpCurve.js +6 -0
- package/dist/curves/Tr2QuaternionLerpCurve.js.map +1 -1
- package/dist/curves/Tr2RotationAdapter.js +6 -0
- package/dist/curves/Tr2RotationAdapter.js.map +1 -1
- package/dist/curves/Tr2ScalarExprKey.js +18 -0
- package/dist/curves/Tr2ScalarExprKey.js.map +1 -1
- package/dist/curves/Tr2ScalarExprKeyCurve.js +23 -0
- package/dist/curves/Tr2ScalarExprKeyCurve.js.map +1 -1
- package/dist/curves/Tr2ScalarFader.js +11 -0
- package/dist/curves/Tr2ScalarFader.js.map +1 -1
- package/dist/curves/Tr2TranslationAdapter.js +6 -0
- package/dist/curves/Tr2TranslationAdapter.js.map +1 -1
- package/dist/curves/TriColorSequencer.js +6 -0
- package/dist/curves/TriColorSequencer.js.map +1 -1
- package/dist/curves/TriCurveSet.js +23 -0
- package/dist/curves/TriCurveSet.js.map +1 -1
- package/dist/curves/TriEventCurve.js +23 -0
- package/dist/curves/TriEventCurve.js.map +1 -1
- package/dist/curves/TriEventKey.js +5 -0
- package/dist/curves/TriEventKey.js.map +1 -1
- package/dist/curves/TriPerlinCurve.js +30 -0
- package/dist/curves/TriPerlinCurve.js.map +1 -1
- package/dist/curves/TriVectorSequencer.js +6 -0
- package/dist/curves/TriVectorSequencer.js.map +1 -1
- package/dist/eve/AudioGameObject.js +89 -1
- package/dist/eve/AudioGameObject.js.map +1 -1
- package/dist/eve/BackAndForthData.js +7 -0
- package/dist/eve/BackAndForthData.js.map +1 -1
- package/dist/eve/CjsDistributionRandom.js +6 -0
- package/dist/eve/CjsDistributionRandom.js.map +1 -1
- package/dist/eve/CjsEveThrottleableState.js +11 -0
- package/dist/eve/CjsEveThrottleableState.js.map +1 -1
- package/dist/eve/EveChildUpdateParams.js +7 -0
- package/dist/eve/EveChildUpdateParams.js.map +1 -1
- package/dist/eve/EveComponentTypes.js.map +1 -1
- package/dist/eve/EveCustomMask.js +58 -27
- package/dist/eve/EveCustomMask.js.map +1 -1
- package/dist/eve/EveDistanceField.js +84 -0
- package/dist/eve/EveDistanceField.js.map +1 -1
- package/dist/eve/EveEntity.js +138 -0
- package/dist/eve/EveEntity.js.map +1 -0
- package/dist/eve/EveImpactOverlay.js +61 -0
- package/dist/eve/EveImpactOverlay.js.map +1 -1
- package/dist/eve/EveLODHelper.js +17 -13
- package/dist/eve/EveLODHelper.js.map +1 -1
- package/dist/eve/EveLineData.js +2 -0
- package/dist/eve/EveLineData.js.map +1 -1
- package/dist/eve/EveThrottleable.js +11 -0
- package/dist/eve/EveThrottleable.js.map +1 -1
- package/dist/eve/FollowASplineData.js +7 -0
- package/dist/eve/FollowASplineData.js.map +1 -1
- package/dist/eve/FormationData.js +6 -0
- package/dist/eve/FormationData.js.map +1 -1
- package/dist/eve/InertiaData.js +7 -0
- package/dist/eve/InertiaData.js.map +1 -1
- package/dist/eve/PlacementDataWithIdentifier.js +7 -0
- package/dist/eve/PlacementDataWithIdentifier.js.map +1 -1
- package/dist/eve/PlayFXData.js +7 -0
- package/dist/eve/PlayFXData.js.map +1 -1
- package/dist/eve/SeekTargetData.js +7 -0
- package/dist/eve/SeekTargetData.js.map +1 -1
- package/dist/eve/{EveSpaceObjectAttachmentUtils.js → attachment/EveSpaceObjectAttachmentUtils.js} +11 -11
- package/dist/eve/attachment/EveSpaceObjectAttachmentUtils.js.map +1 -0
- package/dist/eve/attachment/banner/EveBannerItem.js +70 -0
- package/dist/eve/attachment/banner/EveBannerItem.js.map +1 -0
- package/dist/eve/{EveBannerLight.js → attachment/banner/EveBannerLight.js} +13 -2
- package/dist/eve/attachment/banner/EveBannerLight.js.map +1 -0
- package/dist/eve/attachment/banner/EveBannerSet.js +537 -0
- package/dist/eve/attachment/banner/EveBannerSet.js.map +1 -0
- package/dist/eve/{EveBoosterSet2.js → attachment/booster/EveBoosterSet2.js} +204 -35
- package/dist/eve/attachment/booster/EveBoosterSet2.js.map +1 -0
- package/dist/eve/{EveBoosterSet2Renderable.js → attachment/booster/EveBoosterSet2Renderable.js} +205 -12
- package/dist/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -0
- package/dist/eve/{EveTrailsSet.js → attachment/booster/EveTrailsSet.js} +49 -1
- package/dist/eve/attachment/booster/EveTrailsSet.js.map +1 -0
- package/dist/eve/attachment/decal/EveSpaceObjectDecal.js +512 -0
- package/dist/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -0
- package/dist/eve/{EveHazeSet.js → attachment/haze/EveHazeSet.js} +65 -6
- package/dist/eve/attachment/haze/EveHazeSet.js.map +1 -0
- package/dist/eve/attachment/haze/EveHazeSetItem.js +64 -0
- package/dist/eve/attachment/haze/EveHazeSetItem.js.map +1 -0
- package/dist/eve/{EveHazeSetLight.js → attachment/haze/EveHazeSetLight.js} +13 -2
- package/dist/eve/attachment/haze/EveHazeSetLight.js.map +1 -0
- package/dist/eve/attachment/itemSetBounds.js +131 -0
- package/dist/eve/attachment/itemSetBounds.js.map +1 -0
- package/dist/eve/{EvePlaneLight.js → attachment/plane/EvePlaneLight.js} +14 -2
- package/dist/eve/attachment/plane/EvePlaneLight.js.map +1 -0
- package/dist/eve/{EvePlaneSet.js → attachment/plane/EvePlaneSet.js} +119 -7
- package/dist/eve/attachment/plane/EvePlaneSet.js.map +1 -0
- package/dist/eve/attachment/plane/EvePlaneSetItem.js +72 -0
- package/dist/eve/attachment/plane/EvePlaneSetItem.js.map +1 -0
- package/dist/eve/{EveSpotlightLight.js → attachment/spotlight/EveSpotlightLight.js} +13 -2
- package/dist/eve/attachment/spotlight/EveSpotlightLight.js.map +1 -0
- package/dist/eve/{EveSpotlightSet.js → attachment/spotlight/EveSpotlightSet.js} +86 -6
- package/dist/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -0
- package/dist/eve/attachment/spotlight/EveSpotlightSetItem.js +61 -0
- package/dist/eve/attachment/spotlight/EveSpotlightSetItem.js.map +1 -0
- package/dist/eve/{EveSpriteLight.js → attachment/sprite/EveSpriteLight.js} +14 -2
- package/dist/eve/attachment/sprite/EveSpriteLight.js.map +1 -0
- package/dist/eve/{EveSpriteLineSet.js → attachment/sprite/EveSpriteLineSet.js} +69 -7
- package/dist/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -0
- package/dist/eve/{EveSpriteLineSetItem.js → attachment/sprite/EveSpriteLineSetItem.js} +29 -4
- package/dist/eve/attachment/sprite/EveSpriteLineSetItem.js.map +1 -0
- package/dist/eve/{EveSpriteSet.js → attachment/sprite/EveSpriteSet.js} +87 -8
- package/dist/eve/attachment/sprite/EveSpriteSet.js.map +1 -0
- package/dist/{generated/eve/attachment/sprites → eve/attachment/sprite}/EveSpriteSetItem.js +23 -26
- package/dist/eve/attachment/sprite/EveSpriteSetItem.js.map +1 -0
- package/dist/eve/attachment/turrets/EveTurretFiringFX.js +184 -2
- package/dist/eve/attachment/turrets/EveTurretFiringFX.js.map +1 -1
- package/dist/eve/attachment/turrets/EveTurretSet.js +236 -7
- package/dist/eve/attachment/turrets/EveTurretSet.js.map +1 -1
- package/dist/eve/attachment/turrets/EveTurretTarget.js +112 -0
- package/dist/eve/attachment/turrets/EveTurretTarget.js.map +1 -1
- package/dist/eve/camera/EveCamera.js +644 -0
- package/dist/eve/camera/EveCamera.js.map +1 -0
- package/dist/eve/child/EveChildAudio.js +63 -0
- package/dist/eve/child/EveChildAudio.js.map +1 -1
- package/dist/eve/child/EveChildBehaviorSystem.js +412 -0
- package/dist/eve/child/EveChildBehaviorSystem.js.map +1 -0
- package/dist/{generated/eve → eve}/child/EveChildBulletStorm.js +41 -3
- package/dist/eve/child/EveChildBulletStorm.js.map +1 -0
- package/dist/eve/child/EveChildContainer.js +175 -16
- package/dist/eve/child/EveChildContainer.js.map +1 -1
- package/dist/eve/child/EveChildEffectPropagator.js +1 -1
- package/dist/eve/child/EveChildEffectPropagator.js.map +1 -1
- package/dist/eve/child/EveChildFogVolume.js +72 -0
- package/dist/eve/child/EveChildFogVolume.js.map +1 -1
- package/dist/eve/child/EveChildInheritProperties.js +17 -0
- package/dist/eve/child/EveChildInheritProperties.js.map +1 -1
- package/dist/eve/child/EveChildInstancedMeshes.js +211 -1
- package/dist/eve/child/EveChildInstancedMeshes.js.map +1 -1
- package/dist/eve/child/EveChildLightingOverride.js +74 -0
- package/dist/eve/child/EveChildLightingOverride.js.map +1 -1
- package/dist/{generated/eve → eve}/child/EveChildLink.js +17 -16
- package/dist/eve/child/EveChildLink.js.map +1 -0
- package/dist/eve/child/EveChildMesh.js +351 -105
- package/dist/eve/child/EveChildMesh.js.map +1 -1
- package/dist/eve/child/EveChildSpherePin.js +108 -0
- package/dist/eve/child/EveChildSpherePin.js.map +1 -0
- package/dist/eve/child/EveChildTransform.js +44 -1
- package/dist/eve/child/EveChildTransform.js.map +1 -1
- package/dist/eve/child/IEveSpaceObjectChild.js +5 -0
- package/dist/eve/child/IEveSpaceObjectChild.js.map +1 -1
- package/dist/eve/child/behaviors/CollisionAvoidance.js +112 -0
- package/dist/eve/child/behaviors/CollisionAvoidance.js.map +1 -0
- package/dist/eve/child/behaviors/InclusionVolume.js +131 -0
- package/dist/eve/child/behaviors/InclusionVolume.js.map +1 -0
- package/dist/eve/child/behaviors/Wander.js +99 -0
- package/dist/eve/child/behaviors/Wander.js.map +1 -0
- package/dist/{generated/eve → eve}/child/behaviors/enums.js +1 -1
- package/dist/eve/child/behaviors/enums.js.map +1 -0
- package/dist/eve/child/behaviors/lifecycle/ProcessLifetime.js +540 -0
- package/dist/eve/child/behaviors/lifecycle/ProcessLifetime.js.map +1 -0
- package/dist/eve/{ProcessLifetimeData.js → child/behaviors/lifecycle/ProcessLifetimeData.js} +8 -2
- package/dist/eve/child/behaviors/lifecycle/ProcessLifetimeData.js.map +1 -0
- package/dist/eve/child/behaviors/{SplineTunnel.js → tunnels/SplineTunnel.js} +9 -7
- package/dist/eve/child/behaviors/tunnels/SplineTunnel.js.map +1 -0
- package/dist/eve/child/behaviors/tunnels/SplineTunnelGroup.js +211 -0
- package/dist/eve/child/behaviors/tunnels/SplineTunnelGroup.js.map +1 -0
- package/dist/eve/child/behaviors/{SplineTunnelPoint.js → tunnels/SplineTunnelPoint.js} +3 -3
- package/dist/eve/child/behaviors/tunnels/SplineTunnelPoint.js.map +1 -0
- package/dist/eve/child/lineSetPaths/EveBezierCurve.js +65 -0
- package/dist/eve/child/lineSetPaths/EveBezierCurve.js.map +1 -1
- package/dist/eve/child/lineSetPaths/EveCircle.js +63 -0
- package/dist/eve/child/lineSetPaths/EveCircle.js.map +1 -1
- package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierAttachToBone.js +24 -16
- package/dist/eve/child/modifiers/EveChildModifierAttachToBone.js.map +1 -0
- package/dist/eve/child/modifiers/EveChildModifierBillboard2D.js +5 -0
- package/dist/eve/child/modifiers/EveChildModifierBillboard2D.js.map +1 -1
- package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierBillboard3D.js +22 -19
- package/dist/eve/child/modifiers/EveChildModifierBillboard3D.js.map +1 -0
- package/dist/eve/child/modifiers/EveChildModifierBooster.js +6 -0
- package/dist/eve/child/modifiers/EveChildModifierBooster.js.map +1 -1
- package/dist/eve/child/modifiers/EveChildModifierCameraOrientedRotationConstrained.js +5 -0
- package/dist/eve/child/modifiers/EveChildModifierCameraOrientedRotationConstrained.js.map +1 -1
- package/dist/eve/child/modifiers/EveChildModifierHalo.js +5 -0
- package/dist/eve/child/modifiers/EveChildModifierHalo.js.map +1 -1
- package/dist/eve/child/modifiers/EveChildModifierHaloInverted.js +6 -0
- package/dist/eve/child/modifiers/EveChildModifierHaloInverted.js.map +1 -1
- package/dist/eve/child/modifiers/EveChildModifierSRT.js +5 -0
- package/dist/eve/child/modifiers/EveChildModifierSRT.js.map +1 -1
- package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierStretch.js +31 -17
- package/dist/eve/child/modifiers/EveChildModifierStretch.js.map +1 -0
- package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierTranslateWithCamera.js +16 -14
- package/dist/eve/child/modifiers/EveChildModifierTranslateWithCamera.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/EveChildProceduralContainer.js +11 -4
- package/dist/eve/child/procedural/EveChildProceduralContainer.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodAttributeMap.js +12 -12
- package/dist/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js +6 -6
- package/dist/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodCycling.js +12 -12
- package/dist/eve/child/procedural/selection/EveProceduralMethodCycling.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodCyclingParameter.js +8 -8
- package/dist/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodRandom.js +17 -17
- package/dist/eve/child/procedural/selection/EveProceduralMethodRandom.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodRandomParameter.js +7 -7
- package/dist/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodThresholdParameter.js +7 -7
- package/dist/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js.map +1 -0
- package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodThresholds.js +17 -17
- package/dist/eve/child/procedural/selection/EveProceduralMethodThresholds.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/EveBaseDistributionMethod.js +132 -3
- package/dist/eve/distribution/EveBaseDistributionMethod.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js +12 -1
- package/dist/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js +9 -1
- package/dist/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js +12 -1
- package/dist/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js.map +1 -0
- package/dist/eve/distribution/attributeModifiers/enums.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorLocators.js +16 -3
- package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js +31 -3
- package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorVolume.js +34 -3
- package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js +14 -2
- package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js +13 -2
- package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js +13 -2
- package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js +13 -2
- package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerBurst.js +19 -1
- package/dist/eve/distribution/spawners/EveDistributionSpawnerBurst.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerControllerTrigger.js +25 -1
- package/dist/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerInterval.js +17 -1
- package/dist/eve/distribution/spawners/EveDistributionSpawnerInterval.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerPlane.js +20 -1
- package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerSnake.js +20 -1
- package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js.map +1 -0
- package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerSphere.js +20 -1
- package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js.map +1 -0
- package/dist/{generated/eve/effect → eve/effect/lensflare}/EveLensflare.js +44 -2
- package/dist/eve/effect/lensflare/EveLensflare.js.map +1 -0
- package/dist/eve/effect/multiEffect/EveMultiEffect.js +302 -0
- package/dist/eve/effect/multiEffect/EveMultiEffect.js.map +1 -0
- package/dist/eve/effect/multiEffect/EveMultiEffectParameter.js +92 -0
- package/dist/eve/effect/multiEffect/EveMultiEffectParameter.js.map +1 -0
- package/dist/eve/index.js +117 -47
- package/dist/eve/index.js.map +1 -1
- package/dist/eve/lights/CjsLightData.js +7 -0
- package/dist/eve/lights/CjsLightData.js.map +1 -1
- package/dist/eve/lights/Tr2Light.js +41 -0
- package/dist/eve/lights/Tr2Light.js.map +1 -1
- package/dist/eve/lights/Tr2PointLight.js +5 -0
- package/dist/eve/lights/Tr2PointLight.js.map +1 -1
- package/dist/eve/lights/Tr2SpotLight.js +5 -0
- package/dist/eve/lights/Tr2SpotLight.js.map +1 -1
- package/dist/eve/lights/Tr2TexturedPointLight.js +10 -0
- package/dist/eve/lights/Tr2TexturedPointLight.js.map +1 -1
- package/dist/eve/lights/lightConversion.js +29 -27
- package/dist/eve/lights/lightConversion.js.map +1 -1
- package/dist/eve/{EveLocator2.js → locator/EveLocator2.js} +20 -1
- package/dist/eve/locator/EveLocator2.js.map +1 -0
- package/dist/eve/{EveLocatorSets.js → locator/EveLocatorSets.js} +43 -1
- package/dist/eve/locator/EveLocatorSets.js.map +1 -0
- package/dist/eve/{Locator.js → locator/Locator.js} +6 -1
- package/dist/eve/locator/Locator.js.map +1 -0
- package/dist/eve/{LocatorData.js → locator/LocatorData.js} +3 -1
- package/dist/eve/locator/LocatorData.js.map +1 -0
- package/dist/eve/overlays/EveMeshOverlayEffect.js +208 -0
- package/dist/eve/overlays/EveMeshOverlayEffect.js.map +1 -0
- package/dist/eve/{EveParticleDirectForce.js → particles/force/EveParticleDirectForce.js} +5 -5
- package/dist/eve/particles/force/EveParticleDirectForce.js.map +1 -0
- package/dist/eve/{EveParticleDragForce.js → particles/force/EveParticleDragForce.js} +5 -5
- package/dist/eve/particles/force/EveParticleDragForce.js.map +1 -0
- package/dist/eve/{EveParticleSpring.js → particles/force/EveParticleSpring.js} +6 -6
- package/dist/eve/particles/force/EveParticleSpring.js.map +1 -0
- package/dist/{generated/eve/scene → eve/particles/static}/EveSceneStaticParticles.js +70 -36
- package/dist/eve/particles/static/EveSceneStaticParticles.js.map +1 -0
- package/dist/eve/perObjectData/childPerObjectRecords.js +90 -0
- package/dist/eve/perObjectData/childPerObjectRecords.js.map +1 -0
- package/dist/eve/renderable/stretch/CjsStretchRuntime.js +76 -0
- package/dist/eve/renderable/stretch/CjsStretchRuntime.js.map +1 -1
- package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js +85 -1
- package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js.map +1 -1
- package/dist/eve/renderable/stretch/EveLocalPositionCurve.js +91 -0
- package/dist/eve/renderable/stretch/EveLocalPositionCurve.js.map +1 -1
- package/dist/eve/renderable/stretch/EveRemotePositionCurve.js +36 -0
- package/dist/eve/renderable/stretch/EveRemotePositionCurve.js.map +1 -1
- package/dist/eve/renderable/stretch/EveStretch.js +158 -9
- package/dist/eve/renderable/stretch/EveStretch.js.map +1 -1
- package/dist/eve/renderable/stretch/EveStretch2.js +121 -12
- package/dist/eve/renderable/stretch/EveStretch2.js.map +1 -1
- package/dist/eve/renderable/stretch/EveStretch3.js +261 -8
- package/dist/eve/renderable/stretch/EveStretch3.js.map +1 -1
- package/dist/eve/scene/EveSpaceScene.js +56 -6
- package/dist/eve/scene/EveSpaceScene.js.map +1 -1
- package/dist/{generated/eve/scene → eve/scene/components}/EveComponentCollection.js +24 -1
- package/dist/eve/scene/components/EveComponentCollection.js.map +1 -0
- package/dist/{generated/eve/scene → eve/scene/components}/EveComponentRegistry.js +74 -2
- package/dist/eve/scene/components/EveComponentRegistry.js.map +1 -0
- package/dist/eve/scene/picking/EvePickingContext.js +61 -0
- package/dist/eve/scene/picking/EvePickingContext.js.map +1 -0
- package/dist/eve/scene/shadows/TriShadowFrustum.js +70 -0
- package/dist/eve/scene/shadows/TriShadowFrustum.js.map +1 -0
- package/dist/eve/scene/shadows/TriShadowOrthoFrustum.js +129 -0
- package/dist/eve/scene/shadows/TriShadowOrthoFrustum.js.map +1 -0
- package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js +19 -19
- package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js.map +1 -0
- package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js +19 -19
- package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js.map +1 -0
- package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js +12 -12
- package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js.map +1 -0
- package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js +12 -12
- package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js.map +1 -0
- package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js +30 -30
- package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js.map +1 -0
- package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js +9 -9
- package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js.map +1 -0
- package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js +23 -23
- package/dist/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js.map +1 -0
- package/dist/eve/smartLights/attributeModifiers/enums.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterBindingBase.js +26 -1
- package/dist/eve/socket/EveSocketParameterBindingBase.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterBool.js +17 -1
- package/dist/eve/socket/EveSocketParameterBool.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterColor.js +21 -5
- package/dist/eve/socket/EveSocketParameterColor.js.map +1 -0
- package/dist/eve/socket/EveSocketParameterFilePath.js +5 -5
- package/dist/eve/socket/EveSocketParameterFilePath.js.map +1 -1
- package/dist/{generated/eve → eve}/socket/EveSocketParameterFloat.js +17 -1
- package/dist/eve/socket/EveSocketParameterFloat.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterInt.js +17 -1
- package/dist/eve/socket/EveSocketParameterInt.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterString.js +42 -2
- package/dist/eve/socket/EveSocketParameterString.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterVector2.js +17 -1
- package/dist/eve/socket/EveSocketParameterVector2.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterVector3.js +17 -1
- package/dist/eve/socket/EveSocketParameterVector3.js.map +1 -0
- package/dist/{generated/eve → eve}/socket/EveSocketParameterVector4.js +17 -1
- package/dist/eve/socket/EveSocketParameterVector4.js.map +1 -0
- package/dist/eve/spaceObject/EveEffectRoot2.js +58 -31
- package/dist/eve/spaceObject/EveEffectRoot2.js.map +1 -1
- package/dist/eve/spaceObject/EveMissile.js +49 -1
- package/dist/eve/spaceObject/EveMissile.js.map +1 -1
- package/dist/eve/spaceObject/EveMissileWarhead.js +100 -1
- package/dist/eve/spaceObject/EveMissileWarhead.js.map +1 -1
- package/dist/eve/spaceObject/EveMobile.js +104 -0
- package/dist/eve/spaceObject/EveMobile.js.map +1 -1
- package/dist/eve/spaceObject/EveRootTransform.js +17 -0
- package/dist/eve/spaceObject/EveRootTransform.js.map +1 -1
- package/dist/{generated/eve → eve}/spaceObject/EveShip2.js +32 -12
- package/dist/eve/spaceObject/EveShip2.js.map +1 -0
- package/dist/eve/spaceObject/EveSpaceObject2.js +726 -199
- package/dist/eve/spaceObject/EveSpaceObject2.js.map +1 -1
- package/dist/eve/spaceObject/EveTransform.js +100 -4
- package/dist/eve/spaceObject/EveTransform.js.map +1 -1
- package/dist/eve/spaceObject/IEveSpaceObject2ParentData.js +70 -0
- package/dist/eve/spaceObject/IEveSpaceObject2ParentData.js.map +1 -0
- package/dist/eve/spaceObject/createEveSpaceObjectMainPerObjectValues.js +19 -16
- package/dist/eve/spaceObject/createEveSpaceObjectMainPerObjectValues.js.map +1 -1
- package/dist/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js +92 -0
- package/dist/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js.map +1 -0
- package/dist/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js +158 -0
- package/dist/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js.map +1 -0
- package/dist/{generated/eve/spaceObject → eve/spaceObject/planet}/EvePlanet.js +2 -2
- package/dist/eve/spaceObject/planet/EvePlanet.js.map +1 -0
- package/dist/{generated/eve → eve}/spaceObject/swarm/EveSwarmRenderable.js +102 -64
- package/dist/eve/spaceObject/swarm/EveSwarmRenderable.js.map +1 -0
- package/dist/eve/ui/EveEllipseDefinition.js +15 -0
- package/dist/eve/ui/EveEllipseDefinition.js.map +1 -1
- package/dist/eve/ui/EveEllipseSet.js +42 -0
- package/dist/eve/ui/EveEllipseSet.js.map +1 -1
- package/dist/{generated/eve → eve}/ui/EveSpherePin.js +76 -11
- package/dist/eve/ui/EveSpherePin.js.map +1 -0
- package/dist/eve/ui/EveSprite2dBracket.js +5 -0
- package/dist/eve/ui/EveSprite2dBracket.js.map +1 -1
- package/dist/eve/ui/EveUiObject.js +11 -0
- package/dist/eve/ui/EveUiObject.js.map +1 -1
- package/dist/{generated/eve/ui → eve/ui/lines}/EveLineSet.js +67 -6
- package/dist/eve/ui/lines/EveLineSet.js.map +1 -0
- package/dist/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js +78 -0
- package/dist/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js.map +1 -0
- package/dist/{generated/eve/ui → eve/ui/tacticalOverlay}/EveTacticalTrails.js +22 -2
- package/dist/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -0
- package/dist/eve/virtualCamera/EveVirtualCamera.js +152 -0
- package/dist/eve/virtualCamera/EveVirtualCamera.js.map +1 -1
- package/dist/eve/virtualCamera/EveVirtualCameraSystem.js +65 -0
- package/dist/eve/virtualCamera/EveVirtualCameraSystem.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js +17 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js +19 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js +17 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js +29 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js +15 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js +38 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js +17 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js +18 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js +20 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js +20 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveRight.js +11 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveRight.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveUp.js +14 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveUp.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js +16 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js +20 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js.map +1 -1
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js +36 -0
- package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js.map +1 -1
- package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionBase.js +36 -0
- package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionBase.js.map +1 -1
- package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionCut.js +11 -0
- package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionCut.js.map +1 -1
- package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js +37 -0
- package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js.map +1 -1
- package/dist/eve/volume/EveBoxVolume.js +59 -0
- package/dist/eve/volume/EveBoxVolume.js.map +1 -1
- package/dist/eve/volume/EveEllipsoidVolume.js +54 -0
- package/dist/eve/volume/EveEllipsoidVolume.js.map +1 -1
- package/dist/eve/volume/EveSphereVolume.js +34 -0
- package/dist/eve/volume/EveSphereVolume.js.map +1 -1
- package/dist/generated/eve/child/EveChildCloud2.js +138 -138
- package/dist/generated/eve/child/EveChildCloud2.js.map +1 -1
- package/dist/generated/eve/child/EveChildParticleSystem.js +10 -4
- package/dist/generated/eve/child/EveChildParticleSystem.js.map +1 -1
- package/dist/generated/eve/child/EveChildSocket.js +1 -1
- package/dist/generated/eve/child/EveChildSocket.js.map +1 -1
- package/dist/generated/eve/child/behaviors/BackAndForth.js +14 -17
- package/dist/generated/eve/child/behaviors/BackAndForth.js.map +1 -1
- package/dist/generated/eve/child/behaviors/BehaviorGroup.js +2 -2
- package/dist/generated/eve/child/behaviors/BehaviorGroup.js.map +1 -1
- package/dist/generated/eve/child/behaviors/EveKDdroneManagementTree.js +26 -29
- package/dist/generated/eve/child/behaviors/EveKDdroneManagementTree.js.map +1 -1
- package/dist/generated/eve/child/behaviors/FollowASpline.js +13 -17
- package/dist/generated/eve/child/behaviors/FollowASpline.js.map +1 -1
- package/dist/generated/eve/child/behaviors/PlayFX.js +14 -14
- package/dist/generated/eve/child/behaviors/PlayFX.js.map +1 -1
- package/dist/generated/eve/child/behaviors/SeekTarget.js +1 -1
- package/dist/generated/eve/child/behaviors/SeekTarget.js.map +1 -1
- package/dist/generated/eve/child/behaviors/index.js +0 -6
- package/dist/generated/eve/child/behaviors/index.js.map +1 -1
- package/dist/generated/eve/child/index.js +0 -23
- package/dist/generated/eve/child/index.js.map +1 -1
- package/dist/generated/eve/effect/index.js +0 -3
- package/dist/generated/eve/effect/index.js.map +1 -1
- package/dist/generated/eve/index.js +0 -88
- package/dist/generated/eve/index.js.map +1 -1
- package/dist/generated/eve/scene/index.js +0 -6
- package/dist/generated/eve/scene/index.js.map +1 -1
- package/dist/generated/eve/smartLights/EveSmartLightColorShareGroup.js +20 -20
- package/dist/generated/eve/smartLights/EveSmartLightColorShareGroup.js.map +1 -1
- package/dist/generated/eve/smartLights/EveSmartLightPointLight.js +1 -1
- package/dist/generated/eve/smartLights/EveSmartLightPointLight.js.map +1 -1
- package/dist/generated/eve/smartLights/index.js +0 -8
- package/dist/generated/eve/smartLights/index.js.map +1 -1
- package/dist/generated/eve/spaceObject/index.js +0 -4
- package/dist/generated/eve/spaceObject/index.js.map +1 -1
- package/dist/generated/eve/spaceObject/swarm/EveSwarm.js +11 -11
- package/dist/generated/eve/spaceObject/swarm/EveSwarm.js.map +1 -1
- package/dist/generated/eve/spaceObject/swarm/index.js +0 -1
- package/dist/generated/eve/spaceObject/swarm/index.js.map +1 -1
- package/dist/generated/eve/ui/index.js +0 -4
- package/dist/generated/eve/ui/index.js.map +1 -1
- package/dist/generated/index.js +0 -93
- package/dist/generated/index.js.map +1 -1
- package/dist/generated/trinityCore/index.js +0 -5
- package/dist/generated/trinityCore/index.js.map +1 -1
- package/dist/index.js +130 -155
- package/dist/index.js.map +1 -1
- package/dist/particle/Tr2GpuSharedEmitter.js +39 -0
- package/dist/particle/Tr2GpuSharedEmitter.js.map +1 -1
- package/dist/particle/Tr2GpuUniqueEmitter.js +5 -0
- package/dist/particle/Tr2GpuUniqueEmitter.js.map +1 -1
- package/dist/particle/Tr2ParticleAttractorForce.js +10 -0
- package/dist/particle/Tr2ParticleAttractorForce.js.map +1 -1
- package/dist/particle/Tr2ParticleDirectForce.js +7 -0
- package/dist/particle/Tr2ParticleDirectForce.js.map +1 -1
- package/dist/particle/Tr2ParticleDragForce.js +7 -0
- package/dist/particle/Tr2ParticleDragForce.js.map +1 -1
- package/dist/particle/Tr2ParticleElementDeclaration.js +5 -0
- package/dist/particle/Tr2ParticleElementDeclaration.js.map +1 -1
- package/dist/particle/Tr2ParticleFluidDragForce.js +10 -0
- package/dist/particle/Tr2ParticleFluidDragForce.js.map +1 -1
- package/dist/particle/Tr2ParticleSpring.js +10 -0
- package/dist/particle/Tr2ParticleSpring.js.map +1 -1
- package/dist/particle/Tr2ParticleVortexForce.js +10 -0
- package/dist/particle/Tr2ParticleVortexForce.js.map +1 -1
- package/dist/particle/particleElementBinding.js +12 -0
- package/dist/particle/particleElementBinding.js.map +1 -1
- package/dist/postProcess/Tr2PPBloomEffect.js +6 -0
- package/dist/postProcess/Tr2PPBloomEffect.js.map +1 -1
- package/dist/postProcess/Tr2PPDepthOfFieldEffect.js +16 -0
- package/dist/postProcess/Tr2PPDepthOfFieldEffect.js.map +1 -1
- package/dist/postProcess/Tr2PPGenericEffect.js +7 -0
- package/dist/postProcess/Tr2PPGenericEffect.js.map +1 -1
- package/dist/postProcess/Tr2PPTaaEffect.js +10 -0
- package/dist/postProcess/Tr2PPTaaEffect.js.map +1 -1
- package/dist/postProcess/Tr2PPTonemappingEffect.js +5 -0
- package/dist/postProcess/Tr2PPTonemappingEffect.js.map +1 -1
- package/dist/postProcess/Tr2PostProcess.js +5 -0
- package/dist/postProcess/Tr2PostProcess.js.map +1 -1
- package/dist/postProcess/Tr2PostProcess2.js +147 -0
- package/dist/postProcess/Tr2PostProcess2.js.map +1 -1
- package/dist/postProcess/Tr2PostProcessAttributes.js +89 -0
- package/dist/postProcess/Tr2PostProcessAttributes.js.map +1 -1
- package/dist/renderJob/Tr2RenderJobs.js +34 -0
- package/dist/renderJob/Tr2RenderJobs.js.map +1 -1
- package/dist/renderJob/TriRenderJob.js +59 -0
- package/dist/renderJob/TriRenderJob.js.map +1 -1
- package/dist/renderJob/TriRenderStep.js +20 -0
- package/dist/renderJob/TriRenderStep.js.map +1 -1
- package/dist/renderJob/TriStepClear.js +18 -0
- package/dist/renderJob/TriStepClear.js.map +1 -1
- package/dist/renderJob/TriStepCopyRenderTarget.js +51 -0
- package/dist/renderJob/TriStepCopyRenderTarget.js.map +1 -1
- package/dist/renderJob/TriStepEnableWireframeMode.js +9 -0
- package/dist/renderJob/TriStepEnableWireframeMode.js.map +1 -1
- package/dist/renderJob/TriStepGenerateMipMaps.js +9 -0
- package/dist/renderJob/TriStepGenerateMipMaps.js.map +1 -1
- package/dist/renderJob/TriStepPopDepthStencil.js +6 -0
- package/dist/renderJob/TriStepPopDepthStencil.js.map +1 -1
- package/dist/renderJob/TriStepPopProjection.js +6 -0
- package/dist/renderJob/TriStepPopProjection.js.map +1 -1
- package/dist/renderJob/TriStepPopRenderTarget.js +12 -0
- package/dist/renderJob/TriStepPopRenderTarget.js.map +1 -1
- package/dist/renderJob/TriStepPopViewTransform.js +6 -0
- package/dist/renderJob/TriStepPopViewTransform.js.map +1 -1
- package/dist/renderJob/TriStepPopViewport.js +6 -0
- package/dist/renderJob/TriStepPopViewport.js.map +1 -1
- package/dist/renderJob/TriStepPresentSwapChain.js +12 -0
- package/dist/renderJob/TriStepPresentSwapChain.js.map +1 -1
- package/dist/renderJob/TriStepPushDepthStencil.js +17 -0
- package/dist/renderJob/TriStepPushDepthStencil.js.map +1 -1
- package/dist/renderJob/TriStepPushProjection.js +6 -0
- package/dist/renderJob/TriStepPushProjection.js.map +1 -1
- package/dist/renderJob/TriStepPushRenderTarget.js +9 -0
- package/dist/renderJob/TriStepPushRenderTarget.js.map +1 -1
- package/dist/renderJob/TriStepPushViewTransform.js +6 -0
- package/dist/renderJob/TriStepPushViewTransform.js.map +1 -1
- package/dist/renderJob/TriStepPushViewport.js +6 -0
- package/dist/renderJob/TriStepPushViewport.js.map +1 -1
- package/dist/renderJob/TriStepRemoteSync.js +17 -0
- package/dist/renderJob/TriStepRemoteSync.js.map +1 -1
- package/dist/renderJob/TriStepResolve.js +13 -0
- package/dist/renderJob/TriStepResolve.js.map +1 -1
- package/dist/renderJob/TriStepRunJob.js +12 -0
- package/dist/renderJob/TriStepRunJob.js.map +1 -1
- package/dist/renderJob/TriStepSetDepthStencil.js +12 -0
- package/dist/renderJob/TriStepSetDepthStencil.js.map +1 -1
- package/dist/renderJob/TriStepSetProjection.js +14 -0
- package/dist/renderJob/TriStepSetProjection.js.map +1 -1
- package/dist/renderJob/TriStepSetRenderState.js +20 -0
- package/dist/renderJob/TriStepSetRenderState.js.map +1 -1
- package/dist/renderJob/TriStepSetRenderTarget.js +12 -0
- package/dist/renderJob/TriStepSetRenderTarget.js.map +1 -1
- package/dist/renderJob/TriStepSetStdRndStates.js +18 -0
- package/dist/renderJob/TriStepSetStdRndStates.js.map +1 -1
- package/dist/renderJob/TriStepSetView.js +29 -2
- package/dist/renderJob/TriStepSetView.js.map +1 -1
- package/dist/renderJob/TriStepSetViewport.js +17 -0
- package/dist/renderJob/TriStepSetViewport.js.map +1 -1
- package/dist/renderJob/TriStepSetVisualizationMode.js +19 -0
- package/dist/renderJob/TriStepSetVisualizationMode.js.map +1 -1
- package/dist/shader/Tr2Effect.js +217 -2
- package/dist/shader/Tr2Effect.js.map +1 -1
- package/dist/shader/Tr2Material.js +41 -0
- package/dist/shader/Tr2Material.js.map +1 -1
- package/dist/shader/index.js +1 -11
- package/dist/shader/index.js.map +1 -1
- package/dist/shader/material/Tr2EffectLibraryParameters.js +7 -0
- package/dist/shader/material/Tr2EffectLibraryParameters.js.map +1 -1
- package/dist/shader/material/Tr2EffectPassParameters.js +23 -0
- package/dist/shader/material/Tr2EffectPassParameters.js.map +1 -1
- package/dist/shader/material/Tr2MaterialStageInput.js +15 -0
- package/dist/shader/material/Tr2MaterialStageInput.js.map +1 -1
- package/dist/shader/parameter/CjsParameter.js +94 -0
- package/dist/shader/parameter/CjsParameter.js.map +1 -1
- package/dist/shader/parameter/CjsVectorParameter.js +20 -0
- package/dist/shader/parameter/CjsVectorParameter.js.map +1 -1
- package/dist/shader/parameter/Tr2FloatParameter.js +53 -0
- package/dist/shader/parameter/Tr2FloatParameter.js.map +1 -1
- package/dist/shader/parameter/Tr2GeometryBufferParameter.js +39 -0
- package/dist/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
- package/dist/shader/parameter/Tr2Matrix4Parameter.js +54 -0
- package/dist/shader/parameter/Tr2Matrix4Parameter.js.map +1 -1
- package/dist/shader/parameter/Tr2RuntimeTextureParameter.js +54 -0
- package/dist/shader/parameter/Tr2RuntimeTextureParameter.js.map +1 -1
- package/dist/shader/parameter/Tr2TextureAnimationParameter.js +35 -0
- package/dist/shader/parameter/Tr2TextureAnimationParameter.js.map +1 -1
- package/dist/shader/parameter/Tr2Vector2Parameter.js +86 -0
- package/dist/shader/parameter/Tr2Vector2Parameter.js.map +1 -1
- package/dist/shader/parameter/Tr2Vector3Parameter.js +95 -0
- package/dist/shader/parameter/Tr2Vector3Parameter.js.map +1 -1
- package/dist/shader/parameter/Tr2Vector4Parameter.js +105 -0
- package/dist/shader/parameter/Tr2Vector4Parameter.js.map +1 -1
- package/dist/shader/parameter/TriFloatArrayParameter.js +26 -0
- package/dist/shader/parameter/TriFloatArrayParameter.js.map +1 -1
- package/dist/shader/parameter/TriTextureParameter.js +84 -0
- package/dist/shader/parameter/TriTextureParameter.js.map +1 -1
- package/dist/shader/parameter/TriTransformParameter.js +2 -0
- package/dist/shader/parameter/TriTransformParameter.js.map +1 -1
- package/dist/shader/parameter/TriVariableParameter.js +38 -0
- package/dist/shader/parameter/TriVariableParameter.js.map +1 -1
- package/dist/shader/parameter/TriVector4.js +2 -0
- package/dist/shader/parameter/TriVector4.js.map +1 -1
- package/dist/shader/reflection/Tr2ShaderOption.js +6 -1
- package/dist/shader/reflection/Tr2ShaderOption.js.map +1 -1
- package/dist/shader/support/CjsVariableStore.js +140 -0
- package/dist/shader/support/CjsVariableStore.js.map +1 -1
- package/dist/shader/support/Tr2ShaderBuffer.js +15 -0
- package/dist/shader/support/Tr2ShaderBuffer.js.map +1 -1
- package/dist/trinityCore/CjsBatchManager.js +62 -2
- package/dist/trinityCore/CjsBatchManager.js.map +1 -1
- package/dist/trinityCore/GrannyBoneOffset.js +51 -0
- package/dist/trinityCore/GrannyBoneOffset.js.map +1 -1
- package/dist/trinityCore/ITriRenderBatchAccumulator.js +65 -3
- package/dist/trinityCore/ITriRenderBatchAccumulator.js.map +1 -1
- package/dist/trinityCore/Tr2DirectInstanceData.js +19 -0
- package/dist/trinityCore/Tr2DirectInstanceData.js.map +1 -1
- package/dist/trinityCore/Tr2ExpressionTermInfo.js +21 -0
- package/dist/trinityCore/Tr2ExpressionTermInfo.js.map +1 -1
- package/dist/trinityCore/Tr2GpuBuffer.js +5 -0
- package/dist/trinityCore/Tr2GpuBuffer.js.map +1 -1
- package/dist/{generated/trinityCore → trinityCore}/Tr2GrannyAnimation.js +137 -8
- package/dist/trinityCore/Tr2GrannyAnimation.js.map +1 -0
- package/dist/trinityCore/Tr2InstancedMesh.js +52 -0
- package/dist/trinityCore/Tr2InstancedMesh.js.map +1 -1
- package/dist/trinityCore/Tr2MaterialParameterStore.js +5 -0
- package/dist/trinityCore/Tr2MaterialParameterStore.js.map +1 -1
- package/dist/trinityCore/Tr2Mesh.js +37 -0
- package/dist/trinityCore/Tr2Mesh.js.map +1 -1
- package/dist/trinityCore/Tr2MeshArea.js +78 -0
- package/dist/trinityCore/Tr2MeshArea.js.map +1 -1
- package/dist/trinityCore/Tr2MeshBase.js +98 -2
- package/dist/trinityCore/Tr2MeshBase.js.map +1 -1
- package/dist/trinityCore/Tr2PerObjectData.js +10 -0
- package/dist/trinityCore/Tr2PerObjectData.js.map +1 -1
- package/dist/trinityCore/Tr2PickType.js +33 -0
- package/dist/trinityCore/Tr2PickType.js.map +1 -0
- package/dist/trinityCore/Tr2RenderBatch.js +137 -0
- package/dist/trinityCore/Tr2RenderBatch.js.map +1 -1
- package/dist/trinityCore/Tr2RenderContext.js +271 -0
- package/dist/trinityCore/Tr2RenderContext.js.map +1 -1
- package/dist/trinityCore/Tr2RuntimeInstanceData.js +179 -0
- package/dist/trinityCore/Tr2RuntimeInstanceData.js.map +1 -1
- package/dist/trinityCore/Tr2ShLightingManager.js +397 -0
- package/dist/trinityCore/Tr2ShLightingManager.js.map +1 -0
- package/dist/trinityCore/Tr2VariableStore.js +26 -0
- package/dist/trinityCore/Tr2VariableStore.js.map +1 -1
- package/dist/trinityCore/Tr2VisibilityResults.js +5 -0
- package/dist/trinityCore/Tr2VisibilityResults.js.map +1 -1
- package/dist/trinityCore/TriDevice.js +5 -0
- package/dist/trinityCore/TriDevice.js.map +1 -1
- package/dist/trinityCore/TriFrustum.js +21 -14
- package/dist/trinityCore/TriFrustum.js.map +1 -1
- package/dist/trinityCore/TriObserverLocal.js +43 -0
- package/dist/trinityCore/TriObserverLocal.js.map +1 -1
- package/dist/trinityCore/TriProjection.js +86 -32
- package/dist/trinityCore/TriProjection.js.map +1 -1
- package/dist/trinityCore/TriRect.js +12 -0
- package/dist/trinityCore/TriRect.js.map +1 -1
- package/dist/trinityCore/TriRenderBatchAccumulator.js +46 -0
- package/dist/trinityCore/TriRenderBatchAccumulator.js.map +1 -1
- package/dist/trinityCore/TriRenderBatchMap.js +39 -2
- package/dist/trinityCore/TriRenderBatchMap.js.map +1 -1
- package/dist/trinityCore/TriSettings.js +38 -0
- package/dist/trinityCore/TriSettings.js.map +1 -1
- package/dist/trinityCore/TriVariable.js +30 -0
- package/dist/trinityCore/TriVariable.js.map +1 -1
- package/dist/trinityCore/TriView.js +16 -1
- package/dist/trinityCore/TriView.js.map +1 -1
- package/dist/trinityCore/TriViewport.js +12 -0
- package/dist/trinityCore/TriViewport.js.map +1 -1
- package/dist/trinityCore/{Tr2BindingVector3.js → binding/Tr2BindingVector3.js} +1 -1
- package/dist/trinityCore/binding/Tr2BindingVector3.js.map +1 -0
- package/dist/trinityCore/binding/Tr2DynamicBinding.js +266 -0
- package/dist/trinityCore/binding/Tr2DynamicBinding.js.map +1 -0
- package/dist/trinityCore/binding/Tr2ExternalParameter.js +392 -0
- package/dist/trinityCore/binding/Tr2ExternalParameter.js.map +1 -0
- package/dist/trinityCore/{Tr2PyValueBinding.js → binding/Tr2PyValueBinding.js} +30 -6
- package/dist/trinityCore/binding/Tr2PyValueBinding.js.map +1 -0
- package/dist/trinityCore/binding/TriValueBinding.js +648 -0
- package/dist/trinityCore/binding/TriValueBinding.js.map +1 -0
- package/dist/trinityCore/index.js +11 -4
- package/dist/trinityCore/index.js.map +1 -1
- package/dist/trinityCore/pickRay.js +84 -0
- package/dist/trinityCore/pickRay.js.map +1 -0
- package/dist/trinityCore/rawData/CjsPerObjectLayouts.js +931 -0
- package/dist/trinityCore/rawData/CjsPerObjectLayouts.js.map +1 -0
- package/dist/trinityCore/rawData/RawData.js +294 -38
- package/dist/trinityCore/rawData/RawData.js.map +1 -1
- package/dist/trinityCore/rawData/TriPoolAllocator.js +357 -0
- package/dist/trinityCore/rawData/TriPoolAllocator.js.map +1 -0
- package/dist/utilities/Range.js +53 -0
- package/dist/utilities/Range.js.map +1 -1
- package/docs/README.md +88 -0
- package/docs/architecture.md +162 -0
- package/docs/concepts/eve-runtime-behavior.md +86 -0
- package/docs/concepts/generated-class-lifecycle.md +116 -0
- package/docs/reference/api.md +76 -0
- package/docs/reference/classes/eve-runtime.md +106 -0
- package/docs/reference/classes/trinity-core.md +26 -0
- package/docs/reference/implementation-status.md +104 -0
- package/docs/reference/main-semantic-extraction.md +104 -0
- package/package.json +33 -24
- package/dist/eve/DecalVSPerObjectData.js +0 -34
- package/dist/eve/DecalVSPerObjectData.js.map +0 -1
- package/dist/eve/EveBannerItem.js +0 -43
- package/dist/eve/EveBannerItem.js.map +0 -1
- package/dist/eve/EveBannerLight.js.map +0 -1
- package/dist/eve/EveBannerSet.js +0 -190
- package/dist/eve/EveBannerSet.js.map +0 -1
- package/dist/eve/EveBasicPerObjectData.js +0 -31
- package/dist/eve/EveBasicPerObjectData.js.map +0 -1
- package/dist/eve/EveBoosterSet2.js.map +0 -1
- package/dist/eve/EveBoosterSet2Renderable.js.map +0 -1
- package/dist/eve/EveChildSpherePinPerObjectData.js +0 -37
- package/dist/eve/EveChildSpherePinPerObjectData.js.map +0 -1
- package/dist/eve/EveHazeSet.js.map +0 -1
- package/dist/eve/EveHazeSetLight.js.map +0 -1
- package/dist/eve/EveLocator2.js.map +0 -1
- package/dist/eve/EveLocatorSets.js.map +0 -1
- package/dist/eve/EveParticleDirectForce.js.map +0 -1
- package/dist/eve/EveParticleDragForce.js.map +0 -1
- package/dist/eve/EveParticleSpring.js.map +0 -1
- package/dist/eve/EvePerObjectPSData.js +0 -29
- package/dist/eve/EvePerObjectPSData.js.map +0 -1
- package/dist/eve/EvePerObjectVSData.js +0 -29
- package/dist/eve/EvePerObjectVSData.js.map +0 -1
- package/dist/eve/EvePlaneLight.js.map +0 -1
- package/dist/eve/EvePlaneSet.js.map +0 -1
- package/dist/eve/EvePlaneSetItem.js +0 -45
- package/dist/eve/EvePlaneSetItem.js.map +0 -1
- package/dist/eve/EveSpaceObjectAttachmentUtils.js.map +0 -1
- package/dist/eve/EveSpaceObjectDecal.js +0 -150
- package/dist/eve/EveSpaceObjectDecal.js.map +0 -1
- package/dist/eve/EveSpaceObjectPSData.js +0 -73
- package/dist/eve/EveSpaceObjectPSData.js.map +0 -1
- package/dist/eve/EveSpaceObjectVSData.js +0 -79
- package/dist/eve/EveSpaceObjectVSData.js.map +0 -1
- package/dist/eve/EveSpacePerObjectData.js +0 -97
- package/dist/eve/EveSpacePerObjectData.js.map +0 -1
- package/dist/eve/EveSpherePinPerObjectData.js +0 -37
- package/dist/eve/EveSpherePinPerObjectData.js.map +0 -1
- package/dist/eve/EveSpotlightLight.js.map +0 -1
- package/dist/eve/EveSpotlightSet.js.map +0 -1
- package/dist/eve/EveSpriteLight.js.map +0 -1
- package/dist/eve/EveSpriteLineSet.js.map +0 -1
- package/dist/eve/EveSpriteLineSetItem.js.map +0 -1
- package/dist/eve/EveSpriteSet.js.map +0 -1
- package/dist/eve/EveTrailsSet.js.map +0 -1
- package/dist/eve/Locator.js.map +0 -1
- package/dist/eve/LocatorData.js.map +0 -1
- package/dist/eve/ProcessLifetimeData.js.map +0 -1
- package/dist/eve/attachment/turrets/EveTurretSetPSData.js +0 -47
- package/dist/eve/attachment/turrets/EveTurretSetPSData.js.map +0 -1
- package/dist/eve/attachment/turrets/EveTurretSetVSData.js +0 -62
- package/dist/eve/attachment/turrets/EveTurretSetVSData.js.map +0 -1
- package/dist/eve/child/behaviors/SplineTunnel.js.map +0 -1
- package/dist/eve/child/behaviors/SplineTunnelPoint.js.map +0 -1
- package/dist/eve/perObjectData/DecalPSPerObjectData.js +0 -56
- package/dist/eve/perObjectData/DecalPSPerObjectData.js.map +0 -1
- package/dist/eve/perObjectData/EveMissileWarheadPerObjectData.js +0 -31
- package/dist/eve/perObjectData/EveMissileWarheadPerObjectData.js.map +0 -1
- package/dist/eve/perObjectData/EveTurretSetPerObjectData.js +0 -36
- package/dist/eve/perObjectData/EveTurretSetPerObjectData.js.map +0 -1
- package/dist/eve/perObjectData/MergeMorphsConstantBuffer.js +0 -64
- package/dist/eve/perObjectData/MergeMorphsConstantBuffer.js.map +0 -1
- package/dist/generated/eve/EveCamera.js +0 -264
- package/dist/generated/eve/EveCamera.js.map +0 -1
- package/dist/generated/eve/EveEntity.js +0 -81
- package/dist/generated/eve/EveEntity.js.map +0 -1
- package/dist/generated/eve/attachment/decal/index.js +0 -2
- package/dist/generated/eve/attachment/decal/index.js.map +0 -1
- package/dist/generated/eve/attachment/haze/EveHazeSetItem.js +0 -52
- package/dist/generated/eve/attachment/haze/EveHazeSetItem.js.map +0 -1
- package/dist/generated/eve/attachment/haze/index.js +0 -2
- package/dist/generated/eve/attachment/haze/index.js.map +0 -1
- package/dist/generated/eve/attachment/index.js +0 -5
- package/dist/generated/eve/attachment/index.js.map +0 -1
- package/dist/generated/eve/attachment/spotlights/EveSpotlightSetItem.js +0 -55
- package/dist/generated/eve/attachment/spotlights/EveSpotlightSetItem.js.map +0 -1
- package/dist/generated/eve/attachment/spotlights/index.js +0 -2
- package/dist/generated/eve/attachment/spotlights/index.js.map +0 -1
- package/dist/generated/eve/attachment/sprites/EveSpriteSetItem.js.map +0 -1
- package/dist/generated/eve/attachment/sprites/index.js +0 -2
- package/dist/generated/eve/attachment/sprites/index.js.map +0 -1
- package/dist/generated/eve/attachment/turrets/enums.js +0 -32
- package/dist/generated/eve/attachment/turrets/enums.js.map +0 -1
- package/dist/generated/eve/attachment/turrets/index.js +0 -2
- package/dist/generated/eve/attachment/turrets/index.js.map +0 -1
- package/dist/generated/eve/child/EveChildBehaviorSystem.js +0 -357
- package/dist/generated/eve/child/EveChildBehaviorSystem.js.map +0 -1
- package/dist/generated/eve/child/EveChildBulletStorm.js.map +0 -1
- package/dist/generated/eve/child/EveChildLink.js.map +0 -1
- package/dist/generated/eve/child/EveChildSpherePin.js +0 -54
- package/dist/generated/eve/child/EveChildSpherePin.js.map +0 -1
- package/dist/generated/eve/child/behaviors/CollisionAvoidance.js +0 -85
- package/dist/generated/eve/child/behaviors/CollisionAvoidance.js.map +0 -1
- package/dist/generated/eve/child/behaviors/InclusionVolume.js +0 -104
- package/dist/generated/eve/child/behaviors/InclusionVolume.js.map +0 -1
- package/dist/generated/eve/child/behaviors/ProcessLifetime.js +0 -458
- package/dist/generated/eve/child/behaviors/ProcessLifetime.js.map +0 -1
- package/dist/generated/eve/child/behaviors/SplineTunnelGroup.js +0 -161
- package/dist/generated/eve/child/behaviors/SplineTunnelGroup.js.map +0 -1
- package/dist/generated/eve/child/behaviors/Wander.js +0 -92
- package/dist/generated/eve/child/behaviors/Wander.js.map +0 -1
- package/dist/generated/eve/child/behaviors/enums.js.map +0 -1
- package/dist/generated/eve/child/modifiers/EveChildModifierAttachToBone.js.map +0 -1
- package/dist/generated/eve/child/modifiers/EveChildModifierBillboard3D.js.map +0 -1
- package/dist/generated/eve/child/modifiers/EveChildModifierStretch.js.map +0 -1
- package/dist/generated/eve/child/modifiers/EveChildModifierTranslateWithCamera.js.map +0 -1
- package/dist/generated/eve/child/modifiers/index.js +0 -5
- package/dist/generated/eve/child/modifiers/index.js.map +0 -1
- package/dist/generated/eve/child/procedural/EveChildProceduralContainer.js.map +0 -1
- package/dist/generated/eve/child/procedural/index.js +0 -10
- package/dist/generated/eve/child/procedural/index.js.map +0 -1
- package/dist/generated/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js.map +0 -1
- package/dist/generated/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js.map +0 -1
- package/dist/generated/eve/child/procedural/selection/EveProceduralMethodCycling.js.map +0 -1
- package/dist/generated/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js.map +0 -1
- package/dist/generated/eve/child/procedural/selection/EveProceduralMethodRandom.js.map +0 -1
- package/dist/generated/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js.map +0 -1
- package/dist/generated/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js.map +0 -1
- package/dist/generated/eve/child/procedural/selection/EveProceduralMethodThresholds.js.map +0 -1
- package/dist/generated/eve/child/procedural/selection/index.js +0 -9
- package/dist/generated/eve/child/procedural/selection/index.js.map +0 -1
- package/dist/generated/eve/distribution/EveBaseDistributionMethod.js.map +0 -1
- package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js.map +0 -1
- package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js.map +0 -1
- package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js.map +0 -1
- package/dist/generated/eve/distribution/attributeModifiers/enums.js.map +0 -1
- package/dist/generated/eve/distribution/attributeModifiers/index.js +0 -5
- package/dist/generated/eve/distribution/attributeModifiers/index.js.map +0 -1
- package/dist/generated/eve/distribution/index.js +0 -19
- package/dist/generated/eve/distribution/index.js.map +0 -1
- package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js.map +0 -1
- package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js.map +0 -1
- package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js.map +0 -1
- package/dist/generated/eve/distribution/placement/index.js +0 -4
- package/dist/generated/eve/distribution/placement/index.js.map +0 -1
- package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js.map +0 -1
- package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js.map +0 -1
- package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js.map +0 -1
- package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js.map +0 -1
- package/dist/generated/eve/distribution/spawnModifiers/index.js +0 -5
- package/dist/generated/eve/distribution/spawnModifiers/index.js.map +0 -1
- package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerBurst.js.map +0 -1
- package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js.map +0 -1
- package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerInterval.js.map +0 -1
- package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js.map +0 -1
- package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js.map +0 -1
- package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js.map +0 -1
- package/dist/generated/eve/distribution/spawners/index.js +0 -7
- package/dist/generated/eve/distribution/spawners/index.js.map +0 -1
- package/dist/generated/eve/effect/EveLensflare.js.map +0 -1
- package/dist/generated/eve/effect/EveMultiEffect.js +0 -84
- package/dist/generated/eve/effect/EveMultiEffect.js.map +0 -1
- package/dist/generated/eve/effect/EveMultiEffectParameter.js +0 -45
- package/dist/generated/eve/effect/EveMultiEffectParameter.js.map +0 -1
- package/dist/generated/eve/fxAttributes/EveCameraFxAttributes.js +0 -47
- package/dist/generated/eve/fxAttributes/EveCameraFxAttributes.js.map +0 -1
- package/dist/generated/eve/fxAttributes/EveSpaceObjectFxAttributes.js +0 -63
- package/dist/generated/eve/fxAttributes/EveSpaceObjectFxAttributes.js.map +0 -1
- package/dist/generated/eve/fxAttributes/index.js +0 -3
- package/dist/generated/eve/fxAttributes/index.js.map +0 -1
- package/dist/generated/eve/overlays/EveMeshOverlayEffect.js +0 -58
- package/dist/generated/eve/overlays/EveMeshOverlayEffect.js.map +0 -1
- package/dist/generated/eve/overlays/index.js +0 -2
- package/dist/generated/eve/overlays/index.js.map +0 -1
- package/dist/generated/eve/perObjectData/EveBoosterSetPerObjectData.js +0 -66
- package/dist/generated/eve/perObjectData/EveBoosterSetPerObjectData.js.map +0 -1
- package/dist/generated/eve/perObjectData/EveChildBulletStormPerObjectData.js +0 -39
- package/dist/generated/eve/perObjectData/EveChildBulletStormPerObjectData.js.map +0 -1
- package/dist/generated/eve/perObjectData/EveDecalPerObjectData.js +0 -34
- package/dist/generated/eve/perObjectData/EveDecalPerObjectData.js.map +0 -1
- package/dist/generated/eve/perObjectData/EveSceneStaticParticlesPerObjectData.js +0 -32
- package/dist/generated/eve/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +0 -1
- package/dist/generated/eve/perObjectData/index.js +0 -5
- package/dist/generated/eve/perObjectData/index.js.map +0 -1
- package/dist/generated/eve/scene/EveComponentCollection.js.map +0 -1
- package/dist/generated/eve/scene/EveComponentRegistry.js.map +0 -1
- package/dist/generated/eve/scene/EvePickingContext.js +0 -43
- package/dist/generated/eve/scene/EvePickingContext.js.map +0 -1
- package/dist/generated/eve/scene/EveSceneStaticParticles.js.map +0 -1
- package/dist/generated/eve/scene/TriShadowFrustum.js +0 -83
- package/dist/generated/eve/scene/TriShadowFrustum.js.map +0 -1
- package/dist/generated/eve/scene/TriShadowOrthoFrustum.js +0 -140
- package/dist/generated/eve/scene/TriShadowOrthoFrustum.js.map +0 -1
- package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js.map +0 -1
- package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js.map +0 -1
- package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js.map +0 -1
- package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js.map +0 -1
- package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js.map +0 -1
- package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js.map +0 -1
- package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js.map +0 -1
- package/dist/generated/eve/smartLights/attributeModifiers/enums.js.map +0 -1
- package/dist/generated/eve/smartLights/attributeModifiers/index.js +0 -9
- package/dist/generated/eve/smartLights/attributeModifiers/index.js.map +0 -1
- package/dist/generated/eve/socket/EveSocketParameterBindingBase.js.map +0 -1
- package/dist/generated/eve/socket/EveSocketParameterBool.js.map +0 -1
- package/dist/generated/eve/socket/EveSocketParameterColor.js.map +0 -1
- package/dist/generated/eve/socket/EveSocketParameterFloat.js.map +0 -1
- package/dist/generated/eve/socket/EveSocketParameterInt.js.map +0 -1
- package/dist/generated/eve/socket/EveSocketParameterString.js.map +0 -1
- package/dist/generated/eve/socket/EveSocketParameterVector2.js.map +0 -1
- package/dist/generated/eve/socket/EveSocketParameterVector3.js.map +0 -1
- package/dist/generated/eve/socket/EveSocketParameterVector4.js.map +0 -1
- package/dist/generated/eve/socket/index.js +0 -10
- package/dist/generated/eve/socket/index.js.map +0 -1
- package/dist/generated/eve/spaceObject/EvePlanet.js.map +0 -1
- package/dist/generated/eve/spaceObject/EveShip2.js.map +0 -1
- package/dist/generated/eve/spaceObject/IEveSpaceObject2.js +0 -46
- package/dist/generated/eve/spaceObject/IEveSpaceObject2.js.map +0 -1
- package/dist/generated/eve/spaceObject/swarm/EveSwarmRenderable.js.map +0 -1
- package/dist/generated/eve/ui/EveLineSet.js.map +0 -1
- package/dist/generated/eve/ui/EveSpherePin.js.map +0 -1
- package/dist/generated/eve/ui/EveTacticalOverlayTrackObject.js +0 -44
- package/dist/generated/eve/ui/EveTacticalOverlayTrackObject.js.map +0 -1
- package/dist/generated/eve/ui/EveTacticalTrails.js.map +0 -1
- package/dist/generated/trinityCore/Tr2DynamicBinding.js +0 -58
- package/dist/generated/trinityCore/Tr2DynamicBinding.js.map +0 -1
- package/dist/generated/trinityCore/Tr2ExternalParameter.js +0 -164
- package/dist/generated/trinityCore/Tr2ExternalParameter.js.map +0 -1
- package/dist/generated/trinityCore/Tr2GrannyAnimation.js.map +0 -1
- package/dist/generated/trinityCore/Tr2ShLightingManager.js +0 -48
- package/dist/generated/trinityCore/Tr2ShLightingManager.js.map +0 -1
- package/dist/generated/trinityCore/TriValueBinding.js +0 -249
- package/dist/generated/trinityCore/TriValueBinding.js.map +0 -1
- package/dist/shader/Tr2Shader.js +0 -150
- package/dist/shader/Tr2Shader.js.map +0 -1
- package/dist/shader/reflection/Tr2EffectConstant.js +0 -61
- package/dist/shader/reflection/Tr2EffectConstant.js.map +0 -1
- package/dist/shader/reflection/Tr2EffectDefine.js +0 -34
- package/dist/shader/reflection/Tr2EffectDefine.js.map +0 -1
- package/dist/shader/reflection/Tr2EffectDescription.js +0 -34
- package/dist/shader/reflection/Tr2EffectDescription.js.map +0 -1
- package/dist/shader/reflection/Tr2EffectLibrary.js +0 -61
- package/dist/shader/reflection/Tr2EffectLibrary.js.map +0 -1
- package/dist/shader/reflection/Tr2EffectParameterAnnotation.js +0 -54
- package/dist/shader/reflection/Tr2EffectParameterAnnotation.js.map +0 -1
- package/dist/shader/reflection/Tr2EffectResource.js +0 -63
- package/dist/shader/reflection/Tr2EffectResource.js.map +0 -1
- package/dist/shader/reflection/Tr2EffectStageInput.js +0 -58
- package/dist/shader/reflection/Tr2EffectStageInput.js.map +0 -1
- package/dist/shader/reflection/Tr2EffectTechnique.js +0 -40
- package/dist/shader/reflection/Tr2EffectTechnique.js.map +0 -1
- package/dist/shader/reflection/Tr2Pass.js +0 -46
- package/dist/shader/reflection/Tr2Pass.js.map +0 -1
- package/dist/shader/sampler/Tr2SamplerSetup.js +0 -34
- package/dist/shader/sampler/Tr2SamplerSetup.js.map +0 -1
- package/dist/trinityCore/Tr2BindingVector3.js.map +0 -1
- package/dist/trinityCore/Tr2PyValueBinding.js.map +0 -1
- package/dist/trinityCore/rawData/RawDataStore.js +0 -232
- package/dist/trinityCore/rawData/RawDataStore.js.map +0 -1
- /package/dist/{generated/eve → eve}/distribution/attributeModifiers/enums.js +0 -0
- /package/dist/{generated/eve → eve}/smartLights/attributeModifiers/enums.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BehaviorGroup.js","sources":["../../../../../../src/generated/eve/child/behaviors/BehaviorGroup.js"],"sourcesContent":["// Ported from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\r\n// trinity/trinity/Eve/SpaceObject/Children/Behaviors/BehaviorGroup.h\r\n// trinity/trinity/Eve/SpaceObject/Children/Behaviors/BehaviorGroup.cpp\r\n// Generated by format-carbon carbon-class --emit. Verify against eve/child/behaviors/BehaviorGroup.json.\r\nimport { carbon, impl, io, type } from \"@carbonenginejs/runtime-utils/schema\";\r\nimport { EveEntity } from \"../../EveEntity.js\";\r\nimport { mat4 } from \"@carbonenginejs/runtime-utils/mat4\";\r\nimport { quat } from \"@carbonenginejs/runtime-utils/quat\";\r\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\r\nimport { vec4 } from \"@carbonenginejs/runtime-utils/vec4\";\r\nimport { ProcessPriority } from \"./enums.js\";\r\nimport { EveKDdroneManagementTree } from \"./EveKDdroneManagementTree.js\";\r\nimport { EveComponentType } from \"../../../../eve/EveComponentTypes.js\";\r\n\r\n// Module scratch for the per-agent integration and visibility loops (child\r\n// updates run sequentially; non-reentrant by design).\r\nconst Z_AXIS = vec3.fromValues(0, 0, 1);\r\nconst INTEREST_POINT = vec3.create();\r\nconst ACTUAL_FACING = vec3.create();\r\nconst FACING_NORMALIZED = vec3.create();\r\nconst AGENT_SPHERE = vec4.create();\r\nconst EMPTY_SEARCH_TREE = [];\r\n\r\n// Carbon ClampLength: in-place clamp of a vec3 to a maximum length.\r\nfunction ClampLength(value, maxLength)\r\n{\r\n const lengthSq = vec3.squaredLength(value);\r\n if (lengthSq > maxLength * maxLength && lengthSq > 0)\r\n {\r\n vec3.scale(value, value, maxLength / Math.sqrt(lengthSq));\r\n }\r\n return value;\r\n}\r\n\r\n/** BehaviorGroup (eve/child/behaviors) - generated from schema shapeHash d09b2740.... */\r\n@type.define({ className: \"BehaviorGroup\", family: \"eve/child/behaviors\" })\r\nexport class BehaviorGroup extends EveEntity\r\n{\r\n\r\n #agents = [];\r\n\r\n // Per-behavior scratch: #scratchData[behaviorIndex] is an array of plain\r\n // per-agent records (behavior.InitializeScratch()) or null when the\r\n // behavior reports no scratch (Carbon m_scratchData raw buffers).\r\n #scratchData = [];\r\n\r\n // Behavior indexes ordered by ProcessPriority (Carbon m_sortedBehaviorIndexes).\r\n #sortedBehaviorIndexes = [];\r\n\r\n // Spatial partitioning tree (Carbon m_tree).\r\n #tree = null;\r\n\r\n // Carbon m_updatedOnce/m_createAgentTree runtime frame state.\r\n #updatedOnce = false;\r\n\r\n #createAgentTree = false;\r\n\r\n // Cached PlayFX behavior (Carbon m_playFXBehavior).\r\n #playFXBehavior = null;\r\n\r\n // Owner-provided buffer resize callback (Carbon m_changeBufferVertexCount).\r\n #changeBufferVertexCount = null;\r\n\r\n // Debug force collection (Carbon m_forces; pairs of position/force vec3s).\r\n #forces = [];\r\n\r\n // Reused per-frame search radii (Carbon local `ranges`).\r\n #ranges = [];\r\n\r\n // agentIndex -> vec4(position.xyz, lightScale) (Carbon m_lightInfo);\r\n // filled by the GPU booster-buffer path, consumed by GetLights.\r\n #lightInfo = new Map();\r\n\r\n // World transform captured by UpdateVisibility (Carbon m_parentTransform).\r\n #parentTransform = mat4.create();\r\n\r\n // Owning space object (Carbon m_parent), captured in UpdateSyncronous.\r\n #parent = null;\r\n\r\n // Base-instance indicator assigned by the behavior system (Carbon m_groupIndex).\r\n #groupIndex = 0;\r\n\r\n /** m_display (bool) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n /** m_maxVelocity (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n maxVelocity = 100;\r\n\r\n /** m_scale (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n scale = 1;\r\n\r\n /** m_blendScreenSizeMax (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n blendScreenSizeMax = 15;\r\n\r\n /** m_blendScreenSizeMin (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n blendScreenSizeMin = 5;\r\n\r\n /** m_currentScreenSize (float) [READ] */\r\n @io.read\r\n @type.float32\r\n currentScreenSize = 0;\r\n\r\n /** m_renderThreshold (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n renderThreshold = 1;\r\n\r\n /** m_debugIntensity (float) [READWRITE] */\r\n @io.readwrite\r\n @type.float32\r\n debugIntensity = 0;\r\n\r\n /** m_debugLodLevel (float) [READWRITE] */\r\n @io.readwrite\r\n @type.float32\r\n debugLodLevel = 0;\r\n\r\n /** m_actualCount (int32_t) [READ] */\r\n @io.read\r\n @type.int32\r\n actualCount = 0;\r\n\r\n /** m_count (int32_t) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.int32\r\n count = 0;\r\n\r\n /** m_booster (BehaviorGroupBoosterPtr) [READWRITE, PERSIST, NOTIFY] */\r\n @io.notify\r\n @io.persist\r\n @type.model(\"BehaviorGroupBooster\")\r\n boosters = null;\r\n\r\n /** m_mesh (Tr2MeshPtr) [READWRITE, PERSIST, NOTIFY] */\r\n @io.notify\r\n @io.persist\r\n @type.model(\"Tr2Mesh\")\r\n mesh = null;\r\n\r\n /** m_behaviorGroupName (BlueSharedString) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n /** m_boundingSphereRadius (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n boundingSphereRadius = 5;\r\n\r\n /** m_debugMode (bool) [READWRITE] */\r\n @io.readwrite\r\n @type.boolean\r\n debugMode = false;\r\n\r\n /** m_update (bool) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.boolean\r\n update = true;\r\n\r\n /** m_behaviors (PIBehaviorVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"IBehavior\")\r\n behaviors = [];\r\n\r\n /** m_spawnPosition (Vector3) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.vec3\r\n spawnPosition = vec3.create();\r\n\r\n /** m_collectForces (bool) - debug toggle read by the behaviors. */\r\n @type.boolean\r\n collectForces = false;\r\n\r\n /** Carbon BehaviorGroup::Initialize (cpp:45-57). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Vertex-declaration creation is a GPU seam; scratch sizing, booster flare-count sync, and the PlayFX cache are ported.\")\r\n Initialize()\r\n {\r\n this.#EnsureScratchArrays();\r\n this.CreateVertexDeclaration();\r\n\r\n if (this.boosters)\r\n {\r\n this.boosters.RebuildFlareBuffer?.(this.count);\r\n }\r\n\r\n this.SetPlayFXBehavior();\r\n return true;\r\n }\r\n\r\n /** Carbon BehaviorGroup::OnModified (cpp:59-71); the value argument follows\r\n * the repo's OnModified duck (field name or field value). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Blue Var matching maps to the repo's OnModified duck; a mesh change refreshes the (stubbed) vertex declaration and a booster change re-syncs the flare count.\")\r\n OnModified(value = null)\r\n {\r\n if (value === \"mesh\" || (value !== null && value === this.mesh))\r\n {\r\n this.CreateVertexDeclaration();\r\n }\r\n if ((value === \"boosters\" || (value !== null && value === this.boosters)) && this.boosters !== null)\r\n {\r\n this.boosters.RebuildFlareBuffer?.(this.actualCount);\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Regenerates the agents from scratch: clears them, re-sorts the behavior\r\n * indexes, and re-adds m_count agents (Carbon InitializeGeometryResource,\r\n * cpp:126-140). Behaviors like SpawnDrones use this as a full reset.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n InitializeGeometryResource()\r\n {\r\n this.#agents.length = 0;\r\n for (let i = 0; i < this.#scratchData.length; i++)\r\n {\r\n if (this.#scratchData[i])\r\n {\r\n this.#scratchData[i].length = 0;\r\n }\r\n }\r\n\r\n this.SortBehaviorIndexes();\r\n\r\n const t = this.count;\r\n this.actualCount = 0;\r\n this.SetCount(t);\r\n }\r\n\r\n /** Carbon BehaviorGroup::SetVertexFunctionReferance (cpp:142-145). */\r\n @carbon.method\r\n @impl.implemented\r\n SetVertexFunctionReferance(callback)\r\n {\r\n this.#changeBufferVertexCount = typeof callback === \"function\" ? callback : null;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetSize (cpp:151-154). */\r\n @carbon.method\r\n @impl.implemented\r\n GetSize()\r\n {\r\n return this.#agents.length;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetCount (cpp:160-163). */\r\n @carbon.method\r\n @impl.implemented\r\n GetCount()\r\n {\r\n return this.actualCount;\r\n }\r\n\r\n /** Carbon method CreateAgentTree (cpp:169-177). */\r\n @carbon.method\r\n @impl.implemented\r\n CreateAgentTree()\r\n {\r\n this.#tree = new EveKDdroneManagementTree();\r\n this.#tree.CreateTree(this.#agents, this.behaviors.length);\r\n return this.#tree;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetBehaviorByName (cpp:187-197). */\r\n @carbon.method\r\n @impl.implemented\r\n GetBehaviorByName(name)\r\n {\r\n const target = String(name ?? \"\");\r\n for (const behavior of this.behaviors)\r\n {\r\n if (target === (behavior?.GetBehaviorName?.() ?? \"unnamed\"))\r\n {\r\n return behavior;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /** Carbon BehaviorGroup::SortBehaviorIndexes (cpp:206-221). */\r\n @carbon.method\r\n @impl.implemented\r\n SortBehaviorIndexes()\r\n {\r\n this.#sortedBehaviorIndexes.length = 0;\r\n for (let priority = 0; priority < ProcessPriority.COUNT; priority++)\r\n {\r\n for (let index = 0; index < this.behaviors.length; index++)\r\n {\r\n if ((this.behaviors[index]?.GetProcessPriority?.() ?? ProcessPriority.LEAST_PRIORITY) === priority)\r\n {\r\n this.#sortedBehaviorIndexes.push(index);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetMesh (cpp:227-230). */\r\n @carbon.method\r\n @impl.implemented\r\n GetMesh()\r\n {\r\n return this.mesh;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetMaxVelocity (cpp:236-239). */\r\n @carbon.method\r\n @impl.implemented\r\n GetMaxVelocity()\r\n {\r\n return this.maxVelocity;\r\n }\r\n\r\n /** Carbon BehaviorGroup::SetGroupIndexIndicator (cpp:254-257). */\r\n @carbon.method\r\n @impl.implemented\r\n SetGroupIndexIndicator(index)\r\n {\r\n this.#groupIndex = Number(index) | 0;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetGroupIndexIndicator (cpp:263-266). */\r\n @carbon.method\r\n @impl.implemented\r\n GetGroupIndexIndicator()\r\n {\r\n return this.#groupIndex;\r\n }\r\n\r\n /** Carbon method AddAgent (cpp:272-278). */\r\n @carbon.method\r\n @impl.implemented\r\n AddAgent()\r\n {\r\n this.#AddAgentPrivate();\r\n this.#OnAgentCountChanged();\r\n }\r\n\r\n /**\r\n * Adds one agent per position and initializes the newcomers' scratch\r\n * records (Carbon AddAgents, cpp:280-310).\r\n * @param {Array<Float32Array>} positions\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AddAgents(positions)\r\n {\r\n if (!Array.isArray(positions))\r\n {\r\n return;\r\n }\r\n\r\n const firstNewIndex = this.#agents.length;\r\n for (const position of positions)\r\n {\r\n const agent = this.#createAgent();\r\n vec3.copy(agent.position, position);\r\n this.#agents.push(agent);\r\n }\r\n\r\n this.#EnsureScratchArrays();\r\n for (let agentIndex = firstNewIndex; agentIndex < this.#agents.length; agentIndex++)\r\n {\r\n this.#InitializeScratchForAgent(agentIndex);\r\n }\r\n\r\n this.actualCount += positions.length;\r\n this.#OnAgentCountChanged();\r\n }\r\n\r\n /** Carbon method RemoveAgent (cpp:415-426). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Math.random replaces Carbon's TriRandInt when selecting the removed agent.\")\r\n RemoveAgent()\r\n {\r\n if (this.#agents.length === 0)\r\n {\r\n return;\r\n }\r\n const index = Math.floor(Math.random() * this.#agents.length);\r\n this.RemoveSpecificAgent(index);\r\n this.#OnAgentCountChanged();\r\n }\r\n\r\n /**\r\n * Swap-with-last removal that keeps every behavior's per-agent scratch\r\n * record aligned (Carbon RemoveSpecificAgent, cpp:432-452).\r\n * @param {Number} index\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n RemoveSpecificAgent(index)\r\n {\r\n const lastIndex = this.#agents.length - 1;\r\n if (index < 0 || index > lastIndex)\r\n {\r\n return;\r\n }\r\n\r\n this.#agents[index] = this.#agents[lastIndex];\r\n this.#agents.pop();\r\n\r\n for (let i = 0; i < this.behaviors.length; i++)\r\n {\r\n const records = this.#scratchData[i];\r\n if (!records)\r\n {\r\n continue;\r\n }\r\n records[index] = records[lastIndex];\r\n records.length = this.#agents.length;\r\n }\r\n\r\n this.actualCount--;\r\n this.#OnAgentCountChanged();\r\n }\r\n\r\n /** Carbon method SetCount (cpp:350-368). */\r\n @carbon.method\r\n @impl.implemented\r\n SetCount(count)\r\n {\r\n const value = Number(count);\r\n const desired = Number.isFinite(value) ? Math.trunc(value) : -1;\r\n if (desired === this.actualCount || desired < 0)\r\n {\r\n return;\r\n }\r\n\r\n if (this.actualCount < desired)\r\n {\r\n this.#AddAgentsByCount(desired);\r\n }\r\n else\r\n {\r\n this.#RemoveAgentsByCount(desired);\r\n }\r\n\r\n // Carbon updates only m_actualCount here; m_count stays the authored\r\n // spawn count that InitializeGeometryResource restores.\r\n this.actualCount = desired;\r\n this.#OnAgentCountChanged();\r\n }\r\n\r\n /**\r\n * Runs the priority-sorted behaviors against the shared range query, then\r\n * integrates every agent's acceleration, velocity, facing, and position\r\n * (Carbon UpdateAgents, cpp:521-626).\r\n * @param {Number} dt - delta time in seconds\r\n * @param {Object} system - owning EveChildBehaviorSystem\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateAgents(dt, system)\r\n {\r\n // make sure the update isn't too big when e.g. a player resizes his window\r\n const deltaTime = Math.min(Math.max(Number(dt) || 0, 0), 0.1);\r\n\r\n // JS has no Blue list notify: keep the priority order and scratch shells\r\n // in sync with the behavior list before the frame body runs (Carbon's\r\n // OnListModified seam).\r\n if (this.#sortedBehaviorIndexes.length !== this.behaviors.length)\r\n {\r\n this.SortBehaviorIndexes();\r\n }\r\n this.#EnsureScratchArrays();\r\n this.#SyncScratchRecords();\r\n\r\n if (this.#updatedOnce)\r\n {\r\n if (!this.display || !this.update)\r\n {\r\n this.#tree = null;\r\n return;\r\n }\r\n if (this.#agents.length === 0)\r\n {\r\n for (let i = 0; i < this.behaviors.length; i++)\r\n {\r\n const index = this.#sortedBehaviorIndexes[i];\r\n this.behaviors[index]?.CalculateBehavior?.(this.#agents, this.#scratchData[index], deltaTime, this, system, EMPTY_SEARCH_TREE);\r\n }\r\n return;\r\n }\r\n }\r\n if (this.#tree === null)\r\n {\r\n this.CreateAgentTree();\r\n }\r\n\r\n const ranges = this.#ranges;\r\n ranges.length = 0;\r\n const boundingRadius = this.boundingSphereRadius * this.scale;\r\n for (const behavior of this.behaviors)\r\n {\r\n const searchRadius = behavior?.GetBehaviorSearchRadius?.() ?? -1;\r\n ranges.push(searchRadius === -1 ? -1 : searchRadius + boundingRadius);\r\n }\r\n\r\n const dronesInRange = this.#tree.FindDronesInRange(this.#agents, ranges, boundingRadius);\r\n\r\n // Calculate the behaviors\r\n if (this.collectForces)\r\n {\r\n this.#forces.length = 0;\r\n for (let i = 0; i < this.behaviors.length; i++)\r\n {\r\n const index = this.#sortedBehaviorIndexes[i];\r\n const forces = this.behaviors[index]?.CalculateBehavior?.(this.#agents, this.#scratchData[index], deltaTime, this, system, dronesInRange[index] ?? EMPTY_SEARCH_TREE);\r\n if (Array.isArray(forces))\r\n {\r\n for (const force of forces)\r\n {\r\n this.#forces.push(force);\r\n }\r\n }\r\n }\r\n }\r\n else\r\n {\r\n for (let i = 0; i < this.behaviors.length; i++)\r\n {\r\n const index = this.#sortedBehaviorIndexes[i];\r\n this.behaviors[index]?.CalculateBehavior?.(this.#agents, this.#scratchData[index], deltaTime, this, system, dronesInRange[index] ?? EMPTY_SEARCH_TREE);\r\n }\r\n }\r\n\r\n // Move the agents based on the behaviors\r\n const maxVelocitySq = Math.max(1, this.maxVelocity * this.maxVelocity);\r\n for (const agent of this.#agents)\r\n {\r\n agent.lifetime += deltaTime;\r\n\r\n vec3.scaleAndAdd(agent.velocity, agent.velocity, agent.acceleration, deltaTime);\r\n\r\n vec3.transformQuat(INTEREST_POINT, Z_AXIS, agent.rotation);\r\n vec3.lerp(ACTUAL_FACING, INTEREST_POINT, agent.velocity, vec3.squaredLength(agent.velocity) / maxVelocitySq);\r\n\r\n // Carbon TriQuaternionRotationArc(zAxis -> actualFacingDir); rotationTo\r\n // needs unit vectors, and a zero facing keeps the previous rotation.\r\n vec3.normalize(FACING_NORMALIZED, ACTUAL_FACING);\r\n if (vec3.squaredLength(FACING_NORMALIZED) > 0)\r\n {\r\n quat.rotationTo(agent.rotation, Z_AXIS, FACING_NORMALIZED);\r\n }\r\n vec3.copy(agent.targetDirection, ACTUAL_FACING);\r\n\r\n ClampLength(agent.velocity, this.maxVelocity);\r\n vec3.scaleAndAdd(agent.position, agent.position, agent.velocity, deltaTime);\r\n vec3.set(agent.acceleration, 0, 0, 0);\r\n }\r\n\r\n this.#tree.UpdateTree(deltaTime);\r\n\r\n // we always want to update the behaviors at least once, otherwise\r\n // behaviors like SpawnDrones won't get to spawn the drones\r\n this.#updatedOnce = true;\r\n }\r\n\r\n /**\r\n * Per-agent frustum visibility and mesh/sprite crossfade (Carbon\r\n * UpdateVisibility, cpp:637-677).\r\n * @param {Object} updateContext - frame context (frustum ducks)\r\n * @param {Float32Array} worldTransform - owning system's world transform\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Frustum ducks take a packed vec4 sphere per repo convention; a missing frustum treats agents as visible at infinite pixel size.\")\r\n UpdateVisibility(updateContext, worldTransform)\r\n {\r\n this.currentScreenSize = 0;\r\n let worldRadius = 1;\r\n\r\n const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;\r\n const boundingRadius = this.boundingSphereRadius * this.scale;\r\n const blendModifier = this.#GetBlendModifier();\r\n\r\n for (const agent of this.#agents)\r\n {\r\n vec3.transformMat4(AGENT_SPHERE, agent.position, worldTransform);\r\n AGENT_SPHERE[3] = boundingRadius;\r\n if (frustum?.IsSphereVisible?.(AGENT_SPHERE) !== false)\r\n {\r\n const pixelSize = Number(frustum?.GetPixelSizeAccross?.(AGENT_SPHERE) ?? Infinity);\r\n agent.screenSize = pixelSize;\r\n this.currentScreenSize = Math.max(this.currentScreenSize, pixelSize);\r\n worldRadius = Math.max(worldRadius, boundingRadius);\r\n if (pixelSize >= this.blendScreenSizeMax)\r\n {\r\n agent.xfade = 0; // Render as mesh\r\n }\r\n else if (pixelSize <= this.blendScreenSizeMin)\r\n {\r\n agent.xfade = 1; // Render as sprite\r\n }\r\n else\r\n {\r\n agent.xfade = 1 - (pixelSize - this.blendScreenSizeMin) * blendModifier;\r\n }\r\n agent.isVisible = agent.screenSize >= this.renderThreshold;\r\n }\r\n else\r\n {\r\n agent.isVisible = false;\r\n }\r\n }\r\n this.mesh?.UseWithScreenSize?.(this.currentScreenSize, worldRadius);\r\n\r\n mat4.copy(this.#parentTransform, worldTransform);\r\n }\r\n\r\n /** Carbon BehaviorGroup::IsGroupVisible (cpp:683-686). */\r\n @carbon.method\r\n @impl.implemented\r\n IsGroupVisible()\r\n {\r\n return this.currentScreenSize >= this.renderThreshold;\r\n }\r\n\r\n /**\r\n * 1 if every agent lodded out to a sprite, 0 if every agent is a mesh,\r\n * -1 when mixed or empty (Carbon AllTheSame, cpp:397-409).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AllTheSame()\r\n {\r\n let same = -1;\r\n for (const agent of this.#agents)\r\n {\r\n if (same === -1)\r\n {\r\n same = agent.xfade;\r\n }\r\n if (same !== agent.xfade)\r\n {\r\n return -1;\r\n }\r\n }\r\n return same;\r\n }\r\n\r\n /** Carbon method GetShipInfoForBuffer (cpp:692-742) - GPU instance-buffer fill. */\r\n @carbon.method\r\n @impl.notImplemented\r\n GetShipInfoForBuffer(..._args)\r\n {\r\n throw new Error(\"BehaviorGroup.GetShipInfoForBuffer is not implemented in CarbonEngineJS (GPU instance-buffer fill).\");\r\n }\r\n\r\n /** Carbon method GetBoosterInfoForBuffer (cpp:748-821) - GPU instance-buffer fill. */\r\n @carbon.method\r\n @impl.notImplemented\r\n GetBoosterInfoForBuffer(..._args)\r\n {\r\n throw new Error(\"BehaviorGroup.GetBoosterInfoForBuffer is not implemented in CarbonEngineJS (GPU instance-buffer fill).\");\r\n }\r\n\r\n /** Carbon method CreateVertexDeclaration (cpp:828-865) - renderer vertex\r\n * declaration bookkeeping; safe frame-loop no-op in JS. */\r\n @carbon.method\r\n @impl.noop\r\n CreateVertexDeclaration()\r\n {\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetRenderables (cpp:871-877): PlayFX effects only. */\r\n @carbon.method\r\n @impl.implemented\r\n GetRenderables(renderables = [])\r\n {\r\n if (this.#playFXBehavior !== null)\r\n {\r\n this.#playFXBehavior.GetRenderables?.(renderables);\r\n }\r\n return renderables;\r\n }\r\n\r\n /** Carbon BehaviorGroup::UpdateAsyncronous (cpp:883-894): PlayFX fan-out. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateAsyncronous(updateContext)\r\n {\r\n if (!this.update)\r\n {\r\n return;\r\n }\r\n\r\n if (this.#playFXBehavior !== null)\r\n {\r\n this.#playFXBehavior.UpdateAsyncronous?.(updateContext, this.#parentTransform);\r\n }\r\n }\r\n\r\n /** Carbon BehaviorGroup::UpdateSyncronous (cpp:901-925): deferred tree\r\n * rebuild, PlayFX sync update, and parent capture. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateSyncronous(updateContext, params)\r\n {\r\n if (!this.update)\r\n {\r\n return;\r\n }\r\n if (this.#createAgentTree === true)\r\n {\r\n this.CreateAgentTree();\r\n this.#createAgentTree = false;\r\n }\r\n\r\n if (this.#playFXBehavior !== null)\r\n {\r\n this.#playFXBehavior.UpdateSyncronous?.(updateContext);\r\n }\r\n\r\n if (this.#parent === null && params?.spaceObjectParent)\r\n {\r\n this.#parent = params.spaceObjectParent;\r\n }\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetParent (cpp:927-930). */\r\n @carbon.method\r\n @impl.implemented\r\n GetParent()\r\n {\r\n return this.#parent;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetBoundingSphereRadius (cpp:953-956). */\r\n @carbon.method\r\n @impl.implemented\r\n GetBoundingSphereRadius()\r\n {\r\n return this.boundingSphereRadius * this.scale;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetKDTree (cpp:958-961). */\r\n @carbon.method\r\n @impl.implemented\r\n GetKDTree()\r\n {\r\n return this.#tree;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetBooster (cpp:963-966). */\r\n @carbon.method\r\n @impl.implemented\r\n GetBooster()\r\n {\r\n return this.boosters;\r\n }\r\n\r\n /** Carbon BehaviorGroup::SetPlayFXBehavior (cpp:968-988): caches the PlayFX\r\n * behavior and swaps its component registration. */\r\n @carbon.method\r\n @impl.implemented\r\n SetPlayFXBehavior()\r\n {\r\n const behavior = this.GetBehaviorByName(\"PlayFX\");\r\n if (behavior !== null)\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.#playFXBehavior)\r\n {\r\n this.#playFXBehavior.UnRegister?.(registry);\r\n }\r\n this.#playFXBehavior = behavior;\r\n if (registry)\r\n {\r\n behavior.Register?.(registry);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Registers the booster light records with the duck-typed light manager\r\n * (Carbon GetLights, cpp:990-1001). The #lightInfo map is populated by the\r\n * booster instance-buffer fill, which is a GPU seam - until that path runs\r\n * the map stays empty and no lights register.\r\n * @param {Object} lightManager\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetLights(lightManager)\r\n {\r\n if (this.boosters && this.boosters.GetDisplay?.())\r\n {\r\n for (const [agentIndex, info] of this.#lightInfo)\r\n {\r\n this.boosters.AddLight?.(lightManager, info, info[3], agentIndex, this.#parentTransform);\r\n }\r\n }\r\n }\r\n\r\n /** ITr2LightOwner::AddLight - intentionally empty in Carbon (h:116). */\r\n @carbon.method\r\n @impl.noop\r\n AddLight(_light)\r\n {\r\n }\r\n\r\n /** ITr2LightOwner::ClearLights - intentionally empty in Carbon (h:117). */\r\n @carbon.method\r\n @impl.noop\r\n ClearLights()\r\n {\r\n }\r\n\r\n /** Carbon BehaviorGroup::RegisterComponents (cpp:1003-1015): unconditional\r\n * LightOwner (Carbon's verbatim \"LightOwner\" component name,\r\n * Lights/ITr2LightOwner.h:18), then forwards the PlayFX behavior. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n this.#playFXBehavior?.Register?.(registry);\r\n }\r\n }\r\n\r\n /** Carbon BehaviorGroup::UnRegisterComponents (cpp:1017-1027). */\r\n @carbon.method\r\n @impl.implemented\r\n UnRegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n this.#playFXBehavior?.UnRegister?.(registry);\r\n }\r\n }\r\n\r\n /** Carbon BehaviorGroup::RegisterWithQuadRenderer (cpp:1029-1040): CPU\r\n * fan-out to the booster and PlayFX quad owners. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterWithQuadRenderer(quadRenderer)\r\n {\r\n if (this.boosters)\r\n {\r\n this.boosters.RegisterWithQuadRenderer?.(quadRenderer);\r\n }\r\n\r\n if (this.#playFXBehavior !== null)\r\n {\r\n this.#playFXBehavior.RegisterWithQuadRenderer?.(quadRenderer);\r\n }\r\n }\r\n\r\n /** Carbon BehaviorGroup::AddQuadsToQuadRenderer (cpp:1043-1059): CPU\r\n * fan-out, gated on display and group visibility. */\r\n @carbon.method\r\n @impl.implemented\r\n AddQuadsToQuadRenderer(frustum, quadRenderer)\r\n {\r\n if (this.display && this.IsGroupVisible())\r\n {\r\n if (this.boosters && this.boosters.GetDisplay?.())\r\n {\r\n this.boosters.AddQuadsToQuadRenderer?.(frustum, quadRenderer);\r\n }\r\n\r\n if (this.#playFXBehavior !== null)\r\n {\r\n this.#playFXBehavior.AddQuadsToQuadRenderer?.(frustum, quadRenderer);\r\n }\r\n }\r\n }\r\n\r\n /** Returns the portable DroneAgent records in stable instance order. */\r\n @impl.adapted\r\n GetAgents()\r\n {\r\n return this.#agents;\r\n }\r\n\r\n /** Returns the collected debug force pairs (Carbon m_forces). */\r\n @impl.adapted\r\n GetForces()\r\n {\r\n return this.#forces;\r\n }\r\n\r\n // Carbon GetBlendModifier (cpp:628-631).\r\n #GetBlendModifier()\r\n {\r\n return 1 / Math.max(0.0001, this.blendScreenSizeMax - this.blendScreenSizeMin);\r\n }\r\n\r\n // Grows the per-behavior scratch shells to the behavior count (Carbon\r\n // resizes m_scratchData wherever agents are added).\r\n #EnsureScratchArrays()\r\n {\r\n while (this.#scratchData.length < this.behaviors.length)\r\n {\r\n this.#scratchData.push(null);\r\n }\r\n }\r\n\r\n // Fills any missing per-agent scratch records and trims removed ones -\r\n // the JS stand-in for Carbon's behavior-list OnListModified handler\r\n // (cpp:77-118), which resizes scratch when behaviors join or leave.\r\n #SyncScratchRecords()\r\n {\r\n for (let i = 0; i < this.behaviors.length; i++)\r\n {\r\n const behavior = this.behaviors[i];\r\n if ((behavior?.GetScratchMemorySize?.() ?? 0) > 0)\r\n {\r\n let records = this.#scratchData[i];\r\n if (!records)\r\n {\r\n records = [];\r\n this.#scratchData[i] = records;\r\n }\r\n for (let j = records.length; j < this.#agents.length; j++)\r\n {\r\n records[j] = behavior.InitializeScratch();\r\n }\r\n records.length = this.#agents.length;\r\n }\r\n }\r\n }\r\n\r\n // Initializes every scratch-owning behavior's record for one agent index\r\n // (Carbon InitializeScratch over the raw buffer at size * agentIndex).\r\n #InitializeScratchForAgent(agentIndex)\r\n {\r\n for (let i = 0; i < this.behaviors.length; i++)\r\n {\r\n const behavior = this.behaviors[i];\r\n if ((behavior?.GetScratchMemorySize?.() ?? 0) > 0)\r\n {\r\n let records = this.#scratchData[i];\r\n if (!records)\r\n {\r\n records = [];\r\n this.#scratchData[i] = records;\r\n }\r\n records[agentIndex] = behavior.InitializeScratch();\r\n }\r\n }\r\n }\r\n\r\n // Carbon AddAgentPrivate (cpp:316-343).\r\n #AddAgentPrivate()\r\n {\r\n const agent = this.#createAgent();\r\n this.#agents.push(agent);\r\n this.#EnsureScratchArrays();\r\n this.#InitializeScratchForAgent(this.#agents.length - 1);\r\n this.actualCount++;\r\n }\r\n\r\n // Carbon AddAgentsByCount (cpp:460-491).\r\n #AddAgentsByCount(count)\r\n {\r\n const sizeBeforeResize = this.#agents.length;\r\n while (this.#agents.length < count)\r\n {\r\n this.#agents.push(this.#createAgent());\r\n }\r\n\r\n this.#EnsureScratchArrays();\r\n for (let agentIndex = sizeBeforeResize; agentIndex < this.#agents.length; agentIndex++)\r\n {\r\n this.#InitializeScratchForAgent(agentIndex);\r\n }\r\n }\r\n\r\n // Carbon RemoveAgentsByCount (cpp:499-513).\r\n #RemoveAgentsByCount(count)\r\n {\r\n this.#agents.length = count;\r\n for (let i = 0; i < this.behaviors.length; i++)\r\n {\r\n const records = this.#scratchData[i];\r\n if (records)\r\n {\r\n records.length = count;\r\n }\r\n }\r\n }\r\n\r\n #createAgent()\r\n {\r\n return {\r\n closestAgentInGroup: null,\r\n rotation: quat.create(),\r\n // This is because the process priority behavior can also affect where\r\n // drones spawn (Carbon AddAgentPrivate, cpp:318-323).\r\n position: vec3.clone(this.spawnPosition),\r\n acceleration: vec3.create(),\r\n velocity: vec3.create(),\r\n accelerationLength: 0,\r\n velocityLength: 0,\r\n target: vec3.create(),\r\n targetDirection: vec3.create(),\r\n id: Math.floor(Math.random() * 500),\r\n lifetime: 0,\r\n playFX: false,\r\n fxStartTime: -1,\r\n xfade: 0,\r\n isVisible: false,\r\n screenSize: 0\r\n };\r\n }\r\n\r\n // Carbon OnAgentCountChanged (cpp:376-388).\r\n #OnAgentCountChanged()\r\n {\r\n this.#createAgentTree = true;\r\n if (this.#changeBufferVertexCount)\r\n {\r\n this.#changeBufferVertexCount();\r\n }\r\n\r\n if (this.boosters)\r\n {\r\n this.boosters.RebuildFlareBuffer?.(this.actualCount);\r\n }\r\n }\r\n\r\n}\r\n"],"names":["Z_AXIS","vec3","fromValues","INTEREST_POINT","create","ACTUAL_FACING","FACING_NORMALIZED","AGENT_SPHERE","vec4","EMPTY_SEARCH_TREE","ClampLength","value","maxLength","lengthSq","squaredLength","scale","Math","sqrt","_BehaviorGroup","BehaviorGroup","EveEntity","e","_init_display","_init_extra_display","_init_maxVelocity","_init_extra_maxVelocity","_init_scale","_init_extra_scale","_init_blendScreenSizeMax","_init_extra_blendScreenSizeMax","_init_blendScreenSizeMin","_init_extra_blendScreenSizeMin","_init_currentScreenSize","_init_extra_currentScreenSize","_init_renderThreshold","_init_extra_renderThreshold","_init_debugIntensity","_init_extra_debugIntensity","_init_debugLodLevel","_init_extra_debugLodLevel","_init_actualCount","_init_extra_actualCount","_init_count","_init_extra_count","_init_boosters","_init_extra_boosters","_init_mesh","_init_extra_mesh","_init_name","_init_extra_name","_init_boundingSphereRadius","_init_extra_boundingSphereRadius","_init_debugMode","_init_extra_debugMode","_init_update","_init_extra_update","_init_behaviors","_init_extra_behaviors","_init_spawnPosition","_init_extra_spawnPosition","_init_collectForces","_init_extra_collectForces","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","boolean","float32","read","readwrite","int32","notify","model","string","list","carbon","method","impl","adapted","reason","implemented","notImplemented","noop","constructor","args","Map","mat4","display","maxVelocity","blendScreenSizeMax","blendScreenSizeMin","currentScreenSize","renderThreshold","debugIntensity","debugLodLevel","actualCount","count","boosters","mesh","name","boundingSphereRadius","debugMode","update","behaviors","spawnPosition","collectForces","Initialize","CreateVertexDeclaration","RebuildFlareBuffer","SetPlayFXBehavior","OnModified","InitializeGeometryResource","length","i","SortBehaviorIndexes","t","SetCount","SetVertexFunctionReferance","callback","GetSize","GetCount","CreateAgentTree","EveKDdroneManagementTree","CreateTree","GetBehaviorByName","target","String","behavior","GetBehaviorName","priority","ProcessPriority","COUNT","index","GetProcessPriority","LEAST_PRIORITY","push","GetMesh","GetMaxVelocity","SetGroupIndexIndicator","Number","GetGroupIndexIndicator","AddAgent","AddAgents","positions","Array","isArray","firstNewIndex","position","agent","copy","agentIndex","RemoveAgent","floor","random","RemoveSpecificAgent","lastIndex","pop","records","desired","isFinite","trunc","UpdateAgents","dt","system","deltaTime","min","max","CalculateBehavior","ranges","boundingRadius","searchRadius","GetBehaviorSearchRadius","dronesInRange","FindDronesInRange","forces","force","maxVelocitySq","lifetime","scaleAndAdd","velocity","acceleration","transformQuat","rotation","lerp","normalize","quat","rotationTo","targetDirection","set","UpdateTree","UpdateVisibility","updateContext","worldTransform","worldRadius","frustum","GetFrustum","blendModifier","transformMat4","IsSphereVisible","pixelSize","GetPixelSizeAccross","Infinity","screenSize","xfade","isVisible","UseWithScreenSize","IsGroupVisible","AllTheSame","same","GetShipInfoForBuffer","_args","Error","GetBoosterInfoForBuffer","GetRenderables","renderables","UpdateAsyncronous","UpdateSyncronous","params","spaceObjectParent","GetParent","GetBoundingSphereRadius","GetKDTree","GetBooster","registry","GetComponentRegistry","UnRegister","Register","GetLights","lightManager","GetDisplay","info","AddLight","_light","ClearLights","RegisterComponents","RegisterComponent","EveComponentType","LightOwner","UnRegisterComponents","RegisterWithQuadRenderer","quadRenderer","AddQuadsToQuadRenderer","GetAgents","GetForces","#GetBlendModifier","#EnsureScratchArrays","#SyncScratchRecords","GetScratchMemorySize","j","InitializeScratch","#InitializeScratchForAgent","#AddAgentPrivate","#AddAgentsByCount","sizeBeforeResize","#RemoveAgentsByCount","#createAgent","closestAgentInGroup","clone","accelerationLength","velocityLength","id","playFX","fxStartTime","#OnAgentCountChanged"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BehaviorGroup.js","sources":["../../../../../../src/generated/eve/child/behaviors/BehaviorGroup.js"],"sourcesContent":["// Ported from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\r\n// trinity/trinity/Eve/SpaceObject/Children/Behaviors/BehaviorGroup.h\r\n// trinity/trinity/Eve/SpaceObject/Children/Behaviors/BehaviorGroup.cpp\r\n// Generated by format-carbon carbon-class --emit. Verify against eve/child/behaviors/BehaviorGroup.json.\r\nimport { carbon, impl, io, type } from \"@carbonenginejs/runtime-utils/schema\";\r\nimport { EveEntity } from \"../../../../eve/EveEntity.js\";\r\nimport { mat4 } from \"@carbonenginejs/runtime-utils/mat4\";\r\nimport { quat } from \"@carbonenginejs/runtime-utils/quat\";\r\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\r\nimport { vec4 } from \"@carbonenginejs/runtime-utils/vec4\";\r\nimport { ProcessPriority } from \"../../../../eve/child/behaviors/enums.js\";\r\nimport { EveKDdroneManagementTree } from \"./EveKDdroneManagementTree.js\";\r\nimport { EveComponentType } from \"../../../../eve/EveComponentTypes.js\";\r\n\r\n// Module scratch for the per-agent integration and visibility loops (child\r\n// updates run sequentially; non-reentrant by design).\r\nconst Z_AXIS = vec3.fromValues(0, 0, 1);\r\nconst INTEREST_POINT = vec3.create();\r\nconst ACTUAL_FACING = vec3.create();\r\nconst FACING_NORMALIZED = vec3.create();\r\nconst AGENT_SPHERE = vec4.create();\r\nconst EMPTY_SEARCH_TREE = [];\r\n\r\n// Carbon ClampLength: in-place clamp of a vec3 to a maximum length.\r\nfunction ClampLength(value, maxLength)\r\n{\r\n const lengthSq = vec3.squaredLength(value);\r\n if (lengthSq > maxLength * maxLength && lengthSq > 0)\r\n {\r\n vec3.scale(value, value, maxLength / Math.sqrt(lengthSq));\r\n }\r\n return value;\r\n}\r\n\r\n/** BehaviorGroup (eve/child/behaviors) - generated from schema shapeHash d09b2740.... */\r\n@type.define({ className: \"BehaviorGroup\", family: \"eve/child/behaviors\" })\r\nexport class BehaviorGroup extends EveEntity\r\n{\r\n\r\n #agents = [];\r\n\r\n // Per-behavior scratch: #scratchData[behaviorIndex] is an array of plain\r\n // per-agent records (behavior.InitializeScratch()) or null when the\r\n // behavior reports no scratch (Carbon m_scratchData raw buffers).\r\n #scratchData = [];\r\n\r\n // Behavior indexes ordered by ProcessPriority (Carbon m_sortedBehaviorIndexes).\r\n #sortedBehaviorIndexes = [];\r\n\r\n // Spatial partitioning tree (Carbon m_tree).\r\n #tree = null;\r\n\r\n // Carbon m_updatedOnce/m_createAgentTree runtime frame state.\r\n #updatedOnce = false;\r\n\r\n #createAgentTree = false;\r\n\r\n // Cached PlayFX behavior (Carbon m_playFXBehavior).\r\n #playFXBehavior = null;\r\n\r\n // Owner-provided buffer resize callback (Carbon m_changeBufferVertexCount).\r\n #changeBufferVertexCount = null;\r\n\r\n // Debug force collection (Carbon m_forces; pairs of position/force vec3s).\r\n #forces = [];\r\n\r\n // Reused per-frame search radii (Carbon local `ranges`).\r\n #ranges = [];\r\n\r\n // agentIndex -> vec4(position.xyz, lightScale) (Carbon m_lightInfo);\r\n // filled by the GPU booster-buffer path, consumed by GetLights.\r\n #lightInfo = new Map();\r\n\r\n // World transform captured by UpdateVisibility (Carbon m_parentTransform).\r\n #parentTransform = mat4.create();\r\n\r\n // Owning space object (Carbon m_parent), captured in UpdateSyncronous.\r\n #parent = null;\r\n\r\n // Base-instance indicator assigned by the behavior system (Carbon m_groupIndex).\r\n #groupIndex = 0;\r\n\r\n /** m_display (bool) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n /** m_maxVelocity (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n maxVelocity = 100;\r\n\r\n /** m_scale (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n scale = 1;\r\n\r\n /** m_blendScreenSizeMax (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n blendScreenSizeMax = 15;\r\n\r\n /** m_blendScreenSizeMin (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n blendScreenSizeMin = 5;\r\n\r\n /** m_currentScreenSize (float) [READ] */\r\n @io.read\r\n @type.float32\r\n currentScreenSize = 0;\r\n\r\n /** m_renderThreshold (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n renderThreshold = 1;\r\n\r\n /** m_debugIntensity (float) [READWRITE] */\r\n @io.readwrite\r\n @type.float32\r\n debugIntensity = 0;\r\n\r\n /** m_debugLodLevel (float) [READWRITE] */\r\n @io.readwrite\r\n @type.float32\r\n debugLodLevel = 0;\r\n\r\n /** m_actualCount (int32_t) [READ] */\r\n @io.read\r\n @type.int32\r\n actualCount = 0;\r\n\r\n /** m_count (int32_t) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.int32\r\n count = 0;\r\n\r\n /** m_booster (BehaviorGroupBoosterPtr) [READWRITE, PERSIST, NOTIFY] */\r\n @io.notify\r\n @io.persist\r\n @type.model(\"BehaviorGroupBooster\")\r\n boosters = null;\r\n\r\n /** m_mesh (Tr2MeshPtr) [READWRITE, PERSIST, NOTIFY] */\r\n @io.notify\r\n @io.persist\r\n @type.model(\"Tr2Mesh\")\r\n mesh = null;\r\n\r\n /** m_behaviorGroupName (BlueSharedString) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n /** m_boundingSphereRadius (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n boundingSphereRadius = 5;\r\n\r\n /** m_debugMode (bool) [READWRITE] */\r\n @io.readwrite\r\n @type.boolean\r\n debugMode = false;\r\n\r\n /** m_update (bool) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.boolean\r\n update = true;\r\n\r\n /** m_behaviors (PIBehaviorVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"IBehavior\")\r\n behaviors = [];\r\n\r\n /** m_spawnPosition (Vector3) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.vec3\r\n spawnPosition = vec3.create();\r\n\r\n /** m_collectForces (bool) - debug toggle read by the behaviors. */\r\n @type.boolean\r\n collectForces = false;\r\n\r\n /** Carbon BehaviorGroup::Initialize (cpp:45-57). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Vertex-declaration creation is a GPU seam; scratch sizing, booster flare-count sync, and the PlayFX cache are ported.\")\r\n Initialize()\r\n {\r\n this.#EnsureScratchArrays();\r\n this.CreateVertexDeclaration();\r\n\r\n if (this.boosters)\r\n {\r\n this.boosters.RebuildFlareBuffer?.(this.count);\r\n }\r\n\r\n this.SetPlayFXBehavior();\r\n return true;\r\n }\r\n\r\n /** Carbon BehaviorGroup::OnModified (cpp:59-71); the value argument follows\r\n * the repo's OnModified duck (field name or field value). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Blue Var matching maps to the repo's OnModified duck; a mesh change refreshes the (stubbed) vertex declaration and a booster change re-syncs the flare count.\")\r\n OnModified(value = null)\r\n {\r\n if (value === \"mesh\" || (value !== null && value === this.mesh))\r\n {\r\n this.CreateVertexDeclaration();\r\n }\r\n if ((value === \"boosters\" || (value !== null && value === this.boosters)) && this.boosters !== null)\r\n {\r\n this.boosters.RebuildFlareBuffer?.(this.actualCount);\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Regenerates the agents from scratch: clears them, re-sorts the behavior\r\n * indexes, and re-adds m_count agents (Carbon InitializeGeometryResource,\r\n * cpp:126-140). Behaviors like SpawnDrones use this as a full reset.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n InitializeGeometryResource()\r\n {\r\n this.#agents.length = 0;\r\n for (let i = 0; i < this.#scratchData.length; i++)\r\n {\r\n if (this.#scratchData[i])\r\n {\r\n this.#scratchData[i].length = 0;\r\n }\r\n }\r\n\r\n this.SortBehaviorIndexes();\r\n\r\n const t = this.count;\r\n this.actualCount = 0;\r\n this.SetCount(t);\r\n }\r\n\r\n /** Carbon BehaviorGroup::SetVertexFunctionReferance (cpp:142-145). */\r\n @carbon.method\r\n @impl.implemented\r\n SetVertexFunctionReferance(callback)\r\n {\r\n this.#changeBufferVertexCount = typeof callback === \"function\" ? callback : null;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetSize (cpp:151-154). */\r\n @carbon.method\r\n @impl.implemented\r\n GetSize()\r\n {\r\n return this.#agents.length;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetCount (cpp:160-163). */\r\n @carbon.method\r\n @impl.implemented\r\n GetCount()\r\n {\r\n return this.actualCount;\r\n }\r\n\r\n /** Carbon method CreateAgentTree (cpp:169-177). */\r\n @carbon.method\r\n @impl.implemented\r\n CreateAgentTree()\r\n {\r\n this.#tree = new EveKDdroneManagementTree();\r\n this.#tree.CreateTree(this.#agents, this.behaviors.length);\r\n return this.#tree;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetBehaviorByName (cpp:187-197). */\r\n @carbon.method\r\n @impl.implemented\r\n GetBehaviorByName(name)\r\n {\r\n const target = String(name ?? \"\");\r\n for (const behavior of this.behaviors)\r\n {\r\n if (target === (behavior?.GetBehaviorName?.() ?? \"unnamed\"))\r\n {\r\n return behavior;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /** Carbon BehaviorGroup::SortBehaviorIndexes (cpp:206-221). */\r\n @carbon.method\r\n @impl.implemented\r\n SortBehaviorIndexes()\r\n {\r\n this.#sortedBehaviorIndexes.length = 0;\r\n for (let priority = 0; priority < ProcessPriority.COUNT; priority++)\r\n {\r\n for (let index = 0; index < this.behaviors.length; index++)\r\n {\r\n if ((this.behaviors[index]?.GetProcessPriority?.() ?? ProcessPriority.LEAST_PRIORITY) === priority)\r\n {\r\n this.#sortedBehaviorIndexes.push(index);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetMesh (cpp:227-230). */\r\n @carbon.method\r\n @impl.implemented\r\n GetMesh()\r\n {\r\n return this.mesh;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetMaxVelocity (cpp:236-239). */\r\n @carbon.method\r\n @impl.implemented\r\n GetMaxVelocity()\r\n {\r\n return this.maxVelocity;\r\n }\r\n\r\n /** Carbon BehaviorGroup::SetGroupIndexIndicator (cpp:254-257). */\r\n @carbon.method\r\n @impl.implemented\r\n SetGroupIndexIndicator(index)\r\n {\r\n this.#groupIndex = Number(index) | 0;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetGroupIndexIndicator (cpp:263-266). */\r\n @carbon.method\r\n @impl.implemented\r\n GetGroupIndexIndicator()\r\n {\r\n return this.#groupIndex;\r\n }\r\n\r\n /** Carbon method AddAgent (cpp:272-278). */\r\n @carbon.method\r\n @impl.implemented\r\n AddAgent()\r\n {\r\n this.#AddAgentPrivate();\r\n this.#OnAgentCountChanged();\r\n }\r\n\r\n /**\r\n * Adds one agent per position and initializes the newcomers' scratch\r\n * records (Carbon AddAgents, cpp:280-310).\r\n * @param {Array<Float32Array>} positions\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AddAgents(positions)\r\n {\r\n if (!Array.isArray(positions))\r\n {\r\n return;\r\n }\r\n\r\n const firstNewIndex = this.#agents.length;\r\n for (const position of positions)\r\n {\r\n const agent = this.#createAgent();\r\n vec3.copy(agent.position, position);\r\n this.#agents.push(agent);\r\n }\r\n\r\n this.#EnsureScratchArrays();\r\n for (let agentIndex = firstNewIndex; agentIndex < this.#agents.length; agentIndex++)\r\n {\r\n this.#InitializeScratchForAgent(agentIndex);\r\n }\r\n\r\n this.actualCount += positions.length;\r\n this.#OnAgentCountChanged();\r\n }\r\n\r\n /** Carbon method RemoveAgent (cpp:415-426). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Math.random replaces Carbon's TriRandInt when selecting the removed agent.\")\r\n RemoveAgent()\r\n {\r\n if (this.#agents.length === 0)\r\n {\r\n return;\r\n }\r\n const index = Math.floor(Math.random() * this.#agents.length);\r\n this.RemoveSpecificAgent(index);\r\n this.#OnAgentCountChanged();\r\n }\r\n\r\n /**\r\n * Swap-with-last removal that keeps every behavior's per-agent scratch\r\n * record aligned (Carbon RemoveSpecificAgent, cpp:432-452).\r\n * @param {Number} index\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n RemoveSpecificAgent(index)\r\n {\r\n const lastIndex = this.#agents.length - 1;\r\n if (index < 0 || index > lastIndex)\r\n {\r\n return;\r\n }\r\n\r\n this.#agents[index] = this.#agents[lastIndex];\r\n this.#agents.pop();\r\n\r\n for (let i = 0; i < this.behaviors.length; i++)\r\n {\r\n const records = this.#scratchData[i];\r\n if (!records)\r\n {\r\n continue;\r\n }\r\n records[index] = records[lastIndex];\r\n records.length = this.#agents.length;\r\n }\r\n\r\n this.actualCount--;\r\n this.#OnAgentCountChanged();\r\n }\r\n\r\n /** Carbon method SetCount (cpp:350-368). */\r\n @carbon.method\r\n @impl.implemented\r\n SetCount(count)\r\n {\r\n const value = Number(count);\r\n const desired = Number.isFinite(value) ? Math.trunc(value) : -1;\r\n if (desired === this.actualCount || desired < 0)\r\n {\r\n return;\r\n }\r\n\r\n if (this.actualCount < desired)\r\n {\r\n this.#AddAgentsByCount(desired);\r\n }\r\n else\r\n {\r\n this.#RemoveAgentsByCount(desired);\r\n }\r\n\r\n // Carbon updates only m_actualCount here; m_count stays the authored\r\n // spawn count that InitializeGeometryResource restores.\r\n this.actualCount = desired;\r\n this.#OnAgentCountChanged();\r\n }\r\n\r\n /**\r\n * Runs the priority-sorted behaviors against the shared range query, then\r\n * integrates every agent's acceleration, velocity, facing, and position\r\n * (Carbon UpdateAgents, cpp:521-626).\r\n * @param {Number} dt - delta time in seconds\r\n * @param {Object} system - owning EveChildBehaviorSystem\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateAgents(dt, system)\r\n {\r\n // make sure the update isn't too big when e.g. a player resizes his window\r\n const deltaTime = Math.min(Math.max(Number(dt) || 0, 0), 0.1);\r\n\r\n // JS has no Blue list notify: keep the priority order and scratch shells\r\n // in sync with the behavior list before the frame body runs (Carbon's\r\n // OnListModified seam).\r\n if (this.#sortedBehaviorIndexes.length !== this.behaviors.length)\r\n {\r\n this.SortBehaviorIndexes();\r\n }\r\n this.#EnsureScratchArrays();\r\n this.#SyncScratchRecords();\r\n\r\n if (this.#updatedOnce)\r\n {\r\n if (!this.display || !this.update)\r\n {\r\n this.#tree = null;\r\n return;\r\n }\r\n if (this.#agents.length === 0)\r\n {\r\n for (let i = 0; i < this.behaviors.length; i++)\r\n {\r\n const index = this.#sortedBehaviorIndexes[i];\r\n this.behaviors[index]?.CalculateBehavior?.(this.#agents, this.#scratchData[index], deltaTime, this, system, EMPTY_SEARCH_TREE);\r\n }\r\n return;\r\n }\r\n }\r\n if (this.#tree === null)\r\n {\r\n this.CreateAgentTree();\r\n }\r\n\r\n const ranges = this.#ranges;\r\n ranges.length = 0;\r\n const boundingRadius = this.boundingSphereRadius * this.scale;\r\n for (const behavior of this.behaviors)\r\n {\r\n const searchRadius = behavior?.GetBehaviorSearchRadius?.() ?? -1;\r\n ranges.push(searchRadius === -1 ? -1 : searchRadius + boundingRadius);\r\n }\r\n\r\n const dronesInRange = this.#tree.FindDronesInRange(this.#agents, ranges, boundingRadius);\r\n\r\n // Calculate the behaviors\r\n if (this.collectForces)\r\n {\r\n this.#forces.length = 0;\r\n for (let i = 0; i < this.behaviors.length; i++)\r\n {\r\n const index = this.#sortedBehaviorIndexes[i];\r\n const forces = this.behaviors[index]?.CalculateBehavior?.(this.#agents, this.#scratchData[index], deltaTime, this, system, dronesInRange[index] ?? EMPTY_SEARCH_TREE);\r\n if (Array.isArray(forces))\r\n {\r\n for (const force of forces)\r\n {\r\n this.#forces.push(force);\r\n }\r\n }\r\n }\r\n }\r\n else\r\n {\r\n for (let i = 0; i < this.behaviors.length; i++)\r\n {\r\n const index = this.#sortedBehaviorIndexes[i];\r\n this.behaviors[index]?.CalculateBehavior?.(this.#agents, this.#scratchData[index], deltaTime, this, system, dronesInRange[index] ?? EMPTY_SEARCH_TREE);\r\n }\r\n }\r\n\r\n // Move the agents based on the behaviors\r\n const maxVelocitySq = Math.max(1, this.maxVelocity * this.maxVelocity);\r\n for (const agent of this.#agents)\r\n {\r\n agent.lifetime += deltaTime;\r\n\r\n vec3.scaleAndAdd(agent.velocity, agent.velocity, agent.acceleration, deltaTime);\r\n\r\n vec3.transformQuat(INTEREST_POINT, Z_AXIS, agent.rotation);\r\n vec3.lerp(ACTUAL_FACING, INTEREST_POINT, agent.velocity, vec3.squaredLength(agent.velocity) / maxVelocitySq);\r\n\r\n // Carbon TriQuaternionRotationArc(zAxis -> actualFacingDir); rotationTo\r\n // needs unit vectors, and a zero facing keeps the previous rotation.\r\n vec3.normalize(FACING_NORMALIZED, ACTUAL_FACING);\r\n if (vec3.squaredLength(FACING_NORMALIZED) > 0)\r\n {\r\n quat.rotationTo(agent.rotation, Z_AXIS, FACING_NORMALIZED);\r\n }\r\n vec3.copy(agent.targetDirection, ACTUAL_FACING);\r\n\r\n ClampLength(agent.velocity, this.maxVelocity);\r\n vec3.scaleAndAdd(agent.position, agent.position, agent.velocity, deltaTime);\r\n vec3.set(agent.acceleration, 0, 0, 0);\r\n }\r\n\r\n this.#tree.UpdateTree(deltaTime);\r\n\r\n // we always want to update the behaviors at least once, otherwise\r\n // behaviors like SpawnDrones won't get to spawn the drones\r\n this.#updatedOnce = true;\r\n }\r\n\r\n /**\r\n * Per-agent frustum visibility and mesh/sprite crossfade (Carbon\r\n * UpdateVisibility, cpp:637-677).\r\n * @param {Object} updateContext - frame context (frustum ducks)\r\n * @param {Float32Array} worldTransform - owning system's world transform\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Frustum ducks take a packed vec4 sphere per repo convention; a missing frustum treats agents as visible at infinite pixel size.\")\r\n UpdateVisibility(updateContext, worldTransform)\r\n {\r\n this.currentScreenSize = 0;\r\n let worldRadius = 1;\r\n\r\n const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;\r\n const boundingRadius = this.boundingSphereRadius * this.scale;\r\n const blendModifier = this.#GetBlendModifier();\r\n\r\n for (const agent of this.#agents)\r\n {\r\n vec3.transformMat4(AGENT_SPHERE, agent.position, worldTransform);\r\n AGENT_SPHERE[3] = boundingRadius;\r\n if (frustum?.IsSphereVisible?.(AGENT_SPHERE) !== false)\r\n {\r\n const pixelSize = Number(frustum?.GetPixelSizeAccross?.(AGENT_SPHERE) ?? Infinity);\r\n agent.screenSize = pixelSize;\r\n this.currentScreenSize = Math.max(this.currentScreenSize, pixelSize);\r\n worldRadius = Math.max(worldRadius, boundingRadius);\r\n if (pixelSize >= this.blendScreenSizeMax)\r\n {\r\n agent.xfade = 0; // Render as mesh\r\n }\r\n else if (pixelSize <= this.blendScreenSizeMin)\r\n {\r\n agent.xfade = 1; // Render as sprite\r\n }\r\n else\r\n {\r\n agent.xfade = 1 - (pixelSize - this.blendScreenSizeMin) * blendModifier;\r\n }\r\n agent.isVisible = agent.screenSize >= this.renderThreshold;\r\n }\r\n else\r\n {\r\n agent.isVisible = false;\r\n }\r\n }\r\n this.mesh?.UseWithScreenSize?.(this.currentScreenSize, worldRadius);\r\n\r\n mat4.copy(this.#parentTransform, worldTransform);\r\n }\r\n\r\n /** Carbon BehaviorGroup::IsGroupVisible (cpp:683-686). */\r\n @carbon.method\r\n @impl.implemented\r\n IsGroupVisible()\r\n {\r\n return this.currentScreenSize >= this.renderThreshold;\r\n }\r\n\r\n /**\r\n * 1 if every agent lodded out to a sprite, 0 if every agent is a mesh,\r\n * -1 when mixed or empty (Carbon AllTheSame, cpp:397-409).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AllTheSame()\r\n {\r\n let same = -1;\r\n for (const agent of this.#agents)\r\n {\r\n if (same === -1)\r\n {\r\n same = agent.xfade;\r\n }\r\n if (same !== agent.xfade)\r\n {\r\n return -1;\r\n }\r\n }\r\n return same;\r\n }\r\n\r\n /** Carbon method GetShipInfoForBuffer (cpp:692-742) - GPU instance-buffer fill. */\r\n @carbon.method\r\n @impl.notImplemented\r\n GetShipInfoForBuffer(..._args)\r\n {\r\n throw new Error(\"BehaviorGroup.GetShipInfoForBuffer is not implemented in CarbonEngineJS (GPU instance-buffer fill).\");\r\n }\r\n\r\n /** Carbon method GetBoosterInfoForBuffer (cpp:748-821) - GPU instance-buffer fill. */\r\n @carbon.method\r\n @impl.notImplemented\r\n GetBoosterInfoForBuffer(..._args)\r\n {\r\n throw new Error(\"BehaviorGroup.GetBoosterInfoForBuffer is not implemented in CarbonEngineJS (GPU instance-buffer fill).\");\r\n }\r\n\r\n /** Carbon method CreateVertexDeclaration (cpp:828-865) - renderer vertex\r\n * declaration bookkeeping; safe frame-loop no-op in JS. */\r\n @carbon.method\r\n @impl.noop\r\n CreateVertexDeclaration()\r\n {\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetRenderables (cpp:871-877): PlayFX effects only. */\r\n @carbon.method\r\n @impl.implemented\r\n GetRenderables(renderables = [])\r\n {\r\n if (this.#playFXBehavior !== null)\r\n {\r\n this.#playFXBehavior.GetRenderables?.(renderables);\r\n }\r\n return renderables;\r\n }\r\n\r\n /** Carbon BehaviorGroup::UpdateAsyncronous (cpp:883-894): PlayFX fan-out. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateAsyncronous(updateContext)\r\n {\r\n if (!this.update)\r\n {\r\n return;\r\n }\r\n\r\n if (this.#playFXBehavior !== null)\r\n {\r\n this.#playFXBehavior.UpdateAsyncronous?.(updateContext, this.#parentTransform);\r\n }\r\n }\r\n\r\n /** Carbon BehaviorGroup::UpdateSyncronous (cpp:901-925): deferred tree\r\n * rebuild, PlayFX sync update, and parent capture. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateSyncronous(updateContext, params)\r\n {\r\n if (!this.update)\r\n {\r\n return;\r\n }\r\n if (this.#createAgentTree === true)\r\n {\r\n this.CreateAgentTree();\r\n this.#createAgentTree = false;\r\n }\r\n\r\n if (this.#playFXBehavior !== null)\r\n {\r\n this.#playFXBehavior.UpdateSyncronous?.(updateContext);\r\n }\r\n\r\n if (this.#parent === null && params?.spaceObjectParent)\r\n {\r\n this.#parent = params.spaceObjectParent;\r\n }\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetParent (cpp:927-930). */\r\n @carbon.method\r\n @impl.implemented\r\n GetParent()\r\n {\r\n return this.#parent;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetBoundingSphereRadius (cpp:953-956). */\r\n @carbon.method\r\n @impl.implemented\r\n GetBoundingSphereRadius()\r\n {\r\n return this.boundingSphereRadius * this.scale;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetKDTree (cpp:958-961). */\r\n @carbon.method\r\n @impl.implemented\r\n GetKDTree()\r\n {\r\n return this.#tree;\r\n }\r\n\r\n /** Carbon BehaviorGroup::GetBooster (cpp:963-966). */\r\n @carbon.method\r\n @impl.implemented\r\n GetBooster()\r\n {\r\n return this.boosters;\r\n }\r\n\r\n /** Carbon BehaviorGroup::SetPlayFXBehavior (cpp:968-988): caches the PlayFX\r\n * behavior and swaps its component registration. */\r\n @carbon.method\r\n @impl.implemented\r\n SetPlayFXBehavior()\r\n {\r\n const behavior = this.GetBehaviorByName(\"PlayFX\");\r\n if (behavior !== null)\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.#playFXBehavior)\r\n {\r\n this.#playFXBehavior.UnRegister?.(registry);\r\n }\r\n this.#playFXBehavior = behavior;\r\n if (registry)\r\n {\r\n behavior.Register?.(registry);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Registers the booster light records with the duck-typed light manager\r\n * (Carbon GetLights, cpp:990-1001). The #lightInfo map is populated by the\r\n * booster instance-buffer fill, which is a GPU seam - until that path runs\r\n * the map stays empty and no lights register.\r\n * @param {Object} lightManager\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetLights(lightManager)\r\n {\r\n if (this.boosters && this.boosters.GetDisplay?.())\r\n {\r\n for (const [agentIndex, info] of this.#lightInfo)\r\n {\r\n this.boosters.AddLight?.(lightManager, info, info[3], agentIndex, this.#parentTransform);\r\n }\r\n }\r\n }\r\n\r\n /** ITr2LightOwner::AddLight - intentionally empty in Carbon (h:116). */\r\n @carbon.method\r\n @impl.noop\r\n AddLight(_light)\r\n {\r\n }\r\n\r\n /** ITr2LightOwner::ClearLights - intentionally empty in Carbon (h:117). */\r\n @carbon.method\r\n @impl.noop\r\n ClearLights()\r\n {\r\n }\r\n\r\n /** Carbon BehaviorGroup::RegisterComponents (cpp:1003-1015): unconditional\r\n * LightOwner (Carbon's verbatim \"LightOwner\" component name,\r\n * Lights/ITr2LightOwner.h:18), then forwards the PlayFX behavior. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n this.#playFXBehavior?.Register?.(registry);\r\n }\r\n }\r\n\r\n /** Carbon BehaviorGroup::UnRegisterComponents (cpp:1017-1027). */\r\n @carbon.method\r\n @impl.implemented\r\n UnRegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n this.#playFXBehavior?.UnRegister?.(registry);\r\n }\r\n }\r\n\r\n /** Carbon BehaviorGroup::RegisterWithQuadRenderer (cpp:1029-1040): CPU\r\n * fan-out to the booster and PlayFX quad owners. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterWithQuadRenderer(quadRenderer)\r\n {\r\n if (this.boosters)\r\n {\r\n this.boosters.RegisterWithQuadRenderer?.(quadRenderer);\r\n }\r\n\r\n if (this.#playFXBehavior !== null)\r\n {\r\n this.#playFXBehavior.RegisterWithQuadRenderer?.(quadRenderer);\r\n }\r\n }\r\n\r\n /** Carbon BehaviorGroup::AddQuadsToQuadRenderer (cpp:1043-1059): CPU\r\n * fan-out, gated on display and group visibility. */\r\n @carbon.method\r\n @impl.implemented\r\n AddQuadsToQuadRenderer(frustum, quadRenderer)\r\n {\r\n if (this.display && this.IsGroupVisible())\r\n {\r\n if (this.boosters && this.boosters.GetDisplay?.())\r\n {\r\n this.boosters.AddQuadsToQuadRenderer?.(frustum, quadRenderer);\r\n }\r\n\r\n if (this.#playFXBehavior !== null)\r\n {\r\n this.#playFXBehavior.AddQuadsToQuadRenderer?.(frustum, quadRenderer);\r\n }\r\n }\r\n }\r\n\r\n /** Returns the portable DroneAgent records in stable instance order. */\r\n @impl.adapted\r\n GetAgents()\r\n {\r\n return this.#agents;\r\n }\r\n\r\n /** Returns the collected debug force pairs (Carbon m_forces). */\r\n @impl.adapted\r\n GetForces()\r\n {\r\n return this.#forces;\r\n }\r\n\r\n // Carbon GetBlendModifier (cpp:628-631).\r\n #GetBlendModifier()\r\n {\r\n return 1 / Math.max(0.0001, this.blendScreenSizeMax - this.blendScreenSizeMin);\r\n }\r\n\r\n // Grows the per-behavior scratch shells to the behavior count (Carbon\r\n // resizes m_scratchData wherever agents are added).\r\n #EnsureScratchArrays()\r\n {\r\n while (this.#scratchData.length < this.behaviors.length)\r\n {\r\n this.#scratchData.push(null);\r\n }\r\n }\r\n\r\n // Fills any missing per-agent scratch records and trims removed ones -\r\n // the JS stand-in for Carbon's behavior-list OnListModified handler\r\n // (cpp:77-118), which resizes scratch when behaviors join or leave.\r\n #SyncScratchRecords()\r\n {\r\n for (let i = 0; i < this.behaviors.length; i++)\r\n {\r\n const behavior = this.behaviors[i];\r\n if ((behavior?.GetScratchMemorySize?.() ?? 0) > 0)\r\n {\r\n let records = this.#scratchData[i];\r\n if (!records)\r\n {\r\n records = [];\r\n this.#scratchData[i] = records;\r\n }\r\n for (let j = records.length; j < this.#agents.length; j++)\r\n {\r\n records[j] = behavior.InitializeScratch();\r\n }\r\n records.length = this.#agents.length;\r\n }\r\n }\r\n }\r\n\r\n // Initializes every scratch-owning behavior's record for one agent index\r\n // (Carbon InitializeScratch over the raw buffer at size * agentIndex).\r\n #InitializeScratchForAgent(agentIndex)\r\n {\r\n for (let i = 0; i < this.behaviors.length; i++)\r\n {\r\n const behavior = this.behaviors[i];\r\n if ((behavior?.GetScratchMemorySize?.() ?? 0) > 0)\r\n {\r\n let records = this.#scratchData[i];\r\n if (!records)\r\n {\r\n records = [];\r\n this.#scratchData[i] = records;\r\n }\r\n records[agentIndex] = behavior.InitializeScratch();\r\n }\r\n }\r\n }\r\n\r\n // Carbon AddAgentPrivate (cpp:316-343).\r\n #AddAgentPrivate()\r\n {\r\n const agent = this.#createAgent();\r\n this.#agents.push(agent);\r\n this.#EnsureScratchArrays();\r\n this.#InitializeScratchForAgent(this.#agents.length - 1);\r\n this.actualCount++;\r\n }\r\n\r\n // Carbon AddAgentsByCount (cpp:460-491).\r\n #AddAgentsByCount(count)\r\n {\r\n const sizeBeforeResize = this.#agents.length;\r\n while (this.#agents.length < count)\r\n {\r\n this.#agents.push(this.#createAgent());\r\n }\r\n\r\n this.#EnsureScratchArrays();\r\n for (let agentIndex = sizeBeforeResize; agentIndex < this.#agents.length; agentIndex++)\r\n {\r\n this.#InitializeScratchForAgent(agentIndex);\r\n }\r\n }\r\n\r\n // Carbon RemoveAgentsByCount (cpp:499-513).\r\n #RemoveAgentsByCount(count)\r\n {\r\n this.#agents.length = count;\r\n for (let i = 0; i < this.behaviors.length; i++)\r\n {\r\n const records = this.#scratchData[i];\r\n if (records)\r\n {\r\n records.length = count;\r\n }\r\n }\r\n }\r\n\r\n #createAgent()\r\n {\r\n return {\r\n closestAgentInGroup: null,\r\n rotation: quat.create(),\r\n // This is because the process priority behavior can also affect where\r\n // drones spawn (Carbon AddAgentPrivate, cpp:318-323).\r\n position: vec3.clone(this.spawnPosition),\r\n acceleration: vec3.create(),\r\n velocity: vec3.create(),\r\n accelerationLength: 0,\r\n velocityLength: 0,\r\n target: vec3.create(),\r\n targetDirection: vec3.create(),\r\n id: Math.floor(Math.random() * 500),\r\n lifetime: 0,\r\n playFX: false,\r\n fxStartTime: -1,\r\n xfade: 0,\r\n isVisible: false,\r\n screenSize: 0\r\n };\r\n }\r\n\r\n // Carbon OnAgentCountChanged (cpp:376-388).\r\n #OnAgentCountChanged()\r\n {\r\n this.#createAgentTree = true;\r\n if (this.#changeBufferVertexCount)\r\n {\r\n this.#changeBufferVertexCount();\r\n }\r\n\r\n if (this.boosters)\r\n {\r\n this.boosters.RebuildFlareBuffer?.(this.actualCount);\r\n }\r\n }\r\n\r\n}\r\n"],"names":["Z_AXIS","vec3","fromValues","INTEREST_POINT","create","ACTUAL_FACING","FACING_NORMALIZED","AGENT_SPHERE","vec4","EMPTY_SEARCH_TREE","ClampLength","value","maxLength","lengthSq","squaredLength","scale","Math","sqrt","_BehaviorGroup","BehaviorGroup","EveEntity","e","_init_display","_init_extra_display","_init_maxVelocity","_init_extra_maxVelocity","_init_scale","_init_extra_scale","_init_blendScreenSizeMax","_init_extra_blendScreenSizeMax","_init_blendScreenSizeMin","_init_extra_blendScreenSizeMin","_init_currentScreenSize","_init_extra_currentScreenSize","_init_renderThreshold","_init_extra_renderThreshold","_init_debugIntensity","_init_extra_debugIntensity","_init_debugLodLevel","_init_extra_debugLodLevel","_init_actualCount","_init_extra_actualCount","_init_count","_init_extra_count","_init_boosters","_init_extra_boosters","_init_mesh","_init_extra_mesh","_init_name","_init_extra_name","_init_boundingSphereRadius","_init_extra_boundingSphereRadius","_init_debugMode","_init_extra_debugMode","_init_update","_init_extra_update","_init_behaviors","_init_extra_behaviors","_init_spawnPosition","_init_extra_spawnPosition","_init_collectForces","_init_extra_collectForces","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","boolean","float32","read","readwrite","int32","notify","model","string","list","carbon","method","impl","adapted","reason","implemented","notImplemented","noop","constructor","args","Map","mat4","display","maxVelocity","blendScreenSizeMax","blendScreenSizeMin","currentScreenSize","renderThreshold","debugIntensity","debugLodLevel","actualCount","count","boosters","mesh","name","boundingSphereRadius","debugMode","update","behaviors","spawnPosition","collectForces","Initialize","CreateVertexDeclaration","RebuildFlareBuffer","SetPlayFXBehavior","OnModified","InitializeGeometryResource","length","i","SortBehaviorIndexes","t","SetCount","SetVertexFunctionReferance","callback","GetSize","GetCount","CreateAgentTree","EveKDdroneManagementTree","CreateTree","GetBehaviorByName","target","String","behavior","GetBehaviorName","priority","ProcessPriority","COUNT","index","GetProcessPriority","LEAST_PRIORITY","push","GetMesh","GetMaxVelocity","SetGroupIndexIndicator","Number","GetGroupIndexIndicator","AddAgent","AddAgents","positions","Array","isArray","firstNewIndex","position","agent","copy","agentIndex","RemoveAgent","floor","random","RemoveSpecificAgent","lastIndex","pop","records","desired","isFinite","trunc","UpdateAgents","dt","system","deltaTime","min","max","CalculateBehavior","ranges","boundingRadius","searchRadius","GetBehaviorSearchRadius","dronesInRange","FindDronesInRange","forces","force","maxVelocitySq","lifetime","scaleAndAdd","velocity","acceleration","transformQuat","rotation","lerp","normalize","quat","rotationTo","targetDirection","set","UpdateTree","UpdateVisibility","updateContext","worldTransform","worldRadius","frustum","GetFrustum","blendModifier","transformMat4","IsSphereVisible","pixelSize","GetPixelSizeAccross","Infinity","screenSize","xfade","isVisible","UseWithScreenSize","IsGroupVisible","AllTheSame","same","GetShipInfoForBuffer","_args","Error","GetBoosterInfoForBuffer","GetRenderables","renderables","UpdateAsyncronous","UpdateSyncronous","params","spaceObjectParent","GetParent","GetBoundingSphereRadius","GetKDTree","GetBooster","registry","GetComponentRegistry","UnRegister","Register","GetLights","lightManager","GetDisplay","info","AddLight","_light","ClearLights","RegisterComponents","RegisterComponent","EveComponentType","LightOwner","UnRegisterComponents","RegisterWithQuadRenderer","quadRenderer","AddQuadsToQuadRenderer","GetAgents","GetForces","#GetBlendModifier","#EnsureScratchArrays","#SyncScratchRecords","GetScratchMemorySize","j","InitializeScratch","#InitializeScratchForAgent","#AddAgentPrivate","#AddAgentsByCount","sizeBeforeResize","#RemoveAgentsByCount","#createAgent","closestAgentInGroup","clone","accelerationLength","velocityLength","id","playFX","fxStartTime","#OnAgentCountChanged"],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { identity as _identity, applyDecs2311 as _applyDecs2311 } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
2
|
import { type, carbon, impl, schema } from '@carbonenginejs/runtime-utils/schema';
|
|
3
3
|
import { CjsModel } from '@carbonenginejs/runtime-utils/model';
|
|
4
|
+
import { PlaneType } from '../../../../eve/child/behaviors/enums.js';
|
|
4
5
|
import { vec3 } from '@carbonenginejs/runtime-utils/vec3';
|
|
5
6
|
|
|
6
7
|
let _initProto, _initClass, _init_tree, _init_extra_tree, _init_debugSquareSize, _init_extra_debugSquareSize, _init_updateTimeCounter, _init_extra_updateTimeCounter, _init_maxFoundPerAgent, _init_extra_maxFoundPerAgent, _init_timeBetweenUpdate, _init_extra_timeBetweenUpdate, _init_agentRefs, _init_extra_agentRefs, _init_groupSearchReturnInfoBlock, _init_extra_groupSearchReturnInfoBlock, _init_agents, _init_extra_agents, _init_behaviorNbr, _init_extra_behaviorNbr, _init_radius, _init_extra_radius, _init_agent, _init_extra_agent, _init_rangeBetween, _init_extra_rangeBetween, _init_planeType, _init_extra_planeType, _init_b, _init_extra_b, _init_e, _init_extra_e, _init_left, _init_extra_left, _init_right, _init_extra_right;
|
|
@@ -77,11 +78,11 @@ new class extends _identity {
|
|
|
77
78
|
// JS port carries it as instance state reset per agent.
|
|
78
79
|
#activeRange = 0;
|
|
79
80
|
|
|
80
|
-
/**
|
|
81
|
-
* Builds the k-d tree over the agents and sizes the per-behavior search
|
|
82
|
-
* result block (Carbon EveKDdroneManagementTree::CreateTree, cpp:18-42).
|
|
83
|
-
* @param {Array} agents - DroneAgent records
|
|
84
|
-
* @param {Number} numberOfBehaviors
|
|
81
|
+
/**
|
|
82
|
+
* Builds the k-d tree over the agents and sizes the per-behavior search
|
|
83
|
+
* result block (Carbon EveKDdroneManagementTree::CreateTree, cpp:18-42).
|
|
84
|
+
* @param {Array} agents - DroneAgent records
|
|
85
|
+
* @param {Number} numberOfBehaviors
|
|
85
86
|
*/
|
|
86
87
|
CreateTree(agents, numberOfBehaviors) {
|
|
87
88
|
if (!agents || agents.length === 0) {
|
|
@@ -100,11 +101,11 @@ new class extends _identity {
|
|
|
100
101
|
}
|
|
101
102
|
}
|
|
102
103
|
|
|
103
|
-
/**
|
|
104
|
-
* Throttled incremental rebalance: every timeBetweenUpdate seconds each node
|
|
105
|
-
* is checked against its children and locally re-sorted when the splitting
|
|
106
|
-
* invariant broke (Carbon UpdateTree, cpp:44-55).
|
|
107
|
-
* @param {Number} dt - delta time in seconds
|
|
104
|
+
/**
|
|
105
|
+
* Throttled incremental rebalance: every timeBetweenUpdate seconds each node
|
|
106
|
+
* is checked against its children and locally re-sorted when the splitting
|
|
107
|
+
* invariant broke (Carbon UpdateTree, cpp:44-55).
|
|
108
|
+
* @param {Number} dt - delta time in seconds
|
|
108
109
|
*/
|
|
109
110
|
UpdateTree(dt) {
|
|
110
111
|
if (this.timeBetweenUpdate !== -1 && this.updateTimeCounter >= this.timeBetweenUpdate) {
|
|
@@ -115,11 +116,11 @@ new class extends _identity {
|
|
|
115
116
|
}
|
|
116
117
|
}
|
|
117
118
|
|
|
118
|
-
/**
|
|
119
|
-
* Standard nearest-neighbour tree search for callers outside the behavior
|
|
120
|
-
* group (Carbon FindClosestAgent, cpp:276-289).
|
|
121
|
-
* @param {Float32Array} pos
|
|
122
|
-
* @returns {Object|null} the closest DroneAgent record
|
|
119
|
+
/**
|
|
120
|
+
* Standard nearest-neighbour tree search for callers outside the behavior
|
|
121
|
+
* group (Carbon FindClosestAgent, cpp:276-289).
|
|
122
|
+
* @param {Float32Array} pos
|
|
123
|
+
* @returns {Object|null} the closest DroneAgent record
|
|
123
124
|
*/
|
|
124
125
|
FindClosestAgent(pos) {
|
|
125
126
|
if (!this.tree || !this.tree.agent) {
|
|
@@ -133,15 +134,15 @@ new class extends _identity {
|
|
|
133
134
|
return closest.agent;
|
|
134
135
|
}
|
|
135
136
|
|
|
136
|
-
/**
|
|
137
|
-
* Batched range search for every agent against every behavior's search
|
|
138
|
-
* radius at once (Carbon FindDronesInRange, cpp:374-430). The result is
|
|
139
|
-
* indexed [behaviorIndex][agentIndex] -> agents in range (up to
|
|
140
|
-
* maxFoundPerAgent per Carbon's early-out bookkeeping).
|
|
141
|
-
* @param {Array} agents - DroneAgent records
|
|
142
|
-
* @param {Array<Number>} ranges - per-behavior search radii (-1 = don't care)
|
|
143
|
-
* @param {Number} behaviorGroupBoundingSphereRadius
|
|
144
|
-
* @returns {Array} groupSearchReturnInfoBlock
|
|
137
|
+
/**
|
|
138
|
+
* Batched range search for every agent against every behavior's search
|
|
139
|
+
* radius at once (Carbon FindDronesInRange, cpp:374-430). The result is
|
|
140
|
+
* indexed [behaviorIndex][agentIndex] -> agents in range (up to
|
|
141
|
+
* maxFoundPerAgent per Carbon's early-out bookkeeping).
|
|
142
|
+
* @param {Array} agents - DroneAgent records
|
|
143
|
+
* @param {Array<Number>} ranges - per-behavior search radii (-1 = don't care)
|
|
144
|
+
* @param {Number} behaviorGroupBoundingSphereRadius
|
|
145
|
+
* @returns {Array} groupSearchReturnInfoBlock
|
|
145
146
|
*/
|
|
146
147
|
FindDronesInRange(agents, ranges, behaviorGroupBoundingSphereRadius) {
|
|
147
148
|
const searchRanges = this.#searchRanges;
|
|
@@ -365,11 +366,7 @@ new class extends _identity {
|
|
|
365
366
|
return _EveKDdroneManagement.PlaneType.X;
|
|
366
367
|
}
|
|
367
368
|
}
|
|
368
|
-
PlaneType =
|
|
369
|
-
X: 0,
|
|
370
|
-
Y: 1,
|
|
371
|
-
Z: 2
|
|
372
|
-
});
|
|
369
|
+
PlaneType = PlaneType;
|
|
373
370
|
constructor() {
|
|
374
371
|
super(_EveKDdroneManagement), _initClass();
|
|
375
372
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EveKDdroneManagementTree.js","sources":["../../../../../../src/generated/eve/child/behaviors/EveKDdroneManagementTree.js"],"sourcesContent":["// Ported from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\n// trinity/trinity/Eve/SpaceObject/Children/Behaviors/EveKDdroneManagementTree.h\n// trinity/trinity/Eve/SpaceObject/Children/Behaviors/EveKDdroneManagementTree.cpp\n// Generated by format-carbon carbon-class --emit. Verify against eve/child/behaviors/EveKDdroneManagementTree.json.\nimport { carbon, impl, schema, type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\n\n/** EveKDdroneManagementTree (eve/child/behaviors) - generated from schema shapeHash 11f612c5.... */\n@type.define({ className: \"EveKDdroneManagementTree\", family: \"eve/child/behaviors\" })\nexport class EveKDdroneManagementTree extends CjsModel\n{\n\n /** m_tree (AgentRef) */\n @type.objectRef(\"Agent\")\n tree = null;\n\n /** m_debugSquareSize (float) */\n @type.float32\n debugSquareSize = 0;\n\n /** m_updateTimeCounter (float) */\n @type.float32\n updateTimeCounter = 0;\n\n /** m_maxFoundPerAgent (size_t) */\n @type.uint64\n maxFoundPerAgent = 5;\n\n /** m_timeBetweenUpdate (float) */\n @type.float32\n timeBetweenUpdate = 1;\n\n /** m_agentRefs (std::vector<AgentRef>) */\n @type.list(\"Agent\")\n agentRefs = [];\n\n /** m_groupSearchReturnInfoBlock (std::vector<std::vector<std::vector<DroneAgent*>>>) */\n @type.list(\"std::vector<std::vector<DroneAgent>>\")\n groupSearchReturnInfoBlock = [];\n\n /** agents (std::vector<DroneAgent> &) */\n @type.list(\"DroneAgent\")\n agents = [];\n\n /** behaviorNbr (int) */\n @type.int32\n behaviorNbr = 0;\n\n /** radius (float) */\n @type.float32\n radius = 0;\n\n /** agent (DroneAgent*) */\n @type.objectRef(\"DroneAgent\")\n agent = null;\n\n /** rangeBetween (float) */\n @type.float32\n rangeBetween = 0;\n\n /** planeType (PlaneType - enum PlaneType) */\n @type.int32\n @schema.enum(\"PlaneType\")\n planeType = 0;\n\n /** b (int) */\n @type.int32\n b = 0;\n\n /** e (int) */\n @type.int32\n e = 0;\n\n /** left (AgentRef*) */\n @type.objectRef(\"Agent\")\n left = null;\n\n /** right (AgentRef*) */\n @type.objectRef(\"Agent\")\n right = null;\n\n // Reused SearchRange records ({behaviorNbr, radius}) - rebuilt each\n // FindDronesInRange call without reallocating the array shell.\n #searchRanges = [];\n\n // Carbon threads activeRange as an int& through the recursive search; the\n // JS port carries it as instance state reset per agent.\n #activeRange = 0;\n\n /**\n * Builds the k-d tree over the agents and sizes the per-behavior search\n * result block (Carbon EveKDdroneManagementTree::CreateTree, cpp:18-42).\n * @param {Array} agents - DroneAgent records\n * @param {Number} numberOfBehaviors\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon copies the root AgentRef by value into m_tree; the JS port keeps a reference into agentRefs (same fields, shared identity).\")\n CreateTree(agents, numberOfBehaviors)\n {\n if (!agents || agents.length === 0)\n {\n return;\n }\n\n this.#ChangeAgentsIntoAgentRefs(agents);\n this.tree = this.#SplitSort(0, agents.length - 1, EveKDdroneManagementTree.PlaneType.Z);\n\n const infoBlock = this.groupSearchReturnInfoBlock;\n infoBlock.length = 0;\n for (let j = 0; j < numberOfBehaviors; j++)\n {\n const perAgentData = [];\n for (let i = 0; i < agents.length; i++)\n {\n perAgentData.push([]);\n }\n infoBlock.push(perAgentData);\n }\n }\n\n /**\n * Throttled incremental rebalance: every timeBetweenUpdate seconds each node\n * is checked against its children and locally re-sorted when the splitting\n * invariant broke (Carbon UpdateTree, cpp:44-55).\n * @param {Number} dt - delta time in seconds\n */\n @carbon.method\n @impl.implemented\n UpdateTree(dt)\n {\n if (this.timeBetweenUpdate !== -1 && this.updateTimeCounter >= this.timeBetweenUpdate)\n {\n this.updateTimeCounter = 0;\n this.tree = this.#CompareNodeToChildren(this.tree);\n }\n else\n {\n this.updateTimeCounter += dt;\n }\n }\n\n /**\n * Standard nearest-neighbour tree search for callers outside the behavior\n * group (Carbon FindClosestAgent, cpp:276-289).\n * @param {Float32Array} pos\n * @returns {Object|null} the closest DroneAgent record\n */\n @carbon.method\n @impl.implemented\n FindClosestAgent(pos)\n {\n if (!this.tree || !this.tree.agent)\n {\n return null;\n }\n\n const closest = {\n agent: this.tree.agent,\n rangeBetween: vec3.distance(this.tree.agent.position, pos)\n };\n this.#FindClosestAgentRecursive(pos, this.tree, closest);\n return closest.agent;\n }\n\n /**\n * Batched range search for every agent against every behavior's search\n * radius at once (Carbon FindDronesInRange, cpp:374-430). The result is\n * indexed [behaviorIndex][agentIndex] -> agents in range (up to\n * maxFoundPerAgent per Carbon's early-out bookkeeping).\n * @param {Array} agents - DroneAgent records\n * @param {Array<Number>} ranges - per-behavior search radii (-1 = don't care)\n * @param {Number} behaviorGroupBoundingSphereRadius\n * @returns {Array} groupSearchReturnInfoBlock\n */\n @carbon.method\n @impl.implemented\n FindDronesInRange(agents, ranges, behaviorGroupBoundingSphereRadius)\n {\n const searchRanges = this.#searchRanges;\n searchRanges.length = 0;\n for (let behaviorNumber = 0; behaviorNumber < ranges.length; behaviorNumber++)\n {\n const radius = ranges[behaviorNumber];\n searchRanges.push({\n behaviorNbr: behaviorNumber,\n radius: radius === -1 ? -1 : radius + behaviorGroupBoundingSphereRadius\n });\n }\n searchRanges.sort(EveKDdroneManagementTree.#CompareSearchRanges);\n\n const infoBlock = this.groupSearchReturnInfoBlock;\n if (infoBlock.length)\n {\n for (let j = 0; j < ranges.length && j < infoBlock.length; j++)\n {\n for (let i = 0; i < agents.length && i < infoBlock[j].length; i++)\n {\n infoBlock[j][i].length = 0;\n }\n }\n }\n\n if (searchRanges.length === 0)\n {\n return infoBlock;\n }\n if (searchRanges[0].radius === -1)\n {\n return infoBlock;\n }\n\n for (let c = 0; c < agents.length; c++)\n {\n this.#activeRange = 0;\n this.#SearchThroughTreeHelperFunction(infoBlock, this.tree, agents[c], searchRanges, c);\n }\n\n return infoBlock;\n }\n\n // Rebuilds the AgentRef shells over the live agents (Carbon\n // ChangeAgentsIntoAgentRefs, cpp:232-242).\n #ChangeAgentsIntoAgentRefs(agents)\n {\n const refs = this.agentRefs;\n refs.length = 0;\n for (const agent of agents)\n {\n refs.push({\n agent,\n planeType: EveKDdroneManagementTree.PlaneType.X,\n b: 0,\n e: 0,\n left: null,\n right: null\n });\n }\n }\n\n // Recursive median split over agentRefs[b..e] (Carbon SplitSort,\n // cpp:202-230).\n #SplitSort(b, e, planeType)\n {\n const refs = this.agentRefs;\n if (b === e)\n {\n refs[b].b = b;\n refs[b].e = e;\n refs[b].left = null;\n refs[b].right = null;\n return refs[b];\n }\n\n if (b > e)\n {\n return null;\n }\n\n this.#SortByAxis(refs, b, e + 1, planeType);\n\n const m = b + ((e - b) >> 1);\n refs[m].b = b;\n refs[m].e = e;\n\n const nextPlane = EveKDdroneManagementTree.#FindNextSplitAxis(planeType);\n refs[m].left = this.#SplitSort(b, m - 1, nextPlane);\n refs[m].right = this.#SplitSort(m + 1, e, nextPlane);\n\n return refs[m];\n }\n\n // Stamps planeType on the range then sorts it by that axis (Carbon\n // SortByAxis, cpp:261-271); the temporary subrange copy replaces\n // std::sort's in-place range sort and only allocates on the throttled\n // rebuild path.\n #SortByAxis(refs, b, endExclusive, planeType)\n {\n for (let i = b; i < endExclusive; i++)\n {\n refs[i].planeType = planeType;\n }\n\n const range = refs.slice(b, endExclusive);\n range.sort((lhs, rhs) => lhs.agent.position[planeType] - rhs.agent.position[planeType]);\n for (let i = 0; i < range.length; i++)\n {\n refs[b + i] = range[i];\n }\n }\n\n // Checks each split invariant and locally re-sorts broken subtrees (Carbon\n // CompareNodeToChildren, cpp:58-110; the three per-axis cases collapse to\n // one indexed body on the shared vec3 layout).\n #CompareNodeToChildren(node)\n {\n if (node === null)\n {\n return null;\n }\n\n if (node.left === null && node.right === null)\n {\n return node;\n }\n\n const axis = node.planeType;\n if (this.#IsBiggestOnAxis(node.left, node.agent.position[axis], axis) &&\n this.#IsSmallestOnAxis(node.right, node.agent.position[axis], axis))\n {\n node.left = this.#CompareNodeToChildren(node.left);\n node.right = this.#CompareNodeToChildren(node.right);\n return node;\n }\n return this.#SplitSort(node.b, node.e, axis);\n }\n\n // Carbon IsBiggestOnAxis (cpp:112-154): on the node's own split axis only\n // the bigger side needs checking; on other axes both sides do.\n #IsBiggestOnAxis(node, n, planeType)\n {\n if (node === null)\n {\n return true;\n }\n\n const axis = node.planeType;\n if (planeType === axis)\n {\n return n >= node.agent.position[axis] && this.#IsBiggestOnAxis(node.right, n, axis);\n }\n return n >= node.agent.position[axis] &&\n this.#IsBiggestOnAxis(node.left, n, axis) &&\n this.#IsBiggestOnAxis(node.right, n, axis);\n }\n\n // Carbon IsSmallestOnAxis (cpp:157-199): mirror of IsBiggestOnAxis.\n #IsSmallestOnAxis(node, n, planeType)\n {\n if (node === null)\n {\n return true;\n }\n\n const axis = node.planeType;\n if (planeType === axis)\n {\n return n <= node.agent.position[axis] && this.#IsSmallestOnAxis(node.left, n, axis);\n }\n return n <= node.agent.position[axis] &&\n this.#IsSmallestOnAxis(node.left, n, axis) &&\n this.#IsSmallestOnAxis(node.right, n, axis);\n }\n\n // Carbon FindClosestAgentRecursive (cpp:291-371): digs through the tree,\n // pruning half-spaces the best-so-far sphere cannot reach.\n #FindClosestAgentRecursive(pos, node, closest)\n {\n if (node === null)\n {\n return;\n }\n\n const distToPoint = vec3.distance(node.agent.position, pos);\n if (closest.rangeBetween > distToPoint)\n {\n closest.rangeBetween = distToPoint;\n closest.agent = node.agent;\n }\n\n const axis = node.planeType;\n if (node.agent.position[axis] < pos[axis])\n {\n this.#FindClosestAgentRecursive(pos, node.right, closest);\n if (node.agent.position[axis] + closest.rangeBetween > pos[axis])\n {\n this.#FindClosestAgentRecursive(pos, node.left, closest);\n }\n }\n else\n {\n this.#FindClosestAgentRecursive(pos, node.left, closest);\n if (node.agent.position[axis] - closest.rangeBetween < pos[axis])\n {\n this.#FindClosestAgentRecursive(pos, node.right, closest);\n }\n }\n }\n\n // Per-agent range search body (Carbon SearchThroughTreeHelperFunction,\n // cpp:443-517), kept bug-compatible: a found agent is appended once, then\n // once or twice more depending on the fill state, and activeRange advances\n // when the widest range saturates.\n #SearchThroughTreeHelperFunction(closeAgents, node, agent, ranges, c)\n {\n if (node === null)\n {\n return;\n }\n\n if (this.#activeRange > ranges.length - 1)\n {\n return;\n }\n\n if (ranges[this.#activeRange].radius === -1)\n {\n return;\n }\n\n const dist = vec3.squaredDistance(node.agent.position, agent.position);\n const range = ranges[this.#activeRange].radius;\n\n if (dist < range * range)\n {\n EveKDdroneManagementTree.#AddAgentToSearchLists(closeAgents, node, dist, ranges, this.#activeRange, c);\n\n const found = closeAgents[ranges[this.#activeRange].behaviorNbr][c].length;\n if (found < this.maxFoundPerAgent)\n {\n EveKDdroneManagementTree.#AddAgentToSearchLists(closeAgents, node, dist, ranges, this.#activeRange, c);\n }\n else if (found === this.maxFoundPerAgent)\n {\n EveKDdroneManagementTree.#AddAgentToSearchLists(closeAgents, node, dist, ranges, this.#activeRange, c);\n this.#activeRange++;\n }\n }\n\n const axis = node.planeType;\n const delta = node.agent.position[axis] - agent.position[axis];\n if (delta <= range)\n {\n this.#SearchThroughTreeHelperFunction(closeAgents, node.right, agent, ranges, c);\n }\n if (delta >= range)\n {\n this.#SearchThroughTreeHelperFunction(closeAgents, node.left, agent, ranges, c);\n }\n }\n\n // Descending-radius ordering (Carbon compareRef for SearchRange, h:81-84).\n static #CompareSearchRanges(lhs, rhs)\n {\n return rhs.radius - lhs.radius;\n }\n\n // Carbon AddAgentToSearchLists (cpp:519-532): the ranges are sorted\n // descending, so appending stops at the first range the agent falls out of.\n static #AddAgentToSearchLists(closeAgents, node, dist, ranges, activeRange, agentNbr)\n {\n for (let i = activeRange; i < ranges.length; i++)\n {\n if (dist < ranges[i].radius * ranges[i].radius)\n {\n closeAgents[ranges[i].behaviorNbr][agentNbr].push(node.agent);\n }\n else\n {\n break;\n }\n }\n }\n\n // X -> Y -> Z -> X (Carbon FindNextSplitAxis, cpp:244-259).\n static #FindNextSplitAxis(planeType)\n {\n switch (planeType)\n {\n case EveKDdroneManagementTree.PlaneType.X:\n return EveKDdroneManagementTree.PlaneType.Y;\n case EveKDdroneManagementTree.PlaneType.Y:\n return EveKDdroneManagementTree.PlaneType.Z;\n default:\n return EveKDdroneManagementTree.PlaneType.X;\n }\n }\n\n static PlaneType = Object.freeze({\n X: 0,\n Y: 1,\n Z: 2,\n });\n\n}\n"],"names":["_EveKDdroneManagement","_identity","EveKDdroneManagementTree","CjsModel","e","_init_tree","_init_extra_tree","_init_debugSquareSize","_init_extra_debugSquareSize","_init_updateTimeCounter","_init_extra_updateTimeCounter","_init_maxFoundPerAgent","_init_extra_maxFoundPerAgent","_init_timeBetweenUpdate","_init_extra_timeBetweenUpdate","_init_agentRefs","_init_extra_agentRefs","_init_groupSearchReturnInfoBlock","_init_extra_groupSearchReturnInfoBlock","_init_agents","_init_extra_agents","_init_behaviorNbr","_init_extra_behaviorNbr","_init_radius","_init_extra_radius","_init_agent","_init_extra_agent","_init_rangeBetween","_init_extra_rangeBetween","_init_planeType","_init_extra_planeType","_init_b","_init_extra_b","_init_e","_init_extra_e","_init_left","_init_extra_left","_init_right","_init_extra_right","_initProto","c","_initClass","_applyDecs","type","define","className","family","objectRef","float32","uint64","list","int32","schema","enum","carbon","method","impl","adapted","reason","implemented","tree","debugSquareSize","updateTimeCounter","maxFoundPerAgent","timeBetweenUpdate","agentRefs","groupSearchReturnInfoBlock","agents","behaviorNbr","radius","agent","rangeBetween","planeType","b","left","right","CreateTree","numberOfBehaviors","length","PlaneType","Z","infoBlock","j","perAgentData","i","push","UpdateTree","dt","FindClosestAgent","pos","closest","vec3","distance","position","FindDronesInRange","ranges","behaviorGroupBoundingSphereRadius","searchRanges","behaviorNumber","sort","#ChangeAgentsIntoAgentRefs","refs","X","#SplitSort","m","nextPlane","#SortByAxis","endExclusive","range","slice","lhs","rhs","#CompareNodeToChildren","node","axis","#IsBiggestOnAxis","n","#IsSmallestOnAxis","#FindClosestAgentRecursive","distToPoint","#SearchThroughTreeHelperFunction","closeAgents","dist","squaredDistance","found","delta","#CompareSearchRanges","#AddAgentToSearchLists","activeRange","agentNbr","#FindNextSplitAxis","Y","Object","freeze","constructor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EveKDdroneManagementTree.js","sources":["../../../../../../src/generated/eve/child/behaviors/EveKDdroneManagementTree.js"],"sourcesContent":["// Ported from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\r\n// trinity/trinity/Eve/SpaceObject/Children/Behaviors/EveKDdroneManagementTree.h\r\n// trinity/trinity/Eve/SpaceObject/Children/Behaviors/EveKDdroneManagementTree.cpp\r\n// Generated by format-carbon carbon-class --emit. Verify against eve/child/behaviors/EveKDdroneManagementTree.json.\r\nimport { carbon, impl, schema, type } from \"@carbonenginejs/runtime-utils/schema\";\r\nimport { CjsModel } from \"@carbonenginejs/runtime-utils/model\";\r\nimport { PlaneType } from \"../../../../eve/child/behaviors/enums.js\";\r\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\r\n\r\n/** EveKDdroneManagementTree (eve/child/behaviors) - generated from schema shapeHash 11f612c5.... */\r\n@type.define({ className: \"EveKDdroneManagementTree\", family: \"eve/child/behaviors\" })\r\nexport class EveKDdroneManagementTree extends CjsModel\r\n{\r\n\r\n /** m_tree (AgentRef) */\r\n @type.objectRef(\"Agent\")\r\n tree = null;\r\n\r\n /** m_debugSquareSize (float) */\r\n @type.float32\r\n debugSquareSize = 0;\r\n\r\n /** m_updateTimeCounter (float) */\r\n @type.float32\r\n updateTimeCounter = 0;\r\n\r\n /** m_maxFoundPerAgent (size_t) */\r\n @type.uint64\r\n maxFoundPerAgent = 5;\r\n\r\n /** m_timeBetweenUpdate (float) */\r\n @type.float32\r\n timeBetweenUpdate = 1;\r\n\r\n /** m_agentRefs (std::vector<AgentRef>) */\r\n @type.list(\"Agent\")\r\n agentRefs = [];\r\n\r\n /** m_groupSearchReturnInfoBlock (std::vector<std::vector<std::vector<DroneAgent*>>>) */\r\n @type.list(\"std::vector<std::vector<DroneAgent>>\")\r\n groupSearchReturnInfoBlock = [];\r\n\r\n /** agents (std::vector<DroneAgent> &) */\r\n @type.list(\"DroneAgent\")\r\n agents = [];\r\n\r\n /** behaviorNbr (int) */\r\n @type.int32\r\n behaviorNbr = 0;\r\n\r\n /** radius (float) */\r\n @type.float32\r\n radius = 0;\r\n\r\n /** agent (DroneAgent*) */\r\n @type.objectRef(\"DroneAgent\")\r\n agent = null;\r\n\r\n /** rangeBetween (float) */\r\n @type.float32\r\n rangeBetween = 0;\r\n\r\n /** planeType (PlaneType - enum PlaneType) */\r\n @type.int32\r\n @schema.enum(\"PlaneType\")\r\n planeType = 0;\r\n\r\n /** b (int) */\r\n @type.int32\r\n b = 0;\r\n\r\n /** e (int) */\r\n @type.int32\r\n e = 0;\r\n\r\n /** left (AgentRef*) */\r\n @type.objectRef(\"Agent\")\r\n left = null;\r\n\r\n /** right (AgentRef*) */\r\n @type.objectRef(\"Agent\")\r\n right = null;\r\n\r\n // Reused SearchRange records ({behaviorNbr, radius}) - rebuilt each\r\n // FindDronesInRange call without reallocating the array shell.\r\n #searchRanges = [];\r\n\r\n // Carbon threads activeRange as an int& through the recursive search; the\r\n // JS port carries it as instance state reset per agent.\r\n #activeRange = 0;\r\n\r\n /**\r\n * Builds the k-d tree over the agents and sizes the per-behavior search\r\n * result block (Carbon EveKDdroneManagementTree::CreateTree, cpp:18-42).\r\n * @param {Array} agents - DroneAgent records\r\n * @param {Number} numberOfBehaviors\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon copies the root AgentRef by value into m_tree; the JS port keeps a reference into agentRefs (same fields, shared identity).\")\r\n CreateTree(agents, numberOfBehaviors)\r\n {\r\n if (!agents || agents.length === 0)\r\n {\r\n return;\r\n }\r\n\r\n this.#ChangeAgentsIntoAgentRefs(agents);\r\n this.tree = this.#SplitSort(0, agents.length - 1, EveKDdroneManagementTree.PlaneType.Z);\r\n\r\n const infoBlock = this.groupSearchReturnInfoBlock;\r\n infoBlock.length = 0;\r\n for (let j = 0; j < numberOfBehaviors; j++)\r\n {\r\n const perAgentData = [];\r\n for (let i = 0; i < agents.length; i++)\r\n {\r\n perAgentData.push([]);\r\n }\r\n infoBlock.push(perAgentData);\r\n }\r\n }\r\n\r\n /**\r\n * Throttled incremental rebalance: every timeBetweenUpdate seconds each node\r\n * is checked against its children and locally re-sorted when the splitting\r\n * invariant broke (Carbon UpdateTree, cpp:44-55).\r\n * @param {Number} dt - delta time in seconds\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateTree(dt)\r\n {\r\n if (this.timeBetweenUpdate !== -1 && this.updateTimeCounter >= this.timeBetweenUpdate)\r\n {\r\n this.updateTimeCounter = 0;\r\n this.tree = this.#CompareNodeToChildren(this.tree);\r\n }\r\n else\r\n {\r\n this.updateTimeCounter += dt;\r\n }\r\n }\r\n\r\n /**\r\n * Standard nearest-neighbour tree search for callers outside the behavior\r\n * group (Carbon FindClosestAgent, cpp:276-289).\r\n * @param {Float32Array} pos\r\n * @returns {Object|null} the closest DroneAgent record\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n FindClosestAgent(pos)\r\n {\r\n if (!this.tree || !this.tree.agent)\r\n {\r\n return null;\r\n }\r\n\r\n const closest = {\r\n agent: this.tree.agent,\r\n rangeBetween: vec3.distance(this.tree.agent.position, pos)\r\n };\r\n this.#FindClosestAgentRecursive(pos, this.tree, closest);\r\n return closest.agent;\r\n }\r\n\r\n /**\r\n * Batched range search for every agent against every behavior's search\r\n * radius at once (Carbon FindDronesInRange, cpp:374-430). The result is\r\n * indexed [behaviorIndex][agentIndex] -> agents in range (up to\r\n * maxFoundPerAgent per Carbon's early-out bookkeeping).\r\n * @param {Array} agents - DroneAgent records\r\n * @param {Array<Number>} ranges - per-behavior search radii (-1 = don't care)\r\n * @param {Number} behaviorGroupBoundingSphereRadius\r\n * @returns {Array} groupSearchReturnInfoBlock\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n FindDronesInRange(agents, ranges, behaviorGroupBoundingSphereRadius)\r\n {\r\n const searchRanges = this.#searchRanges;\r\n searchRanges.length = 0;\r\n for (let behaviorNumber = 0; behaviorNumber < ranges.length; behaviorNumber++)\r\n {\r\n const radius = ranges[behaviorNumber];\r\n searchRanges.push({\r\n behaviorNbr: behaviorNumber,\r\n radius: radius === -1 ? -1 : radius + behaviorGroupBoundingSphereRadius\r\n });\r\n }\r\n searchRanges.sort(EveKDdroneManagementTree.#CompareSearchRanges);\r\n\r\n const infoBlock = this.groupSearchReturnInfoBlock;\r\n if (infoBlock.length)\r\n {\r\n for (let j = 0; j < ranges.length && j < infoBlock.length; j++)\r\n {\r\n for (let i = 0; i < agents.length && i < infoBlock[j].length; i++)\r\n {\r\n infoBlock[j][i].length = 0;\r\n }\r\n }\r\n }\r\n\r\n if (searchRanges.length === 0)\r\n {\r\n return infoBlock;\r\n }\r\n if (searchRanges[0].radius === -1)\r\n {\r\n return infoBlock;\r\n }\r\n\r\n for (let c = 0; c < agents.length; c++)\r\n {\r\n this.#activeRange = 0;\r\n this.#SearchThroughTreeHelperFunction(infoBlock, this.tree, agents[c], searchRanges, c);\r\n }\r\n\r\n return infoBlock;\r\n }\r\n\r\n // Rebuilds the AgentRef shells over the live agents (Carbon\r\n // ChangeAgentsIntoAgentRefs, cpp:232-242).\r\n #ChangeAgentsIntoAgentRefs(agents)\r\n {\r\n const refs = this.agentRefs;\r\n refs.length = 0;\r\n for (const agent of agents)\r\n {\r\n refs.push({\r\n agent,\r\n planeType: EveKDdroneManagementTree.PlaneType.X,\r\n b: 0,\r\n e: 0,\r\n left: null,\r\n right: null\r\n });\r\n }\r\n }\r\n\r\n // Recursive median split over agentRefs[b..e] (Carbon SplitSort,\r\n // cpp:202-230).\r\n #SplitSort(b, e, planeType)\r\n {\r\n const refs = this.agentRefs;\r\n if (b === e)\r\n {\r\n refs[b].b = b;\r\n refs[b].e = e;\r\n refs[b].left = null;\r\n refs[b].right = null;\r\n return refs[b];\r\n }\r\n\r\n if (b > e)\r\n {\r\n return null;\r\n }\r\n\r\n this.#SortByAxis(refs, b, e + 1, planeType);\r\n\r\n const m = b + ((e - b) >> 1);\r\n refs[m].b = b;\r\n refs[m].e = e;\r\n\r\n const nextPlane = EveKDdroneManagementTree.#FindNextSplitAxis(planeType);\r\n refs[m].left = this.#SplitSort(b, m - 1, nextPlane);\r\n refs[m].right = this.#SplitSort(m + 1, e, nextPlane);\r\n\r\n return refs[m];\r\n }\r\n\r\n // Stamps planeType on the range then sorts it by that axis (Carbon\r\n // SortByAxis, cpp:261-271); the temporary subrange copy replaces\r\n // std::sort's in-place range sort and only allocates on the throttled\r\n // rebuild path.\r\n #SortByAxis(refs, b, endExclusive, planeType)\r\n {\r\n for (let i = b; i < endExclusive; i++)\r\n {\r\n refs[i].planeType = planeType;\r\n }\r\n\r\n const range = refs.slice(b, endExclusive);\r\n range.sort((lhs, rhs) => lhs.agent.position[planeType] - rhs.agent.position[planeType]);\r\n for (let i = 0; i < range.length; i++)\r\n {\r\n refs[b + i] = range[i];\r\n }\r\n }\r\n\r\n // Checks each split invariant and locally re-sorts broken subtrees (Carbon\r\n // CompareNodeToChildren, cpp:58-110; the three per-axis cases collapse to\r\n // one indexed body on the shared vec3 layout).\r\n #CompareNodeToChildren(node)\r\n {\r\n if (node === null)\r\n {\r\n return null;\r\n }\r\n\r\n if (node.left === null && node.right === null)\r\n {\r\n return node;\r\n }\r\n\r\n const axis = node.planeType;\r\n if (this.#IsBiggestOnAxis(node.left, node.agent.position[axis], axis) &&\r\n this.#IsSmallestOnAxis(node.right, node.agent.position[axis], axis))\r\n {\r\n node.left = this.#CompareNodeToChildren(node.left);\r\n node.right = this.#CompareNodeToChildren(node.right);\r\n return node;\r\n }\r\n return this.#SplitSort(node.b, node.e, axis);\r\n }\r\n\r\n // Carbon IsBiggestOnAxis (cpp:112-154): on the node's own split axis only\r\n // the bigger side needs checking; on other axes both sides do.\r\n #IsBiggestOnAxis(node, n, planeType)\r\n {\r\n if (node === null)\r\n {\r\n return true;\r\n }\r\n\r\n const axis = node.planeType;\r\n if (planeType === axis)\r\n {\r\n return n >= node.agent.position[axis] && this.#IsBiggestOnAxis(node.right, n, axis);\r\n }\r\n return n >= node.agent.position[axis] &&\r\n this.#IsBiggestOnAxis(node.left, n, axis) &&\r\n this.#IsBiggestOnAxis(node.right, n, axis);\r\n }\r\n\r\n // Carbon IsSmallestOnAxis (cpp:157-199): mirror of IsBiggestOnAxis.\r\n #IsSmallestOnAxis(node, n, planeType)\r\n {\r\n if (node === null)\r\n {\r\n return true;\r\n }\r\n\r\n const axis = node.planeType;\r\n if (planeType === axis)\r\n {\r\n return n <= node.agent.position[axis] && this.#IsSmallestOnAxis(node.left, n, axis);\r\n }\r\n return n <= node.agent.position[axis] &&\r\n this.#IsSmallestOnAxis(node.left, n, axis) &&\r\n this.#IsSmallestOnAxis(node.right, n, axis);\r\n }\r\n\r\n // Carbon FindClosestAgentRecursive (cpp:291-371): digs through the tree,\r\n // pruning half-spaces the best-so-far sphere cannot reach.\r\n #FindClosestAgentRecursive(pos, node, closest)\r\n {\r\n if (node === null)\r\n {\r\n return;\r\n }\r\n\r\n const distToPoint = vec3.distance(node.agent.position, pos);\r\n if (closest.rangeBetween > distToPoint)\r\n {\r\n closest.rangeBetween = distToPoint;\r\n closest.agent = node.agent;\r\n }\r\n\r\n const axis = node.planeType;\r\n if (node.agent.position[axis] < pos[axis])\r\n {\r\n this.#FindClosestAgentRecursive(pos, node.right, closest);\r\n if (node.agent.position[axis] + closest.rangeBetween > pos[axis])\r\n {\r\n this.#FindClosestAgentRecursive(pos, node.left, closest);\r\n }\r\n }\r\n else\r\n {\r\n this.#FindClosestAgentRecursive(pos, node.left, closest);\r\n if (node.agent.position[axis] - closest.rangeBetween < pos[axis])\r\n {\r\n this.#FindClosestAgentRecursive(pos, node.right, closest);\r\n }\r\n }\r\n }\r\n\r\n // Per-agent range search body (Carbon SearchThroughTreeHelperFunction,\r\n // cpp:443-517), kept bug-compatible: a found agent is appended once, then\r\n // once or twice more depending on the fill state, and activeRange advances\r\n // when the widest range saturates.\r\n #SearchThroughTreeHelperFunction(closeAgents, node, agent, ranges, c)\r\n {\r\n if (node === null)\r\n {\r\n return;\r\n }\r\n\r\n if (this.#activeRange > ranges.length - 1)\r\n {\r\n return;\r\n }\r\n\r\n if (ranges[this.#activeRange].radius === -1)\r\n {\r\n return;\r\n }\r\n\r\n const dist = vec3.squaredDistance(node.agent.position, agent.position);\r\n const range = ranges[this.#activeRange].radius;\r\n\r\n if (dist < range * range)\r\n {\r\n EveKDdroneManagementTree.#AddAgentToSearchLists(closeAgents, node, dist, ranges, this.#activeRange, c);\r\n\r\n const found = closeAgents[ranges[this.#activeRange].behaviorNbr][c].length;\r\n if (found < this.maxFoundPerAgent)\r\n {\r\n EveKDdroneManagementTree.#AddAgentToSearchLists(closeAgents, node, dist, ranges, this.#activeRange, c);\r\n }\r\n else if (found === this.maxFoundPerAgent)\r\n {\r\n EveKDdroneManagementTree.#AddAgentToSearchLists(closeAgents, node, dist, ranges, this.#activeRange, c);\r\n this.#activeRange++;\r\n }\r\n }\r\n\r\n const axis = node.planeType;\r\n const delta = node.agent.position[axis] - agent.position[axis];\r\n if (delta <= range)\r\n {\r\n this.#SearchThroughTreeHelperFunction(closeAgents, node.right, agent, ranges, c);\r\n }\r\n if (delta >= range)\r\n {\r\n this.#SearchThroughTreeHelperFunction(closeAgents, node.left, agent, ranges, c);\r\n }\r\n }\r\n\r\n // Descending-radius ordering (Carbon compareRef for SearchRange, h:81-84).\r\n static #CompareSearchRanges(lhs, rhs)\r\n {\r\n return rhs.radius - lhs.radius;\r\n }\r\n\r\n // Carbon AddAgentToSearchLists (cpp:519-532): the ranges are sorted\r\n // descending, so appending stops at the first range the agent falls out of.\r\n static #AddAgentToSearchLists(closeAgents, node, dist, ranges, activeRange, agentNbr)\r\n {\r\n for (let i = activeRange; i < ranges.length; i++)\r\n {\r\n if (dist < ranges[i].radius * ranges[i].radius)\r\n {\r\n closeAgents[ranges[i].behaviorNbr][agentNbr].push(node.agent);\r\n }\r\n else\r\n {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // X -> Y -> Z -> X (Carbon FindNextSplitAxis, cpp:244-259).\r\n static #FindNextSplitAxis(planeType)\r\n {\r\n switch (planeType)\r\n {\r\n case EveKDdroneManagementTree.PlaneType.X:\r\n return EveKDdroneManagementTree.PlaneType.Y;\r\n case EveKDdroneManagementTree.PlaneType.Y:\r\n return EveKDdroneManagementTree.PlaneType.Z;\r\n default:\r\n return EveKDdroneManagementTree.PlaneType.X;\r\n }\r\n }\r\n\r\n static PlaneType = PlaneType;\r\n\r\n}\r\n"],"names":["_EveKDdroneManagement","_identity","EveKDdroneManagementTree","CjsModel","e","_init_tree","_init_extra_tree","_init_debugSquareSize","_init_extra_debugSquareSize","_init_updateTimeCounter","_init_extra_updateTimeCounter","_init_maxFoundPerAgent","_init_extra_maxFoundPerAgent","_init_timeBetweenUpdate","_init_extra_timeBetweenUpdate","_init_agentRefs","_init_extra_agentRefs","_init_groupSearchReturnInfoBlock","_init_extra_groupSearchReturnInfoBlock","_init_agents","_init_extra_agents","_init_behaviorNbr","_init_extra_behaviorNbr","_init_radius","_init_extra_radius","_init_agent","_init_extra_agent","_init_rangeBetween","_init_extra_rangeBetween","_init_planeType","_init_extra_planeType","_init_b","_init_extra_b","_init_e","_init_extra_e","_init_left","_init_extra_left","_init_right","_init_extra_right","_initProto","c","_initClass","_applyDecs","type","define","className","family","objectRef","float32","uint64","list","int32","schema","enum","carbon","method","impl","adapted","reason","implemented","tree","debugSquareSize","updateTimeCounter","maxFoundPerAgent","timeBetweenUpdate","agentRefs","groupSearchReturnInfoBlock","agents","behaviorNbr","radius","agent","rangeBetween","planeType","b","left","right","CreateTree","numberOfBehaviors","length","PlaneType","Z","infoBlock","j","perAgentData","i","push","UpdateTree","dt","FindClosestAgent","pos","closest","vec3","distance","position","FindDronesInRange","ranges","behaviorGroupBoundingSphereRadius","searchRanges","behaviorNumber","sort","#ChangeAgentsIntoAgentRefs","refs","X","#SplitSort","m","nextPlane","#SortByAxis","endExclusive","range","slice","lhs","rhs","#CompareNodeToChildren","node","axis","#IsBiggestOnAxis","n","#IsSmallestOnAxis","#FindClosestAgentRecursive","distToPoint","#SearchThroughTreeHelperFunction","closeAgents","dist","squaredDistance","found","delta","#CompareSearchRanges","#AddAgentToSearchLists","activeRange","agentNbr","#FindNextSplitAxis","Y","constructor"],"mappings":"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"}
|