@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.
Files changed (1087) hide show
  1. package/README.md +35 -243
  2. package/dist/controllers/CjsControllerExpressionProgram.js +157 -0
  3. package/dist/controllers/CjsControllerExpressionProgram.js.map +1 -1
  4. package/dist/controllers/ITr2ControllerAction.js +57 -0
  5. package/dist/controllers/ITr2ControllerAction.js.map +1 -1
  6. package/dist/controllers/Tr2ActionAnimateCurveSet.js +10 -0
  7. package/dist/controllers/Tr2ActionAnimateCurveSet.js.map +1 -1
  8. package/dist/controllers/Tr2ActionAnimateValue.js +26 -0
  9. package/dist/controllers/Tr2ActionAnimateValue.js.map +1 -1
  10. package/dist/controllers/Tr2ActionBindRTPC.js +11 -0
  11. package/dist/controllers/Tr2ActionBindRTPC.js.map +1 -1
  12. package/dist/controllers/Tr2ActionCallback.js +5 -0
  13. package/dist/controllers/Tr2ActionCallback.js.map +1 -1
  14. package/dist/controllers/Tr2ActionChildEffect.js +63 -0
  15. package/dist/controllers/Tr2ActionChildEffect.js.map +1 -1
  16. package/dist/controllers/Tr2ActionOverlay.js +68 -0
  17. package/dist/controllers/Tr2ActionOverlay.js.map +1 -1
  18. package/dist/controllers/Tr2ActionPlayCurveSet.js +16 -0
  19. package/dist/controllers/Tr2ActionPlayCurveSet.js.map +1 -1
  20. package/dist/controllers/Tr2ActionPlayMeshAnimation.js +29 -0
  21. package/dist/controllers/Tr2ActionPlayMeshAnimation.js.map +1 -1
  22. package/dist/controllers/Tr2ActionPlaySound.js +11 -0
  23. package/dist/controllers/Tr2ActionPlaySound.js.map +1 -1
  24. package/dist/controllers/Tr2ActionPython.js +11 -0
  25. package/dist/controllers/Tr2ActionPython.js.map +1 -1
  26. package/dist/controllers/Tr2ActionResetClipSphereCenter.js +17 -0
  27. package/dist/controllers/Tr2ActionResetClipSphereCenter.js.map +1 -1
  28. package/dist/controllers/Tr2ActionSetAttenuationScaling.js +5 -0
  29. package/dist/controllers/Tr2ActionSetAttenuationScaling.js.map +1 -1
  30. package/dist/controllers/Tr2ActionSetAudioEmitterPrefix.js +5 -0
  31. package/dist/controllers/Tr2ActionSetAudioEmitterPrefix.js.map +1 -1
  32. package/dist/controllers/Tr2ActionSetAudioSwitch.js +5 -0
  33. package/dist/controllers/Tr2ActionSetAudioSwitch.js.map +1 -1
  34. package/dist/controllers/Tr2ActionSetExternalControllerVariable.js +23 -0
  35. package/dist/controllers/Tr2ActionSetExternalControllerVariable.js.map +1 -1
  36. package/dist/controllers/Tr2ActionSetShaderOption.js +5 -0
  37. package/dist/controllers/Tr2ActionSetShaderOption.js.map +1 -1
  38. package/dist/controllers/Tr2ActionSetValue.js +35 -0
  39. package/dist/controllers/Tr2ActionSetValue.js.map +1 -1
  40. package/dist/controllers/Tr2ActionSpawnParticles.js +10 -0
  41. package/dist/controllers/Tr2ActionSpawnParticles.js.map +1 -1
  42. package/dist/controllers/Tr2BindingPoint.js +67 -0
  43. package/dist/controllers/Tr2BindingPoint.js.map +1 -1
  44. package/dist/controllers/Tr2Controller.js +37 -0
  45. package/dist/controllers/Tr2Controller.js.map +1 -1
  46. package/dist/controllers/Tr2ControllerEventHandler.js +10 -0
  47. package/dist/controllers/Tr2ControllerEventHandler.js.map +1 -1
  48. package/dist/controllers/Tr2ControllerExpression.js +17 -0
  49. package/dist/controllers/Tr2ControllerExpression.js.map +1 -1
  50. package/dist/controllers/Tr2ControllerFloatVariable.js +6 -0
  51. package/dist/controllers/Tr2ControllerFloatVariable.js.map +1 -1
  52. package/dist/controllers/Tr2ControllerReference.js +11 -0
  53. package/dist/controllers/Tr2ControllerReference.js.map +1 -1
  54. package/dist/controllers/Tr2StateMachine.js +17 -0
  55. package/dist/controllers/Tr2StateMachine.js.map +1 -1
  56. package/dist/controllers/Tr2StateMachineState.js +47 -0
  57. package/dist/controllers/Tr2StateMachineState.js.map +1 -1
  58. package/dist/controllers/Tr2StateMachineTransition.js +29 -0
  59. package/dist/controllers/Tr2StateMachineTransition.js.map +1 -1
  60. package/dist/controllers/Tr2SyncToAnimation.js +5 -0
  61. package/dist/controllers/Tr2SyncToAnimation.js.map +1 -1
  62. package/dist/controllers/Tr2TimelineController.js +61 -0
  63. package/dist/controllers/Tr2TimelineController.js.map +1 -1
  64. package/dist/controllers/contracts.js +24 -1
  65. package/dist/controllers/contracts.js.map +1 -1
  66. package/dist/controllers/index.js +1 -1
  67. package/dist/curves/CjsGrannyCurves.js +150 -0
  68. package/dist/curves/CjsGrannyCurves.js.map +1 -1
  69. package/dist/curves/Tr2BoneMatrixCurve.js +23 -0
  70. package/dist/curves/Tr2BoneMatrixCurve.js.map +1 -1
  71. package/dist/curves/Tr2CameraFollowCurveKey.js +6 -0
  72. package/dist/curves/Tr2CameraFollowCurveKey.js.map +1 -1
  73. package/dist/curves/Tr2CurveColor.js +6 -0
  74. package/dist/curves/Tr2CurveColor.js.map +1 -1
  75. package/dist/curves/Tr2CurveColorMixer.js +6 -0
  76. package/dist/curves/Tr2CurveColorMixer.js.map +1 -1
  77. package/dist/curves/Tr2CurveCombiner.js +5 -0
  78. package/dist/curves/Tr2CurveCombiner.js.map +1 -1
  79. package/dist/curves/Tr2CurveConstant.js +16 -0
  80. package/dist/curves/Tr2CurveConstant.js.map +1 -1
  81. package/dist/curves/Tr2CurveEulerRotation.js +5 -0
  82. package/dist/curves/Tr2CurveEulerRotation.js.map +1 -1
  83. package/dist/curves/Tr2CurveEulerRotationExpression.js +66 -0
  84. package/dist/curves/Tr2CurveEulerRotationExpression.js.map +1 -1
  85. package/dist/curves/Tr2CurveQuaternion.js +5 -0
  86. package/dist/curves/Tr2CurveQuaternion.js.map +1 -1
  87. package/dist/curves/Tr2CurveQuaternionKey.js +5 -0
  88. package/dist/curves/Tr2CurveQuaternionKey.js.map +1 -1
  89. package/dist/curves/Tr2CurveRandomAxisRotation.js +28 -0
  90. package/dist/curves/Tr2CurveRandomAxisRotation.js.map +1 -1
  91. package/dist/curves/Tr2CurveScalar.js +35 -0
  92. package/dist/curves/Tr2CurveScalar.js.map +1 -1
  93. package/dist/curves/Tr2CurveScalarExpression.js +11 -0
  94. package/dist/curves/Tr2CurveScalarExpression.js.map +1 -1
  95. package/dist/curves/Tr2CurveScalarKey.js +6 -0
  96. package/dist/curves/Tr2CurveScalarKey.js.map +1 -1
  97. package/dist/curves/Tr2CurveSetRange.js +5 -0
  98. package/dist/curves/Tr2CurveSetRange.js.map +1 -1
  99. package/dist/curves/Tr2CurveVector2.js +5 -0
  100. package/dist/curves/Tr2CurveVector2.js.map +1 -1
  101. package/dist/curves/Tr2CurveVector3.js +5 -0
  102. package/dist/curves/Tr2CurveVector3.js.map +1 -1
  103. package/dist/curves/Tr2CurveVector3Expression.js +71 -0
  104. package/dist/curves/Tr2CurveVector3Expression.js.map +1 -1
  105. package/dist/curves/Tr2CurveVector3Lerp.js +6 -0
  106. package/dist/curves/Tr2CurveVector3Lerp.js.map +1 -1
  107. package/dist/curves/Tr2DistanceTracker.js +6 -0
  108. package/dist/curves/Tr2DistanceTracker.js.map +1 -1
  109. package/dist/curves/Tr2FollowCurve.js +6 -0
  110. package/dist/curves/Tr2FollowCurve.js.map +1 -1
  111. package/dist/curves/Tr2GrannyEventTrack.js +5 -0
  112. package/dist/curves/Tr2GrannyEventTrack.js.map +1 -1
  113. package/dist/curves/Tr2GrannyTrack.js +6 -0
  114. package/dist/curves/Tr2GrannyTrack.js.map +1 -1
  115. package/dist/curves/Tr2GrannyTransformTrack.js +6 -0
  116. package/dist/curves/Tr2GrannyTransformTrack.js.map +1 -1
  117. package/dist/curves/Tr2GrannyVectorTrack.js +5 -0
  118. package/dist/curves/Tr2GrannyVectorTrack.js.map +1 -1
  119. package/dist/curves/Tr2MatrixKey.js +5 -0
  120. package/dist/curves/Tr2MatrixKey.js.map +1 -1
  121. package/dist/curves/Tr2ObjectFollowCurveKey.js +6 -0
  122. package/dist/curves/Tr2ObjectFollowCurveKey.js.map +1 -1
  123. package/dist/curves/Tr2QuaternionLerpCurve.js +6 -0
  124. package/dist/curves/Tr2QuaternionLerpCurve.js.map +1 -1
  125. package/dist/curves/Tr2RotationAdapter.js +6 -0
  126. package/dist/curves/Tr2RotationAdapter.js.map +1 -1
  127. package/dist/curves/Tr2ScalarExprKey.js +18 -0
  128. package/dist/curves/Tr2ScalarExprKey.js.map +1 -1
  129. package/dist/curves/Tr2ScalarExprKeyCurve.js +23 -0
  130. package/dist/curves/Tr2ScalarExprKeyCurve.js.map +1 -1
  131. package/dist/curves/Tr2ScalarFader.js +11 -0
  132. package/dist/curves/Tr2ScalarFader.js.map +1 -1
  133. package/dist/curves/Tr2TranslationAdapter.js +6 -0
  134. package/dist/curves/Tr2TranslationAdapter.js.map +1 -1
  135. package/dist/curves/TriColorSequencer.js +6 -0
  136. package/dist/curves/TriColorSequencer.js.map +1 -1
  137. package/dist/curves/TriCurveSet.js +23 -0
  138. package/dist/curves/TriCurveSet.js.map +1 -1
  139. package/dist/curves/TriEventCurve.js +23 -0
  140. package/dist/curves/TriEventCurve.js.map +1 -1
  141. package/dist/curves/TriEventKey.js +5 -0
  142. package/dist/curves/TriEventKey.js.map +1 -1
  143. package/dist/curves/TriPerlinCurve.js +30 -0
  144. package/dist/curves/TriPerlinCurve.js.map +1 -1
  145. package/dist/curves/TriVectorSequencer.js +6 -0
  146. package/dist/curves/TriVectorSequencer.js.map +1 -1
  147. package/dist/eve/AudioGameObject.js +89 -1
  148. package/dist/eve/AudioGameObject.js.map +1 -1
  149. package/dist/eve/BackAndForthData.js +7 -0
  150. package/dist/eve/BackAndForthData.js.map +1 -1
  151. package/dist/eve/CjsDistributionRandom.js +6 -0
  152. package/dist/eve/CjsDistributionRandom.js.map +1 -1
  153. package/dist/eve/CjsEveThrottleableState.js +11 -0
  154. package/dist/eve/CjsEveThrottleableState.js.map +1 -1
  155. package/dist/eve/EveChildUpdateParams.js +7 -0
  156. package/dist/eve/EveChildUpdateParams.js.map +1 -1
  157. package/dist/eve/EveComponentTypes.js.map +1 -1
  158. package/dist/eve/EveCustomMask.js +58 -27
  159. package/dist/eve/EveCustomMask.js.map +1 -1
  160. package/dist/eve/EveDistanceField.js +84 -0
  161. package/dist/eve/EveDistanceField.js.map +1 -1
  162. package/dist/eve/EveEntity.js +138 -0
  163. package/dist/eve/EveEntity.js.map +1 -0
  164. package/dist/eve/EveImpactOverlay.js +61 -0
  165. package/dist/eve/EveImpactOverlay.js.map +1 -1
  166. package/dist/eve/EveLODHelper.js +17 -13
  167. package/dist/eve/EveLODHelper.js.map +1 -1
  168. package/dist/eve/EveLineData.js +2 -0
  169. package/dist/eve/EveLineData.js.map +1 -1
  170. package/dist/eve/EveThrottleable.js +11 -0
  171. package/dist/eve/EveThrottleable.js.map +1 -1
  172. package/dist/eve/FollowASplineData.js +7 -0
  173. package/dist/eve/FollowASplineData.js.map +1 -1
  174. package/dist/eve/FormationData.js +6 -0
  175. package/dist/eve/FormationData.js.map +1 -1
  176. package/dist/eve/InertiaData.js +7 -0
  177. package/dist/eve/InertiaData.js.map +1 -1
  178. package/dist/eve/PlacementDataWithIdentifier.js +7 -0
  179. package/dist/eve/PlacementDataWithIdentifier.js.map +1 -1
  180. package/dist/eve/PlayFXData.js +7 -0
  181. package/dist/eve/PlayFXData.js.map +1 -1
  182. package/dist/eve/SeekTargetData.js +7 -0
  183. package/dist/eve/SeekTargetData.js.map +1 -1
  184. package/dist/eve/{EveSpaceObjectAttachmentUtils.js → attachment/EveSpaceObjectAttachmentUtils.js} +11 -11
  185. package/dist/eve/attachment/EveSpaceObjectAttachmentUtils.js.map +1 -0
  186. package/dist/eve/attachment/banner/EveBannerItem.js +70 -0
  187. package/dist/eve/attachment/banner/EveBannerItem.js.map +1 -0
  188. package/dist/eve/{EveBannerLight.js → attachment/banner/EveBannerLight.js} +13 -2
  189. package/dist/eve/attachment/banner/EveBannerLight.js.map +1 -0
  190. package/dist/eve/attachment/banner/EveBannerSet.js +537 -0
  191. package/dist/eve/attachment/banner/EveBannerSet.js.map +1 -0
  192. package/dist/eve/{EveBoosterSet2.js → attachment/booster/EveBoosterSet2.js} +204 -35
  193. package/dist/eve/attachment/booster/EveBoosterSet2.js.map +1 -0
  194. package/dist/eve/{EveBoosterSet2Renderable.js → attachment/booster/EveBoosterSet2Renderable.js} +205 -12
  195. package/dist/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -0
  196. package/dist/eve/{EveTrailsSet.js → attachment/booster/EveTrailsSet.js} +49 -1
  197. package/dist/eve/attachment/booster/EveTrailsSet.js.map +1 -0
  198. package/dist/eve/attachment/decal/EveSpaceObjectDecal.js +512 -0
  199. package/dist/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -0
  200. package/dist/eve/{EveHazeSet.js → attachment/haze/EveHazeSet.js} +65 -6
  201. package/dist/eve/attachment/haze/EveHazeSet.js.map +1 -0
  202. package/dist/eve/attachment/haze/EveHazeSetItem.js +64 -0
  203. package/dist/eve/attachment/haze/EveHazeSetItem.js.map +1 -0
  204. package/dist/eve/{EveHazeSetLight.js → attachment/haze/EveHazeSetLight.js} +13 -2
  205. package/dist/eve/attachment/haze/EveHazeSetLight.js.map +1 -0
  206. package/dist/eve/attachment/itemSetBounds.js +131 -0
  207. package/dist/eve/attachment/itemSetBounds.js.map +1 -0
  208. package/dist/eve/{EvePlaneLight.js → attachment/plane/EvePlaneLight.js} +14 -2
  209. package/dist/eve/attachment/plane/EvePlaneLight.js.map +1 -0
  210. package/dist/eve/{EvePlaneSet.js → attachment/plane/EvePlaneSet.js} +119 -7
  211. package/dist/eve/attachment/plane/EvePlaneSet.js.map +1 -0
  212. package/dist/eve/attachment/plane/EvePlaneSetItem.js +72 -0
  213. package/dist/eve/attachment/plane/EvePlaneSetItem.js.map +1 -0
  214. package/dist/eve/{EveSpotlightLight.js → attachment/spotlight/EveSpotlightLight.js} +13 -2
  215. package/dist/eve/attachment/spotlight/EveSpotlightLight.js.map +1 -0
  216. package/dist/eve/{EveSpotlightSet.js → attachment/spotlight/EveSpotlightSet.js} +86 -6
  217. package/dist/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -0
  218. package/dist/eve/attachment/spotlight/EveSpotlightSetItem.js +61 -0
  219. package/dist/eve/attachment/spotlight/EveSpotlightSetItem.js.map +1 -0
  220. package/dist/eve/{EveSpriteLight.js → attachment/sprite/EveSpriteLight.js} +14 -2
  221. package/dist/eve/attachment/sprite/EveSpriteLight.js.map +1 -0
  222. package/dist/eve/{EveSpriteLineSet.js → attachment/sprite/EveSpriteLineSet.js} +69 -7
  223. package/dist/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -0
  224. package/dist/eve/{EveSpriteLineSetItem.js → attachment/sprite/EveSpriteLineSetItem.js} +29 -4
  225. package/dist/eve/attachment/sprite/EveSpriteLineSetItem.js.map +1 -0
  226. package/dist/eve/{EveSpriteSet.js → attachment/sprite/EveSpriteSet.js} +87 -8
  227. package/dist/eve/attachment/sprite/EveSpriteSet.js.map +1 -0
  228. package/dist/{generated/eve/attachment/sprites → eve/attachment/sprite}/EveSpriteSetItem.js +23 -26
  229. package/dist/eve/attachment/sprite/EveSpriteSetItem.js.map +1 -0
  230. package/dist/eve/attachment/turrets/EveTurretFiringFX.js +184 -2
  231. package/dist/eve/attachment/turrets/EveTurretFiringFX.js.map +1 -1
  232. package/dist/eve/attachment/turrets/EveTurretSet.js +236 -7
  233. package/dist/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  234. package/dist/eve/attachment/turrets/EveTurretTarget.js +112 -0
  235. package/dist/eve/attachment/turrets/EveTurretTarget.js.map +1 -1
  236. package/dist/eve/camera/EveCamera.js +644 -0
  237. package/dist/eve/camera/EveCamera.js.map +1 -0
  238. package/dist/eve/child/EveChildAudio.js +63 -0
  239. package/dist/eve/child/EveChildAudio.js.map +1 -1
  240. package/dist/eve/child/EveChildBehaviorSystem.js +412 -0
  241. package/dist/eve/child/EveChildBehaviorSystem.js.map +1 -0
  242. package/dist/{generated/eve → eve}/child/EveChildBulletStorm.js +41 -3
  243. package/dist/eve/child/EveChildBulletStorm.js.map +1 -0
  244. package/dist/eve/child/EveChildContainer.js +175 -16
  245. package/dist/eve/child/EveChildContainer.js.map +1 -1
  246. package/dist/eve/child/EveChildEffectPropagator.js +1 -1
  247. package/dist/eve/child/EveChildEffectPropagator.js.map +1 -1
  248. package/dist/eve/child/EveChildFogVolume.js +72 -0
  249. package/dist/eve/child/EveChildFogVolume.js.map +1 -1
  250. package/dist/eve/child/EveChildInheritProperties.js +17 -0
  251. package/dist/eve/child/EveChildInheritProperties.js.map +1 -1
  252. package/dist/eve/child/EveChildInstancedMeshes.js +211 -1
  253. package/dist/eve/child/EveChildInstancedMeshes.js.map +1 -1
  254. package/dist/eve/child/EveChildLightingOverride.js +74 -0
  255. package/dist/eve/child/EveChildLightingOverride.js.map +1 -1
  256. package/dist/{generated/eve → eve}/child/EveChildLink.js +17 -16
  257. package/dist/eve/child/EveChildLink.js.map +1 -0
  258. package/dist/eve/child/EveChildMesh.js +351 -105
  259. package/dist/eve/child/EveChildMesh.js.map +1 -1
  260. package/dist/eve/child/EveChildSpherePin.js +108 -0
  261. package/dist/eve/child/EveChildSpherePin.js.map +1 -0
  262. package/dist/eve/child/EveChildTransform.js +44 -1
  263. package/dist/eve/child/EveChildTransform.js.map +1 -1
  264. package/dist/eve/child/IEveSpaceObjectChild.js +5 -0
  265. package/dist/eve/child/IEveSpaceObjectChild.js.map +1 -1
  266. package/dist/eve/child/behaviors/CollisionAvoidance.js +112 -0
  267. package/dist/eve/child/behaviors/CollisionAvoidance.js.map +1 -0
  268. package/dist/eve/child/behaviors/InclusionVolume.js +131 -0
  269. package/dist/eve/child/behaviors/InclusionVolume.js.map +1 -0
  270. package/dist/eve/child/behaviors/Wander.js +99 -0
  271. package/dist/eve/child/behaviors/Wander.js.map +1 -0
  272. package/dist/{generated/eve → eve}/child/behaviors/enums.js +1 -1
  273. package/dist/eve/child/behaviors/enums.js.map +1 -0
  274. package/dist/eve/child/behaviors/lifecycle/ProcessLifetime.js +540 -0
  275. package/dist/eve/child/behaviors/lifecycle/ProcessLifetime.js.map +1 -0
  276. package/dist/eve/{ProcessLifetimeData.js → child/behaviors/lifecycle/ProcessLifetimeData.js} +8 -2
  277. package/dist/eve/child/behaviors/lifecycle/ProcessLifetimeData.js.map +1 -0
  278. package/dist/eve/child/behaviors/{SplineTunnel.js → tunnels/SplineTunnel.js} +9 -7
  279. package/dist/eve/child/behaviors/tunnels/SplineTunnel.js.map +1 -0
  280. package/dist/eve/child/behaviors/tunnels/SplineTunnelGroup.js +211 -0
  281. package/dist/eve/child/behaviors/tunnels/SplineTunnelGroup.js.map +1 -0
  282. package/dist/eve/child/behaviors/{SplineTunnelPoint.js → tunnels/SplineTunnelPoint.js} +3 -3
  283. package/dist/eve/child/behaviors/tunnels/SplineTunnelPoint.js.map +1 -0
  284. package/dist/eve/child/lineSetPaths/EveBezierCurve.js +65 -0
  285. package/dist/eve/child/lineSetPaths/EveBezierCurve.js.map +1 -1
  286. package/dist/eve/child/lineSetPaths/EveCircle.js +63 -0
  287. package/dist/eve/child/lineSetPaths/EveCircle.js.map +1 -1
  288. package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierAttachToBone.js +24 -16
  289. package/dist/eve/child/modifiers/EveChildModifierAttachToBone.js.map +1 -0
  290. package/dist/eve/child/modifiers/EveChildModifierBillboard2D.js +5 -0
  291. package/dist/eve/child/modifiers/EveChildModifierBillboard2D.js.map +1 -1
  292. package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierBillboard3D.js +22 -19
  293. package/dist/eve/child/modifiers/EveChildModifierBillboard3D.js.map +1 -0
  294. package/dist/eve/child/modifiers/EveChildModifierBooster.js +6 -0
  295. package/dist/eve/child/modifiers/EveChildModifierBooster.js.map +1 -1
  296. package/dist/eve/child/modifiers/EveChildModifierCameraOrientedRotationConstrained.js +5 -0
  297. package/dist/eve/child/modifiers/EveChildModifierCameraOrientedRotationConstrained.js.map +1 -1
  298. package/dist/eve/child/modifiers/EveChildModifierHalo.js +5 -0
  299. package/dist/eve/child/modifiers/EveChildModifierHalo.js.map +1 -1
  300. package/dist/eve/child/modifiers/EveChildModifierHaloInverted.js +6 -0
  301. package/dist/eve/child/modifiers/EveChildModifierHaloInverted.js.map +1 -1
  302. package/dist/eve/child/modifiers/EveChildModifierSRT.js +5 -0
  303. package/dist/eve/child/modifiers/EveChildModifierSRT.js.map +1 -1
  304. package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierStretch.js +31 -17
  305. package/dist/eve/child/modifiers/EveChildModifierStretch.js.map +1 -0
  306. package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierTranslateWithCamera.js +16 -14
  307. package/dist/eve/child/modifiers/EveChildModifierTranslateWithCamera.js.map +1 -0
  308. package/dist/{generated/eve → eve}/child/procedural/EveChildProceduralContainer.js +11 -4
  309. package/dist/eve/child/procedural/EveChildProceduralContainer.js.map +1 -0
  310. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodAttributeMap.js +12 -12
  311. package/dist/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js.map +1 -0
  312. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js +6 -6
  313. package/dist/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js.map +1 -0
  314. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodCycling.js +12 -12
  315. package/dist/eve/child/procedural/selection/EveProceduralMethodCycling.js.map +1 -0
  316. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodCyclingParameter.js +8 -8
  317. package/dist/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js.map +1 -0
  318. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodRandom.js +17 -17
  319. package/dist/eve/child/procedural/selection/EveProceduralMethodRandom.js.map +1 -0
  320. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodRandomParameter.js +7 -7
  321. package/dist/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js.map +1 -0
  322. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodThresholdParameter.js +7 -7
  323. package/dist/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js.map +1 -0
  324. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodThresholds.js +17 -17
  325. package/dist/eve/child/procedural/selection/EveProceduralMethodThresholds.js.map +1 -0
  326. package/dist/{generated/eve → eve}/distribution/EveBaseDistributionMethod.js +132 -3
  327. package/dist/eve/distribution/EveBaseDistributionMethod.js.map +1 -0
  328. package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js +12 -1
  329. package/dist/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js.map +1 -0
  330. package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js +9 -1
  331. package/dist/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js.map +1 -0
  332. package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js +12 -1
  333. package/dist/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js.map +1 -0
  334. package/dist/eve/distribution/attributeModifiers/enums.js.map +1 -0
  335. package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorLocators.js +16 -3
  336. package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js.map +1 -0
  337. package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js +31 -3
  338. package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js.map +1 -0
  339. package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorVolume.js +34 -3
  340. package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js.map +1 -0
  341. package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js +14 -2
  342. package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js.map +1 -0
  343. package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js +13 -2
  344. package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js.map +1 -0
  345. package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js +13 -2
  346. package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js.map +1 -0
  347. package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js +13 -2
  348. package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js.map +1 -0
  349. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerBurst.js +19 -1
  350. package/dist/eve/distribution/spawners/EveDistributionSpawnerBurst.js.map +1 -0
  351. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerControllerTrigger.js +25 -1
  352. package/dist/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js.map +1 -0
  353. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerInterval.js +17 -1
  354. package/dist/eve/distribution/spawners/EveDistributionSpawnerInterval.js.map +1 -0
  355. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerPlane.js +20 -1
  356. package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js.map +1 -0
  357. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerSnake.js +20 -1
  358. package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js.map +1 -0
  359. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerSphere.js +20 -1
  360. package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js.map +1 -0
  361. package/dist/{generated/eve/effect → eve/effect/lensflare}/EveLensflare.js +44 -2
  362. package/dist/eve/effect/lensflare/EveLensflare.js.map +1 -0
  363. package/dist/eve/effect/multiEffect/EveMultiEffect.js +302 -0
  364. package/dist/eve/effect/multiEffect/EveMultiEffect.js.map +1 -0
  365. package/dist/eve/effect/multiEffect/EveMultiEffectParameter.js +92 -0
  366. package/dist/eve/effect/multiEffect/EveMultiEffectParameter.js.map +1 -0
  367. package/dist/eve/index.js +117 -47
  368. package/dist/eve/index.js.map +1 -1
  369. package/dist/eve/lights/CjsLightData.js +7 -0
  370. package/dist/eve/lights/CjsLightData.js.map +1 -1
  371. package/dist/eve/lights/Tr2Light.js +41 -0
  372. package/dist/eve/lights/Tr2Light.js.map +1 -1
  373. package/dist/eve/lights/Tr2PointLight.js +5 -0
  374. package/dist/eve/lights/Tr2PointLight.js.map +1 -1
  375. package/dist/eve/lights/Tr2SpotLight.js +5 -0
  376. package/dist/eve/lights/Tr2SpotLight.js.map +1 -1
  377. package/dist/eve/lights/Tr2TexturedPointLight.js +10 -0
  378. package/dist/eve/lights/Tr2TexturedPointLight.js.map +1 -1
  379. package/dist/eve/lights/lightConversion.js +29 -27
  380. package/dist/eve/lights/lightConversion.js.map +1 -1
  381. package/dist/eve/{EveLocator2.js → locator/EveLocator2.js} +20 -1
  382. package/dist/eve/locator/EveLocator2.js.map +1 -0
  383. package/dist/eve/{EveLocatorSets.js → locator/EveLocatorSets.js} +43 -1
  384. package/dist/eve/locator/EveLocatorSets.js.map +1 -0
  385. package/dist/eve/{Locator.js → locator/Locator.js} +6 -1
  386. package/dist/eve/locator/Locator.js.map +1 -0
  387. package/dist/eve/{LocatorData.js → locator/LocatorData.js} +3 -1
  388. package/dist/eve/locator/LocatorData.js.map +1 -0
  389. package/dist/eve/overlays/EveMeshOverlayEffect.js +208 -0
  390. package/dist/eve/overlays/EveMeshOverlayEffect.js.map +1 -0
  391. package/dist/eve/{EveParticleDirectForce.js → particles/force/EveParticleDirectForce.js} +5 -5
  392. package/dist/eve/particles/force/EveParticleDirectForce.js.map +1 -0
  393. package/dist/eve/{EveParticleDragForce.js → particles/force/EveParticleDragForce.js} +5 -5
  394. package/dist/eve/particles/force/EveParticleDragForce.js.map +1 -0
  395. package/dist/eve/{EveParticleSpring.js → particles/force/EveParticleSpring.js} +6 -6
  396. package/dist/eve/particles/force/EveParticleSpring.js.map +1 -0
  397. package/dist/{generated/eve/scene → eve/particles/static}/EveSceneStaticParticles.js +70 -36
  398. package/dist/eve/particles/static/EveSceneStaticParticles.js.map +1 -0
  399. package/dist/eve/perObjectData/childPerObjectRecords.js +90 -0
  400. package/dist/eve/perObjectData/childPerObjectRecords.js.map +1 -0
  401. package/dist/eve/renderable/stretch/CjsStretchRuntime.js +76 -0
  402. package/dist/eve/renderable/stretch/CjsStretchRuntime.js.map +1 -1
  403. package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js +85 -1
  404. package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js.map +1 -1
  405. package/dist/eve/renderable/stretch/EveLocalPositionCurve.js +91 -0
  406. package/dist/eve/renderable/stretch/EveLocalPositionCurve.js.map +1 -1
  407. package/dist/eve/renderable/stretch/EveRemotePositionCurve.js +36 -0
  408. package/dist/eve/renderable/stretch/EveRemotePositionCurve.js.map +1 -1
  409. package/dist/eve/renderable/stretch/EveStretch.js +158 -9
  410. package/dist/eve/renderable/stretch/EveStretch.js.map +1 -1
  411. package/dist/eve/renderable/stretch/EveStretch2.js +121 -12
  412. package/dist/eve/renderable/stretch/EveStretch2.js.map +1 -1
  413. package/dist/eve/renderable/stretch/EveStretch3.js +261 -8
  414. package/dist/eve/renderable/stretch/EveStretch3.js.map +1 -1
  415. package/dist/eve/scene/EveSpaceScene.js +56 -6
  416. package/dist/eve/scene/EveSpaceScene.js.map +1 -1
  417. package/dist/{generated/eve/scene → eve/scene/components}/EveComponentCollection.js +24 -1
  418. package/dist/eve/scene/components/EveComponentCollection.js.map +1 -0
  419. package/dist/{generated/eve/scene → eve/scene/components}/EveComponentRegistry.js +74 -2
  420. package/dist/eve/scene/components/EveComponentRegistry.js.map +1 -0
  421. package/dist/eve/scene/picking/EvePickingContext.js +61 -0
  422. package/dist/eve/scene/picking/EvePickingContext.js.map +1 -0
  423. package/dist/eve/scene/shadows/TriShadowFrustum.js +70 -0
  424. package/dist/eve/scene/shadows/TriShadowFrustum.js.map +1 -0
  425. package/dist/eve/scene/shadows/TriShadowOrthoFrustum.js +129 -0
  426. package/dist/eve/scene/shadows/TriShadowOrthoFrustum.js.map +1 -0
  427. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js +19 -19
  428. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js.map +1 -0
  429. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js +19 -19
  430. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js.map +1 -0
  431. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js +12 -12
  432. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js.map +1 -0
  433. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js +12 -12
  434. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js.map +1 -0
  435. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js +30 -30
  436. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js.map +1 -0
  437. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js +9 -9
  438. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js.map +1 -0
  439. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js +23 -23
  440. package/dist/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js.map +1 -0
  441. package/dist/eve/smartLights/attributeModifiers/enums.js.map +1 -0
  442. package/dist/{generated/eve → eve}/socket/EveSocketParameterBindingBase.js +26 -1
  443. package/dist/eve/socket/EveSocketParameterBindingBase.js.map +1 -0
  444. package/dist/{generated/eve → eve}/socket/EveSocketParameterBool.js +17 -1
  445. package/dist/eve/socket/EveSocketParameterBool.js.map +1 -0
  446. package/dist/{generated/eve → eve}/socket/EveSocketParameterColor.js +21 -5
  447. package/dist/eve/socket/EveSocketParameterColor.js.map +1 -0
  448. package/dist/eve/socket/EveSocketParameterFilePath.js +5 -5
  449. package/dist/eve/socket/EveSocketParameterFilePath.js.map +1 -1
  450. package/dist/{generated/eve → eve}/socket/EveSocketParameterFloat.js +17 -1
  451. package/dist/eve/socket/EveSocketParameterFloat.js.map +1 -0
  452. package/dist/{generated/eve → eve}/socket/EveSocketParameterInt.js +17 -1
  453. package/dist/eve/socket/EveSocketParameterInt.js.map +1 -0
  454. package/dist/{generated/eve → eve}/socket/EveSocketParameterString.js +42 -2
  455. package/dist/eve/socket/EveSocketParameterString.js.map +1 -0
  456. package/dist/{generated/eve → eve}/socket/EveSocketParameterVector2.js +17 -1
  457. package/dist/eve/socket/EveSocketParameterVector2.js.map +1 -0
  458. package/dist/{generated/eve → eve}/socket/EveSocketParameterVector3.js +17 -1
  459. package/dist/eve/socket/EveSocketParameterVector3.js.map +1 -0
  460. package/dist/{generated/eve → eve}/socket/EveSocketParameterVector4.js +17 -1
  461. package/dist/eve/socket/EveSocketParameterVector4.js.map +1 -0
  462. package/dist/eve/spaceObject/EveEffectRoot2.js +58 -31
  463. package/dist/eve/spaceObject/EveEffectRoot2.js.map +1 -1
  464. package/dist/eve/spaceObject/EveMissile.js +49 -1
  465. package/dist/eve/spaceObject/EveMissile.js.map +1 -1
  466. package/dist/eve/spaceObject/EveMissileWarhead.js +100 -1
  467. package/dist/eve/spaceObject/EveMissileWarhead.js.map +1 -1
  468. package/dist/eve/spaceObject/EveMobile.js +104 -0
  469. package/dist/eve/spaceObject/EveMobile.js.map +1 -1
  470. package/dist/eve/spaceObject/EveRootTransform.js +17 -0
  471. package/dist/eve/spaceObject/EveRootTransform.js.map +1 -1
  472. package/dist/{generated/eve → eve}/spaceObject/EveShip2.js +32 -12
  473. package/dist/eve/spaceObject/EveShip2.js.map +1 -0
  474. package/dist/eve/spaceObject/EveSpaceObject2.js +726 -199
  475. package/dist/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  476. package/dist/eve/spaceObject/EveTransform.js +100 -4
  477. package/dist/eve/spaceObject/EveTransform.js.map +1 -1
  478. package/dist/eve/spaceObject/IEveSpaceObject2ParentData.js +70 -0
  479. package/dist/eve/spaceObject/IEveSpaceObject2ParentData.js.map +1 -0
  480. package/dist/eve/spaceObject/createEveSpaceObjectMainPerObjectValues.js +19 -16
  481. package/dist/eve/spaceObject/createEveSpaceObjectMainPerObjectValues.js.map +1 -1
  482. package/dist/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js +92 -0
  483. package/dist/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js.map +1 -0
  484. package/dist/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js +158 -0
  485. package/dist/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js.map +1 -0
  486. package/dist/{generated/eve/spaceObject → eve/spaceObject/planet}/EvePlanet.js +2 -2
  487. package/dist/eve/spaceObject/planet/EvePlanet.js.map +1 -0
  488. package/dist/{generated/eve → eve}/spaceObject/swarm/EveSwarmRenderable.js +102 -64
  489. package/dist/eve/spaceObject/swarm/EveSwarmRenderable.js.map +1 -0
  490. package/dist/eve/ui/EveEllipseDefinition.js +15 -0
  491. package/dist/eve/ui/EveEllipseDefinition.js.map +1 -1
  492. package/dist/eve/ui/EveEllipseSet.js +42 -0
  493. package/dist/eve/ui/EveEllipseSet.js.map +1 -1
  494. package/dist/{generated/eve → eve}/ui/EveSpherePin.js +76 -11
  495. package/dist/eve/ui/EveSpherePin.js.map +1 -0
  496. package/dist/eve/ui/EveSprite2dBracket.js +5 -0
  497. package/dist/eve/ui/EveSprite2dBracket.js.map +1 -1
  498. package/dist/eve/ui/EveUiObject.js +11 -0
  499. package/dist/eve/ui/EveUiObject.js.map +1 -1
  500. package/dist/{generated/eve/ui → eve/ui/lines}/EveLineSet.js +67 -6
  501. package/dist/eve/ui/lines/EveLineSet.js.map +1 -0
  502. package/dist/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js +78 -0
  503. package/dist/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js.map +1 -0
  504. package/dist/{generated/eve/ui → eve/ui/tacticalOverlay}/EveTacticalTrails.js +22 -2
  505. package/dist/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -0
  506. package/dist/eve/virtualCamera/EveVirtualCamera.js +152 -0
  507. package/dist/eve/virtualCamera/EveVirtualCamera.js.map +1 -1
  508. package/dist/eve/virtualCamera/EveVirtualCameraSystem.js +65 -0
  509. package/dist/eve/virtualCamera/EveVirtualCameraSystem.js.map +1 -1
  510. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js +17 -0
  511. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js.map +1 -1
  512. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js +19 -0
  513. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js.map +1 -1
  514. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js +17 -0
  515. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js.map +1 -1
  516. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js +29 -0
  517. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js.map +1 -1
  518. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js +15 -0
  519. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js.map +1 -1
  520. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js +38 -0
  521. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js.map +1 -1
  522. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js +17 -0
  523. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js.map +1 -1
  524. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js +18 -0
  525. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js.map +1 -1
  526. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js +20 -0
  527. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js.map +1 -1
  528. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js +20 -0
  529. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js.map +1 -1
  530. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveRight.js +11 -0
  531. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveRight.js.map +1 -1
  532. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveUp.js +14 -0
  533. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveUp.js.map +1 -1
  534. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js +16 -0
  535. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js.map +1 -1
  536. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js +20 -0
  537. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js.map +1 -1
  538. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js +36 -0
  539. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js.map +1 -1
  540. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionBase.js +36 -0
  541. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionBase.js.map +1 -1
  542. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionCut.js +11 -0
  543. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionCut.js.map +1 -1
  544. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js +37 -0
  545. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js.map +1 -1
  546. package/dist/eve/volume/EveBoxVolume.js +59 -0
  547. package/dist/eve/volume/EveBoxVolume.js.map +1 -1
  548. package/dist/eve/volume/EveEllipsoidVolume.js +54 -0
  549. package/dist/eve/volume/EveEllipsoidVolume.js.map +1 -1
  550. package/dist/eve/volume/EveSphereVolume.js +34 -0
  551. package/dist/eve/volume/EveSphereVolume.js.map +1 -1
  552. package/dist/generated/eve/child/EveChildCloud2.js +138 -138
  553. package/dist/generated/eve/child/EveChildCloud2.js.map +1 -1
  554. package/dist/generated/eve/child/EveChildParticleSystem.js +10 -4
  555. package/dist/generated/eve/child/EveChildParticleSystem.js.map +1 -1
  556. package/dist/generated/eve/child/EveChildSocket.js +1 -1
  557. package/dist/generated/eve/child/EveChildSocket.js.map +1 -1
  558. package/dist/generated/eve/child/behaviors/BackAndForth.js +14 -17
  559. package/dist/generated/eve/child/behaviors/BackAndForth.js.map +1 -1
  560. package/dist/generated/eve/child/behaviors/BehaviorGroup.js +2 -2
  561. package/dist/generated/eve/child/behaviors/BehaviorGroup.js.map +1 -1
  562. package/dist/generated/eve/child/behaviors/EveKDdroneManagementTree.js +26 -29
  563. package/dist/generated/eve/child/behaviors/EveKDdroneManagementTree.js.map +1 -1
  564. package/dist/generated/eve/child/behaviors/FollowASpline.js +13 -17
  565. package/dist/generated/eve/child/behaviors/FollowASpline.js.map +1 -1
  566. package/dist/generated/eve/child/behaviors/PlayFX.js +14 -14
  567. package/dist/generated/eve/child/behaviors/PlayFX.js.map +1 -1
  568. package/dist/generated/eve/child/behaviors/SeekTarget.js +1 -1
  569. package/dist/generated/eve/child/behaviors/SeekTarget.js.map +1 -1
  570. package/dist/generated/eve/child/behaviors/index.js +0 -6
  571. package/dist/generated/eve/child/behaviors/index.js.map +1 -1
  572. package/dist/generated/eve/child/index.js +0 -23
  573. package/dist/generated/eve/child/index.js.map +1 -1
  574. package/dist/generated/eve/effect/index.js +0 -3
  575. package/dist/generated/eve/effect/index.js.map +1 -1
  576. package/dist/generated/eve/index.js +0 -88
  577. package/dist/generated/eve/index.js.map +1 -1
  578. package/dist/generated/eve/scene/index.js +0 -6
  579. package/dist/generated/eve/scene/index.js.map +1 -1
  580. package/dist/generated/eve/smartLights/EveSmartLightColorShareGroup.js +20 -20
  581. package/dist/generated/eve/smartLights/EveSmartLightColorShareGroup.js.map +1 -1
  582. package/dist/generated/eve/smartLights/EveSmartLightPointLight.js +1 -1
  583. package/dist/generated/eve/smartLights/EveSmartLightPointLight.js.map +1 -1
  584. package/dist/generated/eve/smartLights/index.js +0 -8
  585. package/dist/generated/eve/smartLights/index.js.map +1 -1
  586. package/dist/generated/eve/spaceObject/index.js +0 -4
  587. package/dist/generated/eve/spaceObject/index.js.map +1 -1
  588. package/dist/generated/eve/spaceObject/swarm/EveSwarm.js +11 -11
  589. package/dist/generated/eve/spaceObject/swarm/EveSwarm.js.map +1 -1
  590. package/dist/generated/eve/spaceObject/swarm/index.js +0 -1
  591. package/dist/generated/eve/spaceObject/swarm/index.js.map +1 -1
  592. package/dist/generated/eve/ui/index.js +0 -4
  593. package/dist/generated/eve/ui/index.js.map +1 -1
  594. package/dist/generated/index.js +0 -93
  595. package/dist/generated/index.js.map +1 -1
  596. package/dist/generated/trinityCore/index.js +0 -5
  597. package/dist/generated/trinityCore/index.js.map +1 -1
  598. package/dist/index.js +130 -155
  599. package/dist/index.js.map +1 -1
  600. package/dist/particle/Tr2GpuSharedEmitter.js +39 -0
  601. package/dist/particle/Tr2GpuSharedEmitter.js.map +1 -1
  602. package/dist/particle/Tr2GpuUniqueEmitter.js +5 -0
  603. package/dist/particle/Tr2GpuUniqueEmitter.js.map +1 -1
  604. package/dist/particle/Tr2ParticleAttractorForce.js +10 -0
  605. package/dist/particle/Tr2ParticleAttractorForce.js.map +1 -1
  606. package/dist/particle/Tr2ParticleDirectForce.js +7 -0
  607. package/dist/particle/Tr2ParticleDirectForce.js.map +1 -1
  608. package/dist/particle/Tr2ParticleDragForce.js +7 -0
  609. package/dist/particle/Tr2ParticleDragForce.js.map +1 -1
  610. package/dist/particle/Tr2ParticleElementDeclaration.js +5 -0
  611. package/dist/particle/Tr2ParticleElementDeclaration.js.map +1 -1
  612. package/dist/particle/Tr2ParticleFluidDragForce.js +10 -0
  613. package/dist/particle/Tr2ParticleFluidDragForce.js.map +1 -1
  614. package/dist/particle/Tr2ParticleSpring.js +10 -0
  615. package/dist/particle/Tr2ParticleSpring.js.map +1 -1
  616. package/dist/particle/Tr2ParticleVortexForce.js +10 -0
  617. package/dist/particle/Tr2ParticleVortexForce.js.map +1 -1
  618. package/dist/particle/particleElementBinding.js +12 -0
  619. package/dist/particle/particleElementBinding.js.map +1 -1
  620. package/dist/postProcess/Tr2PPBloomEffect.js +6 -0
  621. package/dist/postProcess/Tr2PPBloomEffect.js.map +1 -1
  622. package/dist/postProcess/Tr2PPDepthOfFieldEffect.js +16 -0
  623. package/dist/postProcess/Tr2PPDepthOfFieldEffect.js.map +1 -1
  624. package/dist/postProcess/Tr2PPGenericEffect.js +7 -0
  625. package/dist/postProcess/Tr2PPGenericEffect.js.map +1 -1
  626. package/dist/postProcess/Tr2PPTaaEffect.js +10 -0
  627. package/dist/postProcess/Tr2PPTaaEffect.js.map +1 -1
  628. package/dist/postProcess/Tr2PPTonemappingEffect.js +5 -0
  629. package/dist/postProcess/Tr2PPTonemappingEffect.js.map +1 -1
  630. package/dist/postProcess/Tr2PostProcess.js +5 -0
  631. package/dist/postProcess/Tr2PostProcess.js.map +1 -1
  632. package/dist/postProcess/Tr2PostProcess2.js +147 -0
  633. package/dist/postProcess/Tr2PostProcess2.js.map +1 -1
  634. package/dist/postProcess/Tr2PostProcessAttributes.js +89 -0
  635. package/dist/postProcess/Tr2PostProcessAttributes.js.map +1 -1
  636. package/dist/renderJob/Tr2RenderJobs.js +34 -0
  637. package/dist/renderJob/Tr2RenderJobs.js.map +1 -1
  638. package/dist/renderJob/TriRenderJob.js +59 -0
  639. package/dist/renderJob/TriRenderJob.js.map +1 -1
  640. package/dist/renderJob/TriRenderStep.js +20 -0
  641. package/dist/renderJob/TriRenderStep.js.map +1 -1
  642. package/dist/renderJob/TriStepClear.js +18 -0
  643. package/dist/renderJob/TriStepClear.js.map +1 -1
  644. package/dist/renderJob/TriStepCopyRenderTarget.js +51 -0
  645. package/dist/renderJob/TriStepCopyRenderTarget.js.map +1 -1
  646. package/dist/renderJob/TriStepEnableWireframeMode.js +9 -0
  647. package/dist/renderJob/TriStepEnableWireframeMode.js.map +1 -1
  648. package/dist/renderJob/TriStepGenerateMipMaps.js +9 -0
  649. package/dist/renderJob/TriStepGenerateMipMaps.js.map +1 -1
  650. package/dist/renderJob/TriStepPopDepthStencil.js +6 -0
  651. package/dist/renderJob/TriStepPopDepthStencil.js.map +1 -1
  652. package/dist/renderJob/TriStepPopProjection.js +6 -0
  653. package/dist/renderJob/TriStepPopProjection.js.map +1 -1
  654. package/dist/renderJob/TriStepPopRenderTarget.js +12 -0
  655. package/dist/renderJob/TriStepPopRenderTarget.js.map +1 -1
  656. package/dist/renderJob/TriStepPopViewTransform.js +6 -0
  657. package/dist/renderJob/TriStepPopViewTransform.js.map +1 -1
  658. package/dist/renderJob/TriStepPopViewport.js +6 -0
  659. package/dist/renderJob/TriStepPopViewport.js.map +1 -1
  660. package/dist/renderJob/TriStepPresentSwapChain.js +12 -0
  661. package/dist/renderJob/TriStepPresentSwapChain.js.map +1 -1
  662. package/dist/renderJob/TriStepPushDepthStencil.js +17 -0
  663. package/dist/renderJob/TriStepPushDepthStencil.js.map +1 -1
  664. package/dist/renderJob/TriStepPushProjection.js +6 -0
  665. package/dist/renderJob/TriStepPushProjection.js.map +1 -1
  666. package/dist/renderJob/TriStepPushRenderTarget.js +9 -0
  667. package/dist/renderJob/TriStepPushRenderTarget.js.map +1 -1
  668. package/dist/renderJob/TriStepPushViewTransform.js +6 -0
  669. package/dist/renderJob/TriStepPushViewTransform.js.map +1 -1
  670. package/dist/renderJob/TriStepPushViewport.js +6 -0
  671. package/dist/renderJob/TriStepPushViewport.js.map +1 -1
  672. package/dist/renderJob/TriStepRemoteSync.js +17 -0
  673. package/dist/renderJob/TriStepRemoteSync.js.map +1 -1
  674. package/dist/renderJob/TriStepResolve.js +13 -0
  675. package/dist/renderJob/TriStepResolve.js.map +1 -1
  676. package/dist/renderJob/TriStepRunJob.js +12 -0
  677. package/dist/renderJob/TriStepRunJob.js.map +1 -1
  678. package/dist/renderJob/TriStepSetDepthStencil.js +12 -0
  679. package/dist/renderJob/TriStepSetDepthStencil.js.map +1 -1
  680. package/dist/renderJob/TriStepSetProjection.js +14 -0
  681. package/dist/renderJob/TriStepSetProjection.js.map +1 -1
  682. package/dist/renderJob/TriStepSetRenderState.js +20 -0
  683. package/dist/renderJob/TriStepSetRenderState.js.map +1 -1
  684. package/dist/renderJob/TriStepSetRenderTarget.js +12 -0
  685. package/dist/renderJob/TriStepSetRenderTarget.js.map +1 -1
  686. package/dist/renderJob/TriStepSetStdRndStates.js +18 -0
  687. package/dist/renderJob/TriStepSetStdRndStates.js.map +1 -1
  688. package/dist/renderJob/TriStepSetView.js +29 -2
  689. package/dist/renderJob/TriStepSetView.js.map +1 -1
  690. package/dist/renderJob/TriStepSetViewport.js +17 -0
  691. package/dist/renderJob/TriStepSetViewport.js.map +1 -1
  692. package/dist/renderJob/TriStepSetVisualizationMode.js +19 -0
  693. package/dist/renderJob/TriStepSetVisualizationMode.js.map +1 -1
  694. package/dist/shader/Tr2Effect.js +217 -2
  695. package/dist/shader/Tr2Effect.js.map +1 -1
  696. package/dist/shader/Tr2Material.js +41 -0
  697. package/dist/shader/Tr2Material.js.map +1 -1
  698. package/dist/shader/index.js +1 -11
  699. package/dist/shader/index.js.map +1 -1
  700. package/dist/shader/material/Tr2EffectLibraryParameters.js +7 -0
  701. package/dist/shader/material/Tr2EffectLibraryParameters.js.map +1 -1
  702. package/dist/shader/material/Tr2EffectPassParameters.js +23 -0
  703. package/dist/shader/material/Tr2EffectPassParameters.js.map +1 -1
  704. package/dist/shader/material/Tr2MaterialStageInput.js +15 -0
  705. package/dist/shader/material/Tr2MaterialStageInput.js.map +1 -1
  706. package/dist/shader/parameter/CjsParameter.js +94 -0
  707. package/dist/shader/parameter/CjsParameter.js.map +1 -1
  708. package/dist/shader/parameter/CjsVectorParameter.js +20 -0
  709. package/dist/shader/parameter/CjsVectorParameter.js.map +1 -1
  710. package/dist/shader/parameter/Tr2FloatParameter.js +53 -0
  711. package/dist/shader/parameter/Tr2FloatParameter.js.map +1 -1
  712. package/dist/shader/parameter/Tr2GeometryBufferParameter.js +39 -0
  713. package/dist/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  714. package/dist/shader/parameter/Tr2Matrix4Parameter.js +54 -0
  715. package/dist/shader/parameter/Tr2Matrix4Parameter.js.map +1 -1
  716. package/dist/shader/parameter/Tr2RuntimeTextureParameter.js +54 -0
  717. package/dist/shader/parameter/Tr2RuntimeTextureParameter.js.map +1 -1
  718. package/dist/shader/parameter/Tr2TextureAnimationParameter.js +35 -0
  719. package/dist/shader/parameter/Tr2TextureAnimationParameter.js.map +1 -1
  720. package/dist/shader/parameter/Tr2Vector2Parameter.js +86 -0
  721. package/dist/shader/parameter/Tr2Vector2Parameter.js.map +1 -1
  722. package/dist/shader/parameter/Tr2Vector3Parameter.js +95 -0
  723. package/dist/shader/parameter/Tr2Vector3Parameter.js.map +1 -1
  724. package/dist/shader/parameter/Tr2Vector4Parameter.js +105 -0
  725. package/dist/shader/parameter/Tr2Vector4Parameter.js.map +1 -1
  726. package/dist/shader/parameter/TriFloatArrayParameter.js +26 -0
  727. package/dist/shader/parameter/TriFloatArrayParameter.js.map +1 -1
  728. package/dist/shader/parameter/TriTextureParameter.js +84 -0
  729. package/dist/shader/parameter/TriTextureParameter.js.map +1 -1
  730. package/dist/shader/parameter/TriTransformParameter.js +2 -0
  731. package/dist/shader/parameter/TriTransformParameter.js.map +1 -1
  732. package/dist/shader/parameter/TriVariableParameter.js +38 -0
  733. package/dist/shader/parameter/TriVariableParameter.js.map +1 -1
  734. package/dist/shader/parameter/TriVector4.js +2 -0
  735. package/dist/shader/parameter/TriVector4.js.map +1 -1
  736. package/dist/shader/reflection/Tr2ShaderOption.js +6 -1
  737. package/dist/shader/reflection/Tr2ShaderOption.js.map +1 -1
  738. package/dist/shader/support/CjsVariableStore.js +140 -0
  739. package/dist/shader/support/CjsVariableStore.js.map +1 -1
  740. package/dist/shader/support/Tr2ShaderBuffer.js +15 -0
  741. package/dist/shader/support/Tr2ShaderBuffer.js.map +1 -1
  742. package/dist/trinityCore/CjsBatchManager.js +62 -2
  743. package/dist/trinityCore/CjsBatchManager.js.map +1 -1
  744. package/dist/trinityCore/GrannyBoneOffset.js +51 -0
  745. package/dist/trinityCore/GrannyBoneOffset.js.map +1 -1
  746. package/dist/trinityCore/ITriRenderBatchAccumulator.js +65 -3
  747. package/dist/trinityCore/ITriRenderBatchAccumulator.js.map +1 -1
  748. package/dist/trinityCore/Tr2DirectInstanceData.js +19 -0
  749. package/dist/trinityCore/Tr2DirectInstanceData.js.map +1 -1
  750. package/dist/trinityCore/Tr2ExpressionTermInfo.js +21 -0
  751. package/dist/trinityCore/Tr2ExpressionTermInfo.js.map +1 -1
  752. package/dist/trinityCore/Tr2GpuBuffer.js +5 -0
  753. package/dist/trinityCore/Tr2GpuBuffer.js.map +1 -1
  754. package/dist/{generated/trinityCore → trinityCore}/Tr2GrannyAnimation.js +137 -8
  755. package/dist/trinityCore/Tr2GrannyAnimation.js.map +1 -0
  756. package/dist/trinityCore/Tr2InstancedMesh.js +52 -0
  757. package/dist/trinityCore/Tr2InstancedMesh.js.map +1 -1
  758. package/dist/trinityCore/Tr2MaterialParameterStore.js +5 -0
  759. package/dist/trinityCore/Tr2MaterialParameterStore.js.map +1 -1
  760. package/dist/trinityCore/Tr2Mesh.js +37 -0
  761. package/dist/trinityCore/Tr2Mesh.js.map +1 -1
  762. package/dist/trinityCore/Tr2MeshArea.js +78 -0
  763. package/dist/trinityCore/Tr2MeshArea.js.map +1 -1
  764. package/dist/trinityCore/Tr2MeshBase.js +98 -2
  765. package/dist/trinityCore/Tr2MeshBase.js.map +1 -1
  766. package/dist/trinityCore/Tr2PerObjectData.js +10 -0
  767. package/dist/trinityCore/Tr2PerObjectData.js.map +1 -1
  768. package/dist/trinityCore/Tr2PickType.js +33 -0
  769. package/dist/trinityCore/Tr2PickType.js.map +1 -0
  770. package/dist/trinityCore/Tr2RenderBatch.js +137 -0
  771. package/dist/trinityCore/Tr2RenderBatch.js.map +1 -1
  772. package/dist/trinityCore/Tr2RenderContext.js +271 -0
  773. package/dist/trinityCore/Tr2RenderContext.js.map +1 -1
  774. package/dist/trinityCore/Tr2RuntimeInstanceData.js +179 -0
  775. package/dist/trinityCore/Tr2RuntimeInstanceData.js.map +1 -1
  776. package/dist/trinityCore/Tr2ShLightingManager.js +397 -0
  777. package/dist/trinityCore/Tr2ShLightingManager.js.map +1 -0
  778. package/dist/trinityCore/Tr2VariableStore.js +26 -0
  779. package/dist/trinityCore/Tr2VariableStore.js.map +1 -1
  780. package/dist/trinityCore/Tr2VisibilityResults.js +5 -0
  781. package/dist/trinityCore/Tr2VisibilityResults.js.map +1 -1
  782. package/dist/trinityCore/TriDevice.js +5 -0
  783. package/dist/trinityCore/TriDevice.js.map +1 -1
  784. package/dist/trinityCore/TriFrustum.js +21 -14
  785. package/dist/trinityCore/TriFrustum.js.map +1 -1
  786. package/dist/trinityCore/TriObserverLocal.js +43 -0
  787. package/dist/trinityCore/TriObserverLocal.js.map +1 -1
  788. package/dist/trinityCore/TriProjection.js +86 -32
  789. package/dist/trinityCore/TriProjection.js.map +1 -1
  790. package/dist/trinityCore/TriRect.js +12 -0
  791. package/dist/trinityCore/TriRect.js.map +1 -1
  792. package/dist/trinityCore/TriRenderBatchAccumulator.js +46 -0
  793. package/dist/trinityCore/TriRenderBatchAccumulator.js.map +1 -1
  794. package/dist/trinityCore/TriRenderBatchMap.js +39 -2
  795. package/dist/trinityCore/TriRenderBatchMap.js.map +1 -1
  796. package/dist/trinityCore/TriSettings.js +38 -0
  797. package/dist/trinityCore/TriSettings.js.map +1 -1
  798. package/dist/trinityCore/TriVariable.js +30 -0
  799. package/dist/trinityCore/TriVariable.js.map +1 -1
  800. package/dist/trinityCore/TriView.js +16 -1
  801. package/dist/trinityCore/TriView.js.map +1 -1
  802. package/dist/trinityCore/TriViewport.js +12 -0
  803. package/dist/trinityCore/TriViewport.js.map +1 -1
  804. package/dist/trinityCore/{Tr2BindingVector3.js → binding/Tr2BindingVector3.js} +1 -1
  805. package/dist/trinityCore/binding/Tr2BindingVector3.js.map +1 -0
  806. package/dist/trinityCore/binding/Tr2DynamicBinding.js +266 -0
  807. package/dist/trinityCore/binding/Tr2DynamicBinding.js.map +1 -0
  808. package/dist/trinityCore/binding/Tr2ExternalParameter.js +392 -0
  809. package/dist/trinityCore/binding/Tr2ExternalParameter.js.map +1 -0
  810. package/dist/trinityCore/{Tr2PyValueBinding.js → binding/Tr2PyValueBinding.js} +30 -6
  811. package/dist/trinityCore/binding/Tr2PyValueBinding.js.map +1 -0
  812. package/dist/trinityCore/binding/TriValueBinding.js +648 -0
  813. package/dist/trinityCore/binding/TriValueBinding.js.map +1 -0
  814. package/dist/trinityCore/index.js +11 -4
  815. package/dist/trinityCore/index.js.map +1 -1
  816. package/dist/trinityCore/pickRay.js +84 -0
  817. package/dist/trinityCore/pickRay.js.map +1 -0
  818. package/dist/trinityCore/rawData/CjsPerObjectLayouts.js +931 -0
  819. package/dist/trinityCore/rawData/CjsPerObjectLayouts.js.map +1 -0
  820. package/dist/trinityCore/rawData/RawData.js +294 -38
  821. package/dist/trinityCore/rawData/RawData.js.map +1 -1
  822. package/dist/trinityCore/rawData/TriPoolAllocator.js +357 -0
  823. package/dist/trinityCore/rawData/TriPoolAllocator.js.map +1 -0
  824. package/dist/utilities/Range.js +53 -0
  825. package/dist/utilities/Range.js.map +1 -1
  826. package/docs/README.md +88 -0
  827. package/docs/architecture.md +162 -0
  828. package/docs/concepts/eve-runtime-behavior.md +86 -0
  829. package/docs/concepts/generated-class-lifecycle.md +116 -0
  830. package/docs/reference/api.md +76 -0
  831. package/docs/reference/classes/eve-runtime.md +106 -0
  832. package/docs/reference/classes/trinity-core.md +26 -0
  833. package/docs/reference/implementation-status.md +104 -0
  834. package/docs/reference/main-semantic-extraction.md +104 -0
  835. package/package.json +33 -24
  836. package/dist/eve/DecalVSPerObjectData.js +0 -34
  837. package/dist/eve/DecalVSPerObjectData.js.map +0 -1
  838. package/dist/eve/EveBannerItem.js +0 -43
  839. package/dist/eve/EveBannerItem.js.map +0 -1
  840. package/dist/eve/EveBannerLight.js.map +0 -1
  841. package/dist/eve/EveBannerSet.js +0 -190
  842. package/dist/eve/EveBannerSet.js.map +0 -1
  843. package/dist/eve/EveBasicPerObjectData.js +0 -31
  844. package/dist/eve/EveBasicPerObjectData.js.map +0 -1
  845. package/dist/eve/EveBoosterSet2.js.map +0 -1
  846. package/dist/eve/EveBoosterSet2Renderable.js.map +0 -1
  847. package/dist/eve/EveChildSpherePinPerObjectData.js +0 -37
  848. package/dist/eve/EveChildSpherePinPerObjectData.js.map +0 -1
  849. package/dist/eve/EveHazeSet.js.map +0 -1
  850. package/dist/eve/EveHazeSetLight.js.map +0 -1
  851. package/dist/eve/EveLocator2.js.map +0 -1
  852. package/dist/eve/EveLocatorSets.js.map +0 -1
  853. package/dist/eve/EveParticleDirectForce.js.map +0 -1
  854. package/dist/eve/EveParticleDragForce.js.map +0 -1
  855. package/dist/eve/EveParticleSpring.js.map +0 -1
  856. package/dist/eve/EvePerObjectPSData.js +0 -29
  857. package/dist/eve/EvePerObjectPSData.js.map +0 -1
  858. package/dist/eve/EvePerObjectVSData.js +0 -29
  859. package/dist/eve/EvePerObjectVSData.js.map +0 -1
  860. package/dist/eve/EvePlaneLight.js.map +0 -1
  861. package/dist/eve/EvePlaneSet.js.map +0 -1
  862. package/dist/eve/EvePlaneSetItem.js +0 -45
  863. package/dist/eve/EvePlaneSetItem.js.map +0 -1
  864. package/dist/eve/EveSpaceObjectAttachmentUtils.js.map +0 -1
  865. package/dist/eve/EveSpaceObjectDecal.js +0 -150
  866. package/dist/eve/EveSpaceObjectDecal.js.map +0 -1
  867. package/dist/eve/EveSpaceObjectPSData.js +0 -73
  868. package/dist/eve/EveSpaceObjectPSData.js.map +0 -1
  869. package/dist/eve/EveSpaceObjectVSData.js +0 -79
  870. package/dist/eve/EveSpaceObjectVSData.js.map +0 -1
  871. package/dist/eve/EveSpacePerObjectData.js +0 -97
  872. package/dist/eve/EveSpacePerObjectData.js.map +0 -1
  873. package/dist/eve/EveSpherePinPerObjectData.js +0 -37
  874. package/dist/eve/EveSpherePinPerObjectData.js.map +0 -1
  875. package/dist/eve/EveSpotlightLight.js.map +0 -1
  876. package/dist/eve/EveSpotlightSet.js.map +0 -1
  877. package/dist/eve/EveSpriteLight.js.map +0 -1
  878. package/dist/eve/EveSpriteLineSet.js.map +0 -1
  879. package/dist/eve/EveSpriteLineSetItem.js.map +0 -1
  880. package/dist/eve/EveSpriteSet.js.map +0 -1
  881. package/dist/eve/EveTrailsSet.js.map +0 -1
  882. package/dist/eve/Locator.js.map +0 -1
  883. package/dist/eve/LocatorData.js.map +0 -1
  884. package/dist/eve/ProcessLifetimeData.js.map +0 -1
  885. package/dist/eve/attachment/turrets/EveTurretSetPSData.js +0 -47
  886. package/dist/eve/attachment/turrets/EveTurretSetPSData.js.map +0 -1
  887. package/dist/eve/attachment/turrets/EveTurretSetVSData.js +0 -62
  888. package/dist/eve/attachment/turrets/EveTurretSetVSData.js.map +0 -1
  889. package/dist/eve/child/behaviors/SplineTunnel.js.map +0 -1
  890. package/dist/eve/child/behaviors/SplineTunnelPoint.js.map +0 -1
  891. package/dist/eve/perObjectData/DecalPSPerObjectData.js +0 -56
  892. package/dist/eve/perObjectData/DecalPSPerObjectData.js.map +0 -1
  893. package/dist/eve/perObjectData/EveMissileWarheadPerObjectData.js +0 -31
  894. package/dist/eve/perObjectData/EveMissileWarheadPerObjectData.js.map +0 -1
  895. package/dist/eve/perObjectData/EveTurretSetPerObjectData.js +0 -36
  896. package/dist/eve/perObjectData/EveTurretSetPerObjectData.js.map +0 -1
  897. package/dist/eve/perObjectData/MergeMorphsConstantBuffer.js +0 -64
  898. package/dist/eve/perObjectData/MergeMorphsConstantBuffer.js.map +0 -1
  899. package/dist/generated/eve/EveCamera.js +0 -264
  900. package/dist/generated/eve/EveCamera.js.map +0 -1
  901. package/dist/generated/eve/EveEntity.js +0 -81
  902. package/dist/generated/eve/EveEntity.js.map +0 -1
  903. package/dist/generated/eve/attachment/decal/index.js +0 -2
  904. package/dist/generated/eve/attachment/decal/index.js.map +0 -1
  905. package/dist/generated/eve/attachment/haze/EveHazeSetItem.js +0 -52
  906. package/dist/generated/eve/attachment/haze/EveHazeSetItem.js.map +0 -1
  907. package/dist/generated/eve/attachment/haze/index.js +0 -2
  908. package/dist/generated/eve/attachment/haze/index.js.map +0 -1
  909. package/dist/generated/eve/attachment/index.js +0 -5
  910. package/dist/generated/eve/attachment/index.js.map +0 -1
  911. package/dist/generated/eve/attachment/spotlights/EveSpotlightSetItem.js +0 -55
  912. package/dist/generated/eve/attachment/spotlights/EveSpotlightSetItem.js.map +0 -1
  913. package/dist/generated/eve/attachment/spotlights/index.js +0 -2
  914. package/dist/generated/eve/attachment/spotlights/index.js.map +0 -1
  915. package/dist/generated/eve/attachment/sprites/EveSpriteSetItem.js.map +0 -1
  916. package/dist/generated/eve/attachment/sprites/index.js +0 -2
  917. package/dist/generated/eve/attachment/sprites/index.js.map +0 -1
  918. package/dist/generated/eve/attachment/turrets/enums.js +0 -32
  919. package/dist/generated/eve/attachment/turrets/enums.js.map +0 -1
  920. package/dist/generated/eve/attachment/turrets/index.js +0 -2
  921. package/dist/generated/eve/attachment/turrets/index.js.map +0 -1
  922. package/dist/generated/eve/child/EveChildBehaviorSystem.js +0 -357
  923. package/dist/generated/eve/child/EveChildBehaviorSystem.js.map +0 -1
  924. package/dist/generated/eve/child/EveChildBulletStorm.js.map +0 -1
  925. package/dist/generated/eve/child/EveChildLink.js.map +0 -1
  926. package/dist/generated/eve/child/EveChildSpherePin.js +0 -54
  927. package/dist/generated/eve/child/EveChildSpherePin.js.map +0 -1
  928. package/dist/generated/eve/child/behaviors/CollisionAvoidance.js +0 -85
  929. package/dist/generated/eve/child/behaviors/CollisionAvoidance.js.map +0 -1
  930. package/dist/generated/eve/child/behaviors/InclusionVolume.js +0 -104
  931. package/dist/generated/eve/child/behaviors/InclusionVolume.js.map +0 -1
  932. package/dist/generated/eve/child/behaviors/ProcessLifetime.js +0 -458
  933. package/dist/generated/eve/child/behaviors/ProcessLifetime.js.map +0 -1
  934. package/dist/generated/eve/child/behaviors/SplineTunnelGroup.js +0 -161
  935. package/dist/generated/eve/child/behaviors/SplineTunnelGroup.js.map +0 -1
  936. package/dist/generated/eve/child/behaviors/Wander.js +0 -92
  937. package/dist/generated/eve/child/behaviors/Wander.js.map +0 -1
  938. package/dist/generated/eve/child/behaviors/enums.js.map +0 -1
  939. package/dist/generated/eve/child/modifiers/EveChildModifierAttachToBone.js.map +0 -1
  940. package/dist/generated/eve/child/modifiers/EveChildModifierBillboard3D.js.map +0 -1
  941. package/dist/generated/eve/child/modifiers/EveChildModifierStretch.js.map +0 -1
  942. package/dist/generated/eve/child/modifiers/EveChildModifierTranslateWithCamera.js.map +0 -1
  943. package/dist/generated/eve/child/modifiers/index.js +0 -5
  944. package/dist/generated/eve/child/modifiers/index.js.map +0 -1
  945. package/dist/generated/eve/child/procedural/EveChildProceduralContainer.js.map +0 -1
  946. package/dist/generated/eve/child/procedural/index.js +0 -10
  947. package/dist/generated/eve/child/procedural/index.js.map +0 -1
  948. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js.map +0 -1
  949. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js.map +0 -1
  950. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodCycling.js.map +0 -1
  951. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js.map +0 -1
  952. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodRandom.js.map +0 -1
  953. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js.map +0 -1
  954. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js.map +0 -1
  955. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodThresholds.js.map +0 -1
  956. package/dist/generated/eve/child/procedural/selection/index.js +0 -9
  957. package/dist/generated/eve/child/procedural/selection/index.js.map +0 -1
  958. package/dist/generated/eve/distribution/EveBaseDistributionMethod.js.map +0 -1
  959. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js.map +0 -1
  960. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js.map +0 -1
  961. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js.map +0 -1
  962. package/dist/generated/eve/distribution/attributeModifiers/enums.js.map +0 -1
  963. package/dist/generated/eve/distribution/attributeModifiers/index.js +0 -5
  964. package/dist/generated/eve/distribution/attributeModifiers/index.js.map +0 -1
  965. package/dist/generated/eve/distribution/index.js +0 -19
  966. package/dist/generated/eve/distribution/index.js.map +0 -1
  967. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js.map +0 -1
  968. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js.map +0 -1
  969. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js.map +0 -1
  970. package/dist/generated/eve/distribution/placement/index.js +0 -4
  971. package/dist/generated/eve/distribution/placement/index.js.map +0 -1
  972. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js.map +0 -1
  973. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js.map +0 -1
  974. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js.map +0 -1
  975. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js.map +0 -1
  976. package/dist/generated/eve/distribution/spawnModifiers/index.js +0 -5
  977. package/dist/generated/eve/distribution/spawnModifiers/index.js.map +0 -1
  978. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerBurst.js.map +0 -1
  979. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js.map +0 -1
  980. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerInterval.js.map +0 -1
  981. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js.map +0 -1
  982. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js.map +0 -1
  983. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js.map +0 -1
  984. package/dist/generated/eve/distribution/spawners/index.js +0 -7
  985. package/dist/generated/eve/distribution/spawners/index.js.map +0 -1
  986. package/dist/generated/eve/effect/EveLensflare.js.map +0 -1
  987. package/dist/generated/eve/effect/EveMultiEffect.js +0 -84
  988. package/dist/generated/eve/effect/EveMultiEffect.js.map +0 -1
  989. package/dist/generated/eve/effect/EveMultiEffectParameter.js +0 -45
  990. package/dist/generated/eve/effect/EveMultiEffectParameter.js.map +0 -1
  991. package/dist/generated/eve/fxAttributes/EveCameraFxAttributes.js +0 -47
  992. package/dist/generated/eve/fxAttributes/EveCameraFxAttributes.js.map +0 -1
  993. package/dist/generated/eve/fxAttributes/EveSpaceObjectFxAttributes.js +0 -63
  994. package/dist/generated/eve/fxAttributes/EveSpaceObjectFxAttributes.js.map +0 -1
  995. package/dist/generated/eve/fxAttributes/index.js +0 -3
  996. package/dist/generated/eve/fxAttributes/index.js.map +0 -1
  997. package/dist/generated/eve/overlays/EveMeshOverlayEffect.js +0 -58
  998. package/dist/generated/eve/overlays/EveMeshOverlayEffect.js.map +0 -1
  999. package/dist/generated/eve/overlays/index.js +0 -2
  1000. package/dist/generated/eve/overlays/index.js.map +0 -1
  1001. package/dist/generated/eve/perObjectData/EveBoosterSetPerObjectData.js +0 -66
  1002. package/dist/generated/eve/perObjectData/EveBoosterSetPerObjectData.js.map +0 -1
  1003. package/dist/generated/eve/perObjectData/EveChildBulletStormPerObjectData.js +0 -39
  1004. package/dist/generated/eve/perObjectData/EveChildBulletStormPerObjectData.js.map +0 -1
  1005. package/dist/generated/eve/perObjectData/EveDecalPerObjectData.js +0 -34
  1006. package/dist/generated/eve/perObjectData/EveDecalPerObjectData.js.map +0 -1
  1007. package/dist/generated/eve/perObjectData/EveSceneStaticParticlesPerObjectData.js +0 -32
  1008. package/dist/generated/eve/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +0 -1
  1009. package/dist/generated/eve/perObjectData/index.js +0 -5
  1010. package/dist/generated/eve/perObjectData/index.js.map +0 -1
  1011. package/dist/generated/eve/scene/EveComponentCollection.js.map +0 -1
  1012. package/dist/generated/eve/scene/EveComponentRegistry.js.map +0 -1
  1013. package/dist/generated/eve/scene/EvePickingContext.js +0 -43
  1014. package/dist/generated/eve/scene/EvePickingContext.js.map +0 -1
  1015. package/dist/generated/eve/scene/EveSceneStaticParticles.js.map +0 -1
  1016. package/dist/generated/eve/scene/TriShadowFrustum.js +0 -83
  1017. package/dist/generated/eve/scene/TriShadowFrustum.js.map +0 -1
  1018. package/dist/generated/eve/scene/TriShadowOrthoFrustum.js +0 -140
  1019. package/dist/generated/eve/scene/TriShadowOrthoFrustum.js.map +0 -1
  1020. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js.map +0 -1
  1021. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js.map +0 -1
  1022. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js.map +0 -1
  1023. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js.map +0 -1
  1024. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js.map +0 -1
  1025. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js.map +0 -1
  1026. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js.map +0 -1
  1027. package/dist/generated/eve/smartLights/attributeModifiers/enums.js.map +0 -1
  1028. package/dist/generated/eve/smartLights/attributeModifiers/index.js +0 -9
  1029. package/dist/generated/eve/smartLights/attributeModifiers/index.js.map +0 -1
  1030. package/dist/generated/eve/socket/EveSocketParameterBindingBase.js.map +0 -1
  1031. package/dist/generated/eve/socket/EveSocketParameterBool.js.map +0 -1
  1032. package/dist/generated/eve/socket/EveSocketParameterColor.js.map +0 -1
  1033. package/dist/generated/eve/socket/EveSocketParameterFloat.js.map +0 -1
  1034. package/dist/generated/eve/socket/EveSocketParameterInt.js.map +0 -1
  1035. package/dist/generated/eve/socket/EveSocketParameterString.js.map +0 -1
  1036. package/dist/generated/eve/socket/EveSocketParameterVector2.js.map +0 -1
  1037. package/dist/generated/eve/socket/EveSocketParameterVector3.js.map +0 -1
  1038. package/dist/generated/eve/socket/EveSocketParameterVector4.js.map +0 -1
  1039. package/dist/generated/eve/socket/index.js +0 -10
  1040. package/dist/generated/eve/socket/index.js.map +0 -1
  1041. package/dist/generated/eve/spaceObject/EvePlanet.js.map +0 -1
  1042. package/dist/generated/eve/spaceObject/EveShip2.js.map +0 -1
  1043. package/dist/generated/eve/spaceObject/IEveSpaceObject2.js +0 -46
  1044. package/dist/generated/eve/spaceObject/IEveSpaceObject2.js.map +0 -1
  1045. package/dist/generated/eve/spaceObject/swarm/EveSwarmRenderable.js.map +0 -1
  1046. package/dist/generated/eve/ui/EveLineSet.js.map +0 -1
  1047. package/dist/generated/eve/ui/EveSpherePin.js.map +0 -1
  1048. package/dist/generated/eve/ui/EveTacticalOverlayTrackObject.js +0 -44
  1049. package/dist/generated/eve/ui/EveTacticalOverlayTrackObject.js.map +0 -1
  1050. package/dist/generated/eve/ui/EveTacticalTrails.js.map +0 -1
  1051. package/dist/generated/trinityCore/Tr2DynamicBinding.js +0 -58
  1052. package/dist/generated/trinityCore/Tr2DynamicBinding.js.map +0 -1
  1053. package/dist/generated/trinityCore/Tr2ExternalParameter.js +0 -164
  1054. package/dist/generated/trinityCore/Tr2ExternalParameter.js.map +0 -1
  1055. package/dist/generated/trinityCore/Tr2GrannyAnimation.js.map +0 -1
  1056. package/dist/generated/trinityCore/Tr2ShLightingManager.js +0 -48
  1057. package/dist/generated/trinityCore/Tr2ShLightingManager.js.map +0 -1
  1058. package/dist/generated/trinityCore/TriValueBinding.js +0 -249
  1059. package/dist/generated/trinityCore/TriValueBinding.js.map +0 -1
  1060. package/dist/shader/Tr2Shader.js +0 -150
  1061. package/dist/shader/Tr2Shader.js.map +0 -1
  1062. package/dist/shader/reflection/Tr2EffectConstant.js +0 -61
  1063. package/dist/shader/reflection/Tr2EffectConstant.js.map +0 -1
  1064. package/dist/shader/reflection/Tr2EffectDefine.js +0 -34
  1065. package/dist/shader/reflection/Tr2EffectDefine.js.map +0 -1
  1066. package/dist/shader/reflection/Tr2EffectDescription.js +0 -34
  1067. package/dist/shader/reflection/Tr2EffectDescription.js.map +0 -1
  1068. package/dist/shader/reflection/Tr2EffectLibrary.js +0 -61
  1069. package/dist/shader/reflection/Tr2EffectLibrary.js.map +0 -1
  1070. package/dist/shader/reflection/Tr2EffectParameterAnnotation.js +0 -54
  1071. package/dist/shader/reflection/Tr2EffectParameterAnnotation.js.map +0 -1
  1072. package/dist/shader/reflection/Tr2EffectResource.js +0 -63
  1073. package/dist/shader/reflection/Tr2EffectResource.js.map +0 -1
  1074. package/dist/shader/reflection/Tr2EffectStageInput.js +0 -58
  1075. package/dist/shader/reflection/Tr2EffectStageInput.js.map +0 -1
  1076. package/dist/shader/reflection/Tr2EffectTechnique.js +0 -40
  1077. package/dist/shader/reflection/Tr2EffectTechnique.js.map +0 -1
  1078. package/dist/shader/reflection/Tr2Pass.js +0 -46
  1079. package/dist/shader/reflection/Tr2Pass.js.map +0 -1
  1080. package/dist/shader/sampler/Tr2SamplerSetup.js +0 -34
  1081. package/dist/shader/sampler/Tr2SamplerSetup.js.map +0 -1
  1082. package/dist/trinityCore/Tr2BindingVector3.js.map +0 -1
  1083. package/dist/trinityCore/Tr2PyValueBinding.js.map +0 -1
  1084. package/dist/trinityCore/rawData/RawDataStore.js +0 -232
  1085. package/dist/trinityCore/rawData/RawDataStore.js.map +0 -1
  1086. /package/dist/{generated/eve → eve}/distribution/attributeModifiers/enums.js +0 -0
  1087. /package/dist/{generated/eve → eve}/smartLights/attributeModifiers/enums.js +0 -0
