@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
@@ -1 +1 @@
1
- {"version":3,"file":"EveSpaceObjectChild.js","sources":["../../../../../src/trinity/eve/child/EveSpaceObjectChild.js"],"sourcesContent":["import { carbon, impl, edit, type } from \"#schema\";\r\nimport { Origin } from \"../../generated/eve/child/enums.js\";\r\nimport { IEveSpaceObjectChild } from \"./IEveSpaceObjectChild.js\";\r\n\r\n/**\r\n * Appends one batch type's areas of a mesh to the shared area pool as plain\r\n * {index, count, alphaCutout, reversed} records (Carbon free function\r\n * EveCollectAreas, EveSpaceObjectChild.cpp:138-161; the EveChildGeometryArea\r\n * POD is EveSpaceObjectChild.h:21-34).\r\n *\r\n * @param {Number} type - a TriBatchType\r\n * @param {Object|null} mesh - a Tr2MeshBase duck with GetAreas(type)\r\n * @param {Array} areaPool - the pool records are appended to\r\n */\r\nexport function EveCollectAreas(type, mesh, areaPool)\r\n{\r\n const areas = mesh?.GetAreas(type);\r\n if (!areas) return;\r\n for (const area of areas)\r\n {\r\n areaPool.push({\r\n index: Number(area.GetIndex()) >>> 0,\r\n count: Number(area.GetCount()) >>> 0,\r\n alphaCutout: !!area.IsAlphaCutout(),\r\n reversed: !!area.IsReversed()\r\n });\r\n }\r\n}\r\n\r\n\r\n/**\r\n * Nominal base for every live space-object child.\r\n *\r\n * Carbon supplies real no-op defaults for the optional child capabilities;\r\n * owner, parent and part-tag state remain concrete shared behavior.\r\n */\r\n@type.define({ className: \"EveSpaceObjectChild\", family: \"eve/child\" })\r\nexport class EveSpaceObjectChild extends IEveSpaceObjectChild\r\n{\r\n @edit.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @edit.read\r\n @type.uint32\r\n partTag = 0;\r\n\r\n #owner = null;\r\n\r\n #parent = null;\r\n\r\n /** Returns the authored child name. */\r\n GetName()\r\n {\r\n return this.name;\r\n }\r\n\r\n /** Sets the authored child name. */\r\n SetName(name)\r\n {\r\n this.name = String(name ?? \"\");\r\n }\r\n\r\n /** Provides the Carbon default no-op visibility update. */\r\n UpdateVisibility(_updateContext, _parentTransform, _parentLod)\r\n {\r\n }\r\n\r\n /** Provides the Carbon default no-op renderable collection. */\r\n GetRenderables(_renderables)\r\n {\r\n }\r\n\r\n /** Reports that the base child has no bounding sphere. */\r\n GetBoundingSphere(_sphere, _query)\r\n {\r\n return false;\r\n }\r\n\r\n /** Provides the Carbon default no-op quad-effect registration. */\r\n RegisterWithQuadRenderer(_quadRenderer)\r\n {\r\n }\r\n\r\n /** Provides the Carbon default no-op quad submission. */\r\n AddQuadsToQuadRenderer(_frustum, _quadRenderer)\r\n {\r\n }\r\n\r\n /** Provides the Carbon default no-op synchronous update. */\r\n UpdateSyncronous(_updateContext, _params)\r\n {\r\n }\r\n\r\n /** Provides the Carbon default no-op asynchronous update. */\r\n UpdateAsyncronous(_updateContext, _params)\r\n {\r\n }\r\n\r\n /** Provides the Carbon default no-op local-to-world query. */\r\n GetLocalToWorldTransform(_transform)\r\n {\r\n }\r\n\r\n /** Reports that the base child is not forced visible. */\r\n IsAlwaysOn()\r\n {\r\n return false;\r\n }\r\n\r\n /** Provides the Carbon default no-op child setup. */\r\n Setup(_scale, _rotation, _translation, _lowestLodVisible)\r\n {\r\n }\r\n\r\n /** Provides the Carbon default no-op LOD change. */\r\n ChangeLOD(_lod)\r\n {\r\n }\r\n\r\n /** Provides the Carbon default no-op controller-variable update. */\r\n SetControllerVariable(_name, _value)\r\n {\r\n }\r\n\r\n /** Provides the Carbon default no-op controller-event handler. */\r\n HandleControllerEvent(_name)\r\n {\r\n }\r\n\r\n /** Provides the Carbon default no-op controller start. */\r\n StartControllers()\r\n {\r\n }\r\n\r\n /** Provides the Carbon default no-op procedural-variable update. */\r\n SetProceduralContainerVariable(_name, _value)\r\n {\r\n }\r\n\r\n /** Provides the Carbon default no-op shader-option update. */\r\n SetShaderOption(_name, _value)\r\n {\r\n }\r\n\r\n /** Provides the Carbon default no-op origin update. */\r\n SetOrigin(_origin)\r\n {\r\n }\r\n\r\n /** Provides the Carbon default no-op transform-modifier attachment. */\r\n AddTransformModifier(_modifier)\r\n {\r\n }\r\n\r\n /** Provides the Carbon default no-op mute update. */\r\n SetMute(_isMuted)\r\n {\r\n }\r\n\r\n /** Returns the child part tag. */\r\n GetPartTag()\r\n {\r\n return this.partTag;\r\n }\r\n\r\n /** Sets the child part tag as an unsigned 32-bit value. */\r\n SetPartTag(tag)\r\n {\r\n this.partTag = Number(tag) >>> 0;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n /** Returns the owning space object. */\r\n GetOwner()\r\n {\r\n return this.#owner;\r\n }\r\n\r\n /** Sets the owning space object. */\r\n SetOwner(owner)\r\n {\r\n this.#owner = owner ?? null;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n /** Returns the parent child node. */\r\n GetParent()\r\n {\r\n return this.#parent;\r\n }\r\n\r\n /** Sets the parent child node. */\r\n SetParent(parent)\r\n {\r\n this.#parent = parent ?? null;\r\n }\r\n\r\n /** Provides the Carbon default no-op locator-set collection. */\r\n CollectOwnedLocatorSets(_parentTransform, _out)\r\n {\r\n }\r\n\r\n /**\r\n * Provides the Carbon default no-op geometry collection\r\n * (EveSpaceObjectChild.h:284-291): records land in `out` as\r\n * {geometry, childToObject, areaStart, areaCount} and their areas in the\r\n * shared `areaPool`.\r\n */\r\n CollectOwnedGeometry(_type, _parentTransform, _out, _areaPool)\r\n {\r\n }\r\n\r\n /** Attaches one child and propagates owner and nonzero part-tag state. */\r\n RegisterChild(child)\r\n {\r\n if (child === null || child === undefined)\r\n {\r\n return;\r\n }\r\n\r\n child.SetParent(this);\r\n child.SetOwner(this.#owner);\r\n\r\n if (this.partTag !== EveSpaceObjectChild.NO_PART_TAG)\r\n {\r\n child.SetPartTag(this.partTag);\r\n }\r\n }\r\n\r\n /** Detaches one child while retaining its part tag. */\r\n UnregisterChild(child)\r\n {\r\n if (child === null || child === undefined)\r\n {\r\n return;\r\n }\r\n\r\n const parent = child.GetParent();\r\n if (parent !== this && parent !== null)\r\n {\r\n throw new Error(\"Cannot unregister a space-object child owned by another parent.\");\r\n }\r\n\r\n child.SetParent(null);\r\n child.SetOwner(null);\r\n }\r\n\r\n /** Attaches every child in an iterable. */\r\n RegisterChildren(children)\r\n {\r\n for (const child of children)\r\n {\r\n this.RegisterChild(child);\r\n }\r\n }\r\n\r\n /** Detaches every child in an iterable. */\r\n UnregisterChildren(children)\r\n {\r\n for (const child of children)\r\n {\r\n this.UnregisterChild(child);\r\n }\r\n }\r\n\r\n static Origin = Origin;\r\n\r\n static NO_PART_TAG = 0;\r\n\r\n}\r\n"],"names":["EveCollectAreas","type","mesh","areaPool","areas","GetAreas","area","push","index","Number","GetIndex","count","GetCount","alphaCutout","IsAlphaCutout","reversed","IsReversed","_EveSpaceObjectChild","_identity","EveSpaceObjectChild","IEveSpaceObjectChild","e","_init_name","_init_extra_name","_init_partTag","_init_extra_partTag","_initProto","c","_initClass","_applyDecs","define","className","family","edit","persist","string","read","uint32","carbon","method","impl","implemented","name","partTag","GetName","SetName","String","UpdateVisibility","_updateContext","_parentTransform","_parentLod","GetRenderables","_renderables","GetBoundingSphere","_sphere","_query","RegisterWithQuadRenderer","_quadRenderer","AddQuadsToQuadRenderer","_frustum","UpdateSyncronous","_params","UpdateAsyncronous","GetLocalToWorldTransform","_transform","IsAlwaysOn","Setup","_scale","_rotation","_translation","_lowestLodVisible","ChangeLOD","_lod","SetControllerVariable","_name","_value","HandleControllerEvent","StartControllers","SetProceduralContainerVariable","SetShaderOption","SetOrigin","_origin","AddTransformModifier","_modifier","SetMute","_isMuted","GetPartTag","SetPartTag","tag","GetOwner","SetOwner","owner","GetParent","SetParent","parent","CollectOwnedLocatorSets","_out","CollectOwnedGeometry","_type","_areaPool","RegisterChild","child","undefined","NO_PART_TAG","UnregisterChild","Error","RegisterChildren","children","UnregisterChildren","Origin","constructor"],"mappings":";;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,eAAeA,CAACC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EACpD;AACE,EAAA,MAAMC,KAAK,GAAGF,IAAI,EAAEG,QAAQ,CAACJ,IAAI,CAAC;EAClC,IAAI,CAACG,KAAK,EAAE;AACZ,EAAA,KAAK,MAAME,IAAI,IAAIF,KAAK,EACxB;IACED,QAAQ,CAACI,IAAI,CAAC;MACZC,KAAK,EAAEC,MAAM,CAACH,IAAI,CAACI,QAAQ,EAAE,CAAC,KAAK,CAAC;MACpCC,KAAK,EAAEF,MAAM,CAACH,IAAI,CAACM,QAAQ,EAAE,CAAC,KAAK,CAAC;AACpCC,MAAAA,WAAW,EAAE,CAAC,CAACP,IAAI,CAACQ,aAAa,EAAE;AACnCC,MAAAA,QAAQ,EAAE,CAAC,CAACT,IAAI,CAACU,UAAU;AAC7B,KAAC,CAAC;AACJ,EAAA;AACF;;AAGA;AACA;AACA;AACA;AACA;AACA;AALA,IAAAC;AAAA,IAAA,cAAAC,SAAA,CAAA;AAAA,EAAA,QAMA,MAAAC,mBAAA,SACyCC,qBAAoB,CAC7D;AAAA,IAAA;AAAA,MAAA,CAAA;QAAAC,CAAA,EAAA,CAAAC,UAAA,EAAAC,gBAAA,EAAAC,aAAA,EAAAC,mBAAA,EAAAC,UAAA,CAAA;QAAAC,CAAA,EAAA,CAAAV,oBAAA,EAAAW,UAAA;AAAA,OAAA,GAAAC,cAAA,CAAA,IAAA,EAAA,CAFC5B,IAAI,CAAC6B,MAAM,CAAC;AAAEC,QAAAA,SAAS,EAAE,qBAAqB;AAAEC,QAAAA,MAAM,EAAE;OAAa,CAAC,MAGpEC,IAAI,EAAJA,IAAI,CAACC,OAAO,EACZjC,IAAI,EAAJA,IAAI,CAACkC,MAAM,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAGXF,IAAI,EAAJA,IAAI,CAACG,IAAI,EACTnC,IAAI,EAAJA,IAAI,CAACoC,MAAM,qBAgIXC,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAahBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAtJsBrB,qBAAoB,CAAA;AAAA;AAI3DsB,IAAAA,IAAI,IAAAhB,UAAA,CAAA,IAAA,CAAA,EAAAJ,UAAA,OAAG,EAAE,CAAA;AAITqB,IAAAA,OAAO,IAAApB,gBAAA,CAAA,IAAA,CAAA,EAAAC,aAAA,OAAG,CAAC,CAAA;AAEX,IAAA,MAAM,IAAAC,mBAAA,CAAA,IAAA,CAAA,EAAG,IAAI;IAEb,OAAO,GAAG,IAAI;;AAEd;AACAmB,IAAAA,OAAOA,GACP;MACE,OAAO,IAAI,CAACF,IAAI;AAClB,IAAA;;AAEA;IACAG,OAAOA,CAACH,IAAI,EACZ;MACE,IAAI,CAACA,IAAI,GAAGI,MAAM,CAACJ,IAAI,IAAI,EAAE,CAAC;AAChC,IAAA;;AAEA;AACAK,IAAAA,gBAAgBA,CAACC,cAAc,EAAEC,gBAAgB,EAAEC,UAAU,EAC7D,CACA;;AAEA;IACAC,cAAcA,CAACC,YAAY,EAC3B,CACA;;AAEA;AACAC,IAAAA,iBAAiBA,CAACC,OAAO,EAAEC,MAAM,EACjC;AACE,MAAA,OAAO,KAAK;AACd,IAAA;;AAEA;IACAC,wBAAwBA,CAACC,aAAa,EACtC,CACA;;AAEA;AACAC,IAAAA,sBAAsBA,CAACC,QAAQ,EAAEF,aAAa,EAC9C,CACA;;AAEA;AACAG,IAAAA,gBAAgBA,CAACZ,cAAc,EAAEa,OAAO,EACxC,CACA;;AAEA;AACAC,IAAAA,iBAAiBA,CAACd,cAAc,EAAEa,OAAO,EACzC,CACA;;AAEA;IACAE,wBAAwBA,CAACC,UAAU,EACnC,CACA;;AAEA;AACAC,IAAAA,UAAUA,GACV;AACE,MAAA,OAAO,KAAK;AACd,IAAA;;AAEA;IACAC,KAAKA,CAACC,MAAM,EAAEC,SAAS,EAAEC,YAAY,EAAEC,iBAAiB,EACxD,CACA;;AAEA;IACAC,SAASA,CAACC,IAAI,EACd,CACA;;AAEA;AACAC,IAAAA,qBAAqBA,CAACC,KAAK,EAAEC,MAAM,EACnC,CACA;;AAEA;IACAC,qBAAqBA,CAACF,KAAK,EAC3B,CACA;;AAEA;IACAG,gBAAgBA,GAChB,CACA;;AAEA;AACAC,IAAAA,8BAA8BA,CAACJ,KAAK,EAAEC,MAAM,EAC5C,CACA;;AAEA;AACAI,IAAAA,eAAeA,CAACL,KAAK,EAAEC,MAAM,EAC7B,CACA;;AAEA;IACAK,SAASA,CAACC,OAAO,EACjB,CACA;;AAEA;IACAC,oBAAoBA,CAACC,SAAS,EAC9B,CACA;;AAEA;IACAC,OAAOA,CAACC,QAAQ,EAChB,CACA;;AAEA;AACAC,IAAAA,UAAUA,GACV;MACE,OAAO,IAAI,CAAC3C,OAAO;AACrB,IAAA;;AAEA;IACA4C,UAAUA,CAACC,GAAG,EACd;MACE,IAAI,CAAC7C,OAAO,GAAGlC,MAAM,CAAC+E,GAAG,CAAC,KAAK,CAAC;AAClC,IAAA;AAIA;AACAC,IAAAA,QAAQA,GACR;MACE,OAAO,IAAI,CAAC,MAAM;AACpB,IAAA;;AAEA;IACAC,QAAQA,CAACC,KAAK,EACd;AACE,MAAA,IAAI,CAAC,MAAM,GAAGA,KAAK,IAAI,IAAI;AAC7B,IAAA;AAIA;AACAC,IAAAA,SAASA,GACT;MACE,OAAO,IAAI,CAAC,OAAO;AACrB,IAAA;;AAEA;IACAC,SAASA,CAACC,MAAM,EAChB;AACE,MAAA,IAAI,CAAC,OAAO,GAAGA,MAAM,IAAI,IAAI;AAC/B,IAAA;;AAEA;AACAC,IAAAA,uBAAuBA,CAAC9C,gBAAgB,EAAE+C,IAAI,EAC9C,CACA;;AAEA;AACF;AACA;AACA;AACA;AACA;IACEC,oBAAoBA,CAACC,KAAK,EAAEjD,gBAAgB,EAAE+C,IAAI,EAAEG,SAAS,EAC7D,CACA;;AAEA;IACAC,aAAaA,CAACC,KAAK,EACnB;AACE,MAAA,IAAIA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKC,SAAS,EACzC;AACE,QAAA;AACF,MAAA;AAEAD,MAAAA,KAAK,CAACR,SAAS,CAAC,IAAI,CAAC;AACrBQ,MAAAA,KAAK,CAACX,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;AAE3B,MAAA,IAAI,IAAI,CAAC/C,OAAO,KAAKxB,oBAAmB,CAACoF,WAAW,EACpD;AACEF,QAAAA,KAAK,CAACd,UAAU,CAAC,IAAI,CAAC5C,OAAO,CAAC;AAChC,MAAA;AACF,IAAA;;AAEA;IACA6D,eAAeA,CAACH,KAAK,EACrB;AACE,MAAA,IAAIA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKC,SAAS,EACzC;AACE,QAAA;AACF,MAAA;AAEA,MAAA,MAAMR,MAAM,GAAGO,KAAK,CAACT,SAAS,EAAE;AAChC,MAAA,IAAIE,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAK,IAAI,EACtC;AACE,QAAA,MAAM,IAAIW,KAAK,CAAC,iEAAiE,CAAC;AACpF,MAAA;AAEAJ,MAAAA,KAAK,CAACR,SAAS,CAAC,IAAI,CAAC;AACrBQ,MAAAA,KAAK,CAACX,QAAQ,CAAC,IAAI,CAAC;AACtB,IAAA;;AAEA;IACAgB,gBAAgBA,CAACC,QAAQ,EACzB;AACE,MAAA,KAAK,MAAMN,KAAK,IAAIM,QAAQ,EAC5B;AACE,QAAA,IAAI,CAACP,aAAa,CAACC,KAAK,CAAC;AAC3B,MAAA;AACF,IAAA;;AAEA;IACAO,kBAAkBA,CAACD,QAAQ,EAC3B;AACE,MAAA,KAAK,MAAMN,KAAK,IAAIM,QAAQ,EAC5B;AACE,QAAA,IAAI,CAACH,eAAe,CAACH,KAAK,CAAC;AAC7B,MAAA;AACF,IAAA;GAMD;AAJQQ,EAAAA,MAAM,GAAGA,MAAM;AAEfN,EAAAA,WAAW,GAAG,CAAC;EAACO,WAAAA,GAAA;IAAA,KAAA,CAAA7F,oBAAA,GAAAW,UAAA,EAAA;AAAA,EAAA;AAAA,CAAA,EAAA;;;;"}
1
+ {"version":3,"file":"EveSpaceObjectChild.js","sources":["../../../../../src/trinity/eve/child/EveSpaceObjectChild.js"],"sourcesContent":["import { carbon, impl, edit, type } from \"#schema\";\r\nimport { Origin } from \"../../generated/eve/child/enums.js\";\r\nimport { IEveSpaceObjectChild } from \"./IEveSpaceObjectChild.js\";\r\n\r\n/**\r\n * Appends one batch type's areas of a mesh to the shared area pool as plain\r\n * {index, count, alphaCutout, reversed} records (Carbon free function\r\n * EveCollectAreas, EveSpaceObjectChild.cpp:138-161; the EveChildGeometryArea\r\n * POD is EveSpaceObjectChild.h:21-34).\r\n *\r\n * @param {Number} type - a TriBatchType\r\n * @param {Object|null} mesh - a Tr2MeshBase duck with GetAreas(type)\r\n * @param {Array} areaPool - the pool records are appended to\r\n */\r\nexport function EveCollectAreas(type, mesh, areaPool)\r\n{\r\n const areas = mesh?.GetAreas(type);\r\n if (!areas) return;\r\n for (const area of areas)\r\n {\r\n areaPool.push({\r\n index: Number(area.GetIndex()) >>> 0,\r\n count: Number(area.GetCount()) >>> 0,\r\n alphaCutout: !!area.IsAlphaCutout(),\r\n reversed: !!area.IsReversed()\r\n });\r\n }\r\n}\r\n\r\n\r\n/**\r\n * Nominal base for every live space-object child.\r\n *\r\n * Carbon supplies real no-op defaults for the optional child capabilities;\r\n * owner, parent and part-tag state remain concrete shared behavior.\r\n */\r\n@type.define({ className: \"EveSpaceObjectChild\", family: \"eve/child\" })\r\nexport class EveSpaceObjectChild extends IEveSpaceObjectChild\r\n{\r\n @edit.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @edit.read\r\n @type.uint32\r\n partTag = 0;\r\n\r\n #owner = null;\r\n\r\n #parent = null;\r\n\r\n /** Returns the authored child name. */\r\n GetName()\r\n {\r\n return this.name;\r\n }\r\n\r\n /** Sets the authored child name. */\r\n SetName(name)\r\n {\r\n this.name = String(name ?? \"\");\r\n }\r\n\r\n /** Provides the Carbon default no-op visibility update. */\r\n UpdateVisibility(_updateContext, _parentTransform, _parentLod)\r\n {\r\n }\r\n\r\n /** Provides the Carbon default no-op renderable collection. */\r\n GetRenderables(_renderables)\r\n {\r\n }\r\n\r\n /** Reports that the base child has no bounding sphere. */\r\n GetBoundingSphere(_sphere, _query)\r\n {\r\n return false;\r\n }\r\n\r\n /** Provides the Carbon default no-op quad-effect registration. */\r\n RegisterWithQuadRenderer(_quadRenderer)\r\n {\r\n }\r\n\r\n /** Provides the Carbon default no-op quad submission. */\r\n AddQuadsToQuadRenderer(_frustum, _quadRenderer)\r\n {\r\n }\r\n\r\n /** Provides the Carbon default no-op synchronous update. */\r\n UpdateSyncronous(_updateContext, _params)\r\n {\r\n }\r\n\r\n /** Provides the Carbon default no-op asynchronous update. */\r\n UpdateAsyncronous(_updateContext, _params)\r\n {\r\n }\r\n\r\n /** Provides the Carbon default no-op local-to-world query. */\r\n GetLocalToWorldTransform(_transform)\r\n {\r\n }\r\n\r\n /** Reports that the base child is not forced visible. */\r\n IsAlwaysOn()\r\n {\r\n return false;\r\n }\r\n\r\n /** Provides the Carbon default no-op child setup. */\r\n Setup(_scale, _rotation, _translation, _lowestLodVisible)\r\n {\r\n }\r\n\r\n /** Provides the Carbon default no-op LOD change. */\r\n ChangeLOD(_lod)\r\n {\r\n }\r\n\r\n /** Provides the Carbon default no-op controller-variable update. */\r\n SetControllerVariable(_name, _value)\r\n {\r\n }\r\n\r\n /** Provides the Carbon default no-op controller-event handler. */\r\n HandleControllerEvent(_name)\r\n {\r\n }\r\n\r\n /** Provides the Carbon default no-op controller start. */\r\n StartControllers()\r\n {\r\n }\r\n\r\n /** Provides the Carbon default no-op procedural-variable update. */\r\n SetProceduralContainerVariable(_name, _value)\r\n {\r\n }\r\n\r\n /** Provides the Carbon default no-op shader-option update. */\r\n SetShaderOption(_name, _value)\r\n {\r\n }\r\n\r\n /** Provides the Carbon default no-op origin update. */\r\n SetOrigin(_origin)\r\n {\r\n }\r\n\r\n /** Provides the Carbon default no-op transform-modifier attachment. */\r\n AddTransformModifier(_modifier)\r\n {\r\n }\r\n\r\n /** Provides the Carbon default no-op mute update. */\r\n SetMute(_isMuted)\r\n {\r\n }\r\n\r\n /** Returns the child part tag. */\r\n GetPartTag()\r\n {\r\n return this.partTag;\r\n }\r\n\r\n /** Sets the child part tag as an unsigned 32-bit value. */\r\n SetPartTag(tag)\r\n {\r\n this.partTag = Number(tag) >>> 0;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n /** Returns the owning space object. */\r\n GetOwner()\r\n {\r\n return this.#owner;\r\n }\r\n\r\n /** Sets the owning space object. */\r\n SetOwner(owner)\r\n {\r\n this.#owner = owner ?? null;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n /** Returns the parent child node. */\r\n GetParent()\r\n {\r\n return this.#parent;\r\n }\r\n\r\n /** Sets the parent child node. */\r\n SetParent(parent)\r\n {\r\n this.#parent = parent ?? null;\r\n }\r\n\r\n /** Provides the Carbon default no-op locator-set collection. */\r\n CollectOwnedLocatorSets(_parentTransform, _out)\r\n {\r\n }\r\n\r\n /**\r\n * Provides the Carbon default no-op geometry collection\r\n * (EveSpaceObjectChild.h:284-291): records land in `out` as\r\n * {geometry, childToObject, areaStart, areaCount} and their areas in the\r\n * shared `areaPool`.\r\n */\r\n CollectOwnedGeometry(_type, _parentTransform, _out, _areaPool)\r\n {\r\n }\r\n\r\n /**\r\n * Returns the damage overlay of one part of this child, or null while the\r\n * part has none (Carbon EveSpaceObjectChild.cpp:138-141 base default).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetPartDamageOverlay(_partTag)\r\n {\r\n return null;\r\n }\r\n\r\n /** Creates the damage overlay of one part (Carbon cpp:143-145 base no-op). */\r\n @carbon.method\r\n @impl.implemented\r\n CreatePartDamageOverlay(_partTag)\r\n {\r\n }\r\n\r\n /**\r\n * Returns the armour damage shader of one part, or null when the child has\r\n * none (Carbon cpp:147-150 base default).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetPartArmorDamageShaderEffect(_partTag)\r\n {\r\n return null;\r\n }\r\n\r\n /**\r\n * Writes the animated child-local pose of one of a part's damage locators;\r\n * the base child owns none, so nothing is written (Carbon cpp:152-155).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetPartDamageLocatorAnimatedLocal(_partTag, _index, _position, _direction)\r\n {\r\n return false;\r\n }\r\n\r\n /** Attaches one child and propagates owner and nonzero part-tag state. */\r\n RegisterChild(child)\r\n {\r\n if (child === null || child === undefined)\r\n {\r\n return;\r\n }\r\n\r\n child.SetParent(this);\r\n child.SetOwner(this.#owner);\r\n\r\n if (this.partTag !== EveSpaceObjectChild.NO_PART_TAG)\r\n {\r\n child.SetPartTag(this.partTag);\r\n }\r\n }\r\n\r\n /** Detaches one child while retaining its part tag. */\r\n UnregisterChild(child)\r\n {\r\n if (child === null || child === undefined)\r\n {\r\n return;\r\n }\r\n\r\n const parent = child.GetParent();\r\n if (parent !== this && parent !== null)\r\n {\r\n throw new Error(\"Cannot unregister a space-object child owned by another parent.\");\r\n }\r\n\r\n child.SetParent(null);\r\n child.SetOwner(null);\r\n }\r\n\r\n /** Attaches every child in an iterable. */\r\n RegisterChildren(children)\r\n {\r\n for (const child of children)\r\n {\r\n this.RegisterChild(child);\r\n }\r\n }\r\n\r\n /** Detaches every child in an iterable. */\r\n UnregisterChildren(children)\r\n {\r\n for (const child of children)\r\n {\r\n this.UnregisterChild(child);\r\n }\r\n }\r\n\r\n static Origin = Origin;\r\n\r\n static NO_PART_TAG = 0;\r\n\r\n}\r\n"],"names":["EveCollectAreas","type","mesh","areaPool","areas","GetAreas","area","push","index","Number","GetIndex","count","GetCount","alphaCutout","IsAlphaCutout","reversed","IsReversed","_EveSpaceObjectChild","_identity","EveSpaceObjectChild","IEveSpaceObjectChild","e","_init_name","_init_extra_name","_init_partTag","_init_extra_partTag","_initProto","c","_initClass","_applyDecs","define","className","family","edit","persist","string","read","uint32","carbon","method","impl","implemented","name","partTag","GetName","SetName","String","UpdateVisibility","_updateContext","_parentTransform","_parentLod","GetRenderables","_renderables","GetBoundingSphere","_sphere","_query","RegisterWithQuadRenderer","_quadRenderer","AddQuadsToQuadRenderer","_frustum","UpdateSyncronous","_params","UpdateAsyncronous","GetLocalToWorldTransform","_transform","IsAlwaysOn","Setup","_scale","_rotation","_translation","_lowestLodVisible","ChangeLOD","_lod","SetControllerVariable","_name","_value","HandleControllerEvent","StartControllers","SetProceduralContainerVariable","SetShaderOption","SetOrigin","_origin","AddTransformModifier","_modifier","SetMute","_isMuted","GetPartTag","SetPartTag","tag","GetOwner","SetOwner","owner","GetParent","SetParent","parent","CollectOwnedLocatorSets","_out","CollectOwnedGeometry","_type","_areaPool","GetPartDamageOverlay","_partTag","CreatePartDamageOverlay","GetPartArmorDamageShaderEffect","GetPartDamageLocatorAnimatedLocal","_index","_position","_direction","RegisterChild","child","undefined","NO_PART_TAG","UnregisterChild","Error","RegisterChildren","children","UnregisterChildren","Origin","constructor"],"mappings":"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"}
@@ -272,13 +272,13 @@ export { EveSpriteSetItem } from './attachment/sprite/EveSpriteSetItem.js';
272
272
  export { EveTurretAiming } from './attachment/turrets/EveTurretAiming.js';
