@carbonenginejs/runtime 0.1.0-alpha.4 → 0.1.0-alpha.5

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 (384) hide show
  1. package/dist/global/blue/BlueClasses.js +200 -0
  2. package/dist/global/blue/BlueClasses.js.map +1 -0
  3. package/dist/global/blue/IBlueClasses.js +79 -0
  4. package/dist/global/blue/IBlueClasses.js.map +1 -0
  5. package/dist/global/blue/IBlueDynamicResourceConstructor.js +16 -0
  6. package/dist/global/blue/IBlueDynamicResourceConstructor.js.map +1 -1
  7. package/dist/global/blue/blue.js +8 -2
  8. package/dist/global/blue/blue.js.map +1 -1
  9. package/dist/global/blue/index.js +2 -0
  10. package/dist/global/blue/index.js.map +1 -1
  11. package/dist/global/consts/index.js +0 -1
  12. package/dist/global/consts/index.js.map +1 -1
  13. package/dist/global/consts/renderContext/formats.js +26 -25
  14. package/dist/global/consts/renderContext/formats.js.map +1 -1
  15. package/dist/{trinityal/Tr2BitmapDimensions.js → global/imageio/BitmapDimensions.js} +19 -15
  16. package/dist/global/imageio/BitmapDimensions.js.map +1 -0
  17. package/dist/global/imageio/Cutout.js +28 -0
  18. package/dist/global/imageio/Cutout.js.map +1 -0
  19. package/dist/global/imageio/HostBitmap.js +1106 -0
  20. package/dist/global/imageio/HostBitmap.js.map +1 -0
  21. package/dist/global/imageio/ImageIOResult.js +99 -0
  22. package/dist/global/imageio/ImageIOResult.js.map +1 -0
  23. package/dist/global/imageio/ImageUtility.js +205 -0
  24. package/dist/global/imageio/ImageUtility.js.map +1 -0
  25. package/dist/global/imageio/LoadParameters.js +86 -0
  26. package/dist/global/imageio/LoadParameters.js.map +1 -0
  27. package/dist/global/imageio/Metadata.js +22 -0
  28. package/dist/global/imageio/Metadata.js.map +1 -0
  29. package/dist/global/imageio/index.js +8 -0
  30. package/dist/global/{consts/webgpu → imageio}/index.js.map +1 -1
  31. package/dist/global/index.js +2 -1
  32. package/dist/global/index.js.map +1 -1
  33. package/dist/global/math/color.js +1 -1
  34. package/dist/global/math/color.js.map +1 -1
  35. package/dist/global/schema/CjsSchema.js +8 -0
  36. package/dist/global/schema/CjsSchema.js.map +1 -1
  37. package/dist/index.js +12 -4
  38. package/dist/index.js.map +1 -1
  39. package/dist/resource/CjsResMan.js +47 -7
  40. package/dist/resource/CjsResMan.js.map +1 -1
  41. package/dist/resource/Tr2LightProfileRes.js +37 -0
  42. package/dist/resource/Tr2LightProfileRes.js.map +1 -1
  43. package/dist/resource/format/CjsByteWriter.js +46 -46
  44. package/dist/resource/format/CjsByteWriter.js.map +1 -1
  45. package/dist/resource/format/CjsFormat.js +7 -8
  46. package/dist/resource/format/CjsFormat.js.map +1 -1
  47. package/dist/resource/format/CjsFormatStore.js +8 -8
  48. package/dist/resource/format/CjsFormatStore.js.map +1 -1
  49. package/dist/resource/format/CjsGeometryFormat.js +114 -0
  50. package/dist/resource/format/CjsGeometryFormat.js.map +1 -0
  51. package/dist/resource/format/CjsImageFormat.js +282 -0
  52. package/dist/resource/format/CjsImageFormat.js.map +1 -0
  53. package/dist/resource/format/CjsResourceProbe.js +12 -48
  54. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  55. package/dist/resource/format/CjsStringTable.js +37 -37
  56. package/dist/resource/format/CjsStringTable.js.map +1 -1
  57. package/dist/resource/format/carbonEffect/CjsCarbonEffectReader.js +10 -10
  58. package/dist/resource/format/carbonEffect/CjsCarbonEffectReader.js.map +1 -1
  59. package/dist/resource/format/carbonEffect/CjsCarbonEffectWriter.js +37 -37
  60. package/dist/resource/format/carbonEffect/CjsCarbonEffectWriter.js.map +1 -1
  61. package/dist/resource/format/carbonEffect/carbonEffectBackendBlock.js +35 -7
  62. package/dist/resource/format/carbonEffect/carbonEffectBackendBlock.js.map +1 -1
  63. package/dist/resource/format/index.js +3 -1
  64. package/dist/resource/format/index.js.map +1 -1
  65. package/dist/resource/formats/black/CjsBlackFormat.js +130 -137
  66. package/dist/resource/formats/black/CjsBlackFormat.js.map +1 -1
  67. package/dist/resource/formats/bnk/CjsBnkFormat.js +12 -19
  68. package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
  69. package/dist/resource/formats/bnk/core/helpers.js +1 -3
  70. package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
  71. package/dist/resource/formats/cmf/CjsCmfFormat.js +19 -82
  72. package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
  73. package/dist/resource/formats/cmf/core/constants.js +1 -2
  74. package/dist/resource/formats/cmf/core/constants.js.map +1 -1
  75. package/dist/resource/formats/{stl/core/targets.js → cmf/core/flatShared.js} +9 -8
  76. package/dist/resource/formats/cmf/core/flatShared.js.map +1 -0
  77. package/dist/resource/formats/cmf/core/helpers.js +13 -13
  78. package/dist/resource/formats/cmf/core/helpers.js.map +1 -1
  79. package/dist/resource/formats/cmf/core/writer.js +24 -24
  80. package/dist/resource/formats/cmf/core/writer.js.map +1 -1
  81. package/dist/resource/formats/dds/CjsDdsFormat.js +134 -17
  82. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  83. package/dist/resource/formats/dds/core/helpers.js +125 -40
  84. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  85. package/dist/resource/formats/dxbc/CjsDxbcFormat.js +14 -16
  86. package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  87. package/dist/resource/formats/dxbc/core/{container.js → DxbcContainer.js} +2 -2
  88. package/dist/resource/formats/dxbc/core/DxbcContainer.js.map +1 -0
  89. package/dist/resource/formats/dxbc/core/{errors.js → DxbcReadError.js} +1 -1
  90. package/dist/resource/formats/dxbc/core/DxbcReadError.js.map +1 -0
  91. package/dist/resource/formats/dxbc/core/DxbcReader.js +1 -1
  92. package/dist/resource/formats/dxbc/core/DxbcReader.js.map +1 -1
  93. package/dist/resource/formats/dxbc/core/{program.js → DxbcShaderProgram.js} +2 -2
  94. package/dist/resource/formats/dxbc/core/DxbcShaderProgram.js.map +1 -0
  95. package/dist/resource/formats/dxbc/core/{signature.js → DxbcSignatureChunk.js} +2 -2
  96. package/dist/resource/formats/dxbc/core/DxbcSignatureChunk.js.map +1 -0
  97. package/dist/resource/formats/dxbc/core/decoder.js +2 -2
  98. package/dist/resource/formats/dxbc/core/decoder.js.map +1 -1
  99. package/dist/resource/formats/dxbc/core/helpers.js +3 -3
  100. package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
  101. package/dist/resource/formats/fbx/CjsFbxFormat.js +18 -20
  102. package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
  103. package/dist/resource/formats/flac/CjsFlacFormat.js +7 -13
  104. package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
  105. package/dist/resource/formats/fsd/32/CjsFsd32Format.js +29 -29
  106. package/dist/resource/formats/fsd/32/CjsFsd32Format.js.map +1 -1
  107. package/dist/resource/formats/fsd/64/CjsFsd64Format.js +3 -3
  108. package/dist/resource/formats/fsd/64/CjsFsd64Format.js.map +1 -1
  109. package/dist/resource/formats/fsd/64/core/CjsFsd64Binary.js +23 -23
  110. package/dist/resource/formats/fsd/64/core/CjsFsd64Binary.js.map +1 -1
  111. package/dist/resource/formats/fsd/64/core/CjsFsd64Reader.js +8 -8
  112. package/dist/resource/formats/fsd/64/core/CjsFsd64Reader.js.map +1 -1
  113. package/dist/resource/formats/fsd/CjsFsdFormat.js +23 -23
  114. package/dist/resource/formats/fsd/CjsFsdFormat.js.map +1 -1
  115. package/dist/resource/formats/gif/CjsGifFormat.js +24 -15
  116. package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
  117. package/dist/resource/formats/gltf/CjsGltfFormat.js +33 -98
  118. package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
  119. package/dist/resource/formats/gltf/core/helpers.js +3 -12
  120. package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
  121. package/dist/resource/formats/gr2/CjsGr2Format.js +27 -91
  122. package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
  123. package/dist/resource/formats/hlsl/CjsHlslFormat.js +22 -25
  124. package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
  125. package/dist/resource/formats/hlsl/core/carbonDescriptionToRuntime.js +1 -1
  126. package/dist/resource/formats/hlsl/core/carbonDescriptionToRuntime.js.map +1 -1
  127. package/dist/resource/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +3 -3
  128. package/dist/resource/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js.map +1 -1
  129. package/dist/resource/formats/ies/CjsIESFormat.js +29 -29
  130. package/dist/resource/formats/ies/CjsIESFormat.js.map +1 -1
  131. package/dist/resource/formats/jpeg/CjsJpegFormat.js +24 -15
  132. package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
  133. package/dist/resource/formats/jpeg/core/helpers.js +3 -5
  134. package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
  135. package/dist/resource/formats/jpeg/core/jpeg.js +58 -58
  136. package/dist/resource/formats/jpeg/core/jpeg.js.map +1 -1
  137. package/dist/resource/formats/jsonl/CjsJsonlFormat.js +3 -3
  138. package/dist/resource/formats/jsonl/CjsJsonlFormat.js.map +1 -1
  139. package/dist/resource/formats/mp3/CjsMp3Format.js +7 -14
  140. package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
  141. package/dist/resource/formats/mp3/core/helpers.js +3 -5
  142. package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
  143. package/dist/resource/formats/mp4/CjsMp4Format.js +7 -13
  144. package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
  145. package/dist/resource/formats/mp4/core/helpers.js +3 -5
  146. package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
  147. package/dist/resource/formats/obj/CjsObjFormat.js +92 -157
  148. package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
  149. package/dist/resource/formats/obj/core/helpers.js +5 -113
  150. package/dist/resource/formats/obj/core/helpers.js.map +1 -1
  151. package/dist/resource/formats/ogg/CjsOggFormat.js +7 -14
  152. package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
  153. package/dist/resource/formats/pickle/CjsPickleFormat.js +7 -12
  154. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  155. package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js +7 -7
  156. package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js.map +1 -1
  157. package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js +7 -7
  158. package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js.map +1 -1
  159. package/dist/resource/formats/png/CjsPngFormat.js +40 -15
  160. package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
  161. package/dist/resource/formats/png/core/helpers.js +4 -6
  162. package/dist/resource/formats/png/core/helpers.js.map +1 -1
  163. package/dist/resource/formats/red/CjsRedFormat.js +22 -28
  164. package/dist/resource/formats/red/CjsRedFormat.js.map +1 -1
  165. package/dist/resource/formats/schemabound/CjsSchemaBoundFormat.js +3 -7
  166. package/dist/resource/formats/schemabound/CjsSchemaBoundFormat.js.map +1 -1
  167. package/dist/resource/formats/schemabound/core/schemaBoundValues.js +5 -0
  168. package/dist/resource/formats/schemabound/core/schemaBoundValues.js.map +1 -1
  169. package/dist/resource/formats/sqlite/CjsSqliteFormat.js +4 -9
  170. package/dist/resource/formats/sqlite/CjsSqliteFormat.js.map +1 -1
  171. package/dist/resource/formats/static/CjsStaticFormat.js +4 -4
  172. package/dist/resource/formats/static/CjsStaticFormat.js.map +1 -1
  173. package/dist/resource/formats/stl/CjsStlFormat.js +39 -104
  174. package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
  175. package/dist/resource/formats/stl/core/helpers.js +5 -19
  176. package/dist/resource/formats/stl/core/helpers.js.map +1 -1
  177. package/dist/resource/formats/tga/CjsTgaFormat.js +26 -15
  178. package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
  179. package/dist/resource/formats/tga/core/helpers.js +3 -5
  180. package/dist/resource/formats/tga/core/helpers.js.map +1 -1
  181. package/dist/resource/formats/vta/CjsVtaFormat.js +8 -15
  182. package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
  183. package/dist/resource/formats/wav/CjsWavFormat.js +7 -14
  184. package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
  185. package/dist/resource/formats/wav/core/helpers.js +3 -5
  186. package/dist/resource/formats/wav/core/helpers.js.map +1 -1
  187. package/dist/resource/formats/webgl/CjsWebglFormat.js +103 -105
  188. package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
  189. package/dist/resource/formats/webgl/core/{errors.js → WebglReadError.js} +1 -1
  190. package/dist/resource/formats/webgl/core/WebglReadError.js.map +1 -0
  191. package/dist/resource/formats/webgl/core/effectPackage.js +1 -1
  192. package/dist/resource/formats/webgl/core/effectPackage.js.map +1 -1
  193. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +3 -3
  194. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  195. package/dist/resource/formats/webgl/core/glsl/{DxbcGlslHelpers.js → DxbcGlslHelperRegistry.js} +2 -2
  196. package/dist/resource/formats/webgl/core/glsl/DxbcGlslHelperRegistry.js.map +1 -0
  197. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +1 -1
  198. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
  199. package/dist/resource/formats/webgl/core/glslBackendBlock.js +1 -1
  200. package/dist/resource/formats/webgl/core/glslBackendBlock.js.map +1 -1
  201. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  202. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +28 -29
  203. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  204. package/dist/resource/formats/webgpu/core/{errors.js → WebgpuReadError.js} +1 -1
  205. package/dist/resource/formats/webgpu/core/WebgpuReadError.js.map +1 -0
  206. package/dist/resource/formats/webgpu/core/carbonWebgpu/validateContainer.js +1 -1
  207. package/dist/resource/formats/webgpu/core/carbonWebgpu/validateContainer.js.map +1 -1
  208. package/dist/resource/formats/webgpu/core/helpers.js +1 -1
  209. package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
  210. package/dist/resource/formats/webgpu/core/ir/lowerDxbcToIr.js +1 -1
  211. package/dist/resource/formats/webgpu/core/ir/lowerDxbcToIr.js.map +1 -1
  212. package/dist/resource/formats/webgpu/core/wgsl/buildWgslSet.js +18 -6
  213. package/dist/resource/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -1
  214. package/dist/resource/formats/webgpu/core/wgsl/lowerBindingLayout.js +39 -13
  215. package/dist/resource/formats/webgpu/core/wgsl/lowerBindingLayout.js.map +1 -1
  216. package/dist/resource/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +16 -14
  217. package/dist/resource/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js.map +1 -1
  218. package/dist/resource/formats/webm/CjsWebmFormat.js +8 -13
  219. package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
  220. package/dist/resource/formats/webm/core/helpers.js +3 -5
  221. package/dist/resource/formats/webm/core/helpers.js.map +1 -1
  222. package/dist/resource/formats/webp/CjsWebpFormat.js +8 -12
  223. package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
  224. package/dist/resource/formats/wem/CjsWemFormat.js +9 -17
  225. package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
  226. package/dist/resource/formats/wem/core/bitStream.js +35 -35
  227. package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
  228. package/dist/resource/formats/wem/core/helpers.js +1 -3
  229. package/dist/resource/formats/wem/core/helpers.js.map +1 -1
  230. package/dist/resource/formats/yaml/CjsYamlFormat.js +28 -37
  231. package/dist/resource/formats/yaml/CjsYamlFormat.js.map +1 -1
  232. package/dist/resource/imageio/ImageIO.js +142 -0
  233. package/dist/resource/imageio/ImageIO.js.map +1 -0
  234. package/dist/resource/imageio/index.js +17 -0
  235. package/dist/resource/imageio/index.js.map +1 -0
  236. package/dist/resource/index.js +7 -0
  237. package/dist/resource/index.js.map +1 -1
  238. package/dist/resource/shader/reflection/Tr2EffectResource.js +24 -2
  239. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  240. package/dist/resource/shader/reflection/Tr2Pass.js +76 -5
  241. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  242. package/dist/resource/texture/CjsTextureArrayConstructor.js +97 -0
  243. package/dist/resource/texture/CjsTextureArrayConstructor.js.map +1 -0
  244. package/dist/resource/texture/CjsTexturePackConstructor.js +160 -0
  245. package/dist/resource/texture/CjsTexturePackConstructor.js.map +1 -0
  246. package/dist/resource/texture/CjsTexturePipelineStepArray.js +72 -0
  247. package/dist/resource/texture/CjsTexturePipelineStepArray.js.map +1 -0
  248. package/dist/resource/texture/CjsTexturePipelineStepConvert.js +73 -0
  249. package/dist/resource/texture/CjsTexturePipelineStepConvert.js.map +1 -0
  250. package/dist/resource/texture/CjsTexturePipelineStepPack.js +71 -0
  251. package/dist/resource/texture/CjsTexturePipelineStepPack.js.map +1 -0
  252. package/dist/resource/texture/CjsTexturePipelineStepResize.js +123 -0
  253. package/dist/resource/texture/CjsTexturePipelineStepResize.js.map +1 -0
  254. package/dist/resource/texture/SolidColorTextureConstructor.js +11 -1
  255. package/dist/resource/texture/SolidColorTextureConstructor.js.map +1 -1
  256. package/dist/resource/texture/Tr2ImageRes.js +100 -68
  257. package/dist/resource/texture/Tr2ImageRes.js.map +1 -1
  258. package/dist/resource/texture/Tr2TexturePipeline.js +45 -25
  259. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  260. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +34 -1
  261. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  262. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +30 -3
  263. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
  264. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +81 -1
  265. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  266. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +36 -1
  267. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  268. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +146 -24
  269. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  270. package/dist/resource/texture/TriTextureRes.js +151 -29
  271. package/dist/resource/texture/TriTextureRes.js.map +1 -1
  272. package/dist/resource/texture/index.js +7 -0
  273. package/dist/resource/texture/index.js.map +1 -1
  274. package/dist/resource/texture/registerTextureResources.js +83 -0
  275. package/dist/resource/texture/registerTextureResources.js.map +1 -0
  276. package/dist/resource/texture/solidColorTexture.js +10 -19
  277. package/dist/resource/texture/solidColorTexture.js.map +1 -1
  278. package/dist/sof/EveSOF.js +39 -7
  279. package/dist/sof/EveSOF.js.map +1 -1
  280. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js +2 -2
  281. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -1
  282. package/dist/trinity/core/Tr2ImageIOHelpers.js +80 -17
  283. package/dist/trinity/core/Tr2ImageIOHelpers.js.map +1 -1
  284. package/dist/trinity/core/Tr2RenderUtils.js +1 -1
  285. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js +49 -62
  286. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -1
  287. package/dist/trinity/core/Tr2TextureReference.js +114 -0
  288. package/dist/trinity/core/Tr2TextureReference.js.map +1 -0
  289. package/dist/trinity/core/device/Tr2DepthStencil.js +2 -2
  290. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  291. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js +1 -1
  292. package/dist/trinity/core/index.js +1 -0
  293. package/dist/trinity/core/index.js.map +1 -1
  294. package/dist/trinity/core/lighting/Tr2LightManager.js +5 -4
  295. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  296. package/dist/trinity/core/procedural/GradientTextureConstructor.js +5 -4
  297. package/dist/trinity/core/procedural/GradientTextureConstructor.js.map +1 -1
  298. package/dist/trinity/core/procedural/gradientTexture.js +10 -13
  299. package/dist/trinity/core/procedural/gradientTexture.js.map +1 -1
  300. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +1 -1
  301. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  302. package/dist/trinity/eve/EveImpactOverlay.js +102 -50
  303. package/dist/trinity/eve/EveImpactOverlay.js.map +1 -1
  304. package/dist/trinity/eve/EveModularObjectModifier.js +9 -18
  305. package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
  306. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +175 -157
  307. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  308. package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js +100 -83
  309. package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js.map +1 -1
  310. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +26 -20
  311. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -1
  312. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js +368 -179
  313. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -1
  314. package/dist/trinity/eve/child/EveChildMesh.js +242 -234
  315. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  316. package/dist/trinity/eve/child/EveChildTurret.js +57 -16
  317. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  318. package/dist/trinity/eve/child/EveSpaceObjectChild.js +28 -1
  319. package/dist/trinity/eve/child/EveSpaceObjectChild.js.map +1 -1
  320. package/dist/trinity/eve/index.js +2 -2
  321. package/dist/trinity/eve/overlays/EveDamageOverlay.js +5 -1
  322. package/dist/trinity/eve/overlays/EveDamageOverlay.js.map +1 -1
  323. package/dist/trinity/eve/scene/EveSpaceScene.js +234 -233
  324. package/dist/trinity/eve/scene/EveSpaceScene.js.map +1 -1
  325. package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js +2 -0
  326. package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js.map +1 -1
  327. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +492 -437
  328. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  329. package/dist/trinity/generated/index.js +0 -1
  330. package/dist/trinity/generated/index.js.map +1 -1
  331. package/dist/trinity/generated/trinityCore/index.js +0 -1
  332. package/dist/trinity/generated/trinityCore/index.js.map +1 -1
  333. package/dist/trinity/index.js +3 -3
  334. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +10 -1
  335. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  336. package/dist/trinity/shader/Tr2DataTextureManager.js +152 -66
  337. package/dist/trinity/shader/Tr2DataTextureManager.js.map +1 -1
  338. package/dist/trinity/shader/Tr2Material.js +1 -1
  339. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js +5 -5
  340. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -1
  341. package/dist/trinityal/index.js +1 -1
  342. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js +2 -2
  343. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -1
  344. package/dist/trinityal/stub/Tr2SwapChainALStub.js +45 -45
  345. package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
  346. package/dist/trinityal/stub/Tr2TextureALStub.js +170 -170
  347. package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
  348. package/dist/trinityal/webgpu/CjsWebgpuDevice.js +234 -164
  349. package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
  350. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +7 -0
  351. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  352. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +78 -14
  353. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
  354. package/dist/trinityal/webgpu/core/CjsWebgpuUtils.js +94 -0
  355. package/dist/trinityal/webgpu/core/CjsWebgpuUtils.js.map +1 -0
  356. package/dist/trinityal/webgpu/internal.js +1 -0
  357. package/dist/trinityal/webgpu/internal.js.map +1 -1
  358. package/docs/global/reference/classes/README.md +90 -0
  359. package/docs/resource/concepts/format-capabilities.md +3 -3
  360. package/docs/resource/formats/README.md +1 -1
  361. package/docs/resource/reference/classes/core.md +31 -1
  362. package/docs/resource/reference/classes/formats.md +7 -7
  363. package/docs/resource/reference/classes/resources.md +76 -16
  364. package/docs/trinity/reference/classes/generated.md +0 -10
  365. package/docs/trinity/reference/classes/trinity-core.md +1692 -1682
  366. package/docs/trinityal/reference/classes/README.md +0 -10
  367. package/docs/trinityal/webgpu/reference/classes/README.md +276 -266
  368. package/package.json +4 -3
  369. package/dist/global/consts/webgpu/index.js +0 -2
  370. package/dist/global/consts/webgpu/textureFormats.js +0 -180
  371. package/dist/global/consts/webgpu/textureFormats.js.map +0 -1
  372. package/dist/resource/formats/dxbc/core/container.js.map +0 -1
  373. package/dist/resource/formats/dxbc/core/errors.js.map +0 -1
  374. package/dist/resource/formats/dxbc/core/program.js.map +0 -1
  375. package/dist/resource/formats/dxbc/core/signature.js.map +0 -1
  376. package/dist/resource/formats/stl/core/targets.js.map +0 -1
  377. package/dist/resource/formats/webgl/core/errors.js.map +0 -1
  378. package/dist/resource/formats/webgl/core/glsl/DxbcGlslHelpers.js.map +0 -1
  379. package/dist/resource/formats/webgpu/core/errors.js.map +0 -1
  380. package/dist/resource/texture/texturePipelineBehavior.js +0 -332
  381. package/dist/resource/texture/texturePipelineBehavior.js.map +0 -1
  382. package/dist/trinity/generated/trinityCore/Tr2TextureReference.js +0 -40
  383. package/dist/trinity/generated/trinityCore/Tr2TextureReference.js.map +0 -1
  384. package/dist/trinityal/Tr2BitmapDimensions.js.map +0 -1