@@ -1,6 +1,6 @@
1
1
  import { identity as _identity, applyDecs2311 as _applyDecs2311 } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import { io, type, carbon, impl } from '@carbonenginejs/runtime-utils/schema';
3
- import { EveEntity as _EveEntity } from '../../../generated/eve/EveEntity.js';
3
+ import { EveEntity as _EveEntity } from '../../EveEntity.js';
4
4
  import { mat4 } from '@carbonenginejs/runtime-utils/mat4';
5
5
  import { vec3 } from '@carbonenginejs/runtime-utils/vec3';
6
6
  import { getDeltaTime, getTime, translationMatrix } from '../../renderable/stretch/CjsStretchRuntime.js';
@@ -120,6 +120,12 @@ new class extends _identity {
120
120
  #displaySourceObject = true;
121
121
  #displayDestObject = true;
122
122
  #impactConfiguration = _EveTurretFiringFX.ImpactConfiguration.IMPACT_INVALID;
123
+
124
+ /**
125
+ * Allocates the twelve per-muzzle records and resolves the firing duration,
126
+ * preferring a non-negative firingDurationOverride and otherwise the longest
127
+ * stretch-element curve.
128
+ */
123
129
  Initialize() {
124
130
  this.#ensureMuzzleData();
125
131
  if (this.firingDurationOverride >= 0) this.firingDuration = this.firingDurationOverride;else {
@@ -128,6 +134,12 @@ new class extends _identity {
128
134
  }
129
135
  return true;
130
136
  }
137
+
138
+ /**
139
+ * Stops firing and runs one asynchronous then one synchronous update so the
140
+ * stretch elements settle into their stopped state before the effect is
141
+ * discarded.
142
+ */
131
143
  CleanUp(context = {
132
144
  currentTime: 0,
133
145
  deltaTime: 0
@@ -136,25 +148,59 @@ new class extends _identity {
136
148
  this.UpdateAsynchronous(context);
137
149
  this.UpdateSynchronous(context);
138
150
  }
151
+
152
+ /**
153
+ * Recomputes the firing duration after a property change, taking the override
154
+ * when it is non-negative and the longest element curve otherwise.
155
+ */
139
156
  OnModified() {
140
157
  this.firingDuration = this.firingDurationOverride >= 0 ? this.firingDurationOverride : this.GetCurveDuration();
141
158
  return true;
142
159
  }
160
+
161
+ /**
162
+ * Binds a muzzle slot to a parent bone id; a muzzle id outside the
163
+ * twelve-muzzle range is ignored rather than reported.
164
+ */
143
165
  SetMuzzleBoneID(muzzleID, boneID) {
144
166
  this.#ensureMuzzleData();
145
167
  if (muzzleID >= 0 && muzzleID < _EveTurretFiringFX.MUZZLE_COUNT_MAX) this.#perMuzzleData[muzzleID].muzzlePositionBoneID = Number(boneID) >>> 0;
146
168
  }
169
+
170
+ /**
171
+ * Copies a world muzzle transform into a muzzle slot; a muzzle id outside the
172
+ * twelve-muzzle range is ignored rather than reported.
173
+ */
147
174
  SetMuzzleTransform(muzzleID, transform) {
148
175
  this.#ensureMuzzleData();
149
176
  if (muzzleID >= 0 && muzzleID < _EveTurretFiringFX.MUZZLE_COUNT_MAX) mat4.copy(this.#perMuzzleData[muzzleID].muzzleTransform, transform);
150
177
  }
178
+
179
+ /**
180
+ * Reads a muzzle slot's world transform, falling back to identity for a slot that was never populated.
181
+ * @param {number} muzzleID Muzzle slot to read.
182
+ * @param {mat4} [out] Caller-owned matrix to fill; a fresh one is allocated when omitted.
183
+ * @returns {mat4} out.
184
+ */
151
185
  GetMuzzleTransform(muzzleID, out = mat4.create()) {
152
186
  this.#ensureMuzzleData();
153
187
  return mat4.copy(out, this.#perMuzzleData[muzzleID]?.muzzleTransform ?? _EveTurretFiringFX.#identity);
154
188
  }
189
+
190
+ /**
191
+ * Sets the world point every stretch element extends towards, which is the
192
+ * impact end of the shot.
193
+ */
155
194
  SetEndPosition(value) {
156
195
  vec3.copy(this.endPosition, value);
157
196
  }
197
+
198
+ /**
199
+ * Scales each stretch element's destination object between minScale and
200
+ * maxScale by where the target radius falls in the minRadius..maxRadius band,
201
+ * and hands the raw radius to the destination observer as an audio attenuation
202
+ * factor; does nothing unless scaleEffectTarget is authored.
203
+ */
158
204
  SetScaleByRadius(radius) {
159
205
  if (!this.scaleEffectTarget) return;
160
206
  const span = this.maxRadius - this.minRadius;
@@ -163,10 +209,22 @@ new class extends _identity {
163
209
  for (const stretch of this.stretch) stretch?.SetDestObjectScale?.(scale);
164
210
  this.destinationObserver?.GetObserver?.()?.SetAttenuationScalingFactor?.(Number(radius));
165
211
  }
212
+
213
+ /**
214
+ * Restarts a looping burst by telling every stretch element to move again,
215
+ * without resetting the per-muzzle delays that PrepareFiring establishes.
216
+ */
166
217
  PrepareFiringEffectMoveObjects() {
167
218
  for (const stretch of this.stretch) stretch?.StartMoving?.();
168
219
  this.isFiring = true;
169
220
  }
221
+
222
+ /**
223
+ * Arms the muzzles for a burst: selected muzzles start after delay plus their authored constant delay, every other muzzle is pushed out of reach with a maximal delay.
224
+ * @param {number} delay Common start delay added to each muzzle's authored constant delay.
225
+ * @param {number} [muzzleID] First muzzle of the firing group; INVALID_INDEX arms every muzzle.
226
+ * @param {number} [muzzleCount] Number of consecutive muzzles in the group.
227
+ */
170
228
  PrepareFiring(delay, muzzleID = _EveTurretFiringFX.INVALID_INDEX, muzzleCount = _EveTurretFiringFX.INVALID_INDEX) {
171
229
  this.#ensureMuzzleData();
172
230
  for (let index = 0; index < this.stretch.length; index++) {
@@ -179,11 +237,22 @@ new class extends _identity {
179
237
  }
180
238
  this.isFiring = true;
181
239
  }
240
+
241
+ /**
242
+ * The longest curve duration across the stretch elements, which is what the
243
+ * firing duration falls back to when no override is authored.
244
+ */
182
245
  GetCurveDuration() {
183
246
  let duration = 0;
184
247
  for (const stretch of this.stretch) duration = Math.max(duration, Number(stretch?.GetCurveDuration?.() ?? 0));
185
248
  return duration;
186
249
  }
250
+
251
+ /**
252
+ * Averages the translation of every started muzzle transform, which is the point the shot is heard and seen to leave from.
253
+ * @param {vec3} [out] Caller-owned vector filled with the averaged position.
254
+ * @returns {boolean} False when the effect is not firing or no muzzle has started, in which case out is left untouched.
255
+ */
187
256
  GetStartPosition(out = vec3.create()) {
188
257
  if (!this.isFiring) return false;
189
258
  this.#ensureMuzzleData();
@@ -200,15 +269,36 @@ new class extends _identity {
200
269
  vec3.scale(out, _EveTurretFiringFX.#startPosition, 1 / count);
201
270
  return true;
202
271
  }
272
+
273
+ /**
274
+ * The firing duration in force: the override when non-negative, otherwise the
275
+ * duration resolved at Initialize.
276
+ */
203
277
  GetFiringDuration() {
204
278
  return this.firingDurationOverride >= 0 ? this.firingDurationOverride : this.firingDuration;
205
279
  }
280
+
281
+ /**
282
+ * The authored offset into the burst at which the shot is considered to land,
283
+ * used to time the target's impact.
284
+ */
206
285
  GetFiringPeakTime() {
207
286
  return this.firingPeakTime;
208
287
  }
288
+
289
+ /**
290
+ * The name of the bone muzzle locators are resolved under, Pos_Fire unless
291
+ * authored otherwise.
292
+ */
209
293
  GetFiringBoneName() {
210
294
  return this.boneName;
211
295
  }
296
+
297
+ /**
298
+ * Starts one muzzle: its stretch element begins firing, the start curve set
299
+ * plays backdated by the muzzle's remaining delay and the stop curve set is
300
+ * halted; returns false when the muzzle has no record or no element.
301
+ */
212
302
  StartMuzzleEffect(muzzleID) {
213
303
  this.#ensureMuzzleData();
214
304
  const data = this.#perMuzzleData[muzzleID];
@@ -220,6 +310,12 @@ new class extends _identity {
220
310
  data.readyToStart = false;
221
311
  return true;
222
312
  }
313
+
314
+ /**
315
+ * Stops every stretch element, clears all per-muzzle timers, halts the start
316
+ * curve set and plays the stop curve set; does nothing when the effect is not
317
+ * firing.
318
+ */
223
319
  StopFiring() {
224
320
  if (!this.isFiring) return;
225
321
  this.#ensureMuzzleData();
@@ -236,10 +332,22 @@ new class extends _identity {
236
332
  this.stopCurveSet?.Play?.();
237
333
  this.isFiring = false;
238
334
  }
335
+
336
+ /**
337
+ * Whether any muzzle has run its delay down but not yet started, and is still
338
+ * inside the firing duration or belongs to a looping effect.
339
+ */
239
340
  ReadyToFire() {
240
341
  this.#ensureMuzzleData();
241
342
  return this.#perMuzzleData.slice(0, this.stretch.length).some(data => (data.elapsedTime < this.firingDuration || this.isLoopFiring) && !data.started && data.readyToStart);
242
343
  }
344
+
345
+ /**
346
+ * Advances each muzzle's delay and elapsed time, starts the muzzles whose
347
+ * delay expired, pushes the muzzle and end transforms into their stretch
348
+ * elements, then updates the active curve set and both observers; returns
349
+ * whether a muzzle started firing on this call.
350
+ */
243
351
  UpdateAsynchronous(context) {
244
352
  this.#ensureMuzzleData();
245
353
  const deltaTime = getDeltaTime(context);
@@ -274,6 +382,11 @@ new class extends _identity {
274
382
  this.destinationObserver?.Update?.(translationMatrix(this.endPosition, _EveTurretFiringFX.#destinationTransform));
275
383
  return justFired;
276
384
  }
385
+
386
+ /**
387
+ * Runs the synchronous element update for every muzzle still inside the firing
388
+ * duration, or for all of them when the effect loops.
389
+ */
277
390
  UpdateSynchronous(context) {
278
391
  this.#ensureMuzzleData();
279
392
  for (let index = 0; index < this.stretch.length; index++) {
@@ -282,11 +395,23 @@ new class extends _identity {
282
395
  }
283
396
  return true;
284
397
  }
398
+
399
+ /**
400
+ * Runs the asynchronous then synchronous phase in order and reports whether a
401
+ * muzzle started firing.
402
+ */
285
403
  Update(context) {
286
404
  const fired = this.UpdateAsynchronous(context);
287
405
  this.UpdateSynchronous(context);
288
406
  return fired;
289
407
  }
408
+
409
+ /**
410
+ * Updates visibility on every started element and, when several bone-free
411
+ * muzzles fire at once, merges them by shifting the whole set's intensity onto
412
+ * the first element as the muzzle cluster shrinks below the frustum's LOD
413
+ * angle; gated on display and isFiring.
414
+ */
290
415
  UpdateVisibility(context) {
291
416
  if (!(this.display && this.isFiring)) return;
292
417
  this.#ensureMuzzleData();
@@ -312,6 +437,11 @@ new class extends _identity {
312
437
  const merge = angle <= lodAngle ? 0 : Math.min((angle - lodAngle) / lodAngle, 1);
313
438
  active.forEach((index, order) => this.stretch[index]?.SetIntensity?.(order ? merge : active.length + (1 - active.length) * merge));
314
439
  }
440
+
441
+ /**
442
+ * Appends the renderables of every started element still inside the firing
443
+ * duration to out; gated on display and isFiring.
444
+ */
315
445
  GetRenderables(out = []) {
316
446
  if (!(this.display && this.isFiring)) return out;
317
447
  this.#ensureMuzzleData();
@@ -324,34 +454,69 @@ new class extends _identity {
324
454
 
325
455
  /** m_maxScale (float) [READWRITE, PERSIST] */
326
456
  maxScale = _init_maxScale(this, 10);
457
+
458
+ /**
459
+ * The number of muzzles the effect drives, which is the number of authored
460
+ * stretch elements rather than the twelve-muzzle maximum.
461
+ */
327
462
  GetPerMuzzleEffectCount() {
328
463
  return this.stretch.length;
329
464
  }
465
+
466
+ /**
467
+ * The parent bone id bound to a muzzle slot, or INVALID_INDEX when the muzzle
468
+ * rides a supplied transform instead of a bone.
469
+ */
330
470
  GetPerMuzzleBoneID(muzzleID) {
331
471
  this.#ensureMuzzleData();
332
472
  return this.#perMuzzleData[muzzleID]?.muzzlePositionBoneID ?? _EveTurretFiringFX.INVALID_INDEX;
333
473
  }
474
+
475
+ /**
476
+ * Whether the burst repeats instead of ending when the firing duration
477
+ * elapses.
478
+ */
334
479
  IsLooping() {
335
480
  return this.isLoopFiring;
336
481
  }
482
+
483
+ /**
484
+ * Sets whether the stretch elements draw their destination end, which is the
485
+ * impact on the target.
486
+ */
337
487
  SetDisplayDestObject(display) {
338
488
  this.#displayDestObject = !!display;
339
489
  }
490
+
491
+ /** Whether the stretch elements draw their destination end. */
340
492
  GetDisplayDestObject() {
341
493
  return this.#displayDestObject;
342
494
  }
495
+
496
+ /**
497
+ * Sets whether the stretch elements draw their source end, which is the muzzle
498
+ * flash.
499
+ */
343
500
  SetDisplaySourceObject(display) {
344
501
  this.#displaySourceObject = !!display;
345
502
  }
503
+
504
+ /** Whether the stretch elements draw their source end. */
346
505
  GetDisplaySourceObject() {
347
506
  return this.#displaySourceObject;
348
507
  }
508
+
509
+ /** Forwards a named controller variable to every stretch element. */
349
510
  SetControllerVariable(name, value) {
350
511
  for (const stretch of this.stretch) stretch?.SetControllerVariable?.(name, value);
351
512
  }
513
+
514
+ /** Forwards a named controller event to every stretch element. */
352
515
  HandleControllerEvent(name) {
353
516
  for (const stretch of this.stretch) stretch?.HandleControllerEvent?.(name);
354
517
  }
518
+
519
+ /** Starts the controllers on every stretch element. */
355
520
  StartControllers() {
356
521
  for (const stretch of this.stretch) stretch?.StartControllers?.();
357
522
  }
@@ -377,6 +542,13 @@ new class extends _identity {
377
542
  }
378
543
  }
379
544
  }
545
+
546
+ /**
547
+ * Records which surface the shot lands on and, only when it changes, sends the
548
+ * matching Impact_On switch value to the destination observer's audio emitter;
549
+ * anything other than armor or hull is sent as Shield, including
550
+ * IMPACT_INVALID.
551
+ */
380
552
  SetImpactConfiguration(configuration) {
381
553
  if (configuration !== this.#impactConfiguration) {
382
554
  const emitter = this.destinationObserver?.GetObserver?.();
@@ -385,6 +557,13 @@ new class extends _identity {
385
557
  }
386
558
  this.#impactConfiguration = configuration;
387
559
  }
560
+
561
+ /**
562
+ * Grows the per-muzzle record list to the twelve-muzzle maximum on first use
563
+ * and refreshes every record's constant delay from the authored
564
+ * firingDelay1..firingDelay12 fields, so an edited delay takes effect without
565
+ * a rebuild.
566
+ */
388
567
  #ensureMuzzleData() {
389
568
  while (this.#perMuzzleData.length < _EveTurretFiringFX.MUZZLE_COUNT_MAX) {
390
569
  const index = this.#perMuzzleData.length;
@@ -403,7 +582,10 @@ new class extends _identity {
403
582
  }
404
583
  }
405
584
  }];
406
- MUZZLE_COUNT_MAX = 12;
585
+ MaxMuzzleCount = Object.freeze({
586
+ MUZZLECOUNT_MAX: 12
587
+ });
588
+ MUZZLE_COUNT_MAX = _EveTurretFiringFX.MaxMuzzleCount.MUZZLECOUNT_MAX;
407
589
  INVALID_INDEX = 0xffffffff;
408
590
  ImpactConfiguration = Object.freeze({
409
591
  IMPACT_INVALID: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"EveTurretFiringFX.js","sources":["../../../../../src/eve/attachment/turrets/EveTurretFiringFX.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\Turret\\EveTurretFiringFX.h\r\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\Turret\\EveTurretFiringFX.cpp\r\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\Turret\\EveTurretFiringFX_Blue.cpp\r\nimport { carbon, impl, io, type } from \"@carbonenginejs/runtime-utils/schema\";\r\nimport { EveEntity } from \"../../../generated/eve/EveEntity.js\";\r\nimport { mat4 } from \"@carbonenginejs/runtime-utils/mat4\";\r\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\r\nimport { getDeltaTime, getTime, translationMatrix } from \"../../renderable/stretch/CjsStretchRuntime.js\";\r\n\r\n/** EveTurretFiringFX (eve/attachment/turrets) - generated from schema shapeHash ae5459c6.... */\r\n@type.define({ className: \"EveTurretFiringFX\", family: \"eve/attachment/turrets\" })\r\nexport class EveTurretFiringFX extends EveEntity\r\n{\r\n\r\n /** m_startCurveSet (TriCurveSetPtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.model(\"TriCurveSet\")\r\n startCurveSet = null;\r\n\r\n /** m_stopCurveSet (TriCurveSetPtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.model(\"TriCurveSet\")\r\n stopCurveSet = null;\r\n\r\n /** m_stretch (PIEveFiringEffectElementVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"IEveFiringEffectElement\")\r\n stretch = [];\r\n\r\n /** m_name (std::string) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n /** m_firingPeakTime (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n firingPeakTime = 0;\r\n\r\n /** m_perMuzzleData[0].constantDelay (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n firingDelay1 = 0;\r\n\r\n /** m_perMuzzleData[9].constantDelay (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n firingDelay10 = 0;\r\n\r\n /** m_perMuzzleData[10].constantDelay (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n firingDelay11 = 0;\r\n\r\n /** m_perMuzzleData[11].constantDelay (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n firingDelay12 = 0;\r\n\r\n /** m_perMuzzleData[1].constantDelay (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n firingDelay2 = 0;\r\n\r\n /** m_perMuzzleData[2].constantDelay (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n firingDelay3 = 0;\r\n\r\n /** m_perMuzzleData[3].constantDelay (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n firingDelay4 = 0;\r\n\r\n /** m_perMuzzleData[4].constantDelay (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n firingDelay5 = 0;\r\n\r\n /** m_perMuzzleData[5].constantDelay (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n firingDelay6 = 0;\r\n\r\n /** m_perMuzzleData[6].constantDelay (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n firingDelay7 = 0;\r\n\r\n /** m_perMuzzleData[7].constantDelay (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n firingDelay8 = 0;\r\n\r\n /** m_perMuzzleData[8].constantDelay (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n firingDelay9 = 0;\r\n\r\n /** m_endPosition (Vector3) [READWRITE] */\r\n @io.readwrite\r\n @type.vec3\r\n endPosition = vec3.create();\r\n\r\n /** m_firingDuration (float) [READ] */\r\n @io.read\r\n @type.float32\r\n firingDuration = 1000;\r\n\r\n /** m_isFiring (bool) [READ] */\r\n @io.read\r\n @type.boolean\r\n isFiring = false;\r\n\r\n /** m_destinationObserver (TriObserverLocalPtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.model(\"TriObserverLocal\")\r\n destinationObserver = null;\r\n\r\n /** m_sourceObserver (TriObserverLocalPtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.model(\"TriObserverLocal\")\r\n sourceObserver = null;\r\n\r\n /** m_firingDurationOverride (float) [READWRITE, NOTIFY, PERSIST] */\r\n @io.notify\r\n @io.persist\r\n @type.float32\r\n firingDurationOverride = -1;\r\n\r\n /** m_useMuzzleTransform (bool) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.boolean\r\n useMuzzleTransform = false;\r\n\r\n /** m_isLoopFiring (bool) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.boolean\r\n isLoopFiring = false;\r\n\r\n /** m_boneName (BlueSharedString) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.string\r\n boneName = \"Pos_Fire\";\r\n\r\n /** m_display (bool) [READWRITE, NOTIFY] */\r\n @io.notify\r\n @io.readwrite\r\n @type.boolean\r\n display = true;\r\n\r\n /** m_scaleEffectTarget (bool) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.boolean\r\n scaleEffectTarget = false;\r\n\r\n /** m_minRadius (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n minRadius = 30;\r\n\r\n /** m_maxRadius (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n maxRadius = 3000;\r\n\r\n /** m_minScale (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n minScale = 1;\r\n\r\n #perMuzzleData = [];\r\n\r\n #displaySourceObject = true;\r\n\r\n #displayDestObject = true;\r\n\r\n #impactConfiguration = EveTurretFiringFX.ImpactConfiguration.IMPACT_INVALID;\r\n\r\n @carbon.method\r\n @impl.implemented\r\n Initialize()\r\n {\r\n this.#ensureMuzzleData();\r\n if (this.firingDurationOverride >= 0) this.firingDuration = this.firingDurationOverride;\r\n else\r\n {\r\n const duration = this.GetCurveDuration();\r\n if (duration > 0) this.firingDuration = duration;\r\n }\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n CleanUp(context = { currentTime: 0, deltaTime: 0 })\r\n {\r\n this.StopFiring();\r\n this.UpdateAsynchronous(context);\r\n this.UpdateSynchronous(context);\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n OnModified()\r\n {\r\n this.firingDuration = this.firingDurationOverride >= 0 ? this.firingDurationOverride : this.GetCurveDuration();\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetMuzzleBoneID(muzzleID, boneID)\r\n {\r\n this.#ensureMuzzleData();\r\n if (muzzleID >= 0 && muzzleID < EveTurretFiringFX.MUZZLE_COUNT_MAX) this.#perMuzzleData[muzzleID].muzzlePositionBoneID = Number(boneID) >>> 0;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetMuzzleTransform(muzzleID, transform)\r\n {\r\n this.#ensureMuzzleData();\r\n if (muzzleID >= 0 && muzzleID < EveTurretFiringFX.MUZZLE_COUNT_MAX) mat4.copy(this.#perMuzzleData[muzzleID].muzzleTransform, transform);\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetMuzzleTransform(muzzleID, out = mat4.create())\r\n {\r\n this.#ensureMuzzleData();\r\n return mat4.copy(out, this.#perMuzzleData[muzzleID]?.muzzleTransform ?? EveTurretFiringFX.#identity);\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetEndPosition(value)\r\n {\r\n vec3.copy(this.endPosition, value);\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetScaleByRadius(radius)\r\n {\r\n if (!this.scaleEffectTarget) return;\r\n const span = this.maxRadius - this.minRadius;\r\n const amount = span ? (Number(radius) - this.minRadius) / span : 0;\r\n const scale = Math.max(this.minScale, Math.min(this.maxScale, this.minScale + amount * (this.maxScale - this.minScale)));\r\n for (const stretch of this.stretch) stretch?.SetDestObjectScale?.(scale);\r\n this.destinationObserver?.GetObserver?.()?.SetAttenuationScalingFactor?.(Number(radius));\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n PrepareFiringEffectMoveObjects()\r\n {\r\n for (const stretch of this.stretch) stretch?.StartMoving?.();\r\n this.isFiring = true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n PrepareFiring(delay, muzzleID = EveTurretFiringFX.INVALID_INDEX, muzzleCount = EveTurretFiringFX.INVALID_INDEX)\r\n {\r\n this.#ensureMuzzleData();\r\n for (let index = 0; index < this.stretch.length; index++)\r\n {\r\n const selected = muzzleID === EveTurretFiringFX.INVALID_INDEX || (index >= muzzleID && index < muzzleID + muzzleCount);\r\n const data = this.#perMuzzleData[index];\r\n data.currentStartDelay = selected ? Number(delay) + data.constantDelay : Number.MAX_VALUE;\r\n data.started = false;\r\n data.readyToStart = false;\r\n data.elapsedTime = 0;\r\n }\r\n this.isFiring = true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetCurveDuration()\r\n {\r\n let duration = 0;\r\n for (const stretch of this.stretch) duration = Math.max(duration, Number(stretch?.GetCurveDuration?.() ?? 0));\r\n return duration;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetStartPosition(out = vec3.create())\r\n {\r\n if (!this.isFiring) return false;\r\n this.#ensureMuzzleData();\r\n vec3.zero(EveTurretFiringFX.#startPosition);\r\n let count = 0;\r\n for (const data of this.#perMuzzleData.slice(0, this.stretch.length))\r\n {\r\n if (!data.started) continue;\r\n EveTurretFiringFX.#startPosition[0] += data.muzzleTransform[12];\r\n EveTurretFiringFX.#startPosition[1] += data.muzzleTransform[13];\r\n EveTurretFiringFX.#startPosition[2] += data.muzzleTransform[14];\r\n count++;\r\n }\r\n if (!count) return false;\r\n vec3.scale(out, EveTurretFiringFX.#startPosition, 1 / count);\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetFiringDuration()\r\n {\r\n return this.firingDurationOverride >= 0 ? this.firingDurationOverride : this.firingDuration;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetFiringPeakTime()\r\n {\r\n return this.firingPeakTime;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetFiringBoneName()\r\n {\r\n return this.boneName;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n StartMuzzleEffect(muzzleID)\r\n {\r\n this.#ensureMuzzleData();\r\n const data = this.#perMuzzleData[muzzleID];\r\n if (!data || !this.stretch[muzzleID]) return false;\r\n this.stretch[muzzleID].StartFiring?.(data.currentStartDelay);\r\n this.startCurveSet?.PlayFrom?.(-data.currentStartDelay);\r\n this.stopCurveSet?.Stop?.();\r\n data.started = true;\r\n data.readyToStart = false;\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n StopFiring()\r\n {\r\n if (!this.isFiring) return;\r\n this.#ensureMuzzleData();\r\n for (let index = 0; index < this.stretch.length; index++)\r\n {\r\n this.stretch[index]?.StopFiring?.();\r\n Object.assign(this.#perMuzzleData[index], { started: false, readyToStart: false, currentStartDelay: 0, elapsedTime: 0 });\r\n }\r\n this.startCurveSet?.Stop?.();\r\n this.stopCurveSet?.Play?.();\r\n this.isFiring = false;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n ReadyToFire()\r\n {\r\n this.#ensureMuzzleData();\r\n return this.#perMuzzleData.slice(0, this.stretch.length).some(data =>\r\n (data.elapsedTime < this.firingDuration || this.isLoopFiring) && !data.started && data.readyToStart);\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon's task update is serial in the browser; firing elements retain their explicit async phase.\")\r\n UpdateAsynchronous(context)\r\n {\r\n this.#ensureMuzzleData();\r\n const deltaTime = getDeltaTime(context);\r\n let justFired = false;\r\n for (let index = 0; index < this.stretch.length; index++)\r\n {\r\n const data = this.#perMuzzleData[index];\r\n const stretch = this.stretch[index];\r\n if (data.started) data.elapsedTime += deltaTime;\r\n if (!(data.elapsedTime < this.firingDuration || this.isLoopFiring)) continue;\r\n if (this.isFiring)\r\n {\r\n if (!data.started)\r\n {\r\n if (data.readyToStart)\r\n {\r\n this.StartMuzzleEffect(index);\r\n data.currentStartDelay = 0;\r\n data.elapsedTime = 0;\r\n justFired = true;\r\n }\r\n else data.currentStartDelay -= deltaTime;\r\n if (data.currentStartDelay <= 0) data.readyToStart = true;\r\n }\r\n if (data.started)\r\n {\r\n const source = this.useMuzzleTransform && data.muzzlePositionBoneID !== EveTurretFiringFX.INVALID_INDEX\r\n ? data.muzzleTransform\r\n : data.muzzleTransform.subarray(12, 15);\r\n stretch?.SetFiringTransform?.(source, this.endPosition);\r\n stretch?.DisplayEndPoints?.(this.#displaySourceObject, this.#displayDestObject);\r\n }\r\n stretch?.UpdateEffectAsync?.(context);\r\n }\r\n }\r\n const curveSet = this.isFiring ? this.startCurveSet : this.stopCurveSet;\r\n const time = getTime(context);\r\n curveSet?.Update?.(time, time);\r\n this.sourceObserver?.Update?.(this.#perMuzzleData[0]?.muzzleTransform ?? EveTurretFiringFX.#identity);\r\n this.destinationObserver?.Update?.(translationMatrix(this.endPosition, EveTurretFiringFX.#destinationTransform));\r\n return justFired;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon's task update is serial in the browser; firing elements retain their explicit sync phase.\")\r\n UpdateSynchronous(context)\r\n {\r\n this.#ensureMuzzleData();\r\n for (let index = 0; index < this.stretch.length; index++)\r\n {\r\n const data = this.#perMuzzleData[index];\r\n if (data.elapsedTime < this.firingDuration || this.isLoopFiring) this.stretch[index]?.UpdateEffectSync?.(context);\r\n }\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n Update(context)\r\n {\r\n const fired = this.UpdateAsynchronous(context);\r\n this.UpdateSynchronous(context);\r\n return fired;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Visibility is forwarded to graph elements; small-angle muzzle merging uses portable frustum fields when present.\")\r\n UpdateVisibility(context)\r\n {\r\n if (!(this.display && this.isFiring)) return;\r\n this.#ensureMuzzleData();\r\n const active = [];\r\n for (let index = 0; index < this.stretch.length; index++)\r\n {\r\n const data = this.#perMuzzleData[index];\r\n if (data.started && (data.elapsedTime <= this.firingDuration || this.isLoopFiring))\r\n {\r\n this.stretch[index]?.UpdateVisibility?.(context, EveTurretFiringFX.#identity);\r\n active.push(index);\r\n }\r\n }\r\n if (active.length <= 1 || active.some(index => this.#perMuzzleData[index].muzzlePositionBoneID !== EveTurretFiringFX.INVALID_INDEX)) return;\r\n vec3.zero(EveTurretFiringFX.#center);\r\n for (const index of active) vec3.add(EveTurretFiringFX.#center, EveTurretFiringFX.#center, this.#perMuzzleData[index].muzzleTransform.subarray(12, 15));\r\n vec3.scale(EveTurretFiringFX.#center, EveTurretFiringFX.#center, 1 / active.length);\r\n let radius = 0;\r\n for (const index of active) radius = Math.max(radius, vec3.distance(EveTurretFiringFX.#center, this.#perMuzzleData[index].muzzleTransform.subarray(12, 15)));\r\n const frustum = context?.frustum ?? context?.GetFrustum?.();\r\n const viewPosition = frustum?.viewPosition ?? frustum?.viewPos;\r\n if (!viewPosition) return;\r\n const angle = Math.atan(radius * 2 / (vec3.distance(viewPosition, EveTurretFiringFX.#center) + 1));\r\n const lodAngle = Number(frustum.fov ?? 1) * 0.002;\r\n const merge = angle <= lodAngle ? 0 : Math.min((angle - lodAngle) / lodAngle, 1);\r\n active.forEach((index, order) => this.stretch[index]?.SetIntensity?.(order ? merge : active.length + (1 - active.length) * merge));\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Renderable collection is backend-neutral; draw realization remains runtime-engine work.\")\r\n GetRenderables(out = [])\r\n {\r\n if (!(this.display && this.isFiring)) return out;\r\n this.#ensureMuzzleData();\r\n for (let index = 0; index < this.stretch.length; index++)\r\n {\r\n const data = this.#perMuzzleData[index];\r\n if (data.started && (data.elapsedTime <= this.firingDuration || this.isLoopFiring)) this.stretch[index]?.GetRenderables?.(out);\r\n }\r\n return out;\r\n }\r\n\r\n /** m_maxScale (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n maxScale = 10;\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetPerMuzzleEffectCount()\r\n {\r\n return this.stretch.length;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetPerMuzzleBoneID(muzzleID)\r\n {\r\n this.#ensureMuzzleData();\r\n return this.#perMuzzleData[muzzleID]?.muzzlePositionBoneID ?? EveTurretFiringFX.INVALID_INDEX;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n IsLooping()\r\n {\r\n return this.isLoopFiring;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetDisplayDestObject(display)\r\n {\r\n this.#displayDestObject = !!display;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetDisplayDestObject()\r\n {\r\n return this.#displayDestObject;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetDisplaySourceObject(display)\r\n {\r\n this.#displaySourceObject = !!display;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetDisplaySourceObject()\r\n {\r\n return this.#displaySourceObject;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Controller ownership is represented by direct firing-element method forwarding.\")\r\n SetControllerVariable(name, value)\r\n {\r\n for (const stretch of this.stretch) stretch?.SetControllerVariable?.(name, value);\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Controller ownership is represented by direct firing-element method forwarding.\")\r\n HandleControllerEvent(name)\r\n {\r\n for (const stretch of this.stretch) stretch?.HandleControllerEvent?.(name);\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Controller ownership is represented by direct firing-element method forwarding.\")\r\n StartControllers()\r\n {\r\n for (const stretch of this.stretch) stretch?.StartControllers?.();\r\n }\r\n\r\n /** Carbon EveTurretFiringFX::RegisterComponents (cpp:739-752): forwards the\r\n * stretch elements. Gate m_display && m_isFiring. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.display && this.isFiring)\r\n {\r\n for (const element of this.stretch)\r\n {\r\n element?.Register?.(registry);\r\n }\r\n }\r\n }\r\n\r\n /** Carbon EveTurretFiringFX::UnRegisterComponents (cpp:755-768): forwards\r\n * the stretch elements; no display/isFiring re-check. */\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 for (const element of this.stretch)\r\n {\r\n element?.UnRegister?.(registry);\r\n }\r\n }\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Audio emitters are duck-typed; Carbon impact switch values are forwarded without native interfaces.\")\r\n SetImpactConfiguration(configuration)\r\n {\r\n if (configuration !== this.#impactConfiguration)\r\n {\r\n const emitter = this.destinationObserver?.GetObserver?.();\r\n const value = configuration === EveTurretFiringFX.ImpactConfiguration.IMPACT_ARMOR\r\n ? \"Armor\"\r\n : configuration === EveTurretFiringFX.ImpactConfiguration.IMPACT_HULL ? \"Hull\" : \"Shield\";\r\n emitter?.SetSwitch?.(\"Impact_On\", value);\r\n }\r\n this.#impactConfiguration = configuration;\r\n }\r\n\r\n #ensureMuzzleData()\r\n {\r\n while (this.#perMuzzleData.length < EveTurretFiringFX.MUZZLE_COUNT_MAX)\r\n {\r\n const index = this.#perMuzzleData.length;\r\n this.#perMuzzleData.push({\r\n started: false,\r\n readyToStart: false,\r\n muzzlePositionBoneID: EveTurretFiringFX.INVALID_INDEX,\r\n muzzleTransform: mat4.create(),\r\n currentStartDelay: 0,\r\n constantDelay: Number(this[`firingDelay${index + 1}`] ?? 0),\r\n elapsedTime: 0\r\n });\r\n }\r\n for (let index = 0; index < EveTurretFiringFX.MUZZLE_COUNT_MAX; index++)\r\n {\r\n this.#perMuzzleData[index].constantDelay = Number(this[`firingDelay${index + 1}`] ?? 0);\r\n }\r\n }\r\n\r\n static MUZZLE_COUNT_MAX = 12;\r\n\r\n static INVALID_INDEX = 0xffffffff;\r\n\r\n static ImpactConfiguration = Object.freeze({ IMPACT_INVALID: 0, IMPACT_SHIELD: 1, IMPACT_ARMOR: 2, IMPACT_HULL: 3 });\r\n\r\n static #identity = mat4.create();\r\n\r\n static #destinationTransform = mat4.create();\r\n static #startPosition = vec3.create();\r\n\r\n static #center = vec3.create();\r\n\r\n}\r\n"],"names":["_EveTurretFiringFX","_identity","EveTurretFiringFX","EveEntity","e","_init_startCurveSet","_init_extra_startCurveSet","_init_stopCurveSet","_init_extra_stopCurveSet","_init_stretch","_init_extra_stretch","_init_name","_init_extra_name","_init_firingPeakTime","_init_extra_firingPeakTime","_init_firingDelay","_init_extra_firingDelay","_init_firingDelay2","_init_extra_firingDelay2","_init_firingDelay3","_init_extra_firingDelay3","_init_firingDelay4","_init_extra_firingDelay4","_init_firingDelay5","_init_extra_firingDelay5","_init_firingDelay6","_init_extra_firingDelay6","_init_firingDelay7","_init_extra_firingDelay7","_init_firingDelay8","_init_extra_firingDelay8","_init_firingDelay9","_init_extra_firingDelay9","_init_firingDelay0","_init_extra_firingDelay0","_init_firingDelay1","_init_extra_firingDelay1","_init_firingDelay10","_init_extra_firingDelay10","_init_endPosition","_init_extra_endPosition","_init_firingDuration","_init_extra_firingDuration","_init_isFiring","_init_extra_isFiring","_init_destinationObserver","_init_extra_destinationObserver","_init_sourceObserver","_init_extra_sourceObserver","_init_firingDurationOverride","_init_extra_firingDurationOverride","_init_useMuzzleTransform","_init_extra_useMuzzleTransform","_init_isLoopFiring","_init_extra_isLoopFiring","_init_boneName","_init_extra_boneName","_init_display","_init_extra_display","_init_scaleEffectTarget","_init_extra_scaleEffectTarget","_init_minRadius","_init_extra_minRadius","_init_maxRadius","_init_extra_maxRadius","_init_minScale","_init_extra_minScale","_init_maxScale","_init_extra_maxScale","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","model","list","string","float32","readwrite","vec3","read","boolean","notify","carbon","method","impl","implemented","adapted","reason","constructor","args","startCurveSet","stopCurveSet","stretch","name","firingPeakTime","firingDelay1","firingDelay10","firingDelay11","firingDelay12","firingDelay2","firingDelay3","firingDelay4","firingDelay5","firingDelay6","firingDelay7","firingDelay8","firingDelay9","endPosition","create","firingDuration","isFiring","destinationObserver","sourceObserver","firingDurationOverride","useMuzzleTransform","isLoopFiring","boneName","display","scaleEffectTarget","minRadius","maxRadius","minScale","ImpactConfiguration","IMPACT_INVALID","Initialize","duration","GetCurveDuration","CleanUp","context","currentTime","deltaTime","StopFiring","UpdateAsynchronous","UpdateSynchronous","OnModified","SetMuzzleBoneID","muzzleID","boneID","MUZZLE_COUNT_MAX","muzzlePositionBoneID","Number","SetMuzzleTransform","transform","mat4","copy","muzzleTransform","GetMuzzleTransform","out","SetEndPosition","value","SetScaleByRadius","radius","span","amount","scale","Math","max","min","maxScale","SetDestObjectScale","GetObserver","SetAttenuationScalingFactor","PrepareFiringEffectMoveObjects","StartMoving","PrepareFiring","delay","INVALID_INDEX","muzzleCount","index","length","selected","data","currentStartDelay","constantDelay","MAX_VALUE","started","readyToStart","elapsedTime","GetStartPosition","zero","count","slice","GetFiringDuration","GetFiringPeakTime","GetFiringBoneName","StartMuzzleEffect","StartFiring","PlayFrom","Stop","Object","assign","Play","ReadyToFire","some","getDeltaTime","justFired","source","subarray","SetFiringTransform","DisplayEndPoints","UpdateEffectAsync","curveSet","time","getTime","Update","translationMatrix","UpdateEffectSync","fired","UpdateVisibility","active","push","add","distance","frustum","GetFrustum","viewPosition","viewPos","angle","atan","lodAngle","fov","merge","forEach","order","SetIntensity","GetRenderables","GetPerMuzzleEffectCount","GetPerMuzzleBoneID","IsLooping","SetDisplayDestObject","GetDisplayDestObject","SetDisplaySourceObject","GetDisplaySourceObject","SetControllerVariable","HandleControllerEvent","StartControllers","RegisterComponents","registry","GetComponentRegistry","element","Register","UnRegisterComponents","UnRegister","SetImpactConfiguration","configuration","emitter","IMPACT_ARMOR","IMPACT_HULL","SetSwitch","#ensureMuzzleData","freeze","IMPACT_SHIELD"],"mappings":"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"}
1
+ {"version":3,"file":"EveTurretFiringFX.js","sources":["../../../../../src/eve/attachment/turrets/EveTurretFiringFX.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\Turret\\EveTurretFiringFX.h\r\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\Turret\\EveTurretFiringFX.cpp\r\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\Turret\\EveTurretFiringFX_Blue.cpp\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 { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\r\nimport { getDeltaTime, getTime, translationMatrix } from \"../../renderable/stretch/CjsStretchRuntime.js\";\r\n\r\n/** EveTurretFiringFX (eve/attachment/turrets) - generated from schema shapeHash ae5459c6.... */\r\n@type.define({ className: \"EveTurretFiringFX\", family: \"eve/attachment/turrets\" })\r\nexport class EveTurretFiringFX extends EveEntity\r\n{\r\n\r\n /** m_startCurveSet (TriCurveSetPtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.model(\"TriCurveSet\")\r\n startCurveSet = null;\r\n\r\n /** m_stopCurveSet (TriCurveSetPtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.model(\"TriCurveSet\")\r\n stopCurveSet = null;\r\n\r\n /** m_stretch (PIEveFiringEffectElementVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"IEveFiringEffectElement\")\r\n stretch = [];\r\n\r\n /** m_name (std::string) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n /** m_firingPeakTime (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n firingPeakTime = 0;\r\n\r\n /** m_perMuzzleData[0].constantDelay (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n firingDelay1 = 0;\r\n\r\n /** m_perMuzzleData[9].constantDelay (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n firingDelay10 = 0;\r\n\r\n /** m_perMuzzleData[10].constantDelay (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n firingDelay11 = 0;\r\n\r\n /** m_perMuzzleData[11].constantDelay (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n firingDelay12 = 0;\r\n\r\n /** m_perMuzzleData[1].constantDelay (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n firingDelay2 = 0;\r\n\r\n /** m_perMuzzleData[2].constantDelay (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n firingDelay3 = 0;\r\n\r\n /** m_perMuzzleData[3].constantDelay (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n firingDelay4 = 0;\r\n\r\n /** m_perMuzzleData[4].constantDelay (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n firingDelay5 = 0;\r\n\r\n /** m_perMuzzleData[5].constantDelay (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n firingDelay6 = 0;\r\n\r\n /** m_perMuzzleData[6].constantDelay (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n firingDelay7 = 0;\r\n\r\n /** m_perMuzzleData[7].constantDelay (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n firingDelay8 = 0;\r\n\r\n /** m_perMuzzleData[8].constantDelay (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n firingDelay9 = 0;\r\n\r\n /** m_endPosition (Vector3) [READWRITE] */\r\n @io.readwrite\r\n @type.vec3\r\n endPosition = vec3.create();\r\n\r\n /** m_firingDuration (float) [READ] */\r\n @io.read\r\n @type.float32\r\n firingDuration = 1000;\r\n\r\n /** m_isFiring (bool) [READ] */\r\n @io.read\r\n @type.boolean\r\n isFiring = false;\r\n\r\n /** m_destinationObserver (TriObserverLocalPtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.model(\"TriObserverLocal\")\r\n destinationObserver = null;\r\n\r\n /** m_sourceObserver (TriObserverLocalPtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.model(\"TriObserverLocal\")\r\n sourceObserver = null;\r\n\r\n /** m_firingDurationOverride (float) [READWRITE, NOTIFY, PERSIST] */\r\n @io.notify\r\n @io.persist\r\n @type.float32\r\n firingDurationOverride = -1;\r\n\r\n /** m_useMuzzleTransform (bool) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.boolean\r\n useMuzzleTransform = false;\r\n\r\n /** m_isLoopFiring (bool) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.boolean\r\n isLoopFiring = false;\r\n\r\n /** m_boneName (BlueSharedString) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.string\r\n boneName = \"Pos_Fire\";\r\n\r\n /** m_display (bool) [READWRITE, NOTIFY] */\r\n @io.notify\r\n @io.readwrite\r\n @type.boolean\r\n display = true;\r\n\r\n /** m_scaleEffectTarget (bool) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.boolean\r\n scaleEffectTarget = false;\r\n\r\n /** m_minRadius (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n minRadius = 30;\r\n\r\n /** m_maxRadius (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n maxRadius = 3000;\r\n\r\n /** m_minScale (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n minScale = 1;\r\n\r\n #perMuzzleData = [];\r\n\r\n #displaySourceObject = true;\r\n\r\n #displayDestObject = true;\r\n\r\n #impactConfiguration = EveTurretFiringFX.ImpactConfiguration.IMPACT_INVALID;\r\n\r\n /**\r\n * Allocates the twelve per-muzzle records and resolves the firing duration,\r\n * preferring a non-negative firingDurationOverride and otherwise the longest\r\n * stretch-element curve.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Initialize()\r\n {\r\n this.#ensureMuzzleData();\r\n if (this.firingDurationOverride >= 0) this.firingDuration = this.firingDurationOverride;\r\n else\r\n {\r\n const duration = this.GetCurveDuration();\r\n if (duration > 0) this.firingDuration = duration;\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Stops firing and runs one asynchronous then one synchronous update so the\r\n * stretch elements settle into their stopped state before the effect is\r\n * discarded.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n CleanUp(context = { currentTime: 0, deltaTime: 0 })\r\n {\r\n this.StopFiring();\r\n this.UpdateAsynchronous(context);\r\n this.UpdateSynchronous(context);\r\n }\r\n\r\n /**\r\n * Recomputes the firing duration after a property change, taking the override\r\n * when it is non-negative and the longest element curve otherwise.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n OnModified()\r\n {\r\n this.firingDuration = this.firingDurationOverride >= 0 ? this.firingDurationOverride : this.GetCurveDuration();\r\n return true;\r\n }\r\n\r\n /**\r\n * Binds a muzzle slot to a parent bone id; a muzzle id outside the\r\n * twelve-muzzle range is ignored rather than reported.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetMuzzleBoneID(muzzleID, boneID)\r\n {\r\n this.#ensureMuzzleData();\r\n if (muzzleID >= 0 && muzzleID < EveTurretFiringFX.MUZZLE_COUNT_MAX) this.#perMuzzleData[muzzleID].muzzlePositionBoneID = Number(boneID) >>> 0;\r\n }\r\n\r\n /**\r\n * Copies a world muzzle transform into a muzzle slot; a muzzle id outside the\r\n * twelve-muzzle range is ignored rather than reported.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetMuzzleTransform(muzzleID, transform)\r\n {\r\n this.#ensureMuzzleData();\r\n if (muzzleID >= 0 && muzzleID < EveTurretFiringFX.MUZZLE_COUNT_MAX) mat4.copy(this.#perMuzzleData[muzzleID].muzzleTransform, transform);\r\n }\r\n\r\n /**\r\n * Reads a muzzle slot's world transform, falling back to identity for a slot that was never populated.\r\n * @param {number} muzzleID Muzzle slot to read.\r\n * @param {mat4} [out] Caller-owned matrix to fill; a fresh one is allocated when omitted.\r\n * @returns {mat4} out.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetMuzzleTransform(muzzleID, out = mat4.create())\r\n {\r\n this.#ensureMuzzleData();\r\n return mat4.copy(out, this.#perMuzzleData[muzzleID]?.muzzleTransform ?? EveTurretFiringFX.#identity);\r\n }\r\n\r\n /**\r\n * Sets the world point every stretch element extends towards, which is the\r\n * impact end of the shot.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetEndPosition(value)\r\n {\r\n vec3.copy(this.endPosition, value);\r\n }\r\n\r\n /**\r\n * Scales each stretch element's destination object between minScale and\r\n * maxScale by where the target radius falls in the minRadius..maxRadius band,\r\n * and hands the raw radius to the destination observer as an audio attenuation\r\n * factor; does nothing unless scaleEffectTarget is authored.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetScaleByRadius(radius)\r\n {\r\n if (!this.scaleEffectTarget) return;\r\n const span = this.maxRadius - this.minRadius;\r\n const amount = span ? (Number(radius) - this.minRadius) / span : 0;\r\n const scale = Math.max(this.minScale, Math.min(this.maxScale, this.minScale + amount * (this.maxScale - this.minScale)));\r\n for (const stretch of this.stretch) stretch?.SetDestObjectScale?.(scale);\r\n this.destinationObserver?.GetObserver?.()?.SetAttenuationScalingFactor?.(Number(radius));\r\n }\r\n\r\n /**\r\n * Restarts a looping burst by telling every stretch element to move again,\r\n * without resetting the per-muzzle delays that PrepareFiring establishes.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n PrepareFiringEffectMoveObjects()\r\n {\r\n for (const stretch of this.stretch) stretch?.StartMoving?.();\r\n this.isFiring = true;\r\n }\r\n\r\n /**\r\n * Arms the muzzles for a burst: selected muzzles start after delay plus their authored constant delay, every other muzzle is pushed out of reach with a maximal delay.\r\n * @param {number} delay Common start delay added to each muzzle's authored constant delay.\r\n * @param {number} [muzzleID] First muzzle of the firing group; INVALID_INDEX arms every muzzle.\r\n * @param {number} [muzzleCount] Number of consecutive muzzles in the group.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n PrepareFiring(delay, muzzleID = EveTurretFiringFX.INVALID_INDEX, muzzleCount = EveTurretFiringFX.INVALID_INDEX)\r\n {\r\n this.#ensureMuzzleData();\r\n for (let index = 0; index < this.stretch.length; index++)\r\n {\r\n const selected = muzzleID === EveTurretFiringFX.INVALID_INDEX || (index >= muzzleID && index < muzzleID + muzzleCount);\r\n const data = this.#perMuzzleData[index];\r\n data.currentStartDelay = selected ? Number(delay) + data.constantDelay : Number.MAX_VALUE;\r\n data.started = false;\r\n data.readyToStart = false;\r\n data.elapsedTime = 0;\r\n }\r\n this.isFiring = true;\r\n }\r\n\r\n /**\r\n * The longest curve duration across the stretch elements, which is what the\r\n * firing duration falls back to when no override is authored.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetCurveDuration()\r\n {\r\n let duration = 0;\r\n for (const stretch of this.stretch) duration = Math.max(duration, Number(stretch?.GetCurveDuration?.() ?? 0));\r\n return duration;\r\n }\r\n\r\n /**\r\n * Averages the translation of every started muzzle transform, which is the point the shot is heard and seen to leave from.\r\n * @param {vec3} [out] Caller-owned vector filled with the averaged position.\r\n * @returns {boolean} False when the effect is not firing or no muzzle has started, in which case out is left untouched.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetStartPosition(out = vec3.create())\r\n {\r\n if (!this.isFiring) return false;\r\n this.#ensureMuzzleData();\r\n vec3.zero(EveTurretFiringFX.#startPosition);\r\n let count = 0;\r\n for (const data of this.#perMuzzleData.slice(0, this.stretch.length))\r\n {\r\n if (!data.started) continue;\r\n EveTurretFiringFX.#startPosition[0] += data.muzzleTransform[12];\r\n EveTurretFiringFX.#startPosition[1] += data.muzzleTransform[13];\r\n EveTurretFiringFX.#startPosition[2] += data.muzzleTransform[14];\r\n count++;\r\n }\r\n if (!count) return false;\r\n vec3.scale(out, EveTurretFiringFX.#startPosition, 1 / count);\r\n return true;\r\n }\r\n\r\n /**\r\n * The firing duration in force: the override when non-negative, otherwise the\r\n * duration resolved at Initialize.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetFiringDuration()\r\n {\r\n return this.firingDurationOverride >= 0 ? this.firingDurationOverride : this.firingDuration;\r\n }\r\n\r\n /**\r\n * The authored offset into the burst at which the shot is considered to land,\r\n * used to time the target's impact.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetFiringPeakTime()\r\n {\r\n return this.firingPeakTime;\r\n }\r\n\r\n /**\r\n * The name of the bone muzzle locators are resolved under, Pos_Fire unless\r\n * authored otherwise.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetFiringBoneName()\r\n {\r\n return this.boneName;\r\n }\r\n\r\n /**\r\n * Starts one muzzle: its stretch element begins firing, the start curve set\r\n * plays backdated by the muzzle's remaining delay and the stop curve set is\r\n * halted; returns false when the muzzle has no record or no element.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n StartMuzzleEffect(muzzleID)\r\n {\r\n this.#ensureMuzzleData();\r\n const data = this.#perMuzzleData[muzzleID];\r\n if (!data || !this.stretch[muzzleID]) return false;\r\n this.stretch[muzzleID].StartFiring?.(data.currentStartDelay);\r\n this.startCurveSet?.PlayFrom?.(-data.currentStartDelay);\r\n this.stopCurveSet?.Stop?.();\r\n data.started = true;\r\n data.readyToStart = false;\r\n return true;\r\n }\r\n\r\n /**\r\n * Stops every stretch element, clears all per-muzzle timers, halts the start\r\n * curve set and plays the stop curve set; does nothing when the effect is not\r\n * firing.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n StopFiring()\r\n {\r\n if (!this.isFiring) return;\r\n this.#ensureMuzzleData();\r\n for (let index = 0; index < this.stretch.length; index++)\r\n {\r\n this.stretch[index]?.StopFiring?.();\r\n Object.assign(this.#perMuzzleData[index], { started: false, readyToStart: false, currentStartDelay: 0, elapsedTime: 0 });\r\n }\r\n this.startCurveSet?.Stop?.();\r\n this.stopCurveSet?.Play?.();\r\n this.isFiring = false;\r\n }\r\n\r\n /**\r\n * Whether any muzzle has run its delay down but not yet started, and is still\r\n * inside the firing duration or belongs to a looping effect.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ReadyToFire()\r\n {\r\n this.#ensureMuzzleData();\r\n return this.#perMuzzleData.slice(0, this.stretch.length).some(data =>\r\n (data.elapsedTime < this.firingDuration || this.isLoopFiring) && !data.started && data.readyToStart);\r\n }\r\n\r\n /**\r\n * Advances each muzzle's delay and elapsed time, starts the muzzles whose\r\n * delay expired, pushes the muzzle and end transforms into their stretch\r\n * elements, then updates the active curve set and both observers; returns\r\n * whether a muzzle started firing on this call.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon's task update is serial in the browser; firing elements retain their explicit async phase.\")\r\n UpdateAsynchronous(context)\r\n {\r\n this.#ensureMuzzleData();\r\n const deltaTime = getDeltaTime(context);\r\n let justFired = false;\r\n for (let index = 0; index < this.stretch.length; index++)\r\n {\r\n const data = this.#perMuzzleData[index];\r\n const stretch = this.stretch[index];\r\n if (data.started) data.elapsedTime += deltaTime;\r\n if (!(data.elapsedTime < this.firingDuration || this.isLoopFiring)) continue;\r\n if (this.isFiring)\r\n {\r\n if (!data.started)\r\n {\r\n if (data.readyToStart)\r\n {\r\n this.StartMuzzleEffect(index);\r\n data.currentStartDelay = 0;\r\n data.elapsedTime = 0;\r\n justFired = true;\r\n }\r\n else data.currentStartDelay -= deltaTime;\r\n if (data.currentStartDelay <= 0) data.readyToStart = true;\r\n }\r\n if (data.started)\r\n {\r\n const source = this.useMuzzleTransform && data.muzzlePositionBoneID !== EveTurretFiringFX.INVALID_INDEX\r\n ? data.muzzleTransform\r\n : data.muzzleTransform.subarray(12, 15);\r\n stretch?.SetFiringTransform?.(source, this.endPosition);\r\n stretch?.DisplayEndPoints?.(this.#displaySourceObject, this.#displayDestObject);\r\n }\r\n stretch?.UpdateEffectAsync?.(context);\r\n }\r\n }\r\n const curveSet = this.isFiring ? this.startCurveSet : this.stopCurveSet;\r\n const time = getTime(context);\r\n curveSet?.Update?.(time, time);\r\n this.sourceObserver?.Update?.(this.#perMuzzleData[0]?.muzzleTransform ?? EveTurretFiringFX.#identity);\r\n this.destinationObserver?.Update?.(translationMatrix(this.endPosition, EveTurretFiringFX.#destinationTransform));\r\n return justFired;\r\n }\r\n\r\n /**\r\n * Runs the synchronous element update for every muzzle still inside the firing\r\n * duration, or for all of them when the effect loops.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon's task update is serial in the browser; firing elements retain their explicit sync phase.\")\r\n UpdateSynchronous(context)\r\n {\r\n this.#ensureMuzzleData();\r\n for (let index = 0; index < this.stretch.length; index++)\r\n {\r\n const data = this.#perMuzzleData[index];\r\n if (data.elapsedTime < this.firingDuration || this.isLoopFiring) this.stretch[index]?.UpdateEffectSync?.(context);\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Runs the asynchronous then synchronous phase in order and reports whether a\r\n * muzzle started firing.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Update(context)\r\n {\r\n const fired = this.UpdateAsynchronous(context);\r\n this.UpdateSynchronous(context);\r\n return fired;\r\n }\r\n\r\n /**\r\n * Updates visibility on every started element and, when several bone-free\r\n * muzzles fire at once, merges them by shifting the whole set's intensity onto\r\n * the first element as the muzzle cluster shrinks below the frustum's LOD\r\n * angle; gated on display and isFiring.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Visibility is forwarded to graph elements; small-angle muzzle merging uses portable frustum fields when present.\")\r\n UpdateVisibility(context)\r\n {\r\n if (!(this.display && this.isFiring)) return;\r\n this.#ensureMuzzleData();\r\n const active = [];\r\n for (let index = 0; index < this.stretch.length; index++)\r\n {\r\n const data = this.#perMuzzleData[index];\r\n if (data.started && (data.elapsedTime <= this.firingDuration || this.isLoopFiring))\r\n {\r\n this.stretch[index]?.UpdateVisibility?.(context, EveTurretFiringFX.#identity);\r\n active.push(index);\r\n }\r\n }\r\n if (active.length <= 1 || active.some(index => this.#perMuzzleData[index].muzzlePositionBoneID !== EveTurretFiringFX.INVALID_INDEX)) return;\r\n vec3.zero(EveTurretFiringFX.#center);\r\n for (const index of active) vec3.add(EveTurretFiringFX.#center, EveTurretFiringFX.#center, this.#perMuzzleData[index].muzzleTransform.subarray(12, 15));\r\n vec3.scale(EveTurretFiringFX.#center, EveTurretFiringFX.#center, 1 / active.length);\r\n let radius = 0;\r\n for (const index of active) radius = Math.max(radius, vec3.distance(EveTurretFiringFX.#center, this.#perMuzzleData[index].muzzleTransform.subarray(12, 15)));\r\n const frustum = context?.frustum ?? context?.GetFrustum?.();\r\n const viewPosition = frustum?.viewPosition ?? frustum?.viewPos;\r\n if (!viewPosition) return;\r\n const angle = Math.atan(radius * 2 / (vec3.distance(viewPosition, EveTurretFiringFX.#center) + 1));\r\n const lodAngle = Number(frustum.fov ?? 1) * 0.002;\r\n const merge = angle <= lodAngle ? 0 : Math.min((angle - lodAngle) / lodAngle, 1);\r\n active.forEach((index, order) => this.stretch[index]?.SetIntensity?.(order ? merge : active.length + (1 - active.length) * merge));\r\n }\r\n\r\n /**\r\n * Appends the renderables of every started element still inside the firing\r\n * duration to out; gated on display and isFiring.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Renderable collection is backend-neutral; draw realization remains runtime-engine work.\")\r\n GetRenderables(out = [])\r\n {\r\n if (!(this.display && this.isFiring)) return out;\r\n this.#ensureMuzzleData();\r\n for (let index = 0; index < this.stretch.length; index++)\r\n {\r\n const data = this.#perMuzzleData[index];\r\n if (data.started && (data.elapsedTime <= this.firingDuration || this.isLoopFiring)) this.stretch[index]?.GetRenderables?.(out);\r\n }\r\n return out;\r\n }\r\n\r\n /** m_maxScale (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n maxScale = 10;\r\n\r\n /**\r\n * The number of muzzles the effect drives, which is the number of authored\r\n * stretch elements rather than the twelve-muzzle maximum.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetPerMuzzleEffectCount()\r\n {\r\n return this.stretch.length;\r\n }\r\n\r\n /**\r\n * The parent bone id bound to a muzzle slot, or INVALID_INDEX when the muzzle\r\n * rides a supplied transform instead of a bone.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetPerMuzzleBoneID(muzzleID)\r\n {\r\n this.#ensureMuzzleData();\r\n return this.#perMuzzleData[muzzleID]?.muzzlePositionBoneID ?? EveTurretFiringFX.INVALID_INDEX;\r\n }\r\n\r\n /**\r\n * Whether the burst repeats instead of ending when the firing duration\r\n * elapses.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n IsLooping()\r\n {\r\n return this.isLoopFiring;\r\n }\r\n\r\n /**\r\n * Sets whether the stretch elements draw their destination end, which is the\r\n * impact on the target.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetDisplayDestObject(display)\r\n {\r\n this.#displayDestObject = !!display;\r\n }\r\n\r\n /** Whether the stretch elements draw their destination end. */\r\n @carbon.method\r\n @impl.implemented\r\n GetDisplayDestObject()\r\n {\r\n return this.#displayDestObject;\r\n }\r\n\r\n /**\r\n * Sets whether the stretch elements draw their source end, which is the muzzle\r\n * flash.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetDisplaySourceObject(display)\r\n {\r\n this.#displaySourceObject = !!display;\r\n }\r\n\r\n /** Whether the stretch elements draw their source end. */\r\n @carbon.method\r\n @impl.implemented\r\n GetDisplaySourceObject()\r\n {\r\n return this.#displaySourceObject;\r\n }\r\n\r\n /** Forwards a named controller variable to every stretch element. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Controller ownership is represented by direct firing-element method forwarding.\")\r\n SetControllerVariable(name, value)\r\n {\r\n for (const stretch of this.stretch) stretch?.SetControllerVariable?.(name, value);\r\n }\r\n\r\n /** Forwards a named controller event to every stretch element. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Controller ownership is represented by direct firing-element method forwarding.\")\r\n HandleControllerEvent(name)\r\n {\r\n for (const stretch of this.stretch) stretch?.HandleControllerEvent?.(name);\r\n }\r\n\r\n /** Starts the controllers on every stretch element. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Controller ownership is represented by direct firing-element method forwarding.\")\r\n StartControllers()\r\n {\r\n for (const stretch of this.stretch) stretch?.StartControllers?.();\r\n }\r\n\r\n /** Carbon EveTurretFiringFX::RegisterComponents (cpp:739-752): forwards the\r\n * stretch elements. Gate m_display && m_isFiring. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.display && this.isFiring)\r\n {\r\n for (const element of this.stretch)\r\n {\r\n element?.Register?.(registry);\r\n }\r\n }\r\n }\r\n\r\n /** Carbon EveTurretFiringFX::UnRegisterComponents (cpp:755-768): forwards\r\n * the stretch elements; no display/isFiring re-check. */\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 for (const element of this.stretch)\r\n {\r\n element?.UnRegister?.(registry);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Records which surface the shot lands on and, only when it changes, sends the\r\n * matching Impact_On switch value to the destination observer's audio emitter;\r\n * anything other than armor or hull is sent as Shield, including\r\n * IMPACT_INVALID.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Audio emitters are duck-typed; Carbon impact switch values are forwarded without native interfaces.\")\r\n SetImpactConfiguration(configuration)\r\n {\r\n if (configuration !== this.#impactConfiguration)\r\n {\r\n const emitter = this.destinationObserver?.GetObserver?.();\r\n const value = configuration === EveTurretFiringFX.ImpactConfiguration.IMPACT_ARMOR\r\n ? \"Armor\"\r\n : configuration === EveTurretFiringFX.ImpactConfiguration.IMPACT_HULL ? \"Hull\" : \"Shield\";\r\n emitter?.SetSwitch?.(\"Impact_On\", value);\r\n }\r\n this.#impactConfiguration = configuration;\r\n }\r\n\r\n /**\r\n * Grows the per-muzzle record list to the twelve-muzzle maximum on first use\r\n * and refreshes every record's constant delay from the authored\r\n * firingDelay1..firingDelay12 fields, so an edited delay takes effect without\r\n * a rebuild.\r\n */\r\n #ensureMuzzleData()\r\n {\r\n while (this.#perMuzzleData.length < EveTurretFiringFX.MUZZLE_COUNT_MAX)\r\n {\r\n const index = this.#perMuzzleData.length;\r\n this.#perMuzzleData.push({\r\n started: false,\r\n readyToStart: false,\r\n muzzlePositionBoneID: EveTurretFiringFX.INVALID_INDEX,\r\n muzzleTransform: mat4.create(),\r\n currentStartDelay: 0,\r\n constantDelay: Number(this[`firingDelay${index + 1}`] ?? 0),\r\n elapsedTime: 0\r\n });\r\n }\r\n for (let index = 0; index < EveTurretFiringFX.MUZZLE_COUNT_MAX; index++)\r\n {\r\n this.#perMuzzleData[index].constantDelay = Number(this[`firingDelay${index + 1}`] ?? 0);\r\n }\r\n }\r\n\r\n static MaxMuzzleCount = Object.freeze({\r\n MUZZLECOUNT_MAX: 12,\r\n });\r\n\r\n static MUZZLE_COUNT_MAX = EveTurretFiringFX.MaxMuzzleCount.MUZZLECOUNT_MAX;\r\n\r\n static INVALID_INDEX = 0xffffffff;\r\n\r\n static ImpactConfiguration = Object.freeze({ IMPACT_INVALID: 0, IMPACT_SHIELD: 1, IMPACT_ARMOR: 2, IMPACT_HULL: 3 });\r\n\r\n static #identity = mat4.create();\r\n\r\n static #destinationTransform = mat4.create();\r\n static #startPosition = vec3.create();\r\n\r\n static #center = vec3.create();\r\n\r\n}\r\n"],"names":["_EveTurretFiringFX","_identity","EveTurretFiringFX","EveEntity","e","_init_startCurveSet","_init_extra_startCurveSet","_init_stopCurveSet","_init_extra_stopCurveSet","_init_stretch","_init_extra_stretch","_init_name","_init_extra_name","_init_firingPeakTime","_init_extra_firingPeakTime","_init_firingDelay","_init_extra_firingDelay","_init_firingDelay2","_init_extra_firingDelay2","_init_firingDelay3","_init_extra_firingDelay3","_init_firingDelay4","_init_extra_firingDelay4","_init_firingDelay5","_init_extra_firingDelay5","_init_firingDelay6","_init_extra_firingDelay6","_init_firingDelay7","_init_extra_firingDelay7","_init_firingDelay8","_init_extra_firingDelay8","_init_firingDelay9","_init_extra_firingDelay9","_init_firingDelay0","_init_extra_firingDelay0","_init_firingDelay1","_init_extra_firingDelay1","_init_firingDelay10","_init_extra_firingDelay10","_init_endPosition","_init_extra_endPosition","_init_firingDuration","_init_extra_firingDuration","_init_isFiring","_init_extra_isFiring","_init_destinationObserver","_init_extra_destinationObserver","_init_sourceObserver","_init_extra_sourceObserver","_init_firingDurationOverride","_init_extra_firingDurationOverride","_init_useMuzzleTransform","_init_extra_useMuzzleTransform","_init_isLoopFiring","_init_extra_isLoopFiring","_init_boneName","_init_extra_boneName","_init_display","_init_extra_display","_init_scaleEffectTarget","_init_extra_scaleEffectTarget","_init_minRadius","_init_extra_minRadius","_init_maxRadius","_init_extra_maxRadius","_init_minScale","_init_extra_minScale","_init_maxScale","_init_extra_maxScale","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","model","list","string","float32","readwrite","vec3","read","boolean","notify","carbon","method","impl","implemented","adapted","reason","constructor","args","startCurveSet","stopCurveSet","stretch","name","firingPeakTime","firingDelay1","firingDelay10","firingDelay11","firingDelay12","firingDelay2","firingDelay3","firingDelay4","firingDelay5","firingDelay6","firingDelay7","firingDelay8","firingDelay9","endPosition","create","firingDuration","isFiring","destinationObserver","sourceObserver","firingDurationOverride","useMuzzleTransform","isLoopFiring","boneName","display","scaleEffectTarget","minRadius","maxRadius","minScale","ImpactConfiguration","IMPACT_INVALID","Initialize","duration","GetCurveDuration","CleanUp","context","currentTime","deltaTime","StopFiring","UpdateAsynchronous","UpdateSynchronous","OnModified","SetMuzzleBoneID","muzzleID","boneID","MUZZLE_COUNT_MAX","muzzlePositionBoneID","Number","SetMuzzleTransform","transform","mat4","copy","muzzleTransform","GetMuzzleTransform","out","SetEndPosition","value","SetScaleByRadius","radius","span","amount","scale","Math","max","min","maxScale","SetDestObjectScale","GetObserver","SetAttenuationScalingFactor","PrepareFiringEffectMoveObjects","StartMoving","PrepareFiring","delay","INVALID_INDEX","muzzleCount","index","length","selected","data","currentStartDelay","constantDelay","MAX_VALUE","started","readyToStart","elapsedTime","GetStartPosition","zero","count","slice","GetFiringDuration","GetFiringPeakTime","GetFiringBoneName","StartMuzzleEffect","StartFiring","PlayFrom","Stop","Object","assign","Play","ReadyToFire","some","getDeltaTime","justFired","source","subarray","SetFiringTransform","DisplayEndPoints","UpdateEffectAsync","curveSet","time","getTime","Update","translationMatrix","UpdateEffectSync","fired","UpdateVisibility","active","push","add","distance","frustum","GetFrustum","viewPosition","viewPos","angle","atan","lodAngle","fov","merge","forEach","order","SetIntensity","GetRenderables","GetPerMuzzleEffectCount","GetPerMuzzleBoneID","IsLooping","SetDisplayDestObject","GetDisplayDestObject","SetDisplaySourceObject","GetDisplaySourceObject","SetControllerVariable","HandleControllerEvent","StartControllers","RegisterComponents","registry","GetComponentRegistry","element","Register","UnRegisterComponents","UnRegister","SetImpactConfiguration","configuration","emitter","IMPACT_ARMOR","IMPACT_HULL","SetSwitch","#ensureMuzzleData","MaxMuzzleCount","freeze","MUZZLECOUNT_MAX","IMPACT_SHIELD"],"mappings":"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"}