273
273
  export { EveTurretFiringFX } from './attachment/turrets/EveTurretFiringFX.js';
274
274
  export { EveTurretSet } from './attachment/turrets/EveTurretSet.js';
275
- export { EveTurretTarget } from './attachment/turrets/EveTurretTarget.js';
275
+ export { EVE_TURRET_RANDOM_DELAY_MAX, EveTurretTarget } from './attachment/turrets/EveTurretTarget.js';
276
276
  export { EveLocator2 } from './locator/EveLocator2.js';
277
277
  export { EveGetLocatorPose, EveLocatorSets } from './locator/EveLocatorSets.js';
278
278
  export { Locator } from './locator/Locator.js';
279
279
  export { LocatorData } from './locator/LocatorData.js';
280
280
  export { EveMeshOverlayEffect } from './overlays/EveMeshOverlayEffect.js';
281
- export { EveDamageOverlay } from './overlays/EveDamageOverlay.js';
281
+ export { EveDamageOverlay, IMPACT_ARMOR_SIZE_FACTOR, IMPACT_ARMOR_SIZE_MAX } from './overlays/EveDamageOverlay.js';
282
282
  export { EveParticleDirectForce } from './particles/force/EveParticleDirectForce.js';
283
283
  export { EveParticleDragForce } from './particles/force/EveParticleDragForce.js';