@@ -3,7 +3,7 @@ import { edit, type, carbon, impl, CjsSchema } from '#schema';
3
3
  import { EveEntity as _EveEntity } from '../../EveEntity.js';
4
4
  import { EveComponentType } from '../../EveComponentTypes.js';
5
5
  import { EveTurretAiming } from './EveTurretAiming.js';
6
- import { EveTurretTarget as _EveTurretTarget } from './EveTurretTarget.js';
6
+ import { EveTurretTarget as _EveTurretTarget, EVE_TURRET_RANDOM_DELAY_MAX } from './EveTurretTarget.js';
7
7
  import { mat4 } from '#math/mat4';
8
8
  import { quat } from '#math/quat';
9
9
  import { vec3 } from '#math/vec3';
@@ -19,12 +19,12 @@ import '#consts/render-context';
19
19
  import { Tr2Vector4Parameter as _Tr2Vector4Parameter } from '../../../shader/parameter/Tr2Vector4Parameter.js';
20
20
  import { ITr2Renderable } from '../../../core/ITr2Renderable.js';
21
21
 
22
- let _initProto, _initClass, _init_impactBehaviour, _init_extra_impactBehaviour, _init_firingEffect, _init_extra_firingEffect, _init_ambientEffect, _init_extra_ambientEffect, _init_name, _init_extra_name, _init_firingEffectResPath, _init_extra_firingEffectResPath, _init_chooseRandomLocator, _init_extra_chooseRandomLocator, _init_boundingSphere, _init_extra_boundingSphere, _init_randomizeExplosionRotation, _init_extra_randomizeExplosionRotation, _init_lodLevel, _init_extra_lodLevel, _init_currentCyclingFiresPos, _init_extra_currentCyclingFiresPos, _init_useRandomFiringDelay, _init_extra_useRandomFiringDelay, _init_bottomClipHeight, _init_extra_bottomClipHeight, _init_geometryResource, _init_extra_geometryResource, _init_maxTrackingTime, _init_extra_maxTrackingTime, _init_visibleCount, _init_extra_visibleCount, _init_trackingInfluence, _init_extra_trackingInfluence, _init_swarmID, _init_extra_swarmID, _init_maxCyclingFirePos, _init_extra_maxCyclingFirePos, _init_playMovementSound, _init_extra_playMovementSound, _init_isOnline, _init_extra_isOnline, _init_target, _init_extra_target, _init_locatorName, _init_extra_locatorName, _init_sysBonePitchFactor, _init_extra_sysBonePitchFactor, _init_sysBonePitchMax, _init_extra_sysBonePitchMax, _init_sysBonePitchMin, _init_extra_sysBonePitchMin, _init_sysBonePitchOffset, _init_extra_sysBonePitchOffset, _init_sysBonePitch01Factor, _init_extra_sysBonePitch01Factor, _init_sysBonePitch01Offset, _init_extra_sysBonePitch01Offset, _init_sysBonePitch02Factor, _init_extra_sysBonePitch02Factor, _init_sysBonePitch02Offset, _init_extra_sysBonePitch02Offset, _init_sysBonePitch03Factor, _init_extra_sysBonePitch03Factor, _init_sysBonePitch03Offset, _init_extra_sysBonePitch03Offset, _init_updatePitchPose, _init_extra_updatePitchPose, _init_geometryResPath, _init_extra_geometryResPath, _init_impactSize, _init_extra_impactSize, _init_state, _init_extra_state, _init_sysBoneHeight, _init_extra_sysBoneHeight, _init_randomFiringDelay, _init_extra_randomFiringDelay, _init_turretEffect, _init_extra_turretEffect, _init_idleToTargetingMovementAudioEvent, _init_extra_idleToTargetingMovementAudioEvent, _init_targetingToIdleMovementAudioEvent, _init_extra_targetingToIdleMovementAudioEvent, _init_generatedDistributedAmbientEffect, _init_extra_generatedDistributedAmbientEffect, _init_cyclingFireGroupCount, _init_extra_cyclingFireGroupCount, _init_turretMovementObserver, _init_extra_turretMovementObserver, _init_slotNumber, _init_extra_slotNumber, _init_ambientEffectEditingMode, _init_extra_ambientEffectEditingMode, _init_displayEffects, _init_extra_displayEffects, _init_display, _init_extra_display, _init_useDynamicBounds, _init_extra_useDynamicBounds, _init_estimatedPixelDiameter, _init_extra_estimatedPixelDiameter, _init_lowLodFiringEffectScale, _init_extra_lowLodFiringEffectScale, _init_lowLodFiringEffectTranslation, _init_extra_lowLodFiringEffectTranslation, _init_lowLodFiringEffectRotation, _init_extra_lowLodFiringEffectRotation, _init_useLowLodFiringTransform, _init_extra_useLowLodFiringTransform, _init_laserMissBehaviour, _init_extra_laserMissBehaviour, _init_projectileMissBehaviour, _init_extra_projectileMissBehaviour;
22
+ let _initProto, _initStatic, _initClass, _init_impactBehaviour, _init_extra_impactBehaviour, _init_firingEffect, _init_extra_firingEffect, _init_ambientEffect, _init_extra_ambientEffect, _init_name, _init_extra_name, _init_firingEffectResPath, _init_extra_firingEffectResPath, _init_chooseRandomLocator, _init_extra_chooseRandomLocator, _init_boundingSphere, _init_extra_boundingSphere, _init_randomizeExplosionRotation, _init_extra_randomizeExplosionRotation, _init_lodLevel, _init_extra_lodLevel, _init_currentCyclingFiresPos, _init_extra_currentCyclingFiresPos, _init_useRandomFiringDelay, _init_extra_useRandomFiringDelay, _init_bottomClipHeight, _init_extra_bottomClipHeight, _init_geometryResource, _init_extra_geometryResource, _init_maxTrackingTime, _init_extra_maxTrackingTime, _init_visibleCount, _init_extra_visibleCount, _init_trackingInfluence, _init_extra_trackingInfluence, _init_swarmID, _init_extra_swarmID, _init_maxCyclingFirePos, _init_extra_maxCyclingFirePos, _init_playMovementSound, _init_extra_playMovementSound, _init_isOnline, _init_extra_isOnline, _init_target, _init_extra_target, _init_locatorName, _init_extra_locatorName, _init_sysBonePitchFactor, _init_extra_sysBonePitchFactor, _init_sysBonePitchMax, _init_extra_sysBonePitchMax, _init_sysBonePitchMin, _init_extra_sysBonePitchMin, _init_sysBonePitchOffset, _init_extra_sysBonePitchOffset, _init_sysBonePitch01Factor, _init_extra_sysBonePitch01Factor, _init_sysBonePitch01Offset, _init_extra_sysBonePitch01Offset, _init_sysBonePitch02Factor, _init_extra_sysBonePitch02Factor, _init_sysBonePitch02Offset, _init_extra_sysBonePitch02Offset, _init_sysBonePitch03Factor, _init_extra_sysBonePitch03Factor, _init_sysBonePitch03Offset, _init_extra_sysBonePitch03Offset, _init_updatePitchPose, _init_extra_updatePitchPose, _init_geometryResPath, _init_extra_geometryResPath, _init_impactSize, _init_extra_impactSize, _init_state, _init_extra_state, _init_sysBoneHeight, _init_extra_sysBoneHeight, _init_randomFiringDelay, _init_extra_randomFiringDelay, _init_turretEffect, _init_extra_turretEffect, _init_idleToTargetingMovementAudioEvent, _init_extra_idleToTargetingMovementAudioEvent, _init_targetingToIdleMovementAudioEvent, _init_extra_targetingToIdleMovementAudioEvent, _init_generatedDistributedAmbientEffect, _init_extra_generatedDistributedAmbientEffect, _init_cyclingFireGroupCount, _init_extra_cyclingFireGroupCount, _init_turretMovementObserver, _init_extra_turretMovementObserver, _init_slotNumber, _init_extra_slotNumber, _init_ambientEffectEditingMode, _init_extra_ambientEffectEditingMode, _init_displayEffects, _init_extra_displayEffects, _init_display, _init_extra_display, _init_useDynamicBounds, _init_extra_useDynamicBounds, _init_estimatedPixelDiameter, _init_extra_estimatedPixelDiameter, _init_lowLodFiringEffectScale, _init_extra_lowLodFiringEffectScale, _init_lowLodFiringEffectTranslation, _init_extra_lowLodFiringEffectTranslation, _init_lowLodFiringEffectRotation, _init_extra_lowLodFiringEffectRotation, _init_useLowLodFiringTransform, _init_extra_useLowLodFiringTransform, _init_laserMissBehaviour, _init_extra_laserMissBehaviour, _init_projectileMissBehaviour, _init_extra_projectileMissBehaviour;
23
23
 
24
- /** Carbon BoundingSphereTransform (Utilities/BoundingSphere.cpp:70-81):
25
- * center = TransformCoord(center, tf); radius *= max of the basis row lengths
26
- * (|GetX/Y/Z| = gl flat [0..2]/[4..6]/[8..10]). Single-matrix application -
27
- * NO composition, NO operand swap. Mutates the packed (x, y, z, radius)
24
+ /** Carbon BoundingSphereTransform (Utilities/BoundingSphere.cpp:70-81):
25
+ * center = TransformCoord(center, tf); radius *= max of the basis row lengths
26
+ * (|GetX/Y/Z| = gl flat [0..2]/[4..6]/[8..10]). Single-matrix application -
27
+ * NO composition, NO operand swap. Mutates the packed (x, y, z, radius)
28
28
  * sphere in place. */
29
29
  function BoundingSphereTransform(transform, sphere) {
30
30
  vec3.transformMat4(sphere, sphere, transform);
@@ -38,12 +38,13 @@ new class extends _identity {
38
38
  static [class EveTurretSet extends _EveEntity {
39
39
  static {
40
40
  ({
41
- e: [_init_impactBehaviour, _init_extra_impactBehaviour, _init_firingEffect, _init_extra_firingEffect, _init_ambientEffect, _init_extra_ambientEffect, _init_name, _init_extra_name, _init_firingEffectResPath, _init_extra_firingEffectResPath, _init_chooseRandomLocator, _init_extra_chooseRandomLocator, _init_boundingSphere, _init_extra_boundingSphere, _init_randomizeExplosionRotation, _init_extra_randomizeExplosionRotation, _init_lodLevel, _init_extra_lodLevel, _init_currentCyclingFiresPos, _init_extra_currentCyclingFiresPos, _init_useRandomFiringDelay, _init_extra_useRandomFiringDelay, _init_bottomClipHeight, _init_extra_bottomClipHeight, _init_geometryResource, _init_extra_geometryResource, _init_maxTrackingTime, _init_extra_maxTrackingTime, _init_visibleCount, _init_extra_visibleCount, _init_trackingInfluence, _init_extra_trackingInfluence, _init_swarmID, _init_extra_swarmID, _init_maxCyclingFirePos, _init_extra_maxCyclingFirePos, _init_playMovementSound, _init_extra_playMovementSound, _init_isOnline, _init_extra_isOnline, _init_target, _init_extra_target, _init_locatorName, _init_extra_locatorName, _init_sysBonePitchFactor, _init_extra_sysBonePitchFactor, _init_sysBonePitchMax, _init_extra_sysBonePitchMax, _init_sysBonePitchMin, _init_extra_sysBonePitchMin, _init_sysBonePitchOffset, _init_extra_sysBonePitchOffset, _init_sysBonePitch01Factor, _init_extra_sysBonePitch01Factor, _init_sysBonePitch01Offset, _init_extra_sysBonePitch01Offset, _init_sysBonePitch02Factor, _init_extra_sysBonePitch02Factor, _init_sysBonePitch02Offset, _init_extra_sysBonePitch02Offset, _init_sysBonePitch03Factor, _init_extra_sysBonePitch03Factor, _init_sysBonePitch03Offset, _init_extra_sysBonePitch03Offset, _init_updatePitchPose, _init_extra_updatePitchPose, _init_geometryResPath, _init_extra_geometryResPath, _init_impactSize, _init_extra_impactSize, _init_state, _init_extra_state, _init_sysBoneHeight, _init_extra_sysBoneHeight, _init_randomFiringDelay, _init_extra_randomFiringDelay, _init_turretEffect, _init_extra_turretEffect, _init_idleToTargetingMovementAudioEvent, _init_extra_idleToTargetingMovementAudioEvent, _init_targetingToIdleMovementAudioEvent, _init_extra_targetingToIdleMovementAudioEvent, _init_generatedDistributedAmbientEffect, _init_extra_generatedDistributedAmbientEffect, _init_cyclingFireGroupCount, _init_extra_cyclingFireGroupCount, _init_turretMovementObserver, _init_extra_turretMovementObserver, _init_slotNumber, _init_extra_slotNumber, _init_ambientEffectEditingMode, _init_extra_ambientEffectEditingMode, _init_displayEffects, _init_extra_displayEffects, _init_display, _init_extra_display, _init_useDynamicBounds, _init_extra_useDynamicBounds, _init_estimatedPixelDiameter, _init_extra_estimatedPixelDiameter, _init_lowLodFiringEffectScale, _init_extra_lowLodFiringEffectScale, _init_lowLodFiringEffectTranslation, _init_extra_lowLodFiringEffectTranslation, _init_lowLodFiringEffectRotation, _init_extra_lowLodFiringEffectRotation, _init_useLowLodFiringTransform, _init_extra_useLowLodFiringTransform, _init_laserMissBehaviour, _init_extra_laserMissBehaviour, _init_projectileMissBehaviour, _init_extra_projectileMissBehaviour, _initProto],
41
+ e: [_init_impactBehaviour, _init_extra_impactBehaviour, _init_firingEffect, _init_extra_firingEffect, _init_ambientEffect, _init_extra_ambientEffect, _init_name, _init_extra_name, _init_firingEffectResPath, _init_extra_firingEffectResPath, _init_chooseRandomLocator, _init_extra_chooseRandomLocator, _init_boundingSphere, _init_extra_boundingSphere, _init_randomizeExplosionRotation, _init_extra_randomizeExplosionRotation, _init_lodLevel, _init_extra_lodLevel, _init_currentCyclingFiresPos, _init_extra_currentCyclingFiresPos, _init_useRandomFiringDelay, _init_extra_useRandomFiringDelay, _init_bottomClipHeight, _init_extra_bottomClipHeight, _init_geometryResource, _init_extra_geometryResource, _init_maxTrackingTime, _init_extra_maxTrackingTime, _init_visibleCount, _init_extra_visibleCount, _init_trackingInfluence, _init_extra_trackingInfluence, _init_swarmID, _init_extra_swarmID, _init_maxCyclingFirePos, _init_extra_maxCyclingFirePos, _init_playMovementSound, _init_extra_playMovementSound, _init_isOnline, _init_extra_isOnline, _init_target, _init_extra_target, _init_locatorName, _init_extra_locatorName, _init_sysBonePitchFactor, _init_extra_sysBonePitchFactor, _init_sysBonePitchMax, _init_extra_sysBonePitchMax, _init_sysBonePitchMin, _init_extra_sysBonePitchMin, _init_sysBonePitchOffset, _init_extra_sysBonePitchOffset, _init_sysBonePitch01Factor, _init_extra_sysBonePitch01Factor, _init_sysBonePitch01Offset, _init_extra_sysBonePitch01Offset, _init_sysBonePitch02Factor, _init_extra_sysBonePitch02Factor, _init_sysBonePitch02Offset, _init_extra_sysBonePitch02Offset, _init_sysBonePitch03Factor, _init_extra_sysBonePitch03Factor, _init_sysBonePitch03Offset, _init_extra_sysBonePitch03Offset, _init_updatePitchPose, _init_extra_updatePitchPose, _init_geometryResPath, _init_extra_geometryResPath, _init_impactSize, _init_extra_impactSize, _init_state, _init_extra_state, _init_sysBoneHeight, _init_extra_sysBoneHeight, _init_randomFiringDelay, _init_extra_randomFiringDelay, _init_turretEffect, _init_extra_turretEffect, _init_idleToTargetingMovementAudioEvent, _init_extra_idleToTargetingMovementAudioEvent, _init_targetingToIdleMovementAudioEvent, _init_extra_targetingToIdleMovementAudioEvent, _init_generatedDistributedAmbientEffect, _init_extra_generatedDistributedAmbientEffect, _init_cyclingFireGroupCount, _init_extra_cyclingFireGroupCount, _init_turretMovementObserver, _init_extra_turretMovementObserver, _init_slotNumber, _init_extra_slotNumber, _init_ambientEffectEditingMode, _init_extra_ambientEffectEditingMode, _init_displayEffects, _init_extra_displayEffects, _init_display, _init_extra_display, _init_useDynamicBounds, _init_extra_useDynamicBounds, _init_estimatedPixelDiameter, _init_extra_estimatedPixelDiameter, _init_lowLodFiringEffectScale, _init_extra_lowLodFiringEffectScale, _init_lowLodFiringEffectTranslation, _init_extra_lowLodFiringEffectTranslation, _init_lowLodFiringEffectRotation, _init_extra_lowLodFiringEffectRotation, _init_useLowLodFiringTransform, _init_extra_useLowLodFiringTransform, _init_laserMissBehaviour, _init_extra_laserMissBehaviour, _init_projectileMissBehaviour, _init_extra_projectileMissBehaviour, _initProto, _initStatic],
42
42
  c: [_EveTurretSet, _initClass]
43
43
  } = _applyDecs2311(this, [type.define({
44
44
  className: "EveTurretSet",
45
45
  family: "eve/attachment/turrets"
46
- }), carbon.inherit(ITr2Renderable)], [[[edit, edit.notify, edit, edit.persist, type, type.int32, void 0, type.enum("ImpactBehaviour")], 16, "impactBehaviour"], [type.objectRef("EveTurretFiringFX"), 0, "firingEffect"], [[edit, edit.persistOnly, void 0, type.model("IEveSpaceObjectChild")], 16, "ambientEffect"], [[edit, edit.persist, type, type.string], 16, "name"], [[edit, edit.persist, type, type.string], 16, "firingEffectResPath"], [[edit, edit.persist, type, type.boolean], 16, "chooseRandomLocator"], [[edit, edit.persist, type, type.vec4], 16, "boundingSphere"], [[edit, edit.persist, type, type.boolean], 16, "randomizeExplosionRotation"], [[edit, edit.read, type, type.int32, void 0, type.enum("LOD")], 16, "lodLevel"], [[edit, edit.read, type, type.uint32], 16, "currentCyclingFiresPos"], [[edit, edit.persist, type, type.boolean], 16, "useRandomFiringDelay"], [[edit, edit.persist, type, type.float32], 16, "bottomClipHeight"], [[edit, edit.read, void 0, type.objectRef("TriGeometryRes")], 16, "geometryResource"], [[edit, edit.persist, type, type.float32], 16, "maxTrackingTime"], [[edit, edit.read, type, type.uint32], 16, "visibleCount"], [[edit, edit.read, type, type.float32], 16, "trackingInfluence"], [[edit, edit.readwrite, type, type.uint32], 16, "swarmID"], [[edit, edit.persist, type, type.uint32], 16, "maxCyclingFirePos"], [[edit, edit.persist, type, type.boolean], 16, "playMovementSound"], [[edit, edit.readwrite, type, type.boolean], 16, "isOnline"], [[edit, edit.read, void 0, type.objectRef("EveTurretTarget")], 16, "target"], [[edit, edit.persist, type, type.string], 16, "locatorName"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitchFactor"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitchMax"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitchMin"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitchOffset"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitch01Factor"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitch01Offset"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitch02Factor"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitch02Offset"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitch03Factor"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitch03Offset"], [[edit, edit.persist, type, type.boolean], 16, "updatePitchPose"], [[edit, edit.notify, edit, edit.persist, type, type.string], 16, "geometryResPath"], [[edit, edit.persist, type, type.float32], 16, "impactSize"], [[edit, edit.persist, type, type.int32, void 0, type.enum("State")], 16, "state"], [[edit, edit.persist, type, type.float32], 16, "sysBoneHeight"], [[edit, edit.read, type, type.float32], 16, "randomFiringDelay"], [[edit, edit.persist, void 0, type.model("Tr2Effect")], 16, "turretEffect"], [[edit, edit.persist, type, type.string], 16, "idleToTargetingMovementAudioEvent"], [[edit, edit.persist, type, type.string], 16, "targetingToIdleMovementAudioEvent"], [[edit, edit.read, void 0, type.objectRef("EveChildInstanceContainer")], 16, "generatedDistributedAmbientEffect"], [[edit, edit.persist, type, type.uint32], 16, "cyclingFireGroupCount"], [[edit, edit.persist, void 0, type.model("TriObserverLocal")], 16, "turretMovementObserver"], [[edit, edit.readwrite, type, type.int32], 16, "slotNumber"], [[edit, edit.notify, edit, edit.readwrite, type, type.boolean], 16, "ambientEffectEditingMode"], [[edit, edit.readwrite, type, type.boolean], 16, "displayEffects"], [[edit, edit.readwrite, type, type.boolean], 16, "display"], [[edit, edit.notify, edit, edit.persist, type, type.boolean], 16, "useDynamicBounds"], [[edit, edit.read, type, type.float32], 16, "estimatedPixelDiameter"], [[edit, edit.persist, type, type.vec3], 16, "lowLodFiringEffectScale"], [[edit, edit.persist, type, type.vec3], 16, "lowLodFiringEffectTranslation"], [[edit, edit.persist, type, type.quat], 16, "lowLodFiringEffectRotation"], [[edit, edit.persist, type, type.boolean], 16, "useLowLodFiringTransform"], [[edit, edit.persist, type, type.boolean], 16, "laserMissBehaviour"], [[edit, edit.persist, type, type.boolean], 16, "projectileMissBehaviour"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Geometry resources are duck-typed; the runtime Trinity layer stores their computed sphere without creating render buffers.")], 18, "RebuildBoundingSphere"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Animation calls are forwarded to hydrated turret/controller objects without Carbon's Granny controller.")], 18, "ForceStateDeactive"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Animation calls are forwarded to hydrated turret/controller objects without Carbon's Granny controller.")], 18, "ForceStateTargeting"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The graph freezes its LOD state; geometry creation is not ported yet.")], 18, "FreezeHighDetailLOD"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShader"], [[impl, impl.adapted, void 0, impl.reason("Carbon's by-value embed becomes an accessor because the pose pipeline (the aiming consumer) lives behind the animation seam.")], 18, "GetAiming"], [[impl, impl.custom, void 0, impl.reason("The combined runtime keeps SOF independently importable by putting the nominal Tr2Effect application boundary on the owning turret class.")], 18, "ApplySofTurretMaterial"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShotTimeVariance"], [[carbon, carbon.method, impl, impl.implemented], 18, "MissQueueSize"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLastShotTime"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Animation calls are forwarded to hydrated turret/controller objects without Carbon's Granny controller.")], 18, "EnterStateDeactive"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon's geometry/animation selection is represented by portable turret records and controller forwarding.")], 18, "EnterStateFiring"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Animation calls are forwarded to hydrated turret/controller objects without Carbon's Granny controller.")], 18, "EnterStateIdle"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Animation calls are forwarded to hydrated turret/controller objects without Carbon's Granny controller.")], 18, "EnterStateReloading"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Animation calls are forwarded to hydrated turret/controller objects without Carbon's Granny controller.")], 18, "EnterStateTargeting"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Controller ownership is represented by direct firing/ambient child forwarding.")], 18, "HandleControllerEvent"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Portable turret records and duck-typed geometry bone transforms replace Carbon's CMF/Granny split.")], 18, "GetFiringBoneWorldTransform"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Controller ownership is represented by direct firing/ambient child forwarding.")], 18, "SetControllerVariable"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetShotMissed"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Controller ownership is represented by direct firing/ambient child forwarding.")], 18, "StartControllers"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("InitializeGeometryResource and the granny skeleton load are not ported; Carbon calls them from here (cpp:146-165).")], 18, "Initialize"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("JS dispatches the native hook using the exposed member name; existing class-owned rendering/resource adaptations remain unchanged.")], 18, "OnModified"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetFiringEffect"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon QueryInterface target attachment is delegated to EveTurretTarget's browser-compatible target validation.")], 18, "SetTargetObject"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetTargetObject"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetTargetScale"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon builds hidden SingleTurret records from geometry locators; browser hosts may provide equivalent portable records directly.")], 18, "SetTurrets"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon builds hidden SingleTurret records from geometry locators; browser hosts may provide equivalent portable records directly.")], 18, "AddTurret"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetTurrets"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Portable records replace Carbon's CMF/Granny SingleTurretData allocation while retaining its fixed 24-turret limit and scale removal.")], 18, "SetLocalTransform"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetParentTransform"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateTurretTransforms"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The closest portable turret is selected from its world up-axis and the target tracking position.")], 18, "GetClosestTurret"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("This combined browser convenience update runs Carbon's explicit synchronous and asynchronous phases in order.")], 18, "Update"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Animation cleanup and task dispatch are forwarded through portable records; target and firing timing remain source-faithful.")], 18, "UpdateSyncronous"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Skeleton realization is not ported yet; portable turret records may consume the same local-target tracking hook.")], 18, "UpdateAsyncronous"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Renderable collection is backend-neutral; geometry and batch realization are not ported yet.")], 18, "GetRenderables"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Visibility is forwarded through backend-neutral firing and ambient graph contracts.")], 18, "UpdateVisibility"], [[carbon, carbon.method, impl, impl.implemented], 18, "RegisterComponents"], [[carbon, carbon.method, impl, impl.implemented], 18, "UnRegisterComponents"], [[carbon, carbon.method, impl, impl.implemented], 18, "HasTransparentBatches"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Instance stream, vertex declaration and realized LOD allocations are not ported yet; Trinity records their canonical geometry source and instance count.")], 18, "GetBatches"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetSortValue"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The length-1 out array replaces the float& out-param; the shadow math is ported, including exactly which paths write the out value.")], 18, "IsCastingShadow"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Instance stream, vertex declaration and LOD allocations (cpp:2227-2250) are not ported; the batch records the geometry source, turret effect, per-object data and the CPU-known instance count meanwhile.")], 18, "GetShadowBatches"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Trinity fills the CPU-known EveTurretSet VS/PS RawData fields; bone-palette ring offsets and IsGood/GetMeshCount realization gates are not ported yet, while the CPU gate is geometry presence.")], 18, "GetPerObjectData"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShadowPerObjectData"]], 0, void 0, _EveEntity));
46
+ }), carbon.inherit(ITr2Renderable)], [[[edit, edit.notify, edit, edit.persist, type, type.int32, void 0, type.enum("ImpactBehaviour")], 16, "impactBehaviour"], [type.objectRef("EveTurretFiringFX"), 0, "firingEffect"], [[edit, edit.persistOnly, void 0, type.model("IEveSpaceObjectChild")], 16, "ambientEffect"], [[edit, edit.persist, type, type.string], 16, "name"], [[edit, edit.persist, type, type.string], 16, "firingEffectResPath"], [[edit, edit.persist, type, type.boolean], 16, "chooseRandomLocator"], [[edit, edit.persist, type, type.vec4], 16, "boundingSphere"], [[edit, edit.persist, type, type.boolean], 16, "randomizeExplosionRotation"], [[edit, edit.read, type, type.int32, void 0, type.enum("LOD")], 16, "lodLevel"], [[edit, edit.read, type, type.uint32], 16, "currentCyclingFiresPos"], [[edit, edit.persist, type, type.boolean], 16, "useRandomFiringDelay"], [[edit, edit.persist, type, type.float32], 16, "bottomClipHeight"], [[edit, edit.read, void 0, type.objectRef("TriGeometryRes")], 16, "geometryResource"], [[edit, edit.persist, type, type.float32], 16, "maxTrackingTime"], [[edit, edit.read, type, type.uint32], 16, "visibleCount"], [[edit, edit.read, type, type.float32], 16, "trackingInfluence"], [[edit, edit.readwrite, type, type.uint32], 16, "swarmID"], [[edit, edit.persist, type, type.uint32], 16, "maxCyclingFirePos"], [[edit, edit.persist, type, type.boolean], 16, "playMovementSound"], [[edit, edit.readwrite, type, type.boolean], 16, "isOnline"], [[edit, edit.read, void 0, type.objectRef("EveTurretTarget")], 16, "target"], [[edit, edit.persist, type, type.string], 16, "locatorName"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitchFactor"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitchMax"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitchMin"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitchOffset"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitch01Factor"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitch01Offset"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitch02Factor"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitch02Offset"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitch03Factor"], [[edit, edit.persist, type, type.float32], 16, "sysBonePitch03Offset"], [[edit, edit.persist, type, type.boolean], 16, "updatePitchPose"], [[edit, edit.notify, edit, edit.persist, type, type.string], 16, "geometryResPath"], [[edit, edit.persist, type, type.float32], 16, "impactSize"], [[edit, edit.persist, type, type.int32, void 0, type.enum("State")], 16, "state"], [[edit, edit.persist, type, type.float32], 16, "sysBoneHeight"], [[edit, edit.read, type, type.float32], 16, "randomFiringDelay"], [[edit, edit.persist, void 0, type.model("Tr2Effect")], 16, "turretEffect"], [[edit, edit.persist, type, type.string], 16, "idleToTargetingMovementAudioEvent"], [[edit, edit.persist, type, type.string], 16, "targetingToIdleMovementAudioEvent"], [[edit, edit.read, void 0, type.objectRef("EveChildInstanceContainer")], 16, "generatedDistributedAmbientEffect"], [[edit, edit.persist, type, type.uint32], 16, "cyclingFireGroupCount"], [[edit, edit.persist, void 0, type.model("TriObserverLocal")], 16, "turretMovementObserver"], [[edit, edit.readwrite, type, type.int32], 16, "slotNumber"], [[edit, edit.notify, edit, edit.readwrite, type, type.boolean], 16, "ambientEffectEditingMode"], [[edit, edit.readwrite, type, type.boolean], 16, "displayEffects"], [[edit, edit.readwrite, type, type.boolean], 16, "display"], [[edit, edit.notify, edit, edit.persist, type, type.boolean], 16, "useDynamicBounds"], [[edit, edit.read, type, type.float32], 16, "estimatedPixelDiameter"], [[edit, edit.persist, type, type.vec3], 16, "lowLodFiringEffectScale"], [[edit, edit.persist, type, type.vec3], 16, "lowLodFiringEffectTranslation"], [[edit, edit.persist, type, type.quat], 16, "lowLodFiringEffectRotation"], [[edit, edit.persist, type, type.boolean], 16, "useLowLodFiringTransform"], [[edit, edit.persist, type, type.boolean], 16, "laserMissBehaviour"], [[edit, edit.persist, type, type.boolean], 16, "projectileMissBehaviour"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Geometry resources are duck-typed; the runtime Trinity layer stores their computed sphere without creating render buffers.")], 18, "RebuildBoundingSphere"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Animation calls are forwarded to hydrated turret/controller objects without Carbon's Granny controller.")], 18, "ForceStateDeactive"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Animation calls are forwarded to hydrated turret/controller objects without Carbon's Granny controller.")], 18, "ForceStateTargeting"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The graph freezes its LOD state; geometry creation is not ported yet.")], 18, "FreezeHighDetailLOD"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShader"], [[impl, impl.adapted, void 0, impl.reason("Carbon's by-value embed becomes an accessor because the pose pipeline (the aiming consumer) lives behind the animation seam.")], 18, "GetAiming"], [[impl, impl.custom, void 0, impl.reason("The combined runtime keeps SOF independently importable by putting the nominal Tr2Effect application boundary on the owning turret class.")], 18, "ApplySofTurretMaterial"], [[impl, impl.custom, void 0, impl.reason("The combined runtime keeps SOF independently importable, so the Tr2Effect half of Carbon's EveSOF helper lives beside the turret classes that own the effects.")], 26, "applyFactionToTurretShader"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShotTimeVariance"], [[carbon, carbon.method, impl, impl.implemented], 18, "MissQueueSize"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLastShotTime"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Animation calls are forwarded to hydrated turret/controller objects without Carbon's Granny controller.")], 18, "EnterStateDeactive"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon's geometry/animation selection is represented by portable turret records and controller forwarding.")], 18, "EnterStateFiring"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Animation calls are forwarded to hydrated turret/controller objects without Carbon's Granny controller.")], 18, "EnterStateIdle"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Animation calls are forwarded to hydrated turret/controller objects without Carbon's Granny controller.")], 18, "EnterStateReloading"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Animation calls are forwarded to hydrated turret/controller objects without Carbon's Granny controller.")], 18, "EnterStateTargeting"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Controller ownership is represented by direct firing/ambient child forwarding.")], 18, "HandleControllerEvent"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Portable turret records and duck-typed geometry bone transforms replace Carbon's CMF/Granny split.")], 18, "GetFiringBoneWorldTransform"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Controller ownership is represented by direct firing/ambient child forwarding.")], 18, "SetControllerVariable"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetShotMissed"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Controller ownership is represented by direct firing/ambient child forwarding.")], 18, "StartControllers"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("InitializeGeometryResource and the granny skeleton load are not ported; Carbon calls them from here (cpp:146-165).")], 18, "Initialize"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("JS dispatches the native hook using the exposed member name; existing class-owned rendering/resource adaptations remain unchanged.")], 18, "OnModified"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetFiringEffect"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon QueryInterface target attachment is delegated to EveTurretTarget's browser-compatible target validation.")], 18, "SetTargetObject"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetTargetObject"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetTargetScale"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon builds hidden SingleTurret records from geometry locators; browser hosts may provide equivalent portable records directly.")], 18, "SetTurrets"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon builds hidden SingleTurret records from geometry locators; browser hosts may provide equivalent portable records directly.")], 18, "AddTurret"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetTurrets"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Portable records replace Carbon's CMF/Granny SingleTurretData allocation while retaining its fixed 24-turret limit and scale removal.")], 18, "SetLocalTransform"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetParentTransform"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateTurretTransforms"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The closest portable turret is selected from its world up-axis and the target tracking position.")], 18, "GetClosestTurret"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("This combined browser convenience update runs Carbon's explicit synchronous and asynchronous phases in order.")], 18, "Update"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Animation cleanup and task dispatch are forwarded through portable records; target and firing timing remain source-faithful.")], 18, "UpdateSyncronous"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Skeleton realization is not ported yet; portable turret records may consume the same local-target tracking hook.")], 18, "UpdateAsyncronous"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Renderable collection is backend-neutral; geometry and batch realization are not ported yet.")], 18, "GetRenderables"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Visibility is forwarded through backend-neutral firing and ambient graph contracts.")], 18, "UpdateVisibility"], [[carbon, carbon.method, impl, impl.implemented], 18, "RegisterComponents"], [[carbon, carbon.method, impl, impl.implemented], 18, "UnRegisterComponents"], [[carbon, carbon.method, impl, impl.implemented], 18, "HasTransparentBatches"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Instance stream, vertex declaration and realized LOD allocations are not ported yet; Trinity records their canonical geometry source and instance count.")], 18, "GetBatches"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetSortValue"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The length-1 out array replaces the float& out-param; the shadow math is ported, including exactly which paths write the out value.")], 18, "IsCastingShadow"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Instance stream, vertex declaration and LOD allocations (cpp:2227-2250) are not ported; the batch records the geometry source, turret effect, per-object data and the CPU-known instance count meanwhile.")], 18, "GetShadowBatches"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Trinity fills the CPU-known EveTurretSet VS/PS RawData fields; bone-palette ring offsets and IsGood/GetMeshCount realization gates are not ported yet, while the CPU gate is geometry presence.")], 18, "GetPerObjectData"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShadowPerObjectData"]], 0, void 0, _EveEntity));
47
+ _initStatic(this);
47
48
  }