284
284
  export { EveParticleSpring } from './particles/force/EveParticleSpring.js';
@@ -264,6 +264,10 @@ new class extends _identity {
264
264
  const sphere = ownerInfo.boundingSphere;
265
265
  const radius = Number(sphere?.radius ?? sphere?.[3] ?? -1);
266
266
  this.armorImpactParentSize = Math.min(radius, IMPACT_ARMOR_SIZE_MAX / IMPACT_ARMOR_SIZE_FACTOR);
267
+
268
+ // Carbon EveDamageOverlay.cpp:301: an owner that cannot resolve its
269
+ // locators (an instanced part whose mesh is not loaded) supplies none.
270
+ if (!ownerInfo.getDamageLocatorPositionOS) return;
267
271
  let row = 0;
268
272
  for (const impact of this.#armorImpacts.values()) {
269
273
  const texel = this.#texelRows[row++];
@@ -406,5 +410,5 @@ function seededRandom(seed) {
406
410
  };
407
411
  }
408
412
 
409
- export { _EveDamageOverlay as EveDamageOverlay };
413
+ export { _EveDamageOverlay as EveDamageOverlay, IMPACT_ARMOR_SIZE_FACTOR, IMPACT_ARMOR_SIZE_MAX };
410
414
  //# sourceMappingURL=EveDamageOverlay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EveDamageOverlay.js","sources":["../../../../../src/trinity/eve/overlays/EveDamageOverlay.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Attachments/EveDamageOverlay.h\n// Source: trinity/trinity/Eve/SpaceObject/Attachments/EveDamageOverlay.cpp\n// Source: trinity/trinity/Eve/SpaceObject/Attachments/EveDamageOverlay_Blue.cpp\nimport { vec3 } from \"#math/vec3\";\nimport { vec4 } from \"#math/vec4\";\nimport { CjsModel } from \"#model\";\nimport { carbon, impl, edit, type } from \"#schema\";\nimport { TriBatchType } from \"#consts/graphics\";\nimport { Tr2ScalarFader } from \"../../curves/curve/Tr2ScalarFader.js\";\nimport { ImpactConfiguration } from \"../../generated/include/enums.js\";\n\n\nconst IMPACT_HOLE_TO_ARMOR_DAMAGE_RATIO = 12;\nconst IMPACT_HOLE_TO_HULL_DAMAGE_RATIO = 4;\nconst IMPACT_ARMOR_SIZE_FACTOR = 0.0129;\nconst IMPACT_ARMOR_SIZE_MAX = 10;\n\n\n/**\n * Self-contained armour and hull damage state shared by a ship impact overlay\n * and by independently rendered child meshes.\n */\n@type.define({ className: \"EveDamageOverlay\", family: \"eve/overlays/impact\" })\nexport class EveDamageOverlay extends CjsModel\n{\n @edit.read\n @type.int32\n impactDataNextIdx = 1;\n\n @edit.read\n @type.uint64\n armorImpactGoalCount = 0;\n\n @edit.read\n @type.float32\n armorImpactParentSize = 0;\n\n @edit.read\n @type.float32\n renderPriority = 0;\n\n @edit.persist\n @type.boolean\n display = true;\n\n @edit.persist\n @type.model(\"Tr2Effect\")\n armorDamageShader = null;\n\n @edit.readwrite\n @type.uint32\n seed = 0;\n\n @edit.readwrite\n @type.float32\n armorImpactLifeTime = 10;\n\n @edit.readwrite\n @type.boolean\n debugForceSpawnDebris = false;\n\n @edit.readwrite\n @type.objectRef(\"Tr2ScalarFader\")\n armorRepairing = new Tr2ScalarFader();\n\n @edit.readwrite\n @type.objectRef(\"Tr2ScalarFader\")\n armorHardening = new Tr2ScalarFader();\n\n @edit.readwrite\n @type.objectRef(\"Tr2ScalarFader\")\n hullRepairing = new Tr2ScalarFader();\n\n @edit.readwrite\n @type.float32\n hullDamageFactor = 0;\n\n @edit.read\n @type.int32\n @type.enum(\"ImpactConfiguration\")\n configuration = ImpactConfiguration.IMPACT_INVALID;\n\n @edit.readwrite\n @type.uint32\n damageLocatorCount = 0;\n\n @edit.read\n @type.int32\n dataTextureBlockID = -1;\n\n @edit.persist\n @type.model(\"TriPerlinCurve\")\n hullDamageFlickerCurve = null;\n\n #dataTextureOffset = -1;\n\n // Disabled indices are the compact complement of Carbon's enabled-index\n // vector. This preserves uint32 count semantics without allocating several\n // gigabytes when a caller passes a wrapped unsigned value.\n #disabledDamageLocators = [];\n\n #lastDamageState = vec3.fromValues(1, 1, 1);\n\n #impactIndexSource = null;\n\n #armorImpacts = new Map();\n\n #header = Array.from({ length: 4 }, () => vec4.create());\n\n #texelRows = [];\n\n #wasVisible = false;\n\n /** Global equivalent of Carbon's impact-effect setting. */\n static impactEffectEnabled = true;\n\n /** Initializes the damage-overlay state. */\n @carbon.method\n @impl.implemented\n Initialize()\n {\n return true;\n }\n\n /** Sets the deterministic seed used to choose damage locators. */\n @carbon.method\n @impl.implemented\n SetSeed(seed)\n {\n this.seed = Number(seed) >>> 0;\n }\n\n /** Sets the number of damage locators owned by the target. */\n @carbon.method\n @impl.implemented\n SetDamageLocatorCount(count)\n {\n this.damageLocatorCount = Number(count) >>> 0;\n this.#disabledDamageLocators.length = 0;\n }\n\n /** Replaces the per-locator enabled mask. */\n @carbon.method\n @impl.adapted\n SetEnabledDamageLocators(enabled)\n {\n const filter = Array.from(enabled ?? []);\n this.#disabledDamageLocators.length = 0;\n const count = Math.min(this.damageLocatorCount, filter.length);\n for (let index = 0; index < count; index++)\n {\n if (!filter[index]) this.#disabledDamageLocators.push(index);\n }\n }\n\n /** Sets whether every armour impact requests debris. */\n SetDebugForceSpawnDebris(value)\n {\n this.debugForceSpawnDebris = !!value;\n }\n\n /** Sets the authored hull-damage multiplier. */\n SetHullDamageFactor(value)\n {\n this.hullDamageFactor = Number(value);\n }\n\n /** Sets the material used by the armour-damage pass. */\n SetArmorDamageShaderEffect(value)\n {\n this.armorDamageShader = value ?? null;\n }\n\n /** Sets the curve used to flicker hull damage. */\n SetHullDamageFlickerCurve(value)\n {\n this.hullDamageFlickerCurve = value ?? null;\n }\n\n /** Replaces the armour-repair fader. */\n SetArmorRepairing(value)\n {\n this.armorRepairing = value;\n }\n\n /** Replaces the armour-hardening fader. */\n SetArmorHardening(value)\n {\n this.armorHardening = value;\n }\n\n /** Replaces the hull-repair fader. */\n SetHullRepairing(value)\n {\n this.hullRepairing = value;\n }\n\n /** Shares impact indices with another damage overlay. */\n SetImpactIndexSource(value)\n {\n this.#impactIndexSource = value ?? null;\n }\n\n /** Returns the deterministic damage seed. */\n GetSeed()\n {\n return this.seed;\n }\n\n /** Returns the next locally allocated impact index. */\n GetImpactDataNextIdx()\n {\n return this.impactDataNextIdx;\n }\n\n /** Returns the target number of live armour impacts. */\n GetArmorImpactGoalCount()\n {\n return this.armorImpactGoalCount;\n }\n\n /** Returns the parent size used to scale armour impacts. */\n GetArmorImpactParentSize()\n {\n return this.armorImpactParentSize;\n }\n\n /** Returns whether debris is forced for every impact. */\n GetDebugForceSpawnDebris()\n {\n return this.debugForceSpawnDebris;\n }\n\n /** Returns the authored hull-damage multiplier. */\n GetHullDamageFactor()\n {\n return this.hullDamageFactor;\n }\n\n /** Returns the armour-damage material. */\n GetArmorDamageShaderEffect()\n {\n return this.armorDamageShader;\n }\n\n /** Returns the hull-damage flicker curve. */\n GetHullDamageFlickerCurve()\n {\n return this.hullDamageFlickerCurve;\n }\n\n /** Returns the armour-repair fader. */\n GetArmorRepairing()\n {\n return this.armorRepairing;\n }\n\n /** Returns the armour-hardening fader. */\n GetArmorHardening()\n {\n return this.armorHardening;\n }\n\n /** Returns the hull-repair fader. */\n GetHullRepairing()\n {\n return this.hullRepairing;\n }\n\n /** Returns the damage overlay render priority. */\n GetRenderPriority()\n {\n return this.renderPriority;\n }\n\n /** Returns this overlay's first row in the shared data texture. */\n GetDataTextureOffset()\n {\n return this.#dataTextureOffset;\n }\n\n /** Returns this overlay's shared data-texture block identifier. */\n GetDataTextureBlockID()\n {\n return this.dataTextureBlockID;\n }\n\n /** Returns the active armour or hull impact configuration. */\n GetImpactConfiguration()\n {\n return this.configuration;\n }\n\n /** Returns the lifetime of one armour impact. */\n GetArmorImpactLifeTime()\n {\n return this.armorImpactLifeTime;\n }\n\n /** Copies the last shield, armour and hull values into an output vector. */\n @carbon.method\n @impl.adapted\n GetLastDamageState(out = vec3.create())\n {\n return vec3.copy(out, this.#lastDamageState);\n }\n\n /** Returns the mutable header row used by EveImpactOverlay's shield half. */\n HeaderRow()\n {\n return this.#header;\n }\n\n /** Returns one mutable impact texel row. */\n TexelRow(index)\n {\n return this.#texelRows[index];\n }\n\n /** Returns the live armour-impact table. */\n ArmorImpacts()\n {\n return this.#armorImpacts;\n }\n\n /** Allocates the next impact identifier from the shared or local source. */\n @carbon.method\n @impl.implemented\n AllocateImpactIndex()\n {\n return this.#impactIndexSource\n ? this.#impactIndexSource.AllocateImpactIndex()\n : this.impactDataNextIdx++;\n }\n\n /** Advances armour impacts, faders, priorities and data-texture rows. */\n @carbon.method\n @impl.adapted\n UpdateAsyncronous(updateContext, ownerInfo = {}, minTexelRows = 0, hasExternalActivity = false)\n {\n if (this.armorImpactGoalCount < this.#armorImpacts.size)\n {\n let ordinal = 0;\n for (const [ index, impact ] of this.#armorImpacts)\n {\n if (ordinal++ < this.armorImpactGoalCount) continue;\n impact.size -= updateContext.GetDeltaT() / this.armorImpactLifeTime;\n if (impact.size <= 0) this.#armorImpacts.delete(index);\n }\n }\n\n this.armorHardening.Update(updateContext);\n this.armorRepairing.Update(updateContext);\n this.hullRepairing.Update(updateContext);\n\n const rowCount = Math.max(Number(minTexelRows) >>> 0, this.#armorImpacts.size);\n while (this.#texelRows.length < rowCount)\n {\n this.#texelRows.push(Array.from({ length: 4 }, () => vec4.create()));\n }\n this.#texelRows.length = rowCount;\n\n vec4.set(this.#header[2],\n this.#armorImpacts.size,\n this.armorImpactParentSize,\n this.hullRepairing.GetFaderValue(),\n this.hullRepairing.GetKickInValue());\n vec4.set(this.#header[3],\n this.armorRepairing.GetFaderValue(),\n this.armorHardening.GetFaderValue(),\n this.armorRepairing.GetKickInValue(),\n this.armorHardening.GetKickInValue());\n\n if (!hasExternalActivity && !this.HasGeneralActivity()) return;\n\n const pixelDiameter = Math.max(0, Number(ownerInfo.estimatedPixelDiameter) || 0);\n const isInFrustum = !!ownerInfo.isInFrustum;\n this.renderPriority = this.#wasVisible || isInFrustum ? pixelDiameter : 0;\n this.#wasVisible = isInFrustum;\n\n const sphere = ownerInfo.boundingSphere;\n const radius = Number(sphere?.radius ?? sphere?.[3] ?? -1);\n this.armorImpactParentSize = Math.min(radius, IMPACT_ARMOR_SIZE_MAX / IMPACT_ARMOR_SIZE_FACTOR);\n\n let row = 0;\n for (const impact of this.#armorImpacts.values())\n {\n const texel = this.#texelRows[row++];\n const position = vec3.create();\n ownerInfo.getDamageLocatorPositionOS(impact.damageLocatorIndex, position);\n vec4.set(texel[2], position[0], position[1], position[2], 0);\n vec4.set(texel[3], impact.size * IMPACT_ARMOR_SIZE_FACTOR * this.armorImpactParentSize, 0, 0, 0);\n }\n }\n\n /** Publishes the current damage block during the synchronous update. */\n @carbon.method\n @impl.implemented\n UpdateSyncronous(updateContext)\n {\n this.UpdateBlockData(updateContext.GetDataTextureManager(), this.HasGeneralActivity());\n }\n\n /** Requests or releases this overlay's shared data-texture block. */\n @carbon.method\n @impl.adapted\n UpdateBlockData(dataTextureManager, hasActivity)\n {\n if (!hasActivity)\n {\n this.dataTextureBlockID = -1;\n return;\n }\n\n this.#dataTextureOffset = dataTextureManager.GetTextureOffset(this.dataTextureBlockID);\n this.dataTextureBlockID = dataTextureManager.RequestBlockData(\n this.#header, this.#texelRows.length, this.#texelRows, this.renderPriority);\n }\n\n /** Reports whether armour impacts or armour faders are active. */\n HasArmorActivity()\n {\n return EveDamageOverlay.impactEffectEnabled &&\n (this.#armorImpacts.size !== 0 || !this.armorHardening.IsZero() || !this.armorRepairing.IsZero());\n }\n\n /** Reports whether hull damage presentation is active. */\n HasHullActivity()\n {\n return EveDamageOverlay.impactEffectEnabled && !this.hullRepairing.IsZero();\n }\n\n /** Reports whether any armour or hull presentation is active. */\n HasGeneralActivity()\n {\n return this.HasHullActivity() || this.HasArmorActivity();\n }\n\n /** Calculates the current hull-flicker activation strength. */\n @carbon.method\n @impl.implemented\n GetActivationStrength(updateContext)\n {\n if (EveDamageOverlay.impactEffectEnabled && this.hullDamageFactor > 0 && this.hullDamageFlickerCurve)\n {\n const value = Math.max(0.3, Math.min(1, this.hullDamageFlickerCurve.Update(updateContext.GetTime())));\n return value / Math.exp(this.hullDamageFactor);\n }\n return 1;\n }\n\n /** Starts or stops a named armour or hull fader. */\n @carbon.method\n @impl.implemented\n ToggleEffect(name, on, duration)\n {\n let fader = null;\n if (name === \"armorhardening\") fader = this.armorHardening;\n else if (name === \"armorrepair\") fader = this.armorRepairing;\n else if (name === \"hullrepair\") fader = this.hullRepairing;\n if (!fader) return false;\n fader.StartFade(!!on, Number(duration) / 4);\n return true;\n }\n\n /** Applies shield, armour and hull state and optionally creates armour impacts. */\n @carbon.method\n @impl.implemented\n SetDamageState(shield, armor, hull, createArmorImpacts = false)\n {\n if (shield > 0.05) this.configuration = ImpactConfiguration.IMPACT_SHIELD;\n else if (armor > 0.05) this.configuration = ImpactConfiguration.IMPACT_ARMOR;\n else if (hull > 0) this.configuration = ImpactConfiguration.IMPACT_HULL;\n\n this.armorImpactGoalCount = Math.trunc(\n IMPACT_HOLE_TO_ARMOR_DAMAGE_RATIO * clamp01(1 - armor) +\n IMPACT_HOLE_TO_HULL_DAMAGE_RATIO * clamp01(1 - hull));\n this.hullDamageFactor = linearize(0.9, 0.1, hull);\n\n if (this.hullDamageFlickerCurve)\n {\n const modifier = linearize(1, 0, hull);\n this.hullDamageFlickerCurve.scale = modifier;\n this.hullDamageFlickerCurve.offset = 1 - modifier;\n }\n\n const enabledLocatorCount = this.damageLocatorCount - this.#disabledDamageLocators.length;\n if (createArmorImpacts && enabledLocatorCount)\n {\n const random = seededRandom((this.seed + this.#armorImpacts.size) >>> 0);\n const firstImpact = this.#armorImpacts.size;\n for (let impactIndex = firstImpact; impactIndex < this.armorImpactGoalCount; impactIndex++)\n {\n let locator = Math.floor(random() * enabledLocatorCount);\n for (const disabled of this.#disabledDamageLocators)\n {\n if (disabled > locator) break;\n locator++;\n }\n this.CreateImpact(locator, 0.2 + random() * 0.6, this.debugForceSpawnDebris);\n }\n }\n\n vec3.set(this.#lastDamageState, shield, armor, hull);\n }\n\n /** Removes every live armour impact. */\n @carbon.method\n @impl.implemented\n Clear()\n {\n this.#armorImpacts.clear();\n }\n\n /** Creates or enlarges an armour impact at a damage locator. */\n @carbon.method\n @impl.implemented\n CreateImpact(damageLocatorIndex, size, spawnEffects = false)\n {\n for (const [ index, impact ] of this.#armorImpacts)\n {\n if (impact.damageLocatorIndex !== damageLocatorIndex) continue;\n impact.size = Math.max(Number(size), impact.size);\n impact.requestSpawnDebris = !!spawnEffects;\n return index;\n }\n\n const impactIndex = this.AllocateImpactIndex();\n this.#armorImpacts.set(impactIndex, {\n damageLocatorIndex: Number(damageLocatorIndex) | 0,\n size: Number(size),\n requestSpawnDebris: !!spawnEffects\n });\n return impactIndex;\n }\n\n /** Reports whether an armour impact identifier is live. */\n @carbon.method\n @impl.implemented\n HasImpact(impactIndex)\n {\n return this.#armorImpacts.has(Number(impactIndex) | 0);\n }\n\n /** Returns the active armour-damage material for the decal pass. */\n @carbon.method\n @impl.implemented\n GetArmorDamageShader(batchType)\n {\n if (!this.display || batchType !== TriBatchType.TRIBATCHTYPE_DECAL ||\n this.dataTextureBlockID === -1 || this.#dataTextureOffset === -1 ||\n !this.HasArmorActivity())\n {\n return null;\n }\n return this.armorDamageShader;\n }\n\n static ImpactConfiguration = ImpactConfiguration;\n}\n\n\nfunction clamp01(value)\n{\n return Math.max(0, Math.min(1, Number(value)));\n}\n\n\nfunction linearize(min, max, value)\n{\n return clamp01((Number(value) - min) / (max - min));\n}\n\n\nfunction seededRandom(seed)\n{\n let state = seed || 0x6d2b79f5;\n return () =>\n {\n state = (state + 0x6d2b79f5) >>> 0;\n let value = state;\n value = Math.imul(value ^ value >>> 15, value | 1);\n value ^= value + Math.imul(value ^ value >>> 7, value | 61);\n return ((value ^ value >>> 14) >>> 0) / 4294967296;\n };\n}\n"],"names":["IMPACT_HOLE_TO_ARMOR_DAMAGE_RATIO","IMPACT_HOLE_TO_HULL_DAMAGE_RATIO","IMPACT_ARMOR_SIZE_FACTOR","IMPACT_ARMOR_SIZE_MAX","_EveDamageOverlay","_identity","EveDamageOverlay","CjsModel","e","_init_impactDataNextIdx","_init_extra_impactDataNextIdx","_init_armorImpactGoalCount","_init_extra_armorImpactGoalCount","_init_armorImpactParentSize","_init_extra_armorImpactParentSize","_init_renderPriority","_init_extra_renderPriority","_init_display","_init_extra_display","_init_armorDamageShader","_init_extra_armorDamageShader","_init_seed","_init_extra_seed","_init_armorImpactLifeTime","_init_extra_armorImpactLifeTime","_init_debugForceSpawnDebris","_init_extra_debugForceSpawnDebris","_init_armorRepairing","_init_extra_armorRepairing","_init_armorHardening","_init_extra_armorHardening","_init_hullRepairing","_init_extra_hullRepairing","_init_hullDamageFactor","_init_extra_hullDamageFactor","_init_configuration","_init_extra_configuration","_init_damageLocatorCount","_init_extra_damageLocatorCount","_init_dataTextureBlockID","_init_extra_dataTextureBlockID","_init_hullDamageFlickerCurve","_init_extra_hullDamageFlickerCurve","_initProto","c","_initClass","_applyDecs","type","define","className","family","edit","read","int32","uint64","float32","persist","boolean","model","readwrite","uint32","objectRef","enum","carbon","method","impl","implemented","adapted","impactDataNextIdx","armorImpactGoalCount","armorImpactParentSize","renderPriority","display","armorDamageShader","seed","armorImpactLifeTime","debugForceSpawnDebris","armorRepairing","Tr2ScalarFader","armorHardening","hullRepairing","hullDamageFactor","configuration","ImpactConfiguration","IMPACT_INVALID","damageLocatorCount","dataTextureBlockID","hullDamageFlickerCurve","vec3","fromValues","Map","Array","from","length","vec4","create","Initialize","SetSeed","Number","SetDamageLocatorCount","count","SetEnabledDamageLocators","enabled","filter","Math","min","index","push","SetDebugForceSpawnDebris","value","SetHullDamageFactor","SetArmorDamageShaderEffect","SetHullDamageFlickerCurve","SetArmorRepairing","SetArmorHardening","SetHullRepairing","SetImpactIndexSource","GetSeed","GetImpactDataNextIdx","GetArmorImpactGoalCount","GetArmorImpactParentSize","GetDebugForceSpawnDebris","GetHullDamageFactor","GetArmorDamageShaderEffect","GetHullDamageFlickerCurve","GetArmorRepairing","GetArmorHardening","GetHullRepairing","GetRenderPriority","GetDataTextureOffset","GetDataTextureBlockID","GetImpactConfiguration","GetArmorImpactLifeTime","GetLastDamageState","out","copy","HeaderRow","TexelRow","ArmorImpacts","AllocateImpactIndex","UpdateAsyncronous","updateContext","ownerInfo","minTexelRows","hasExternalActivity","size","ordinal","impact","GetDeltaT","delete","Update","rowCount","max","set","GetFaderValue","GetKickInValue","HasGeneralActivity","pixelDiameter","estimatedPixelDiameter","isInFrustum","sphere","boundingSphere","radius","row","values","texel","position","getDamageLocatorPositionOS","damageLocatorIndex","UpdateSyncronous","UpdateBlockData","GetDataTextureManager","dataTextureManager","hasActivity","GetTextureOffset","RequestBlockData","HasArmorActivity","impactEffectEnabled","IsZero","HasHullActivity","GetActivationStrength","GetTime","exp","ToggleEffect","name","on","duration","fader","StartFade","SetDamageState","shield","armor","hull","createArmorImpacts","IMPACT_SHIELD","IMPACT_ARMOR","IMPACT_HULL","trunc","clamp01","linearize","modifier","scale","offset","enabledLocatorCount","random","seededRandom","firstImpact","impactIndex","locator","floor","disabled","CreateImpact","Clear","clear","spawnEffects","requestSpawnDebris","HasImpact","has","GetArmorDamageShader","batchType","TriBatchType","TRIBATCHTYPE_DECAL","constructor","state","imul"],"mappings":";;;;;;;;;;AAYA,MAAMA,iCAAiC,GAAG,EAAE;AAC5C,MAAMC,gCAAgC,GAAG,CAAC;AAC1C,MAAMC,wBAAwB,GAAG,MAAM;AACvC,MAAMC,qBAAqB,GAAG,EAAE;;AAGhC;AACA;AACA;AACA;AAHA,IAAAC;AAAA,IAAA,cAAAC,SAAA,CAAA;AAAA,EAAA,QAIA,MAAAC,gBAAA,SACsCC,QAAQ,CAC9C;AAAA,IAAA;AAAA,MAAA,CAAA;AAAAC,QAAAA,CAAA,EAAA,CAAAC,uBAAA,EAAAC,6BAAA,EAAAC,0BAAA,EAAAC,gCAAA,EAAAC,2BAAA,EAAAC,iCAAA,EAAAC,oBAAA,EAAAC,0BAAA,EAAAC,aAAA,EAAAC,mBAAA,EAAAC,uBAAA,EAAAC,6BAAA,EAAAC,UAAA,EAAAC,gBAAA,EAAAC,yBAAA,EAAAC,+BAAA,EAAAC,2BAAA,EAAAC,iCAAA,EAAAC,oBAAA,EAAAC,0BAAA,EAAAC,oBAAA,EAAAC,0BAAA,EAAAC,mBAAA,EAAAC,yBAAA,EAAAC,sBAAA,EAAAC,4BAAA,EAAAC,mBAAA,EAAAC,yBAAA,EAAAC,wBAAA,EAAAC,8BAAA,EAAAC,wBAAA,EAAAC,8BAAA,EAAAC,4BAAA,EAAAC,kCAAA,EAAAC,UAAA,CAAA;QAAAC,CAAA,EAAA,CAAAxC,iBAAA,EAAAyC,UAAA;AAAA,OAAA,GAAAC,cAAA,CAAA,IAAA,EAAA,CAFCC,IAAI,CAACC,MAAM,CAAC;AAAEC,QAAAA,SAAS,EAAE,kBAAkB;AAAEC,QAAAA,MAAM,EAAE;OAAuB,CAAC,MAG3EC,IAAI,EAAJA,IAAI,CAACC,IAAI,EACTL,IAAI,EAAJA,IAAI,CAACM,KAAK,+BAGVF,IAAI,EAAJA,IAAI,CAACC,IAAI,EACTL,IAAI,EAAJA,IAAI,CAACO,MAAM,CAAA,EAAA,EAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,CAGXH,IAAI,EAAJA,IAAI,CAACC,IAAI,EACTL,IAAI,EAAJA,IAAI,CAACQ,OAAO,CAAA,EAAA,EAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,CAGZJ,IAAI,EAAJA,IAAI,CAACC,IAAI,EACTL,IAAI,EAAJA,IAAI,CAACQ,OAAO,4BAGZJ,IAAI,EAAJA,IAAI,CAACK,OAAO,EACZT,IAAI,EAAJA,IAAI,CAACU,OAAO,CAAA,EAAA,EAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAGZN,IAAI,EAAJA,IAAI,CAACK,OAAO,EAAA,MAAA,EACZT,IAAI,CAACW,KAAK,CAAC,WAAW,CAAC,CAAA,EAAA,EAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CAGvBP,IAAI,EAAJA,IAAI,CAACQ,SAAS,EACdZ,IAAI,EAAJA,IAAI,CAACa,MAAM,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAGXT,IAAI,EAAJA,IAAI,CAACQ,SAAS,EACdZ,IAAI,EAAJA,IAAI,CAACQ,OAAO,CAAA,EAAA,EAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,CAGZJ,IAAI,EAAJA,IAAI,CAACQ,SAAS,EACdZ,IAAI,EAAJA,IAAI,CAACU,OAAO,CAAA,EAAA,EAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,CAGZN,IAAI,EAAJA,IAAI,CAACQ,SAAS,EAAA,MAAA,EACdZ,IAAI,CAACc,SAAS,CAAC,gBAAgB,CAAC,CAAA,EAAA,EAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAGhCV,IAAI,EAAJA,IAAI,CAACQ,SAAS,EAAA,MAAA,EACdZ,IAAI,CAACc,SAAS,CAAC,gBAAgB,CAAC,CAAA,EAAA,EAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAGhCV,IAAI,EAAJA,IAAI,CAACQ,SAAS,EAAA,MAAA,EACdZ,IAAI,CAACc,SAAS,CAAC,gBAAgB,CAAC,CAAA,EAAA,EAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAGhCV,IAAI,EAAJA,IAAI,CAACQ,SAAS,EACdZ,IAAI,EAAJA,IAAI,CAACQ,OAAO,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAGZJ,IAAI,EAAJA,IAAI,CAACC,IAAI,EACTL,IAAI,EAAJA,IAAI,CAACM,KAAK,EAAA,MAAA,EACVN,IAAI,CAACe,IAAI,CAAC,qBAAqB,CAAC,CAAA,EAAA,EAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAGhCX,IAAI,EAAJA,IAAI,CAACQ,SAAS,EACdZ,IAAI,EAAJA,IAAI,CAACa,MAAM,gCAGXT,IAAI,EAAJA,IAAI,CAACC,IAAI,EACTL,IAAI,EAAJA,IAAI,CAACM,KAAK,CAAA,EAAA,EAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAGVF,IAAI,EAAJA,IAAI,CAACK,OAAO,EAAA,MAAA,EACZT,IAAI,CAACW,KAAK,CAAC,gBAAgB,CAAC,oCA0B5BK,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAOhBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAOhBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,CAQhBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,OAAO,CAAA,EAAA,EAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,CA6JZJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,OAAO,CAAA,EAAA,EAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAyBZJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,CAShBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,OAAO,+BA2DZJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAOhBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,OAAO,CAAA,EAAA,EAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAkCZJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,mCAYhBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAahBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAwChBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,mBAOhBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAqBhBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAOhBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,sBAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EA3gBmB3D,QAAQ,CAAA;AAAA;AAI5C6D,IAAAA,iBAAiB,IAAAzB,UAAA,CAAA,IAAA,CAAA,EAAAlC,uBAAA,OAAG,CAAC,CAAA;AAIrB4D,IAAAA,oBAAoB,IAAA3D,6BAAA,CAAA,IAAA,CAAA,EAAAC,0BAAA,OAAG,CAAC,CAAA;AAIxB2D,IAAAA,qBAAqB,IAAA1D,gCAAA,CAAA,IAAA,CAAA,EAAAC,2BAAA,OAAG,CAAC,CAAA;AAIzB0D,IAAAA,cAAc,IAAAzD,iCAAA,CAAA,IAAA,CAAA,EAAAC,oBAAA,OAAG,CAAC,CAAA;AAIlByD,IAAAA,OAAO,IAAAxD,0BAAA,CAAA,IAAA,CAAA,EAAAC,aAAA,OAAG,IAAI,CAAA;AAIdwD,IAAAA,iBAAiB,IAAAvD,mBAAA,CAAA,IAAA,CAAA,EAAAC,uBAAA,OAAG,IAAI,CAAA;AAIxBuD,IAAAA,IAAI,IAAAtD,6BAAA,CAAA,IAAA,CAAA,EAAAC,UAAA,OAAG,CAAC,CAAA;AAIRsD,IAAAA,mBAAmB,IAAArD,gBAAA,CAAA,IAAA,CAAA,EAAAC,yBAAA,OAAG,EAAE,CAAA;AAIxBqD,IAAAA,qBAAqB,IAAApD,+BAAA,CAAA,IAAA,CAAA,EAAAC,2BAAA,OAAG,KAAK,CAAA;IAI7BoD,cAAc,IAAAnD,iCAAA,CAAA,IAAA,CAAA,EAAAC,oBAAA,OAAG,IAAImD,eAAc,EAAE,CAAA;IAIrCC,cAAc,IAAAnD,0BAAA,CAAA,IAAA,CAAA,EAAAC,oBAAA,OAAG,IAAIiD,eAAc,EAAE,CAAA;IAIrCE,aAAa,IAAAlD,0BAAA,CAAA,IAAA,CAAA,EAAAC,mBAAA,OAAG,IAAI+C,eAAc,EAAE,CAAA;AAIpCG,IAAAA,gBAAgB,IAAAjD,yBAAA,CAAA,IAAA,CAAA,EAAAC,sBAAA,OAAG,CAAC,CAAA;AAKpBiD,IAAAA,aAAa,IAAAhD,4BAAA,CAAA,IAAA,CAAA,EAAAC,mBAAA,CAAA,IAAA,EAAGgD,mBAAmB,CAACC,cAAc,CAAA;AAIlDC,IAAAA,kBAAkB,IAAAjD,yBAAA,CAAA,IAAA,CAAA,EAAAC,wBAAA,OAAG,CAAC,CAAA;AAItBiD,IAAAA,kBAAkB,IAAAhD,8BAAA,CAAA,IAAA,CAAA,EAAAC,wBAAA,CAAA,IAAA,EAAG,EAAE,CAAA;AAIvBgD,IAAAA,sBAAsB,IAAA/C,8BAAA,CAAA,IAAA,CAAA,EAAAC,4BAAA,OAAG,IAAI,CAAA;AAE7B,IAAA,kBAAkB,IAAAC,kCAAA,CAAA,IAAA,CAAA,EAAG,EAAE;;AAEvB;AACA;AACA;IACA,uBAAuB,GAAG,EAAE;IAE5B,gBAAgB,GAAG8C,IAAI,CAACC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAE3C,kBAAkB,GAAG,IAAI;AAEzB,IAAA,aAAa,GAAG,IAAIC,GAAG,EAAE;AAEzB,IAAA,OAAO,GAAGC,KAAK,CAACC,IAAI,CAAC;AAAEC,MAAAA,MAAM,EAAE;AAAE,KAAC,EAAE,MAAMC,IAAI,CAACC,MAAM,EAAE,CAAC;IAExD,UAAU,GAAG,EAAE;IAEf,WAAW,GAAG,KAAK;;AAEnB;;AAGA;AAGAC,IAAAA,UAAUA,GACV;AACE,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;IAGAC,OAAOA,CAACvB,IAAI,EACZ;MACE,IAAI,CAACA,IAAI,GAAGwB,MAAM,CAACxB,IAAI,CAAC,KAAK,CAAC;AAChC,IAAA;;AAEA;IAGAyB,qBAAqBA,CAACC,KAAK,EAC3B;MACE,IAAI,CAACf,kBAAkB,GAAGa,MAAM,CAACE,KAAK,CAAC,KAAK,CAAC;AAC7C,MAAA,IAAI,CAAC,uBAAuB,CAACP,MAAM,GAAG,CAAC;AACzC,IAAA;;AAEA;IAGAQ,wBAAwBA,CAACC,OAAO,EAChC;MACE,MAAMC,MAAM,GAAGZ,KAAK,CAACC,IAAI,CAACU,OAAO,IAAI,EAAE,CAAC;AACxC,MAAA,IAAI,CAAC,uBAAuB,CAACT,MAAM,GAAG,CAAC;AACvC,MAAA,MAAMO,KAAK,GAAGI,IAAI,CAACC,GAAG,CAAC,IAAI,CAACpB,kBAAkB,EAAEkB,MAAM,CAACV,MAAM,CAAC;MAC9D,KAAK,IAAIa,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGN,KAAK,EAAEM,KAAK,EAAE,EAC1C;AACE,QAAA,IAAI,CAACH,MAAM,CAACG,KAAK,CAAC,EAAE,IAAI,CAAC,uBAAuB,CAACC,IAAI,CAACD,KAAK,CAAC;AAC9D,MAAA;AACF,IAAA;;AAEA;IACAE,wBAAwBA,CAACC,KAAK,EAC9B;AACE,MAAA,IAAI,CAACjC,qBAAqB,GAAG,CAAC,CAACiC,KAAK;AACtC,IAAA;;AAEA;IACAC,mBAAmBA,CAACD,KAAK,EACzB;AACE,MAAA,IAAI,CAAC5B,gBAAgB,GAAGiB,MAAM,CAACW,KAAK,CAAC;AACvC,IAAA;;AAEA;IACAE,0BAA0BA,CAACF,KAAK,EAChC;AACE,MAAA,IAAI,CAACpC,iBAAiB,GAAGoC,KAAK,IAAI,IAAI;AACxC,IAAA;;AAEA;IACAG,yBAAyBA,CAACH,KAAK,EAC/B;AACE,MAAA,IAAI,CAACtB,sBAAsB,GAAGsB,KAAK,IAAI,IAAI;AAC7C,IAAA;;AAEA;IACAI,iBAAiBA,CAACJ,KAAK,EACvB;MACE,IAAI,CAAChC,cAAc,GAAGgC,KAAK;AAC7B,IAAA;;AAEA;IACAK,iBAAiBA,CAACL,KAAK,EACvB;MACE,IAAI,CAAC9B,cAAc,GAAG8B,KAAK;AAC7B,IAAA;;AAEA;IACAM,gBAAgBA,CAACN,KAAK,EACtB;MACE,IAAI,CAAC7B,aAAa,GAAG6B,KAAK;AAC5B,IAAA;;AAEA;IACAO,oBAAoBA,CAACP,KAAK,EAC1B;AACE,MAAA,IAAI,CAAC,kBAAkB,GAAGA,KAAK,IAAI,IAAI;AACzC,IAAA;;AAEA;AACAQ,IAAAA,OAAOA,GACP;MACE,OAAO,IAAI,CAAC3C,IAAI;AAClB,IAAA;;AAEA;AACA4C,IAAAA,oBAAoBA,GACpB;MACE,OAAO,IAAI,CAAClD,iBAAiB;AAC/B,IAAA;;AAEA;AACAmD,IAAAA,uBAAuBA,GACvB;MACE,OAAO,IAAI,CAAClD,oBAAoB;AAClC,IAAA;;AAEA;AACAmD,IAAAA,wBAAwBA,GACxB;MACE,OAAO,IAAI,CAAClD,qBAAqB;AACnC,IAAA;;AAEA;AACAmD,IAAAA,wBAAwBA,GACxB;MACE,OAAO,IAAI,CAAC7C,qBAAqB;AACnC,IAAA;;AAEA;AACA8C,IAAAA,mBAAmBA,GACnB;MACE,OAAO,IAAI,CAACzC,gBAAgB;AAC9B,IAAA;;AAEA;AACA0C,IAAAA,0BAA0BA,GAC1B;MACE,OAAO,IAAI,CAAClD,iBAAiB;AAC/B,IAAA;;AAEA;AACAmD,IAAAA,yBAAyBA,GACzB;MACE,OAAO,IAAI,CAACrC,sBAAsB;AACpC,IAAA;;AAEA;AACAsC,IAAAA,iBAAiBA,GACjB;MACE,OAAO,IAAI,CAAChD,cAAc;AAC5B,IAAA;;AAEA;AACAiD,IAAAA,iBAAiBA,GACjB;MACE,OAAO,IAAI,CAAC/C,cAAc;AAC5B,IAAA;;AAEA;AACAgD,IAAAA,gBAAgBA,GAChB;MACE,OAAO,IAAI,CAAC/C,aAAa;AAC3B,IAAA;;AAEA;AACAgD,IAAAA,iBAAiBA,GACjB;MACE,OAAO,IAAI,CAACzD,cAAc;AAC5B,IAAA;;AAEA;AACA0D,IAAAA,oBAAoBA,GACpB;MACE,OAAO,IAAI,CAAC,kBAAkB;AAChC,IAAA;;AAEA;AACAC,IAAAA,qBAAqBA,GACrB;MACE,OAAO,IAAI,CAAC5C,kBAAkB;AAChC,IAAA;;AAEA;AACA6C,IAAAA,sBAAsBA,GACtB;MACE,OAAO,IAAI,CAACjD,aAAa;AAC3B,IAAA;;AAEA;AACAkD,IAAAA,sBAAsBA,GACtB;MACE,OAAO,IAAI,CAACzD,mBAAmB;AACjC,IAAA;;AAEA;IAGA0D,kBAAkBA,CAACC,GAAG,GAAG9C,IAAI,CAACO,MAAM,EAAE,EACtC;MACE,OAAOP,IAAI,CAAC+C,IAAI,CAACD,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC;AAC9C,IAAA;;AAEA;AACAE,IAAAA,SAASA,GACT;MACE,OAAO,IAAI,CAAC,OAAO;AACrB,IAAA;;AAEA;IACAC,QAAQA,CAAC/B,KAAK,EACd;AACE,MAAA,OAAO,IAAI,CAAC,UAAU,CAACA,KAAK,CAAC;AAC/B,IAAA;;AAEA;AACAgC,IAAAA,YAAYA,GACZ;MACE,OAAO,IAAI,CAAC,aAAa;AAC3B,IAAA;;AAEA;AAGAC,IAAAA,mBAAmBA,GACnB;AACE,MAAA,OAAO,IAAI,CAAC,kBAAkB,GAC1B,IAAI,CAAC,kBAAkB,CAACA,mBAAmB,EAAE,GAC7C,IAAI,CAACvE,iBAAiB,EAAE;AAC9B,IAAA;;AAEA;AAGAwE,IAAAA,iBAAiBA,CAACC,aAAa,EAAEC,SAAS,GAAG,EAAE,EAAEC,YAAY,GAAG,CAAC,EAAEC,mBAAmB,GAAG,KAAK,EAC9F;MACE,IAAI,IAAI,CAAC3E,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC4E,IAAI,EACvD;QACE,IAAIC,OAAO,GAAG,CAAC;QACf,KAAK,MAAM,CAAExC,KAAK,EAAEyC,MAAM,CAAE,IAAI,IAAI,CAAC,aAAa,EAClD;AACE,UAAA,IAAID,OAAO,EAAE,GAAG,IAAI,CAAC7E,oBAAoB,EAAE;UAC3C8E,MAAM,CAACF,IAAI,IAAIJ,aAAa,CAACO,SAAS,EAAE,GAAG,IAAI,CAACzE,mBAAmB;AACnE,UAAA,IAAIwE,MAAM,CAACF,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,aAAa,CAACI,MAAM,CAAC3C,KAAK,CAAC;AACxD,QAAA;AACF,MAAA;AAEA,MAAA,IAAI,CAAC3B,cAAc,CAACuE,MAAM,CAACT,aAAa,CAAC;AACzC,MAAA,IAAI,CAAChE,cAAc,CAACyE,MAAM,CAACT,aAAa,CAAC;AACzC,MAAA,IAAI,CAAC7D,aAAa,CAACsE,MAAM,CAACT,aAAa,CAAC;AAExC,MAAA,MAAMU,QAAQ,GAAG/C,IAAI,CAACgD,GAAG,CAACtD,MAAM,CAAC6C,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,CAACE,IAAI,CAAC;MAC9E,OAAO,IAAI,CAAC,UAAU,CAACpD,MAAM,GAAG0D,QAAQ,EACxC;QACE,IAAI,CAAC,UAAU,CAAC5C,IAAI,CAAChB,KAAK,CAACC,IAAI,CAAC;AAAEC,UAAAA,MAAM,EAAE;SAAG,EAAE,MAAMC,IAAI,CAACC,MAAM,EAAE,CAAC,CAAC;AACtE,MAAA;AACA,MAAA,IAAI,CAAC,UAAU,CAACF,MAAM,GAAG0D,QAAQ;AAEjCzD,MAAAA,IAAI,CAAC2D,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EACtB,IAAI,CAAC,aAAa,CAACR,IAAI,EACvB,IAAI,CAAC3E,qBAAqB,EAC1B,IAAI,CAACU,aAAa,CAAC0E,aAAa,EAAE,EAClC,IAAI,CAAC1E,aAAa,CAAC2E,cAAc,EAAE,CAAC;AACtC7D,MAAAA,IAAI,CAAC2D,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EACtB,IAAI,CAAC5E,cAAc,CAAC6E,aAAa,EAAE,EACnC,IAAI,CAAC3E,cAAc,CAAC2E,aAAa,EAAE,EACnC,IAAI,CAAC7E,cAAc,CAAC8E,cAAc,EAAE,EACpC,IAAI,CAAC5E,cAAc,CAAC4E,cAAc,EAAE,CAAC;MAEvC,IAAI,CAACX,mBAAmB,IAAI,CAAC,IAAI,CAACY,kBAAkB,EAAE,EAAE;AAExD,MAAA,MAAMC,aAAa,GAAGrD,IAAI,CAACgD,GAAG,CAAC,CAAC,EAAEtD,MAAM,CAAC4C,SAAS,CAACgB,sBAAsB,CAAC,IAAI,CAAC,CAAC;AAChF,MAAA,MAAMC,WAAW,GAAG,CAAC,CAACjB,SAAS,CAACiB,WAAW;AAC3C,MAAA,IAAI,CAACxF,cAAc,GAAG,IAAI,CAAC,WAAW,IAAIwF,WAAW,GAAGF,aAAa,GAAG,CAAC;AACzE,MAAA,IAAI,CAAC,WAAW,GAAGE,WAAW;AAE9B,MAAA,MAAMC,MAAM,GAAGlB,SAAS,CAACmB,cAAc;AACvC,MAAA,MAAMC,MAAM,GAAGhE,MAAM,CAAC8D,MAAM,EAAEE,MAAM,IAAIF,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC1D,MAAA,IAAI,CAAC1F,qBAAqB,GAAGkC,IAAI,CAACC,GAAG,CAACyD,MAAM,EAAE/J,qBAAqB,GAAGD,wBAAwB,CAAC;MAE/F,IAAIiK,GAAG,GAAG,CAAC;MACX,KAAK,MAAMhB,MAAM,IAAI,IAAI,CAAC,aAAa,CAACiB,MAAM,EAAE,EAChD;QACE,MAAMC,KAAK,GAAG,IAAI,CAAC,UAAU,CAACF,GAAG,EAAE,CAAC;AACpC,QAAA,MAAMG,QAAQ,GAAG9E,IAAI,CAACO,MAAM,EAAE;QAC9B+C,SAAS,CAACyB,0BAA0B,CAACpB,MAAM,CAACqB,kBAAkB,EAAEF,QAAQ,CAAC;QACzExE,IAAI,CAAC2D,GAAG,CAACY,KAAK,CAAC,CAAC,CAAC,EAAEC,QAAQ,CAAC,CAAC,CAAC,EAAEA,QAAQ,CAAC,CAAC,CAAC,EAAEA,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5DxE,IAAI,CAAC2D,GAAG,CAACY,KAAK,CAAC,CAAC,CAAC,EAAElB,MAAM,CAACF,IAAI,GAAG/I,wBAAwB,GAAG,IAAI,CAACoE,qBAAqB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAClG,MAAA;AACF,IAAA;;AAEA;IAGAmG,gBAAgBA,CAAC5B,aAAa,EAC9B;AACE,MAAA,IAAI,CAAC6B,eAAe,CAAC7B,aAAa,CAAC8B,qBAAqB,EAAE,EAAE,IAAI,CAACf,kBAAkB,EAAE,CAAC;AACxF,IAAA;;AAEA;AAGAc,IAAAA,eAAeA,CAACE,kBAAkB,EAAEC,WAAW,EAC/C;MACE,IAAI,CAACA,WAAW,EAChB;AACE,QAAA,IAAI,CAACvF,kBAAkB,GAAG,EAAE;AAC5B,QAAA;AACF,MAAA;MAEA,IAAI,CAAC,kBAAkB,GAAGsF,kBAAkB,CAACE,gBAAgB,CAAC,IAAI,CAACxF,kBAAkB,CAAC;MACtF,IAAI,CAACA,kBAAkB,GAAGsF,kBAAkB,CAACG,gBAAgB,CAC3D,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAClF,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAACtB,cAAc,CAAC;AAC/E,IAAA;;AAEA;AACAyG,IAAAA,gBAAgBA,GAChB;AACE,MAAA,OAAO1K,iBAAgB,CAAC2K,mBAAmB,KACxC,IAAI,CAAC,aAAa,CAAChC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAClE,cAAc,CAACmG,MAAM,EAAE,IAAI,CAAC,IAAI,CAACrG,cAAc,CAACqG,MAAM,EAAE,CAAC;AACrG,IAAA;;AAEA;AACAC,IAAAA,eAAeA,GACf;MACE,OAAO7K,iBAAgB,CAAC2K,mBAAmB,IAAI,CAAC,IAAI,CAACjG,aAAa,CAACkG,MAAM,EAAE;AAC7E,IAAA;;AAEA;AACAtB,IAAAA,kBAAkBA,GAClB;MACE,OAAO,IAAI,CAACuB,eAAe,EAAE,IAAI,IAAI,CAACH,gBAAgB,EAAE;AAC1D,IAAA;;AAEA;IAGAI,qBAAqBA,CAACvC,aAAa,EACnC;AACE,MAAA,IAAIvI,iBAAgB,CAAC2K,mBAAmB,IAAI,IAAI,CAAChG,gBAAgB,GAAG,CAAC,IAAI,IAAI,CAACM,sBAAsB,EACpG;QACE,MAAMsB,KAAK,GAAGL,IAAI,CAACgD,GAAG,CAAC,GAAG,EAAEhD,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAClB,sBAAsB,CAAC+D,MAAM,CAACT,aAAa,CAACwC,OAAO,EAAE,CAAC,CAAC,CAAC;QACrG,OAAOxE,KAAK,GAAGL,IAAI,CAAC8E,GAAG,CAAC,IAAI,CAACrG,gBAAgB,CAAC;AAChD,MAAA;AACA,MAAA,OAAO,CAAC;AACV,IAAA;;AAEA;AAGAsG,IAAAA,YAAYA,CAACC,IAAI,EAAEC,EAAE,EAAEC,QAAQ,EAC/B;MACE,IAAIC,KAAK,GAAG,IAAI;AAChB,MAAA,IAAIH,IAAI,KAAK,gBAAgB,EAAEG,KAAK,GAAG,IAAI,CAAC5G,cAAc,CAAC,KACtD,IAAIyG,IAAI,KAAK,aAAa,EAAEG,KAAK,GAAG,IAAI,CAAC9G,cAAc,CAAC,KACxD,IAAI2G,IAAI,KAAK,YAAY,EAAEG,KAAK,GAAG,IAAI,CAAC3G,aAAa;AAC1D,MAAA,IAAI,CAAC2G,KAAK,EAAE,OAAO,KAAK;AACxBA,MAAAA,KAAK,CAACC,SAAS,CAAC,CAAC,CAACH,EAAE,EAAEvF,MAAM,CAACwF,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC3C,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;IAGAG,cAAcA,CAACC,MAAM,EAAEC,KAAK,EAAEC,IAAI,EAAEC,kBAAkB,GAAG,KAAK,EAC9D;AACE,MAAA,IAAIH,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC5G,aAAa,GAAGC,mBAAmB,CAAC+G,aAAa,CAAC,KACrE,IAAIH,KAAK,GAAG,IAAI,EAAE,IAAI,CAAC7G,aAAa,GAAGC,mBAAmB,CAACgH,YAAY,CAAC,KACxE,IAAIH,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC9G,aAAa,GAAGC,mBAAmB,CAACiH,WAAW;MAEvE,IAAI,CAAC/H,oBAAoB,GAAGmC,IAAI,CAAC6F,KAAK,CACpCrM,iCAAiC,GAAGsM,OAAO,CAAC,CAAC,GAAGP,KAAK,CAAC,GACtD9L,gCAAgC,GAAGqM,OAAO,CAAC,CAAC,GAAGN,IAAI,CAAC,CAAC;MACvD,IAAI,CAAC/G,gBAAgB,GAAGsH,SAAS,CAAC,GAAG,EAAE,GAAG,EAAEP,IAAI,CAAC;MAEjD,IAAI,IAAI,CAACzG,sBAAsB,EAC/B;QACE,MAAMiH,QAAQ,GAAGD,SAAS,CAAC,CAAC,EAAE,CAAC,EAAEP,IAAI,CAAC;AACtC,QAAA,IAAI,CAACzG,sBAAsB,CAACkH,KAAK,GAAGD,QAAQ;AAC5C,QAAA,IAAI,CAACjH,sBAAsB,CAACmH,MAAM,GAAG,CAAC,GAAGF,QAAQ;AACnD,MAAA;MAEA,MAAMG,mBAAmB,GAAG,IAAI,CAACtH,kBAAkB,GAAG,IAAI,CAAC,uBAAuB,CAACQ,MAAM;MACzF,IAAIoG,kBAAkB,IAAIU,mBAAmB,EAC7C;AACE,QAAA,MAAMC,MAAM,GAAGC,YAAY,CAAE,IAAI,CAACnI,IAAI,GAAG,IAAI,CAAC,aAAa,CAACuE,IAAI,KAAM,CAAC,CAAC;AACxE,QAAA,MAAM6D,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC7D,IAAI;AAC3C,QAAA,KAAK,IAAI8D,WAAW,GAAGD,WAAW,EAAEC,WAAW,GAAG,IAAI,CAAC1I,oBAAoB,EAAE0I,WAAW,EAAE,EAC1F;UACE,IAAIC,OAAO,GAAGxG,IAAI,CAACyG,KAAK,CAACL,MAAM,EAAE,GAAGD,mBAAmB,CAAC;AACxD,UAAA,KAAK,MAAMO,QAAQ,IAAI,IAAI,CAAC,uBAAuB,EACnD;YACE,IAAIA,QAAQ,GAAGF,OAAO,EAAE;AACxBA,YAAAA,OAAO,EAAE;AACX,UAAA;AACA,UAAA,IAAI,CAACG,YAAY,CAACH,OAAO,EAAE,GAAG,GAAGJ,MAAM,EAAE,GAAG,GAAG,EAAE,IAAI,CAAChI,qBAAqB,CAAC;AAC9E,QAAA;AACF,MAAA;AAEAY,MAAAA,IAAI,CAACiE,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAEqC,MAAM,EAAEC,KAAK,EAAEC,IAAI,CAAC;AACtD,IAAA;;AAEA;AAGAoB,IAAAA,KAAKA,GACL;AACE,MAAA,IAAI,CAAC,aAAa,CAACC,KAAK,EAAE;AAC5B,IAAA;;AAEA;IAGAF,YAAYA,CAAC3C,kBAAkB,EAAEvB,IAAI,EAAEqE,YAAY,GAAG,KAAK,EAC3D;MACE,KAAK,MAAM,CAAE5G,KAAK,EAAEyC,MAAM,CAAE,IAAI,IAAI,CAAC,aAAa,EAClD;AACE,QAAA,IAAIA,MAAM,CAACqB,kBAAkB,KAAKA,kBAAkB,EAAE;AACtDrB,QAAAA,MAAM,CAACF,IAAI,GAAGzC,IAAI,CAACgD,GAAG,CAACtD,MAAM,CAAC+C,IAAI,CAAC,EAAEE,MAAM,CAACF,IAAI,CAAC;AACjDE,QAAAA,MAAM,CAACoE,kBAAkB,GAAG,CAAC,CAACD,YAAY;AAC1C,QAAA,OAAO5G,KAAK;AACd,MAAA;AAEA,MAAA,MAAMqG,WAAW,GAAG,IAAI,CAACpE,mBAAmB,EAAE;AAC9C,MAAA,IAAI,CAAC,aAAa,CAACc,GAAG,CAACsD,WAAW,EAAE;AAClCvC,QAAAA,kBAAkB,EAAEtE,MAAM,CAACsE,kBAAkB,CAAC,GAAG,CAAC;AAClDvB,QAAAA,IAAI,EAAE/C,MAAM,CAAC+C,IAAI,CAAC;QAClBsE,kBAAkB,EAAE,CAAC,CAACD;AACxB,OAAC,CAAC;AACF,MAAA,OAAOP,WAAW;AACpB,IAAA;;AAEA;IAGAS,SAASA,CAACT,WAAW,EACrB;AACE,MAAA,OAAO,IAAI,CAAC,aAAa,CAACU,GAAG,CAACvH,MAAM,CAAC6G,WAAW,CAAC,GAAG,CAAC,CAAC;AACxD,IAAA;;AAEA;IAGAW,oBAAoBA,CAACC,SAAS,EAC9B;AACE,MAAA,IAAI,CAAC,IAAI,CAACnJ,OAAO,IAAImJ,SAAS,KAAKC,YAAY,CAACC,kBAAkB,IAChE,IAAI,CAACvI,kBAAkB,KAAK,EAAE,IAAI,IAAI,CAAC,kBAAkB,KAAK,EAAE,IAChE,CAAC,IAAI,CAAC0F,gBAAgB,EAAE,EAC1B;AACE,QAAA,OAAO,IAAI;AACb,MAAA;MACA,OAAO,IAAI,CAACvG,iBAAiB;AAC/B,IAAA;GAGD;AA7bQwG,EAAAA,mBAAmB,GAAG,IAAI;AA4b1B9F,EAAAA,mBAAmB,GAAGA,mBAAmB;EAAC2I,WAAAA,GAAA;IAAA,KAAA,CAAA1N,iBAAA,GAAAyC,UAAA,EAAA;AAAA,EAAA;AAAA,CAAA,EAAA;AAInD,SAASyJ,OAAOA,CAACzF,KAAK,EACtB;AACE,EAAA,OAAOL,IAAI,CAACgD,GAAG,CAAC,CAAC,EAAEhD,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEP,MAAM,CAACW,KAAK,CAAC,CAAC,CAAC;AAChD;AAGA,SAAS0F,SAASA,CAAC9F,GAAG,EAAE+C,GAAG,EAAE3C,KAAK,EAClC;AACE,EAAA,OAAOyF,OAAO,CAAC,CAACpG,MAAM,CAACW,KAAK,CAAC,GAAGJ,GAAG,KAAK+C,GAAG,GAAG/C,GAAG,CAAC,CAAC;AACrD;AAGA,SAASoG,YAAYA,CAACnI,IAAI,EAC1B;AACE,EAAA,IAAIqJ,KAAK,GAAGrJ,IAAI,IAAI,UAAU;AAC9B,EAAA,OAAO,MACP;AACEqJ,IAAAA,KAAK,GAAIA,KAAK,GAAG,UAAU,KAAM,CAAC;IAClC,IAAIlH,KAAK,GAAGkH,KAAK;AACjBlH,IAAAA,KAAK,GAAGL,IAAI,CAACwH,IAAI,CAACnH,KAAK,GAAGA,KAAK,KAAK,EAAE,EAAEA,KAAK,GAAG,CAAC,CAAC;AAClDA,IAAAA,KAAK,IAAIA,KAAK,GAAGL,IAAI,CAACwH,IAAI,CAACnH,KAAK,GAAGA,KAAK,KAAK,CAAC,EAAEA,KAAK,GAAG,EAAE,CAAC;IAC3D,OAAO,CAAC,CAACA,KAAK,GAAGA,KAAK,KAAK,EAAE,MAAM,CAAC,IAAI,UAAU;EACpD,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"EveDamageOverlay.js","sources":["../../../../../src/trinity/eve/overlays/EveDamageOverlay.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/Attachments/EveDamageOverlay.h\n// Source: trinity/trinity/Eve/SpaceObject/Attachments/EveDamageOverlay.cpp\n// Source: trinity/trinity/Eve/SpaceObject/Attachments/EveDamageOverlay_Blue.cpp\nimport { vec3 } from \"#math/vec3\";\nimport { vec4 } from \"#math/vec4\";\nimport { CjsModel } from \"#model\";\nimport { carbon, impl, edit, type } from \"#schema\";\nimport { TriBatchType } from \"#consts/graphics\";\nimport { Tr2ScalarFader } from \"../../curves/curve/Tr2ScalarFader.js\";\nimport { ImpactConfiguration } from \"../../generated/include/enums.js\";\n\n\nconst IMPACT_HOLE_TO_ARMOR_DAMAGE_RATIO = 12;\nconst IMPACT_HOLE_TO_HULL_DAMAGE_RATIO = 4;\nexport const IMPACT_ARMOR_SIZE_FACTOR = 0.0129;\nexport const IMPACT_ARMOR_SIZE_MAX = 10;\n\n\n/**\n * Self-contained armour and hull damage state shared by a ship impact overlay\n * and by independently rendered child meshes.\n */\n@type.define({ className: \"EveDamageOverlay\", family: \"eve/overlays/impact\" })\nexport class EveDamageOverlay extends CjsModel\n{\n @edit.read\n @type.int32\n impactDataNextIdx = 1;\n\n @edit.read\n @type.uint64\n armorImpactGoalCount = 0;\n\n @edit.read\n @type.float32\n armorImpactParentSize = 0;\n\n @edit.read\n @type.float32\n renderPriority = 0;\n\n @edit.persist\n @type.boolean\n display = true;\n\n @edit.persist\n @type.model(\"Tr2Effect\")\n armorDamageShader = null;\n\n @edit.readwrite\n @type.uint32\n seed = 0;\n\n @edit.readwrite\n @type.float32\n armorImpactLifeTime = 10;\n\n @edit.readwrite\n @type.boolean\n debugForceSpawnDebris = false;\n\n @edit.readwrite\n @type.objectRef(\"Tr2ScalarFader\")\n armorRepairing = new Tr2ScalarFader();\n\n @edit.readwrite\n @type.objectRef(\"Tr2ScalarFader\")\n armorHardening = new Tr2ScalarFader();\n\n @edit.readwrite\n @type.objectRef(\"Tr2ScalarFader\")\n hullRepairing = new Tr2ScalarFader();\n\n @edit.readwrite\n @type.float32\n hullDamageFactor = 0;\n\n @edit.read\n @type.int32\n @type.enum(\"ImpactConfiguration\")\n configuration = ImpactConfiguration.IMPACT_INVALID;\n\n @edit.readwrite\n @type.uint32\n damageLocatorCount = 0;\n\n @edit.read\n @type.int32\n dataTextureBlockID = -1;\n\n @edit.persist\n @type.model(\"TriPerlinCurve\")\n hullDamageFlickerCurve = null;\n\n #dataTextureOffset = -1;\n\n // Disabled indices are the compact complement of Carbon's enabled-index\n // vector. This preserves uint32 count semantics without allocating several\n // gigabytes when a caller passes a wrapped unsigned value.\n #disabledDamageLocators = [];\n\n #lastDamageState = vec3.fromValues(1, 1, 1);\n\n #impactIndexSource = null;\n\n #armorImpacts = new Map();\n\n #header = Array.from({ length: 4 }, () => vec4.create());\n\n #texelRows = [];\n\n #wasVisible = false;\n\n /** Global equivalent of Carbon's impact-effect setting. */\n static impactEffectEnabled = true;\n\n /** Initializes the damage-overlay state. */\n @carbon.method\n @impl.implemented\n Initialize()\n {\n return true;\n }\n\n /** Sets the deterministic seed used to choose damage locators. */\n @carbon.method\n @impl.implemented\n SetSeed(seed)\n {\n this.seed = Number(seed) >>> 0;\n }\n\n /** Sets the number of damage locators owned by the target. */\n @carbon.method\n @impl.implemented\n SetDamageLocatorCount(count)\n {\n this.damageLocatorCount = Number(count) >>> 0;\n this.#disabledDamageLocators.length = 0;\n }\n\n /** Replaces the per-locator enabled mask. */\n @carbon.method\n @impl.adapted\n SetEnabledDamageLocators(enabled)\n {\n const filter = Array.from(enabled ?? []);\n this.#disabledDamageLocators.length = 0;\n const count = Math.min(this.damageLocatorCount, filter.length);\n for (let index = 0; index < count; index++)\n {\n if (!filter[index]) this.#disabledDamageLocators.push(index);\n }\n }\n\n /** Sets whether every armour impact requests debris. */\n SetDebugForceSpawnDebris(value)\n {\n this.debugForceSpawnDebris = !!value;\n }\n\n /** Sets the authored hull-damage multiplier. */\n SetHullDamageFactor(value)\n {\n this.hullDamageFactor = Number(value);\n }\n\n /** Sets the material used by the armour-damage pass. */\n SetArmorDamageShaderEffect(value)\n {\n this.armorDamageShader = value ?? null;\n }\n\n /** Sets the curve used to flicker hull damage. */\n SetHullDamageFlickerCurve(value)\n {\n this.hullDamageFlickerCurve = value ?? null;\n }\n\n /** Replaces the armour-repair fader. */\n SetArmorRepairing(value)\n {\n this.armorRepairing = value;\n }\n\n /** Replaces the armour-hardening fader. */\n SetArmorHardening(value)\n {\n this.armorHardening = value;\n }\n\n /** Replaces the hull-repair fader. */\n SetHullRepairing(value)\n {\n this.hullRepairing = value;\n }\n\n /** Shares impact indices with another damage overlay. */\n SetImpactIndexSource(value)\n {\n this.#impactIndexSource = value ?? null;\n }\n\n /** Returns the deterministic damage seed. */\n GetSeed()\n {\n return this.seed;\n }\n\n /** Returns the next locally allocated impact index. */\n GetImpactDataNextIdx()\n {\n return this.impactDataNextIdx;\n }\n\n /** Returns the target number of live armour impacts. */\n GetArmorImpactGoalCount()\n {\n return this.armorImpactGoalCount;\n }\n\n /** Returns the parent size used to scale armour impacts. */\n GetArmorImpactParentSize()\n {\n return this.armorImpactParentSize;\n }\n\n /** Returns whether debris is forced for every impact. */\n GetDebugForceSpawnDebris()\n {\n return this.debugForceSpawnDebris;\n }\n\n /** Returns the authored hull-damage multiplier. */\n GetHullDamageFactor()\n {\n return this.hullDamageFactor;\n }\n\n /** Returns the armour-damage material. */\n GetArmorDamageShaderEffect()\n {\n return this.armorDamageShader;\n }\n\n /** Returns the hull-damage flicker curve. */\n GetHullDamageFlickerCurve()\n {\n return this.hullDamageFlickerCurve;\n }\n\n /** Returns the armour-repair fader. */\n GetArmorRepairing()\n {\n return this.armorRepairing;\n }\n\n /** Returns the armour-hardening fader. */\n GetArmorHardening()\n {\n return this.armorHardening;\n }\n\n /** Returns the hull-repair fader. */\n GetHullRepairing()\n {\n return this.hullRepairing;\n }\n\n /** Returns the damage overlay render priority. */\n GetRenderPriority()\n {\n return this.renderPriority;\n }\n\n /** Returns this overlay's first row in the shared data texture. */\n GetDataTextureOffset()\n {\n return this.#dataTextureOffset;\n }\n\n /** Returns this overlay's shared data-texture block identifier. */\n GetDataTextureBlockID()\n {\n return this.dataTextureBlockID;\n }\n\n /** Returns the active armour or hull impact configuration. */\n GetImpactConfiguration()\n {\n return this.configuration;\n }\n\n /** Returns the lifetime of one armour impact. */\n GetArmorImpactLifeTime()\n {\n return this.armorImpactLifeTime;\n }\n\n /** Copies the last shield, armour and hull values into an output vector. */\n @carbon.method\n @impl.adapted\n GetLastDamageState(out = vec3.create())\n {\n return vec3.copy(out, this.#lastDamageState);\n }\n\n /** Returns the mutable header row used by EveImpactOverlay's shield half. */\n HeaderRow()\n {\n return this.#header;\n }\n\n /** Returns one mutable impact texel row. */\n TexelRow(index)\n {\n return this.#texelRows[index];\n }\n\n /** Returns the live armour-impact table. */\n ArmorImpacts()\n {\n return this.#armorImpacts;\n }\n\n /** Allocates the next impact identifier from the shared or local source. */\n @carbon.method\n @impl.implemented\n AllocateImpactIndex()\n {\n return this.#impactIndexSource\n ? this.#impactIndexSource.AllocateImpactIndex()\n : this.impactDataNextIdx++;\n }\n\n /** Advances armour impacts, faders, priorities and data-texture rows. */\n @carbon.method\n @impl.adapted\n UpdateAsyncronous(updateContext, ownerInfo = {}, minTexelRows = 0, hasExternalActivity = false)\n {\n if (this.armorImpactGoalCount < this.#armorImpacts.size)\n {\n let ordinal = 0;\n for (const [ index, impact ] of this.#armorImpacts)\n {\n if (ordinal++ < this.armorImpactGoalCount) continue;\n impact.size -= updateContext.GetDeltaT() / this.armorImpactLifeTime;\n if (impact.size <= 0) this.#armorImpacts.delete(index);\n }\n }\n\n this.armorHardening.Update(updateContext);\n this.armorRepairing.Update(updateContext);\n this.hullRepairing.Update(updateContext);\n\n const rowCount = Math.max(Number(minTexelRows) >>> 0, this.#armorImpacts.size);\n while (this.#texelRows.length < rowCount)\n {\n this.#texelRows.push(Array.from({ length: 4 }, () => vec4.create()));\n }\n this.#texelRows.length = rowCount;\n\n vec4.set(this.#header[2],\n this.#armorImpacts.size,\n this.armorImpactParentSize,\n this.hullRepairing.GetFaderValue(),\n this.hullRepairing.GetKickInValue());\n vec4.set(this.#header[3],\n this.armorRepairing.GetFaderValue(),\n this.armorHardening.GetFaderValue(),\n this.armorRepairing.GetKickInValue(),\n this.armorHardening.GetKickInValue());\n\n if (!hasExternalActivity && !this.HasGeneralActivity()) return;\n\n const pixelDiameter = Math.max(0, Number(ownerInfo.estimatedPixelDiameter) || 0);\n const isInFrustum = !!ownerInfo.isInFrustum;\n this.renderPriority = this.#wasVisible || isInFrustum ? pixelDiameter : 0;\n this.#wasVisible = isInFrustum;\n\n const sphere = ownerInfo.boundingSphere;\n const radius = Number(sphere?.radius ?? sphere?.[3] ?? -1);\n this.armorImpactParentSize = Math.min(radius, IMPACT_ARMOR_SIZE_MAX / IMPACT_ARMOR_SIZE_FACTOR);\n\n // Carbon EveDamageOverlay.cpp:301: an owner that cannot resolve its\n // locators (an instanced part whose mesh is not loaded) supplies none.\n if (!ownerInfo.getDamageLocatorPositionOS) return;\n let row = 0;\n for (const impact of this.#armorImpacts.values())\n {\n const texel = this.#texelRows[row++];\n const position = vec3.create();\n ownerInfo.getDamageLocatorPositionOS(impact.damageLocatorIndex, position);\n vec4.set(texel[2], position[0], position[1], position[2], 0);\n vec4.set(texel[3], impact.size * IMPACT_ARMOR_SIZE_FACTOR * this.armorImpactParentSize, 0, 0, 0);\n }\n }\n\n /** Publishes the current damage block during the synchronous update. */\n @carbon.method\n @impl.implemented\n UpdateSyncronous(updateContext)\n {\n this.UpdateBlockData(updateContext.GetDataTextureManager(), this.HasGeneralActivity());\n }\n\n /** Requests or releases this overlay's shared data-texture block. */\n @carbon.method\n @impl.adapted\n UpdateBlockData(dataTextureManager, hasActivity)\n {\n if (!hasActivity)\n {\n this.dataTextureBlockID = -1;\n return;\n }\n\n this.#dataTextureOffset = dataTextureManager.GetTextureOffset(this.dataTextureBlockID);\n this.dataTextureBlockID = dataTextureManager.RequestBlockData(\n this.#header, this.#texelRows.length, this.#texelRows, this.renderPriority);\n }\n\n /** Reports whether armour impacts or armour faders are active. */\n HasArmorActivity()\n {\n return EveDamageOverlay.impactEffectEnabled &&\n (this.#armorImpacts.size !== 0 || !this.armorHardening.IsZero() || !this.armorRepairing.IsZero());\n }\n\n /** Reports whether hull damage presentation is active. */\n HasHullActivity()\n {\n return EveDamageOverlay.impactEffectEnabled && !this.hullRepairing.IsZero();\n }\n\n /** Reports whether any armour or hull presentation is active. */\n HasGeneralActivity()\n {\n return this.HasHullActivity() || this.HasArmorActivity();\n }\n\n /** Calculates the current hull-flicker activation strength. */\n @carbon.method\n @impl.implemented\n GetActivationStrength(updateContext)\n {\n if (EveDamageOverlay.impactEffectEnabled && this.hullDamageFactor > 0 && this.hullDamageFlickerCurve)\n {\n const value = Math.max(0.3, Math.min(1, this.hullDamageFlickerCurve.Update(updateContext.GetTime())));\n return value / Math.exp(this.hullDamageFactor);\n }\n return 1;\n }\n\n /** Starts or stops a named armour or hull fader. */\n @carbon.method\n @impl.implemented\n ToggleEffect(name, on, duration)\n {\n let fader = null;\n if (name === \"armorhardening\") fader = this.armorHardening;\n else if (name === \"armorrepair\") fader = this.armorRepairing;\n else if (name === \"hullrepair\") fader = this.hullRepairing;\n if (!fader) return false;\n fader.StartFade(!!on, Number(duration) / 4);\n return true;\n }\n\n /** Applies shield, armour and hull state and optionally creates armour impacts. */\n @carbon.method\n @impl.implemented\n SetDamageState(shield, armor, hull, createArmorImpacts = false)\n {\n if (shield > 0.05) this.configuration = ImpactConfiguration.IMPACT_SHIELD;\n else if (armor > 0.05) this.configuration = ImpactConfiguration.IMPACT_ARMOR;\n else if (hull > 0) this.configuration = ImpactConfiguration.IMPACT_HULL;\n\n this.armorImpactGoalCount = Math.trunc(\n IMPACT_HOLE_TO_ARMOR_DAMAGE_RATIO * clamp01(1 - armor) +\n IMPACT_HOLE_TO_HULL_DAMAGE_RATIO * clamp01(1 - hull));\n this.hullDamageFactor = linearize(0.9, 0.1, hull);\n\n if (this.hullDamageFlickerCurve)\n {\n const modifier = linearize(1, 0, hull);\n this.hullDamageFlickerCurve.scale = modifier;\n this.hullDamageFlickerCurve.offset = 1 - modifier;\n }\n\n const enabledLocatorCount = this.damageLocatorCount - this.#disabledDamageLocators.length;\n if (createArmorImpacts && enabledLocatorCount)\n {\n const random = seededRandom((this.seed + this.#armorImpacts.size) >>> 0);\n const firstImpact = this.#armorImpacts.size;\n for (let impactIndex = firstImpact; impactIndex < this.armorImpactGoalCount; impactIndex++)\n {\n let locator = Math.floor(random() * enabledLocatorCount);\n for (const disabled of this.#disabledDamageLocators)\n {\n if (disabled > locator) break;\n locator++;\n }\n this.CreateImpact(locator, 0.2 + random() * 0.6, this.debugForceSpawnDebris);\n }\n }\n\n vec3.set(this.#lastDamageState, shield, armor, hull);\n }\n\n /** Removes every live armour impact. */\n @carbon.method\n @impl.implemented\n Clear()\n {\n this.#armorImpacts.clear();\n }\n\n /** Creates or enlarges an armour impact at a damage locator. */\n @carbon.method\n @impl.implemented\n CreateImpact(damageLocatorIndex, size, spawnEffects = false)\n {\n for (const [ index, impact ] of this.#armorImpacts)\n {\n if (impact.damageLocatorIndex !== damageLocatorIndex) continue;\n impact.size = Math.max(Number(size), impact.size);\n impact.requestSpawnDebris = !!spawnEffects;\n return index;\n }\n\n const impactIndex = this.AllocateImpactIndex();\n this.#armorImpacts.set(impactIndex, {\n damageLocatorIndex: Number(damageLocatorIndex) | 0,\n size: Number(size),\n requestSpawnDebris: !!spawnEffects\n });\n return impactIndex;\n }\n\n /** Reports whether an armour impact identifier is live. */\n @carbon.method\n @impl.implemented\n HasImpact(impactIndex)\n {\n return this.#armorImpacts.has(Number(impactIndex) | 0);\n }\n\n /** Returns the active armour-damage material for the decal pass. */\n @carbon.method\n @impl.implemented\n GetArmorDamageShader(batchType)\n {\n if (!this.display || batchType !== TriBatchType.TRIBATCHTYPE_DECAL ||\n this.dataTextureBlockID === -1 || this.#dataTextureOffset === -1 ||\n !this.HasArmorActivity())\n {\n return null;\n }\n return this.armorDamageShader;\n }\n\n static ImpactConfiguration = ImpactConfiguration;\n}\n\n\nfunction clamp01(value)\n{\n return Math.max(0, Math.min(1, Number(value)));\n}\n\n\nfunction linearize(min, max, value)\n{\n return clamp01((Number(value) - min) / (max - min));\n}\n\n\nfunction seededRandom(seed)\n{\n let state = seed || 0x6d2b79f5;\n return () =>\n {\n state = (state + 0x6d2b79f5) >>> 0;\n let value = state;\n value = Math.imul(value ^ value >>> 15, value | 1);\n value ^= value + Math.imul(value ^ value >>> 7, value | 61);\n return ((value ^ value >>> 14) >>> 0) / 4294967296;\n };\n}\n"],"names":["IMPACT_HOLE_TO_ARMOR_DAMAGE_RATIO","IMPACT_HOLE_TO_HULL_DAMAGE_RATIO","IMPACT_ARMOR_SIZE_FACTOR","IMPACT_ARMOR_SIZE_MAX","_EveDamageOverlay","_identity","EveDamageOverlay","CjsModel","e","_init_impactDataNextIdx","_init_extra_impactDataNextIdx","_init_armorImpactGoalCount","_init_extra_armorImpactGoalCount","_init_armorImpactParentSize","_init_extra_armorImpactParentSize","_init_renderPriority","_init_extra_renderPriority","_init_display","_init_extra_display","_init_armorDamageShader","_init_extra_armorDamageShader","_init_seed","_init_extra_seed","_init_armorImpactLifeTime","_init_extra_armorImpactLifeTime","_init_debugForceSpawnDebris","_init_extra_debugForceSpawnDebris","_init_armorRepairing","_init_extra_armorRepairing","_init_armorHardening","_init_extra_armorHardening","_init_hullRepairing","_init_extra_hullRepairing","_init_hullDamageFactor","_init_extra_hullDamageFactor","_init_configuration","_init_extra_configuration","_init_damageLocatorCount","_init_extra_damageLocatorCount","_init_dataTextureBlockID","_init_extra_dataTextureBlockID","_init_hullDamageFlickerCurve","_init_extra_hullDamageFlickerCurve","_initProto","c","_initClass","_applyDecs","type","define","className","family","edit","read","int32","uint64","float32","persist","boolean","model","readwrite","uint32","objectRef","enum","carbon","method","impl","implemented","adapted","impactDataNextIdx","armorImpactGoalCount","armorImpactParentSize","renderPriority","display","armorDamageShader","seed","armorImpactLifeTime","debugForceSpawnDebris","armorRepairing","Tr2ScalarFader","armorHardening","hullRepairing","hullDamageFactor","configuration","ImpactConfiguration","IMPACT_INVALID","damageLocatorCount","dataTextureBlockID","hullDamageFlickerCurve","vec3","fromValues","Map","Array","from","length","vec4","create","Initialize","SetSeed","Number","SetDamageLocatorCount","count","SetEnabledDamageLocators","enabled","filter","Math","min","index","push","SetDebugForceSpawnDebris","value","SetHullDamageFactor","SetArmorDamageShaderEffect","SetHullDamageFlickerCurve","SetArmorRepairing","SetArmorHardening","SetHullRepairing","SetImpactIndexSource","GetSeed","GetImpactDataNextIdx","GetArmorImpactGoalCount","GetArmorImpactParentSize","GetDebugForceSpawnDebris","GetHullDamageFactor","GetArmorDamageShaderEffect","GetHullDamageFlickerCurve","GetArmorRepairing","GetArmorHardening","GetHullRepairing","GetRenderPriority","GetDataTextureOffset","GetDataTextureBlockID","GetImpactConfiguration","GetArmorImpactLifeTime","GetLastDamageState","out","copy","HeaderRow","TexelRow","ArmorImpacts","AllocateImpactIndex","UpdateAsyncronous","updateContext","ownerInfo","minTexelRows","hasExternalActivity","size","ordinal","impact","GetDeltaT","delete","Update","rowCount","max","set","GetFaderValue","GetKickInValue","HasGeneralActivity","pixelDiameter","estimatedPixelDiameter","isInFrustum","sphere","boundingSphere","radius","getDamageLocatorPositionOS","row","values","texel","position","damageLocatorIndex","UpdateSyncronous","UpdateBlockData","GetDataTextureManager","dataTextureManager","hasActivity","GetTextureOffset","RequestBlockData","HasArmorActivity","impactEffectEnabled","IsZero","HasHullActivity","GetActivationStrength","GetTime","exp","ToggleEffect","name","on","duration","fader","StartFade","SetDamageState","shield","armor","hull","createArmorImpacts","IMPACT_SHIELD","IMPACT_ARMOR","IMPACT_HULL","trunc","clamp01","linearize","modifier","scale","offset","enabledLocatorCount","random","seededRandom","firstImpact","impactIndex","locator","floor","disabled","CreateImpact","Clear","clear","spawnEffects","requestSpawnDebris","HasImpact","has","GetArmorDamageShader","batchType","TriBatchType","TRIBATCHTYPE_DECAL","constructor","state","imul"],"mappings":"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"}