48
49
  /** m_impactBehaviour (ImpactBehaviour::Type - enum ImpactBehaviour) [READWRITE, NOTIFY, PERSIST, ENUM] */
49
50
  impactBehaviour = (_initProto(this), _init_impactBehaviour(this, 0));
@@ -221,16 +222,16 @@ new class extends _identity {
221
222
  /** m_shipTransformPrev - last frame's parent transform, for motion vectors. */
222
223
  #shipTransformPrev = mat4.create();
223
224
 
224
- /**
225
- * m_parentData - the hull values an attachment renders with, refreshed by the
226
- * parent through IEveSpaceObject2::GetParentData.
225
+ /**
226
+ * m_parentData - the hull values an attachment renders with, refreshed by the
227
+ * parent through IEveSpaceObject2::GetParentData.
227
228
  */
228
229
  #parentData = {};
229
230
 
230
- /**
231
- * m_skeletonBoneIndices - the shader's bone mapping, shared by every turret
232
- * of the set. Skeleton realization is not ported yet, so this stays empty until
233
- * one is supplied and the default count applies.
231
+ /**
232
+ * m_skeletonBoneIndices - the shader's bone mapping, shared by every turret
233
+ * of the set. Skeleton realization is not ported yet, so this stays empty until
234
+ * one is supplied and the default count applies.
234
235
  */
235
236
  #skeletonBoneIndices = [];
236
237
 
@@ -291,12 +292,12 @@ new class extends _identity {
291
292
  return this.turretEffect;
292
293
  }
293
294
 
294
- /**
295
- * The shared sysbone aiming math, synced from this set's flat tuning
296
- * fields. Carbon embeds EveTurretAiming by value (EveTurretSet.h:425) and
297
- * re-exposes its members as these flat Blue attributes; pose-owning
298
- * consumers of the UpdateTrackingPose seam use THIS object so both hosts
299
- * run identical math.
295
+ /**
296
+ * The shared sysbone aiming math, synced from this set's flat tuning
297
+ * fields. Carbon embeds EveTurretAiming by value (EveTurretSet.h:423) and
298
+ * re-exposes its members as these flat Blue attributes; pose-owning
299
+ * consumers of the UpdateTrackingPose seam use THIS object so both hosts
300
+ * run identical math.
300
301
  */
301
302
  GetAiming() {
302
303
  const aiming = this.#aiming;
@@ -315,15 +316,29 @@ new class extends _identity {
315
316
  }
316
317
  #aiming = new EveTurretAiming();
317
318
 
318
- /**
319
- * Applies resolved SOF vec4 values to the turret effect's constant path, or
320
- * to its nominal vector-parameter path when no constants are authored.
319
+ /**
320
+ * Applies resolved SOF vec4 values to the turret effect's constant path, or
321
+ * to its nominal vector-parameter path when no constants are authored.
321
322
  */
322
323
  ApplySofTurretMaterial(resolveParameter) {
323
324
  const effect = this.GetShader();
324
325
  if (!effect) {
325
326
  return false;
326
327
  }
328
+ return _EveTurretSet.applyFactionToTurretShader(effect, resolveParameter);
329
+ }
330
+
331
+ /**
332
+ * The effect-walking half of Carbon's private EveSOF::ApplyFactionToTurretShader
333
+ * (EveSOF.cpp:4201-4254): overwrites a turret effect's constants, or its
334
+ * vec4 parameters when no constants are authored, with resolved SOF values.
335
+ * Shared by the ship turret set and EveChildTurret; the value resolution
336
+ * stays in SOF, which cannot import this layer.
337
+ * @param {Object} effect - a Tr2Effect
338
+ * @param {Function} resolveParameter - parameter name -> vec4 or null
339
+ * @returns {Boolean} true
340
+ */
341
+ static applyFactionToTurretShader(effect, resolveParameter) {
327
342
  if (effect.constParameters.length) {
328
343
  effect.StartUpdate();
329
344
  try {
@@ -356,19 +371,19 @@ new class extends _identity {
356
371
  return true;
357
372
  }
358
373
 
359
- /** Carbon method GetShotTimeVariance (MAP_METHOD_AND_WRAP). */
374
+ /** Carbon method GetShotTimeVariance (EveTurretSet.h:223-226). */
360
375
  GetShotTimeVariance() {
361
- return 0.6;
376
+ return EVE_TURRET_RANDOM_DELAY_MAX;
362
377
  }
363
378
 
364
- /** Carbon method MissQueueSize (MAP_METHOD_AND_WRAP). */
379
+ /** Carbon method MissQueueSize (EveTurretSet.cpp:3597-3600). */
365
380
  MissQueueSize() {
366
- return this.target?.MissQueueSize?.() ?? 0;
381
+ return this.target.MissQueueSize();
367
382
  }
368
383
 
369
- /** Carbon method GetLastShotTime (MAP_METHOD_AND_WRAP). */
384
+ /** Carbon method GetLastShotTime (EveTurretSet.cpp:3606-3609). */
370
385
  GetLastShotTime() {
371
- return this.target?.GetLastShotTime?.() ?? 0;
386
+ return this.target.GetLastShotTime();
372
387
  }
373
388
 
374
389
  /** Carbon method EnterStateDeactive (MAP_METHOD_AND_WRAP). */
@@ -523,9 +538,9 @@ new class extends _identity {
523
538
  this.#ambientEffect()?.StartControllers();
524
539
  }
525
540
 
526
- /**
527
- * Creates the target when absent, pushes the authored miss and impact
528
- * behaviour into it, and initializes the firing and ambient effects.
541
+ /**
542
+ * Creates the target when absent, pushes the authored miss and impact
543
+ * behaviour into it, and initializes the firing and ambient effects.
529
544
  */
530
545
  Initialize() {
531
546
  this.target ??= new _EveTurretTarget();
@@ -535,16 +550,16 @@ new class extends _identity {
535
550
  return true;
536
551
  }
537
552
 
538
- /**
539
- * Carbon OnModified (EveTurretSet.cpp:167-201). FIVE arms, and they are an
540
- * `else if` CHAIN: Carbon is notified once per changed member, so exactly one
541
- * arm runs per notification.
542
- *
543
- * Our settle reports a whole write instead, so the chain is evaluated against
544
- * the values last seen rather than against a Be::Var pointer - one arm per
545
- * settle, in the donor's order. Every arm stays present even where its body
546
- * is unported, because removing one would let a change fall through to the
547
- * next arm and run work the donor would not have run.
553
+ /**
554
+ * Carbon OnModified (EveTurretSet.cpp:167-201). FIVE arms, and they are an
555
+ * `else if` CHAIN: Carbon is notified once per changed member, so exactly one
556
+ * arm runs per notification.
557
+ *
558
+ * Our settle reports a whole write instead, so the chain is evaluated against
559
+ * the values last seen rather than against a Be::Var pointer - one arm per
560
+ * settle, in the donor's order. Every arm stays present even where its body
561
+ * is unported, because removing one would let a change fall through to the
562
+ * next arm and run work the donor would not have run.
548
563
  */
549
564
  OnModified(propertyName) {
550
565
  if (propertyName === "display") {
@@ -566,13 +581,16 @@ new class extends _identity {
566
581
  this.firingEffect?.Initialize();
567
582
  }
568
583
 
569
- /**
570
- * Offers an object to the target for validation; on acceptance it sends the
571
- * idle-to-targeting movement audio event when coming from idle or switching
572
- * targets, and rescales the firing effect to the new target's radius. Returns
573
- * whether the object was accepted.
584
+ /**
585
+ * Offers an object to the target for validation; on acceptance it sends the
586
+ * idle-to-targeting movement audio event when coming from idle or switching
587
+ * targets, and rescales the firing effect to the new target's radius. Returns
588
+ * whether the object was accepted.
574
589
  */
575
590
  SetTargetObject(object) {
591
+ // Carbon EveTurretSet.cpp:3630-3633: the ship set cannot clear its target;
592
+ // only EveChildTurret passes null through to EveTurretTarget.
593
+ if (!object) return false;
576
594
  this.target ??= new _EveTurretTarget();
577
595
  const previous = this.target.GetTargetable?.();
578
596
  const accepted = this.target.SetTargetable(object);
@@ -590,17 +608,17 @@ new class extends _identity {
590
608
  return this.target?.GetTargetable?.() ?? null;
591
609
  }
592
610
 
593
- /**
594
- * Rescales the firing effect from the target's radius, passing -1 when there
595
- * is no target.
611
+ /**
612
+ * Rescales the firing effect from the target's radius, passing -1 when there
613
+ * is no target.
596
614
  */
597
615
  SetTargetScale() {
598
616
  this.firingEffect?.SetScaleByRadius?.(this.target?.GetRadius?.() ?? -1);
599
617
  }
600
618
 
601
- /**
602
- * Replaces the turret records, truncated to the fixed 24-turret limit,
603
- * normalizing each into the record shape and resetting visibleCount.
619
+ /**
620
+ * Replaces the turret records, truncated to the fixed 24-turret limit,
621
+ * normalizing each into the record shape and resetting visibleCount.
604
622
  */
605
623
  SetTurrets(turrets = []) {
606
624
  this.#turrets = Array.from(turrets).slice(0, _EveTurretSet.MAX_TURRETS_PER_SET).map(turret => this.#normalizeTurret(turret));
@@ -608,9 +626,9 @@ new class extends _identity {
608
626
  return this.#turrets;
609
627
  }
610
628
 
611
- /**
612
- * Appends one normalized turret record and returns it, or null once the fixed
613
- * 24-turret limit is reached.
629
+ /**
630
+ * Appends one normalized turret record and returns it, or null once the fixed
631
+ * 24-turret limit is reached.
614
632
  */
615
633
  AddTurret(turret) {
616
634
  if (this.#turrets.length >= _EveTurretSet.MAX_TURRETS_PER_SET) return null;
@@ -620,9 +638,9 @@ new class extends _identity {
620
638
  return value;
621
639
  }
622
640
 
623
- /**
624
- * The live turret record list; the records are mutated in place by
625
- * UpdateTurretTransforms, so this is not a snapshot.
641
+ /**
642
+ * The live turret record list; the records are mutated in place by
643
+ * UpdateTurretTransforms, so this is not a snapshot.
626
644
  */
627
645
  GetTurrets() {
628
646
  return this.#turrets;
@@ -651,19 +669,19 @@ new class extends _identity {
651
669
  return true;
652
670
  }
653
671
 
654
- /**
655
- * Stores the hull transform and immediately recomputes every turret's world
656
- * matrix from it.
672
+ /**
673
+ * Stores the hull transform and immediately recomputes every turret's world
674
+ * matrix from it.
657
675
  */
658
676
  SetParentTransform(transform) {
659
677
  mat4.copy(this.#parentTransform, transform);
660
678
  this.UpdateTurretTransforms(transform);
661
679
  }
662
680
 
663
- /**
664
- * Recomputes each turret's world matrix as the parent transform applied to its
665
- * local matrix and marks the record valid; defaults to the stored parent
666
- * transform.
681
+ /**
682
+ * Recomputes each turret's world matrix as the parent transform applied to its
683
+ * local matrix and marks the record valid; defaults to the stored parent
684
+ * transform.
667
685
  */
668
686
  UpdateTurretTransforms(parentTransform = this.#parentTransform) {
669
687
  mat4.copy(this.#parentTransform, parentTransform);
@@ -673,17 +691,17 @@ new class extends _identity {
673
691
  }
674
692
  }
675
693
 
676
- /**
677
- * The index of the turret whose world up axis points most directly at its
678
- * nearest damage locator, or 0 when no valid turret is found.
694
+ /**
695
+ * The index of the turret whose world up axis points most directly at its
696
+ * nearest damage locator, or 0 when no valid turret is found.
679
697
  */
680
698
  GetClosestTurret() {
681
699
  return this.#getClosestTurretAndLocator().turret;
682
700
  }
683
701
 
684
- /**
685
- * Convenience update that runs the synchronous then asynchronous phase against
686
- * the stored parent transform.
702
+ /**
703
+ * Convenience update that runs the synchronous then asynchronous phase against
704
+ * the stored parent transform.
687
705
  */
688
706
  Update(context) {
689
707
  this.UpdateSyncronous(context);
@@ -691,11 +709,11 @@ new class extends _identity {
691
709
  return true;
692
710
  }
693
711
 
694
- /**
695
- * Runs the synchronous phase: while a looping effect fires it re-picks the
696
- * turret and locator every two seconds, then updates the firing effect, feeds
697
- * the target the current muzzle start position, and updates the ambient effect
698
- * and movement observer from the first turret.
712
+ /**
713
+ * Runs the synchronous phase: while a looping effect fires it re-picks the
714
+ * turret and locator every two seconds, then updates the firing effect, feeds
715
+ * the target the current muzzle start position, and updates the ambient effect
716
+ * and movement observer from the first turret.
699
717
  */
700
718
  UpdateSyncronous(context, parentTransform = this.#parentTransform) {
701
719
  const deltaTime = Number(context?.GetDeltaT?.() ?? context?.deltaTime ?? context?.deltaT ?? 0);
@@ -722,12 +740,12 @@ new class extends _identity {
722
740
  return true;
723
741
  }
724
742
 
725
- /**
726
- * Runs the asynchronous phase: recomputes the turret world matrices, ramps the
727
- * tracking influence through its fade-in and fade-out delays, pushes the
728
- * target position into each valid turret's tracking pose in that turret's
729
- * local space, then hands the firing effect its end position and per-muzzle
730
- * world transforms.
743
+ /**
744
+ * Runs the asynchronous phase: recomputes the turret world matrices, ramps the
745
+ * tracking influence through its fade-in and fade-out delays, pushes the
746
+ * target position into each valid turret's tracking pose in that turret's
747
+ * local space, then hands the firing effect its end position and per-muzzle
748
+ * world transforms.
731
749
  */
732
750
  UpdateAsyncronous(context, parentData = this.#parentTransform) {
733
751
  const deltaTime = Number(context?.GetDeltaT?.() ?? context?.deltaTime ?? context?.deltaT ?? 0);
@@ -791,9 +809,9 @@ new class extends _identity {
791
809
  return true;
792
810
  }
793
811
 
794
- /**
795
- * Appends the firing and ambient effect renderables to out; gated on display,
796
- * and each contribution additionally on displayEffects.
812
+ /**
813
+ * Appends the firing and ambient effect renderables to out; gated on display,
814
+ * and each contribution additionally on displayEffects.
797
815
  */
798
816
  GetRenderables(out = []) {
799
817
  if (!this.display) return out;
@@ -802,10 +820,10 @@ new class extends _identity {
802
820
  return out;
803
821
  }
804
822
 
805
- /**
806
- * Forwards visibility to the firing and ambient effects; gated on display and,
807
- * per effect, on displayEffects. The turret geometry itself is not culled
808
- * here.
823
+ /**
824
+ * Forwards visibility to the firing and ambient effects; gated on display and,
825
+ * per effect, on displayEffects. The turret geometry itself is not culled
826
+ * here.
809
827
  */
810
828
  UpdateVisibility(context) {
811
829
  if (!this.display) return false;
@@ -814,9 +832,9 @@ new class extends _identity {
814
832
  return true;
815
833
  }
816
834
 
817
- /** Carbon EveTurretSet::RegisterComponents (cpp:238-256): ShadowCaster leaf
818
- * self-registration, then forwards the firing effect and the ambient effect
819
- * (GetAmbientEffectOrGeneratedEffect, mirrored by #ambientEffect). Gate
835
+ /** Carbon EveTurretSet::RegisterComponents (cpp:238-256): ShadowCaster leaf
836
+ * self-registration, then forwards the firing effect and the ambient effect
837
+ * (GetAmbientEffectOrGeneratedEffect, mirrored by #ambientEffect). Gate
820
838
  * m_display. */
821
839
  RegisterComponents() {
822
840
  const registry = this.GetComponentRegistry();
@@ -827,8 +845,8 @@ new class extends _identity {
827
845
  }
828
846
  }
829
847
 
830
- /** Carbon EveTurretSet::UnRegisterComponents (cpp:258-274): forwards the
831
- * firing and ambient effects only (own components were already removed by
848
+ /** Carbon EveTurretSet::UnRegisterComponents (cpp:258-274): forwards the
849
+ * firing and ambient effects only (own components were already removed by
832
850
  * EveEntity::UnRegister, EveEntity.cpp:90); no display re-check. */
833
851
  UnRegisterComponents() {
834
852
  const registry = this.GetComponentRegistry();
@@ -843,11 +861,11 @@ new class extends _identity {
843
861
  return false;
844
862
  }
845
863
 
846
- /**
847
- * Emits Carbon's single opaque instanced turret batch. The geometry source
848
- * and instance count are portable; the engine resolves allocations and the
849
- * instance stream during realization.
850
- * @returns {Boolean} whether the batch was committed
864
+ /**
865
+ * Emits Carbon's single opaque instanced turret batch. The geometry source
866
+ * and instance count are portable; the engine resolves allocations and the
867
+ * instance stream during realization.
868
+ * @returns {Boolean} whether the batch was committed
851
869
  */
852
870
  GetBatches(batches, batchType, perObjectData, _reason) {
853
871
  if (batchType !== TriBatchType.TRIBATCHTYPE_OPAQUE || !this.display || !this.visibleCount || !this.geometryResource) {
@@ -869,15 +887,15 @@ new class extends _identity {
869
887
  return 1;
870
888
  }
871
889
 
872
- /** Carbon EveTurretSet::IsCastingShadow (cpp:2022-2051): after the
873
- * display/geometry (cpp:2024) and reflection-reason (cpp:2029) early-outs -
874
- * which do NOT write the out-param, so a stale previous-caster value
875
- * survives at the scene call sites (EveSpaceScene.cpp:2391/2517) - the
876
- * SET-level bounding sphere is transformed by EVERY turret's world matrix
877
- * (including invisible ones - no per-turret visibility gate, unlike
878
- * UpdateVisibility cpp:2070-2088), gated on transformed radius > 0, culled
879
- * with shadowFrustum.IsVisible, and the MAX GetSizeInShadow accumulates.
880
- * Returns sizeInShadow > 5 (the swarm uses 15). Carbon's float& out-param
890
+ /** Carbon EveTurretSet::IsCastingShadow (cpp:2022-2051): after the
891
+ * display/geometry (cpp:2024) and reflection-reason (cpp:2029) early-outs -
892
+ * which do NOT write the out-param, so a stale previous-caster value
893
+ * survives at the scene call sites (EveSpaceScene.cpp:2391/2517) - the
894
+ * SET-level bounding sphere is transformed by EVERY turret's world matrix
895
+ * (including invisible ones - no per-turret visibility gate, unlike
896
+ * UpdateVisibility cpp:2070-2088), gated on transformed radius > 0, culled
897
+ * with shadowFrustum.IsVisible, and the MAX GetSizeInShadow accumulates.
898
+ * Returns sizeInShadow > 5 (the swarm uses 15). Carbon's float& out-param
881
899
  * becomes the optional trailing length-1 array (out-params last). */
882
900
  IsCastingShadow(cameraFrustum, shadowFrustum, renderReason, sizeInShadowOut = null) {
883
901
  if (!this.display || !this.geometryResource) {
@@ -904,15 +922,15 @@ new class extends _identity {
904
922
  return sizeInShadow > 5;
905
923
  }
906
924
 
907
- /** Carbon EveTurretSet::GetShadowBatches (cpp:2221-2254): one instanced
908
- * batch for the whole turret geometry - material m_turretEffect, instance
909
- * count m_visibleCount, mesh 0 at the lowest LOD. QUIRK: shadowPixelSize is
910
- * completely IGNORED (always GetMeshLod(0, 0), cpp:2235) - the swarm uses
911
- * it for LOD, the turret does not. The shadow path commits without the
912
- * normal path's validity check (cpp:2253 vs 2211) - equivalent here because
913
- * Commit drops invalid batches. Returns whether the batch was committed
914
- * (JS addition; Carbon returns void). NOTE: JS visibleCount is currently
915
- * the total turret count (the adapted UpdateVisibility does no per-turret
925
+ /** Carbon EveTurretSet::GetShadowBatches (cpp:2221-2254): one instanced
926
+ * batch for the whole turret geometry - material m_turretEffect, instance
927
+ * count m_visibleCount, mesh 0 at the lowest LOD. QUIRK: shadowPixelSize is
928
+ * completely IGNORED (always GetMeshLod(0, 0), cpp:2235) - the swarm uses
929
+ * it for LOD, the turret does not. The shadow path commits without the
930
+ * normal path's validity check (cpp:2253 vs 2211) - equivalent here because
931
+ * Commit drops invalid batches. Returns whether the batch was committed
932
+ * (JS addition; Carbon returns void). NOTE: JS visibleCount is currently
933
+ * the total turret count (the adapted UpdateVisibility does no per-turret
916
934
  * frustum cull), a pre-existing adaptation. */
917
935
  GetShadowBatches(batches, perObjectData, _shadowPixelSize) {
918
936
  if (!this.display || !this.visibleCount) {
@@ -932,13 +950,13 @@ new class extends _identity {
932
950
  return batches.Commit(batch);
933
951
  }
934
952
 
935
- /** Carbon EveTurretSet::GetPerObjectData (cpp:2275-2518): early-outs on a
936
- * missing/bad geometry resource RETURN NULL - and the cascade path stores
937
- * that null and still calls GetShadowBatches with it (EveSpaceScene.cpp:
938
- * 717/727), so a null per-object record on a batch is legal. The
939
- * EveTurretSetPerObjectData fill includes the ship matrices, compacted
940
- * per-visible turret SRT arrays, and the SH/clip PS block (cpp:2300-2511).
941
- * Trinity fills every CPU-known field in canonical RawData. Only the bone
953
+ /** Carbon EveTurretSet::GetPerObjectData (cpp:2275-2518): early-outs on a
954
+ * missing/bad geometry resource RETURN NULL - and the cascade path stores
955
+ * that null and still calls GetShadowBatches with it (EveSpaceScene.cpp:
956
+ * 717/727), so a null per-object record on a batch is legal. The
957
+ * EveTurretSetPerObjectData fill includes the ship matrices, compacted
958
+ * per-visible turret SRT arrays, and the SH/clip PS block (cpp:2300-2511).
959
+ * Trinity fills every CPU-known field in canonical RawData. Only the bone
942
960
  * palette's GPU ring-buffer offsets remain engine-supplied. */
943
961
  GetPerObjectData(accumulator = null) {
944
962
  if (!this.geometryResource || typeof accumulator?.Alloc !== "function") {
@@ -998,18 +1016,18 @@ new class extends _identity {
998
1016
  };
999
1017
  }
1000
1018
 
1001
- /** Carbon EveTurretSet::GetShadowPerObjectData (cpp:2520-2523): pure
1019
+ /** Carbon EveTurretSet::GetShadowPerObjectData (cpp:2520-2523): pure
1002
1020
  * forward to GetPerObjectData. */
1003
1021
  GetShadowPerObjectData(accumulator = null) {
1004
1022
  return this.GetPerObjectData(accumulator);
1005
1023
  }
1006
1024
 
1007
- /**
1008
- * Establishes everything one shot needs: the firing turret and locator, the
1009
- * advanced cycling fire position, the random firing delay, the fire animation
1010
- * on the chosen turret, the target's impact timing derived from the effect's
1011
- * duration and peak time, and the ambient controller's turret state. Returns
1012
- * false when deactivated or untargeted.
1025
+ /**
1026
+ * Establishes everything one shot needs: the firing turret and locator, the
1027
+ * advanced cycling fire position, the random firing delay, the fire animation
1028
+ * on the chosen turret, the target's impact timing derived from the effect's
1029
+ * duration and peak time, and the ambient controller's turret state. Returns
1030
+ * false when deactivated or untargeted.
1013
1031
  */
1014
1032
  #setupFiringState() {
1015
1033
  if (this.state === _EveTurretSet.State.STATE_DEACTIVE || !this.target) return false;
@@ -1040,11 +1058,11 @@ new class extends _identity {
1040
1058
  return true;
1041
1059
  }
1042
1060
 
1043
- /**
1044
- * Picks the turret whose world up axis best aligns with its nearest damage
1045
- * locator and, when chooseRandomLocator is set, re-picks the turret against a
1046
- * random valid locator instead; falls back to turret 0. Returns the shared
1047
- * pair record, valid only until the next call.
1061
+ /**
1062
+ * Picks the turret whose world up axis best aligns with its nearest damage
1063
+ * locator and, when chooseRandomLocator is set, re-picks the turret against a
1064
+ * random valid locator instead; falls back to turret 0. Returns the shared
1065
+ * pair record, valid only until the next call.
1048
1066
  */
1049
1067
  #getClosestTurretAndLocator() {
1050
1068
  const pair = _EveTurretSet.#closestPair;
@@ -1095,9 +1113,9 @@ new class extends _identity {
1095
1113
  return pair;
1096
1114
  }
1097
1115
 
1098
- /**
1099
- * Plays an animation on every turret and returns the longest duration
1100
- * reported.
1116
+ /**
1117
+ * Plays an animation on every turret and returns the longest duration
1118
+ * reported.
1101
1119
  */
1102
1120
  #playAll(animation, loop, delay) {
1103
1121
  let duration = 0;
@@ -1105,10 +1123,10 @@ new class extends _identity {
1105
1123
  return duration;
1106
1124
  }
1107
1125
 
1108
- /**
1109
- * Plays an animation on one turret through the record's own hook or its
1110
- * controller, returning the reported duration, or 0 when the turret or the
1111
- * hook is absent.
1126
+ /**
1127
+ * Plays an animation on one turret through the record's own hook or its
1128
+ * controller, returning the reported duration, or 0 when the turret or the
1129
+ * hook is absent.
1112
1130
  */
1113
1131
  #playTurret(index, animation, loop, delay) {
1114
1132
  const turret = this.#turrets[index];
@@ -1119,28 +1137,28 @@ new class extends _identity {
1119
1137
  }) ?? 0);
1120
1138
  }
1121
1139
 
1122
- /**
1123
- * The ambient effect in force: the authored one while in ambient-effect
1124
- * editing mode, otherwise the generated distributed instance container when
1125
- * one exists.
1140
+ /**
1141
+ * The ambient effect in force: the authored one while in ambient-effect
1142
+ * editing mode, otherwise the generated distributed instance container when
1143
+ * one exists.
1126
1144
  */
1127
1145
  #ambientEffect() {
1128
1146
  return this.ambientEffectEditingMode ? this.ambientEffect : this.generatedDistributedAmbientEffect ?? this.ambientEffect;
1129
1147
  }
1130
1148
 
1131
- /**
1132
- * Pushes the current state onto the ambient effect's TurretState controller
1133
- * variable.
1149
+ /**
1150
+ * Pushes the current state onto the ambient effect's TurretState controller
1151
+ * variable.
1134
1152
  */
1135
1153
  #setAmbientState() {
1136
1154
  this.#ambientEffect()?.SetControllerVariable("TurretState", this.state);
1137
1155
  }
1138
1156
 
1139
- /**
1140
- * Coerces a caller-supplied turret into the record shape - local and world
1141
- * matrices, local quaternion and position, valid and display flags - reusing
1142
- * the object in place when it already carries a local matrix, and otherwise
1143
- * wrapping it as the record's source.
1157
+ /**
1158
+ * Coerces a caller-supplied turret into the record shape - local and world
1159
+ * matrices, local quaternion and position, valid and display flags - reusing
1160
+ * the object in place when it already carries a local matrix, and otherwise
1161
+ * wrapping it as the record's source.
1144
1162
  */
1145
1163
  #normalizeTurret(turret) {
1146
1164
  if (turret?.localMatrix?.length === 16) {