@carbonenginejs/runtime 0.1.0-alpha.0 → 0.1.0-alpha.2

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 (935) hide show
  1. package/README.md +58 -125
  2. package/dist/audio/index.js +8 -1
  3. package/dist/audio/index.js.map +1 -1
  4. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js +84 -0
  5. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js.map +1 -0
  6. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js +14 -0
  7. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js.map +1 -0
  8. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js +26 -0
  9. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js.map +1 -0
  10. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js +27 -0
  11. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js.map +1 -0
  12. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js +27 -0
  13. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js.map +1 -0
  14. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js +25 -0
  15. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js.map +1 -0
  16. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js +26 -0
  17. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js.map +1 -0
  18. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js +58 -0
  19. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js.map +1 -0
  20. package/dist/audio/trinity/audio/AudManager.js +1 -1
  21. package/dist/audio/trinity/audio/AudManager.js.map +1 -1
  22. package/dist/audio/trinity/audio/{AudObstructionOcclusion.js → AudObstructionOcclusion/AudObstructionOcclusion.js} +8 -52
  23. package/dist/audio/trinity/audio/AudObstructionOcclusion/AudObstructionOcclusion.js.map +1 -0
  24. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js +17 -0
  25. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js.map +1 -0
  26. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js +46 -0
  27. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js.map +1 -0
  28. package/dist/audio/trinity/index.js +8 -1
  29. package/dist/audio/trinity/index.js.map +1 -1
  30. package/dist/character/CjsCharacterAppearanceConstruction.js +5 -0
  31. package/dist/character/CjsCharacterAppearanceConstruction.js.map +1 -1
  32. package/dist/character/CjsCharacterAppearanceManager.js +14 -0
  33. package/dist/character/CjsCharacterAppearanceManager.js.map +1 -1
  34. package/dist/character/CjsCharacterFoundationConstruction.js +5 -0
  35. package/dist/character/CjsCharacterFoundationConstruction.js.map +1 -1
  36. package/dist/character/CjsCharacterTexturePolicy.js +5 -0
  37. package/dist/character/CjsCharacterTexturePolicy.js.map +1 -1
  38. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js +17 -0
  39. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js.map +1 -1
  40. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js +2 -0
  41. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js.map +1 -1
  42. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js +5 -0
  43. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js.map +1 -1
  44. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js +5 -0
  45. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js.map +1 -1
  46. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js +2 -0
  47. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js.map +1 -1
  48. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js +5 -0
  49. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js.map +1 -1
  50. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js +5 -0
  51. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js.map +1 -1
  52. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js +9 -0
  53. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js.map +1 -1
  54. package/dist/global/blue/CjsScriptCallback.js +142 -0
  55. package/dist/global/blue/CjsScriptCallback.js.map +1 -0
  56. package/dist/global/blue/index.js +2 -0
  57. package/dist/global/blue/index.js.map +1 -0
  58. package/dist/global/consts/renderContext/formats.js +51 -1
  59. package/dist/global/consts/renderContext/formats.js.map +1 -1
  60. package/dist/global/consts/renderContext/index.js +2 -2
  61. package/dist/global/consts/renderContext/renderStates.js +16 -1
  62. package/dist/global/consts/renderContext/renderStates.js.map +1 -1
  63. package/dist/global/contracts/index.js +0 -1
  64. package/dist/global/contracts/index.js.map +1 -1
  65. package/dist/global/index.js +4 -3
  66. package/dist/global/index.js.map +1 -1
  67. package/dist/global/math/index.js +2 -0
  68. package/dist/global/math/index.js.map +1 -1
  69. package/dist/global/math/mesh.js +70 -16
  70. package/dist/global/math/mesh.js.map +1 -1
  71. package/dist/global/math/noise.js +47 -68
  72. package/dist/global/math/noise.js.map +1 -1
  73. package/dist/global/math/pool.js +18 -3
  74. package/dist/global/math/pool.js.map +1 -1
  75. package/dist/global/math/random.js +52 -0
  76. package/dist/global/math/random.js.map +1 -0
  77. package/dist/global/math/tri3.js +18 -4
  78. package/dist/global/math/tri3.js.map +1 -1
  79. package/dist/global/schema/CjsSchema.js +20 -2
  80. package/dist/global/schema/CjsSchema.js.map +1 -1
  81. package/dist/global/schema/hydration.js +14 -0
  82. package/dist/global/schema/hydration.js.map +1 -1
  83. package/dist/global/utils/bytes.js +22 -4
  84. package/dist/global/utils/bytes.js.map +1 -1
  85. package/dist/global/utils/checksum.js +80 -0
  86. package/dist/global/utils/checksum.js.map +1 -0
  87. package/dist/global/utils/errors/CjsCancellationError.js +36 -0
  88. package/dist/global/utils/errors/CjsCancellationError.js.map +1 -0
  89. package/dist/global/utils/errors/CjsError.js +21 -52
  90. package/dist/global/utils/errors/CjsError.js.map +1 -1
  91. package/dist/global/utils/errors/abort.js +1 -1
  92. package/dist/global/utils/errors/abort.js.map +1 -1
  93. package/dist/global/utils/errors/index.js +2 -1
  94. package/dist/global/utils/errors/index.js.map +1 -1
  95. package/dist/global/utils/index.js +4 -2
  96. package/dist/global/utils/index.js.map +1 -1
  97. package/dist/index.js +95 -35
  98. package/dist/index.js.map +1 -1
  99. package/dist/input/Tr2MainWindow.js +7 -9
  100. package/dist/input/Tr2MainWindow.js.map +1 -1
  101. package/dist/resource/CjsResMan.js +33 -39
  102. package/dist/resource/CjsResMan.js.map +1 -1
  103. package/dist/resource/CjsResource.js +19 -5
  104. package/dist/resource/CjsResource.js.map +1 -1
  105. package/dist/resource/audio/AudioGeometryResData.js +22 -27
  106. package/dist/resource/audio/AudioGeometryResData.js.map +1 -1
  107. package/dist/resource/audio/CjsAudioRes.js +4 -5
  108. package/dist/resource/audio/CjsAudioRes.js.map +1 -1
  109. package/dist/resource/format/CjsBitReader.js +263 -0
  110. package/dist/resource/format/CjsBitReader.js.map +1 -0
  111. package/dist/resource/format/CjsByteReader.js +130 -125
  112. package/dist/resource/format/CjsByteReader.js.map +1 -1
  113. package/dist/resource/format/CjsFormat.js +11 -4
  114. package/dist/resource/format/CjsFormat.js.map +1 -1
  115. package/dist/resource/format/CjsFormatError.js +37 -1
  116. package/dist/resource/format/CjsFormatError.js.map +1 -1
  117. package/dist/resource/format/CjsResourceProbe.js +41 -37
  118. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  119. package/dist/resource/format/carbonRecordGuard.js +33 -0
  120. package/dist/resource/format/carbonRecordGuard.js.map +1 -0
  121. package/dist/resource/format/imageSignatures.js +202 -0
  122. package/dist/resource/format/imageSignatures.js.map +1 -0
  123. package/dist/resource/format/index.js +2 -1
  124. package/dist/resource/format/index.js.map +1 -1
  125. package/dist/resource/format/jsonPolicies.js +180 -0
  126. package/dist/resource/format/jsonPolicies.js.map +1 -0
  127. package/dist/resource/formats/black/core/helpers.js +18 -29
  128. package/dist/resource/formats/black/core/helpers.js.map +1 -1
  129. package/dist/resource/formats/bnk/CjsBnkFormat.js +4 -3
  130. package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
  131. package/dist/resource/formats/bnk/core/WwiseCursor.js +218 -0
  132. package/dist/resource/formats/bnk/core/WwiseCursor.js.map +1 -0
  133. package/dist/resource/formats/bnk/core/busNodes.js +2 -1
  134. package/dist/resource/formats/bnk/core/busNodes.js.map +1 -1
  135. package/dist/resource/formats/bnk/core/effectNodes.js +2 -1
  136. package/dist/resource/formats/bnk/core/effectNodes.js.map +1 -1
  137. package/dist/resource/formats/bnk/core/eventAction.js +15 -93
  138. package/dist/resource/formats/bnk/core/eventAction.js.map +1 -1
  139. package/dist/resource/formats/bnk/core/globalSettings.js +19 -94
  140. package/dist/resource/formats/bnk/core/globalSettings.js.map +1 -1
  141. package/dist/resource/formats/bnk/core/helpers.js +2 -48
  142. package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
  143. package/dist/resource/formats/bnk/core/musicNodes.js +42 -134
  144. package/dist/resource/formats/bnk/core/musicNodes.js.map +1 -1
  145. package/dist/resource/formats/bnk/core/nodeBase.js +20 -111
  146. package/dist/resource/formats/bnk/core/nodeBase.js.map +1 -1
  147. package/dist/resource/formats/bnk/core/sfxNodes.js +2 -1
  148. package/dist/resource/formats/bnk/core/sfxNodes.js.map +1 -1
  149. package/dist/resource/formats/cmf/CjsCmfFormat.js +242 -228
  150. package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
  151. package/dist/resource/formats/cmf/core/binary.js +54 -60
  152. package/dist/resource/formats/cmf/core/binary.js.map +1 -1
  153. package/dist/resource/formats/dds/CjsDdsFormat.js +5 -3
  154. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  155. package/dist/resource/formats/dds/core/bc6h.js +16 -18
  156. package/dist/resource/formats/dds/core/bc6h.js.map +1 -1
  157. package/dist/resource/formats/dds/core/bc7.js +28 -24
  158. package/dist/resource/formats/dds/core/bc7.js.map +1 -1
  159. package/dist/resource/formats/dds/core/helpers.js +7 -133
  160. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  161. package/dist/resource/formats/dxbc/CjsDxbcFormat.js +3 -2
  162. package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  163. package/dist/resource/formats/dxbc/core/helpers.js +4 -32
  164. package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
  165. package/dist/resource/formats/fbx/CjsFbxFormat.js +11 -0
  166. package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
  167. package/dist/resource/formats/fbx/core/helpers.js +18 -12
  168. package/dist/resource/formats/fbx/core/helpers.js.map +1 -1
  169. package/dist/resource/formats/flac/CjsFlacFormat.js +4 -9
  170. package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
  171. package/dist/resource/formats/flac/core/helpers.js +1 -62
  172. package/dist/resource/formats/flac/core/helpers.js.map +1 -1
  173. package/dist/resource/formats/gif/CjsGifFormat.js +4 -9
  174. package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
  175. package/dist/resource/formats/gif/core/helpers.js +1 -63
  176. package/dist/resource/formats/gif/core/helpers.js.map +1 -1
  177. package/dist/resource/formats/gltf/CjsGltfFormat.js +4 -3
  178. package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
  179. package/dist/resource/formats/gltf/core/helpers.js +3 -19
  180. package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
  181. package/dist/resource/formats/gr2/CjsGr2Format.js +105 -92
  182. package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
  183. package/dist/resource/formats/gr2/core/container.js +1 -10
  184. package/dist/resource/formats/gr2/core/container.js.map +1 -1
  185. package/dist/resource/formats/gr2/core/helpers.js +24 -35
  186. package/dist/resource/formats/gr2/core/helpers.js.map +1 -1
  187. package/dist/resource/formats/gr2/core/shared.js +193 -189
  188. package/dist/resource/formats/gr2/core/shared.js.map +1 -1
  189. package/dist/resource/formats/hlsl/CjsHlslFormat.js +4 -3
  190. package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
  191. package/dist/resource/formats/hlsl/core/helpers.js +1 -30
  192. package/dist/resource/formats/hlsl/core/helpers.js.map +1 -1
  193. package/dist/resource/formats/jpeg/CjsJpegFormat.js +5 -3
  194. package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
  195. package/dist/resource/formats/jpeg/core/helpers.js +7 -134
  196. package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
  197. package/dist/resource/formats/mp3/CjsMp3Format.js +4 -9
  198. package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
  199. package/dist/resource/formats/mp3/core/helpers.js +1 -64
  200. package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
  201. package/dist/resource/formats/mp4/CjsMp4Format.js +4 -9
  202. package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
  203. package/dist/resource/formats/mp4/core/helpers.js +1 -73
  204. package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
  205. package/dist/resource/formats/obj/CjsObjFormat.js +4 -3
  206. package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
  207. package/dist/resource/formats/obj/core/helpers.js +93 -115
  208. package/dist/resource/formats/obj/core/helpers.js.map +1 -1
  209. package/dist/resource/formats/ogg/CjsOggFormat.js +4 -3
  210. package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
  211. package/dist/resource/formats/ogg/core/helpers.js +1 -15
  212. package/dist/resource/formats/ogg/core/helpers.js.map +1 -1
  213. package/dist/resource/formats/ogg/core/vorbis.js +138 -144
  214. package/dist/resource/formats/ogg/core/vorbis.js.map +1 -1
  215. package/dist/resource/formats/pickle/CjsPickleFormat.js +83 -114
  216. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  217. package/dist/resource/formats/png/CjsPngFormat.js +5 -3
  218. package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
  219. package/dist/resource/formats/png/core/helpers.js +13 -152
  220. package/dist/resource/formats/png/core/helpers.js.map +1 -1
  221. package/dist/resource/formats/png/core/writer.js +3 -27
  222. package/dist/resource/formats/png/core/writer.js.map +1 -1
  223. package/dist/resource/formats/red/core/helpers.js +19 -29
  224. package/dist/resource/formats/red/core/helpers.js.map +1 -1
  225. package/dist/resource/formats/stl/CjsStlFormat.js +158 -147
  226. package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
  227. package/dist/resource/formats/stl/core/helpers.js +44 -66
  228. package/dist/resource/formats/stl/core/helpers.js.map +1 -1
  229. package/dist/resource/formats/tga/CjsTgaFormat.js +5 -3
  230. package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
  231. package/dist/resource/formats/tga/core/helpers.js +7 -153
  232. package/dist/resource/formats/tga/core/helpers.js.map +1 -1
  233. package/dist/resource/formats/vta/CjsVtaFormat.js +4 -3
  234. package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
  235. package/dist/resource/formats/vta/core/helpers.js +1 -17
  236. package/dist/resource/formats/vta/core/helpers.js.map +1 -1
  237. package/dist/resource/formats/wav/CjsWavFormat.js +4 -3
  238. package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
  239. package/dist/resource/formats/wav/core/helpers.js +1 -15
  240. package/dist/resource/formats/wav/core/helpers.js.map +1 -1
  241. package/dist/resource/formats/webgl/CjsWebglFormat.js +4 -3
  242. package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
  243. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +69 -9
  244. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  245. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +12 -3
  246. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
  247. package/dist/resource/formats/webgl/core/helpers.js +39 -68
  248. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  249. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +4 -3
  250. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  251. package/dist/resource/formats/webgpu/core/helpers.js +4 -30
  252. package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
  253. package/dist/resource/formats/webm/CjsWebmFormat.js +4 -9
  254. package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
  255. package/dist/resource/formats/webm/core/helpers.js +1 -73
  256. package/dist/resource/formats/webm/core/helpers.js.map +1 -1
  257. package/dist/resource/formats/webp/CjsWebpFormat.js +4 -9
  258. package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
  259. package/dist/resource/formats/webp/core/helpers.js +1 -62
  260. package/dist/resource/formats/webp/core/helpers.js.map +1 -1
  261. package/dist/resource/formats/wem/CjsWemFormat.js +4 -3
  262. package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
  263. package/dist/resource/formats/wem/core/bitStream.js +83 -106
  264. package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
  265. package/dist/resource/formats/wem/core/codebookLibrary.js +52 -52
  266. package/dist/resource/formats/wem/core/codebookLibrary.js.map +1 -1
  267. package/dist/resource/formats/wem/core/helpers.js +1 -15
  268. package/dist/resource/formats/wem/core/helpers.js.map +1 -1
  269. package/dist/resource/formats/wem/core/wemToOgg.js +67 -67
  270. package/dist/resource/formats/wem/core/wemToOgg.js.map +1 -1
  271. package/dist/resource/geometry/MeshDecalData.js +23 -25
  272. package/dist/resource/geometry/MeshDecalData.js.map +1 -1
  273. package/dist/resource/geometry/MeshDecalLodData.js +14 -23
  274. package/dist/resource/geometry/MeshDecalLodData.js.map +1 -1
  275. package/dist/resource/geometry/TriGeometryRes.js +299 -284
  276. package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
  277. package/dist/resource/geometry/TriGeometryResAreaData.js +30 -31
  278. package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -1
  279. package/dist/resource/geometry/TriGeometryResJointData.js +16 -24
  280. package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -1
  281. package/dist/resource/geometry/TriGeometryResLodData.js +50 -41
  282. package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -1
  283. package/dist/resource/geometry/TriGeometryResMeshData.js +32 -32
  284. package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -1
  285. package/dist/resource/geometry/TriGeometryResSkeletonData.js +14 -23
  286. package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -1
  287. package/dist/resource/geometry/TriJointBinding.js +16 -24
  288. package/dist/resource/geometry/TriJointBinding.js.map +1 -1
  289. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +22 -27
  290. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -1
  291. package/dist/resource/geometry/TriRtGeometryConstants.js +50 -41
  292. package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -1
  293. package/dist/resource/geometry/granny/GStateBindingCallbackData.js +12 -22
  294. package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -1
  295. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +30 -31
  296. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
  297. package/dist/resource/index.js +1 -1
  298. package/dist/resource/shader/reflection/Tr2EffectConstant.js +16 -17
  299. package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
  300. package/dist/resource/shader/reflection/Tr2EffectDescription.js +26 -28
  301. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
  302. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +24 -25
  303. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
  304. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +21 -22
  305. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
  306. package/dist/resource/shader/reflection/Tr2EffectResource.js +25 -26
  307. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  308. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +69 -72
  309. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
  310. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +17 -18
  311. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
  312. package/dist/resource/shader/reflection/Tr2Pass.js +42 -43
  313. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  314. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js +26 -5
  315. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js.map +1 -1
  316. package/dist/resource/shader/reflection/carbonRecordFields.js +87 -90
  317. package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -1
  318. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +32 -34
  319. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
  320. package/dist/resource/texture/CjsTextureArrayRes.js +1 -6
  321. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
  322. package/dist/resource/texture/Tr2TextureLodManager.js +35 -27
  323. package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
  324. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +16 -24
  325. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -1
  326. package/dist/resource/texture/Tr2TexturePackChannel.js +16 -24
  327. package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
  328. package/dist/resource/texture/Tr2TexturePipeline.js +24 -20
  329. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  330. package/dist/resource/texture/Tr2TexturePipelineParams.js +14 -23
  331. package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -1
  332. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +18 -25
  333. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  334. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +11 -16
  335. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
  336. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +14 -23
  337. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  338. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +12 -22
  339. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  340. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +38 -26
  341. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  342. package/dist/resource/worker/CjsResManMainThreadLoader.js +2 -5
  343. package/dist/resource/worker/CjsResManMainThreadLoader.js.map +1 -1
  344. package/dist/resource/worker/CjsResManWorkerLoader.js +6 -7
  345. package/dist/resource/worker/CjsResManWorkerLoader.js.map +1 -1
  346. package/dist/resource/worker/protocol.js +18 -1
  347. package/dist/resource/worker/protocol.js.map +1 -1
  348. package/dist/sof/EveSOF.js +2 -222
  349. package/dist/sof/EveSOF.js.map +1 -1
  350. package/dist/sof/SofDocumentBuilder.js +205 -0
  351. package/dist/sof/SofDocumentBuilder.js.map +1 -0
  352. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js +16 -0
  353. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js.map +1 -0
  354. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js +16 -0
  355. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js.map +1 -0
  356. package/dist/sof/faction/EveSOFDataFactionColorSet.js +3 -27
  357. package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
  358. package/dist/sof/faction/index.js +3 -1
  359. package/dist/sof/faction/index.js.map +1 -1
  360. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js +18 -0
  361. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js.map +1 -0
  362. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js +18 -0
  363. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js.map +1 -0
  364. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js +21 -0
  365. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js.map +1 -0
  366. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js +21 -0
  367. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js.map +1 -0
  368. package/dist/sof/generic/EveSOFDataGeneric.js +5 -69
  369. package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
  370. package/dist/sof/generic/index.js +5 -1
  371. package/dist/sof/generic/index.js.map +1 -1
  372. package/dist/sof/index.js +23 -7
  373. package/dist/sof/index.js.map +1 -1
  374. package/dist/sof/pattern/ErrSOFProjectionNotFound.js +20 -0
  375. package/dist/sof/pattern/ErrSOFProjectionNotFound.js.map +1 -0
  376. package/dist/sof/pattern/EveSOFDataPattern.js +2 -17
  377. package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
  378. package/dist/sof/pattern/index.js +2 -1
  379. package/dist/sof/pattern/index.js.map +1 -1
  380. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js +16 -0
  381. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js.map +1 -0
  382. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js +16 -0
  383. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js.map +1 -0
  384. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js +16 -0
  385. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js.map +1 -0
  386. package/dist/sof/shared/EveSOFDataArea.js +2 -13
  387. package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
  388. package/dist/sof/shared/EveSOFDataLogoSet.js +3 -27
  389. package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
  390. package/dist/sof/shared/EveSOFDataParameter.js +2 -146
  391. package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
  392. package/dist/sof/shared/EveSOFDataParameterBool.js +40 -0
  393. package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -0
  394. package/dist/sof/shared/EveSOFDataParameterColor.js +36 -0
  395. package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -0
  396. package/dist/sof/shared/EveSOFDataParameterFloat.js +37 -0
  397. package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -0
  398. package/dist/sof/shared/EveSOFDataParameterInt.js +37 -0
  399. package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -0
  400. package/dist/sof/shared/EveSOFDataParameterVector2.js +37 -0
  401. package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -0
  402. package/dist/sof/shared/EveSOFDataParameterVector3.js +37 -0
  403. package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -0
  404. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js → EveSOFDataSpotLightAttachment.js} +1 -1
  405. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js.map → EveSOFDataSpotLightAttachment.js.map} +1 -1
  406. package/dist/sof/shared/index.js +13 -4
  407. package/dist/sof/shared/index.js.map +1 -1
  408. package/dist/sof/sofDocumentValues.js +33 -0
  409. package/dist/sof/sofDocumentValues.js.map +1 -0
  410. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +168 -0
  411. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -0
  412. package/dist/trinity/controllers/{ITr2Controller.js → ITr2Controller/ITr2Controller.js} +2 -134
  413. package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -0
  414. package/dist/trinity/controllers/Tr2Controller.js +2 -1
  415. package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
  416. package/dist/trinity/controllers/Tr2ControllerReference.js +2 -1
  417. package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
  418. package/dist/trinity/controllers/action/ITr2ControllerAction.js +2 -1
  419. package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
  420. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +10 -9
  421. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
  422. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js +26 -0
  423. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js.map +1 -0
  424. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js +24 -0
  425. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js.map +1 -0
  426. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js +387 -0
  427. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js.map +1 -0
  428. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js +4 -1011
  429. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js.map +1 -1
  430. package/dist/trinity/controllers/expression/expressionRuntime.js +605 -0
  431. package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -0
  432. package/dist/trinity/controllers/index.js +5 -2
  433. package/dist/trinity/controllers/index.js.map +1 -1
  434. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +2 -1
  435. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
  436. package/dist/trinity/controllers/timeline/Tr2TimelineController.js +2 -1
  437. package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
  438. package/dist/trinity/core/ITr2Updateable.js +2 -1
  439. package/dist/trinity/core/ITr2Updateable.js.map +1 -1
  440. package/dist/trinity/core/Tr2Blitter.js +6 -3
  441. package/dist/trinity/core/Tr2Blitter.js.map +1 -1
  442. package/dist/trinity/core/Tr2Denoiser.js +256 -0
  443. package/dist/trinity/core/Tr2Denoiser.js.map +1 -0
  444. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js +115 -0
  445. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js.map +1 -0
  446. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js +79 -0
  447. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js.map +1 -0
  448. package/dist/trinity/core/{Tr2GpuResourcePool.js → Tr2GpuResourcePool/Tr2GpuResourcePool.js} +63 -151
  449. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -0
  450. package/dist/trinity/core/{Tr2QuadRenderer.js → Tr2QuadRenderer/Tr2QuadRenderer.js} +8 -30
  451. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -0
  452. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +38 -0
  453. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -0
  454. package/dist/trinity/core/Tr2RenderUtils.js +20 -3
  455. package/dist/trinity/core/Tr2RenderUtils.js.map +1 -1
  456. package/dist/trinity/core/Tr2Renderer.js +146 -1
  457. package/dist/trinity/core/Tr2Renderer.js.map +1 -1
  458. package/dist/trinity/core/Tr2ShadowMap.js +135 -14
  459. package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
  460. package/dist/trinity/core/{Tr2TextureArray.js → Tr2TextureArray/Tr2TextureArray.js} +3 -58
  461. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -0
  462. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js +61 -0
  463. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js.map +1 -0
  464. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js +26 -0
  465. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js.map +1 -0
  466. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js +29 -0
  467. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js.map +1 -0
  468. package/dist/trinity/core/batch/{ITriRenderBatchAccumulator.js → TriRenderBatch/ITriRenderBatchAccumulator.js} +30 -30
  469. package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -0
  470. package/dist/trinity/core/batch/{Tr2RenderBatch.js → TriRenderBatch/Tr2RenderBatch.js} +81 -154
  471. package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -0
  472. package/dist/trinity/core/batch/{TriRenderBatchAccumulator.js → TriRenderBatch/TriRenderBatchAccumulator.js} +7 -38
  473. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAccumulator.js.map +1 -0
  474. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js +61 -0
  475. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js.map +1 -0
  476. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js +40 -0
  477. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js.map +1 -0
  478. package/dist/trinity/core/batch/TriRenderBatchMap.js +6 -1
  479. package/dist/trinity/core/batch/TriRenderBatchMap.js.map +1 -1
  480. package/dist/trinity/core/context/Tr2RenderContext.js +75 -57
  481. package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
  482. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js +67 -0
  483. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js.map +1 -0
  484. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js +50 -0
  485. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js.map +1 -0
  486. package/dist/trinity/core/device/Tr2DepthStencil.js +186 -13
  487. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  488. package/dist/trinity/core/device/{Tr2RingBuffer.js → Tr2RingBuffer/Tr2RingBuffer.js} +27 -79
  489. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -0
  490. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js +114 -0
  491. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js.map +1 -0
  492. package/dist/trinity/core/device/{Tr2SuballocatedBuffer.js → Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js} +5 -59
  493. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js.map +1 -0
  494. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js +80 -0
  495. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js.map +1 -0
  496. package/dist/trinity/core/index.js +42 -15
  497. package/dist/trinity/core/index.js.map +1 -1
  498. package/dist/trinity/core/lighting/Tr2LightManager.js +6 -1
  499. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  500. package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js} +6 -28
  501. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -0
  502. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js +32 -0
  503. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js.map +1 -0
  504. package/dist/trinity/core/mesh/{ITr2InstanceData.js → ITr2InstanceData/ITr2InstanceData.js} +5 -29
  505. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -0
  506. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js +33 -0
  507. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js.map +1 -0
  508. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +2 -1
  509. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
  510. package/dist/trinity/core/mesh/Tr2MeshBase.js +7 -1
  511. package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
  512. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +2 -1
  513. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
  514. package/dist/trinity/core/mesh/TriGeometryResAllocations.js +6 -2
  515. package/dist/trinity/core/mesh/TriGeometryResAllocations.js.map +1 -1
  516. package/dist/trinity/core/rawData/CjsConstantLayout.js +196 -0
  517. package/dist/trinity/core/rawData/CjsConstantLayout.js.map +1 -0
  518. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js +8 -3
  519. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js.map +1 -1
  520. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js +40 -732
  521. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js.map +1 -1
  522. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js +34 -0
  523. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js.map +1 -0
  524. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js +69 -0
  525. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js.map +1 -0
  526. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js +59 -0
  527. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js.map +1 -0
  528. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js +37 -0
  529. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js.map +1 -0
  530. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js +44 -0
  531. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js.map +1 -0
  532. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js +31 -0
  533. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js.map +1 -0
  534. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js +29 -0
  535. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js.map +1 -0
  536. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js +39 -0
  537. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js.map +1 -0
  538. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js +30 -0
  539. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js.map +1 -0
  540. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js +78 -0
  541. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js.map +1 -0
  542. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js +169 -0
  543. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js.map +1 -0
  544. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js +107 -0
  545. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js.map +1 -0
  546. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js +44 -0
  547. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js.map +1 -0
  548. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js +34 -0
  549. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js.map +1 -0
  550. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js +82 -0
  551. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js.map +1 -0
  552. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js +42 -0
  553. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js.map +1 -0
  554. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js +55 -0
  555. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js.map +1 -0
  556. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js +59 -0
  557. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js.map +1 -0
  558. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js +59 -0
  559. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js.map +1 -0
  560. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js +55 -0
  561. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -0
  562. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js +55 -0
  563. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js.map +1 -0
  564. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js +59 -0
  565. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js.map +1 -0
  566. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js +55 -0
  567. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js.map +1 -0
  568. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js +55 -0
  569. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
  570. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js +55 -0
  571. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -0
  572. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js +55 -0
  573. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js.map +1 -0
  574. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js +59 -0
  575. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
  576. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js +55 -0
  577. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js.map +1 -0
  578. package/dist/trinity/core/rawData/{Tr2PerObjectData.js → perObjectData/Tr2PerObjectData.js} +110 -62
  579. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -0
  580. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +104 -0
  581. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -0
  582. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +87 -0
  583. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -0
  584. package/dist/trinity/core/variable/TriVariable.js +83 -83
  585. package/dist/trinity/core/variable/TriVariable.js.map +1 -1
  586. package/dist/trinity/core/vertex/{Tr2VertexDefinition.js → Tr2VertexDefinition/Tr2VertexDefinition.js} +4 -20
  587. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -0
  588. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js +29 -0
  589. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js.map +1 -0
  590. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +116 -36
  591. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  592. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +50 -92
  593. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
  594. package/dist/trinity/eve/EveModularObjectModifier.js +9 -5
  595. package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
  596. package/dist/trinity/eve/IEveInheritPropertiesOwner.js +2 -1
  597. package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
  598. package/dist/trinity/eve/IEveSpaceObject2.js +2 -1
  599. package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
  600. package/dist/trinity/eve/IEveTransform.js +2 -1
  601. package/dist/trinity/eve/IEveTransform.js.map +1 -1
  602. package/dist/trinity/eve/attachment/banner/EveBannerSet.js +2 -2
  603. package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
  604. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +109 -133
  605. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
  606. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +40 -0
  607. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -0
  608. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +1 -1
  609. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
  610. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js +2 -14
  611. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js.map +1 -1
  612. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js +18 -0
  613. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js.map +1 -0
  614. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +1 -1
  615. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
  616. package/dist/trinity/eve/attachment/haze/EveHazeSet.js +1 -1
  617. package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
  618. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +1 -1
  619. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
  620. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +2 -2
  621. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
  622. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +1 -1
  623. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
  624. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +4 -2
  625. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
  626. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +143 -139
  627. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  628. package/dist/trinity/eve/camera/EveCamera.js +1 -1
  629. package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
  630. package/dist/trinity/eve/child/EveChildBoosterSet.js +12 -1
  631. package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
  632. package/dist/trinity/eve/child/EveChildCloud2.js +178 -151
  633. package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
  634. package/dist/trinity/eve/child/EveChildContainer.js +141 -141
  635. package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
  636. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +87 -0
  637. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -0
  638. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +46 -0
  639. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -0
  640. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +35 -0
  641. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -0
  642. package/dist/trinity/eve/child/{EveChildInstancedMeshes.js → EveChildInstancedMeshes/EveChildInstancedMeshes.js} +42 -163
  643. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -0
  644. package/dist/trinity/eve/child/EveChildMesh.js +218 -218
  645. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  646. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +53 -0
  647. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -0
  648. package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js} +9 -45
  649. package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -0
  650. package/dist/trinity/eve/child/EveChildParticleSystem.js +30 -29
  651. package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
  652. package/dist/trinity/eve/child/EveChildTransform.js +5 -0
  653. package/dist/trinity/eve/child/EveChildTransform.js.map +1 -1
  654. package/dist/trinity/eve/child/EveChildTurret.js +7 -0
  655. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  656. package/dist/trinity/eve/index.js +10 -4
  657. package/dist/trinity/eve/index.js.map +1 -1
  658. package/dist/trinity/eve/lights/Tr2Light.js +5 -0
  659. package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
  660. package/dist/trinity/eve/overlays/overlayBatches.js +6 -1
  661. package/dist/trinity/eve/overlays/overlayBatches.js.map +1 -1
  662. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +4 -4
  663. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
  664. package/dist/trinity/eve/renderable/stretch/EveStretch2.js +76 -71
  665. package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
  666. package/dist/trinity/eve/renderable/stretch/EveStretch3.js +1 -1
  667. package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
  668. package/dist/trinity/eve/spaceObject/EveShip2.js +3 -3
  669. package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
  670. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +408 -407
  671. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  672. package/dist/trinity/eve/ui/EveTacticalOverlay.js +1 -1
  673. package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
  674. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +9 -9
  675. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
  676. package/dist/trinity/eve/ui/lines/EveLineSet.js +27 -25
  677. package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
  678. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +3 -2
  679. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
  680. package/dist/trinity/generated/index.js +0 -1
  681. package/dist/trinity/generated/index.js.map +1 -1
  682. package/dist/trinity/generated/trinityCore/index.js +0 -1
  683. package/dist/trinity/generated/trinityCore/index.js.map +1 -1
  684. package/dist/trinity/index.js +59 -23
  685. package/dist/trinity/index.js.map +1 -1
  686. package/dist/trinity/particle/{ITr2GenericEmitter.js → ITr2GenericEmitter/ITr2GenericEmitter.js} +4 -32
  687. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -0
  688. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js +36 -0
  689. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js.map +1 -0
  690. package/dist/trinity/particle/Tr2ParticleSystem.js +4 -2
  691. package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
  692. package/dist/trinity/particle/element/Tr2ParticleElementData.js +15 -4
  693. package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
  694. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +21 -20
  695. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
  696. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +23 -22
  697. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  698. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +14 -13
  699. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
  700. package/dist/trinity/particle/index.js +2 -1
  701. package/dist/trinity/particle/index.js.map +1 -1
  702. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +7 -1
  703. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
  704. package/dist/trinity/shader/Tr2Effect.js +131 -58
  705. package/dist/trinity/shader/Tr2Effect.js.map +1 -1
  706. package/dist/trinity/shader/Tr2EffectStateManager.js +17 -5
  707. package/dist/trinity/shader/Tr2EffectStateManager.js.map +1 -1
  708. package/dist/trinity/shader/Tr2Material.js +21 -4
  709. package/dist/trinity/shader/Tr2Material.js.map +1 -1
  710. package/dist/trinity/shader/material/Tr2EffectPassParameters.js +4 -1
  711. package/dist/trinity/shader/material/Tr2EffectPassParameters.js.map +1 -1
  712. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
  713. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  714. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js +79 -0
  715. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js.map +1 -0
  716. package/dist/trinityal/{Tr2DeviceResourceAL.js → Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js} +77 -79
  717. package/dist/trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js.map +1 -0
  718. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js +24 -0
  719. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js.map +1 -0
  720. package/dist/trinityal/Tr2DrawUPHelper.js +2 -1
  721. package/dist/trinityal/Tr2DrawUPHelper.js.map +1 -1
  722. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js +45 -0
  723. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js.map +1 -0
  724. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js +154 -0
  725. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js.map +1 -0
  726. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js +48 -0
  727. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js.map +1 -0
  728. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js +75 -0
  729. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js.map +1 -0
  730. package/dist/trinityal/{Tr2HalHelperStructures.js → Tr2HalHelperStructures/Tr2TextureSubresource.js} +11 -115
  731. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -0
  732. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js +51 -0
  733. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js.map +1 -0
  734. package/dist/trinityal/{Tr2RenderPassAL.js → Tr2RenderPassAL/Tr2ColorAttachment.js} +5 -28
  735. package/dist/trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js.map +1 -0
  736. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js +38 -0
  737. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js.map +1 -0
  738. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js +80 -0
  739. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js.map +1 -0
  740. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js +76 -0
  741. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js.map +1 -0
  742. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js +96 -0
  743. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -0
  744. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js +196 -0
  745. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js.map +1 -0
  746. package/dist/trinityal/index.js +22 -9
  747. package/dist/trinityal/index.js.map +1 -1
  748. package/dist/trinityal/stub/Tr2BufferALStub.js +86 -141
  749. package/dist/trinityal/stub/Tr2BufferALStub.js.map +1 -1
  750. package/dist/trinityal/stub/Tr2CapsALStub.js +17 -0
  751. package/dist/trinityal/stub/Tr2CapsALStub.js.map +1 -1
  752. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js +57 -41
  753. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js.map +1 -1
  754. package/dist/trinityal/stub/Tr2FenceALStub.js +18 -2
  755. package/dist/trinityal/stub/Tr2FenceALStub.js.map +1 -1
  756. package/dist/trinityal/stub/Tr2GpuTimerALStub.js +97 -0
  757. package/dist/trinityal/stub/Tr2GpuTimerALStub.js.map +1 -0
  758. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js +124 -0
  759. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js.map +1 -0
  760. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js +146 -0
  761. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js.map +1 -0
  762. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js +28 -0
  763. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js.map +1 -0
  764. package/dist/trinityal/stub/{Tr2RenderContextALStub.js → Tr2RenderContextALStub/Tr2RenderContextALStub.js} +70 -75
  765. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -0
  766. package/dist/trinityal/stub/Tr2SamplerStateALStub.js +47 -31
  767. package/dist/trinityal/stub/Tr2SamplerStateALStub.js.map +1 -1
  768. package/dist/trinityal/stub/Tr2ShaderALStub.js +61 -45
  769. package/dist/trinityal/stub/Tr2ShaderALStub.js.map +1 -1
  770. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js +51 -33
  771. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js.map +1 -1
  772. package/dist/trinityal/stub/Tr2SwapChainALStub.js +61 -45
  773. package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
  774. package/dist/trinityal/stub/Tr2TextureALStub.js +188 -171
  775. package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
  776. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js +43 -27
  777. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js.map +1 -1
  778. package/dist/trinityal/stub/{Tr2VideoAdapterInfoALStub.js → Tr2VideoAdapterInfoStub.js} +16 -1
  779. package/dist/trinityal/stub/Tr2VideoAdapterInfoStub.js.map +1 -0
  780. package/dist/trinityal/stub/index.js +8 -4
  781. package/dist/trinityal/stub/index.js.map +1 -1
  782. package/dist/trinityal/vertexLayoutMatch.js +2 -2
  783. package/dist/trinityal/vertexLayoutMatch.js.map +1 -1
  784. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js +105 -90
  785. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js.map +1 -1
  786. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js +17 -0
  787. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js.map +1 -1
  788. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js +15 -0
  789. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js.map +1 -1
  790. package/dist/trinityal/webgpu/CjsWebgpuDevice.js +2 -2
  791. package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
  792. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +900 -938
  793. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  794. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +56 -60
  795. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
  796. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js +16 -1
  797. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js.map +1 -1
  798. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +100 -379
  799. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
  800. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +330 -0
  801. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -0
  802. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +15 -0
  803. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
  804. package/dist/trinityal/webgpu/core/{constantArena.js → CjsWebgpuConstantArena.js} +1 -1
  805. package/dist/trinityal/webgpu/core/CjsWebgpuConstantArena.js.map +1 -0
  806. package/dist/trinityal/webgpu/core/{batchGroups.js → CjsWebgpuEncodeState.js} +1 -1
  807. package/dist/trinityal/webgpu/core/CjsWebgpuEncodeState.js.map +1 -0
  808. package/dist/trinityal/webgpu/core/{perFrameSource.js → CjsWebgpuPerFrameSource.js} +1 -1
  809. package/dist/trinityal/webgpu/core/CjsWebgpuPerFrameSource.js.map +1 -0
  810. package/dist/trinityal/webgpu/core/{pipelineCache.js → CjsWebgpuPipelineCache.js} +1 -1
  811. package/dist/trinityal/webgpu/core/CjsWebgpuPipelineCache.js.map +1 -0
  812. package/dist/trinityal/webgpu/core/{psoDescription.js → CjsWebgpuPsoDescription.js} +2 -2
  813. package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -0
  814. package/dist/trinityal/webgpu/core/{renderTarget.js → CjsWebgpuRenderTarget.js} +1 -1
  815. package/dist/trinityal/webgpu/core/CjsWebgpuRenderTarget.js.map +1 -0
  816. package/dist/trinityal/webgpu/core/{samplerSource.js → CjsWebgpuSamplerSource.js} +1 -1
  817. package/dist/trinityal/webgpu/core/CjsWebgpuSamplerSource.js.map +1 -0
  818. package/dist/trinityal/webgpu/core/{textureSource.js → CjsWebgpuTextureSource.js} +1 -1
  819. package/dist/trinityal/webgpu/core/CjsWebgpuTextureSource.js.map +1 -0
  820. package/dist/trinityal/webgpu/core/{trinityBatchDispatcher.js → CjsWebgpuTrinityBatchDispatcher.js} +4 -4
  821. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchDispatcher.js.map +1 -0
  822. package/dist/trinityal/webgpu/core/{trinityBatchResolver.js → CjsWebgpuTrinityBatchResolver.js} +81 -81
  823. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js.map +1 -0
  824. package/dist/trinityal/webgpu/core/{trinityPassEncoder.js → CjsWebgpuTrinityPassEncoder.js} +2 -2
  825. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js.map +1 -0
  826. package/dist/trinityal/webgpu/core/{workQueue.js → CjsWebgpuWorkQueue.js} +1 -1
  827. package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -0
  828. package/dist/trinityal/webgpu/internal.js +12 -11
  829. package/dist/trinityal/webgpu/internal.js.map +1 -1
  830. package/docs/audio/reference/classes/trinity.md +44 -34
  831. package/docs/character/architecture.md +276 -0
  832. package/docs/character/reference/character-appearance-plans.md +30 -66
  833. package/docs/character/reference/prepared-libraries.md +14 -30
  834. package/docs/global/reference/api.md +2 -1
  835. package/docs/global/reference/classes/README.md +53 -71
  836. package/docs/global/reference/classes/dropped.md +16 -0
  837. package/docs/resource/README.md +19 -15
  838. package/docs/resource/architecture.md +9 -2
  839. package/docs/resource/concepts/format-capabilities.md +124 -80
  840. package/docs/resource/concepts/shared-format-helpers.md +94 -0
  841. package/docs/resource/formats/README.md +230 -224
  842. package/docs/resource/formats/bitknit2.md +221 -0
  843. package/docs/resource/formats/carbon-effect-container.md +184 -269
  844. package/docs/resource/formats/gr2.md +6 -1
  845. package/docs/resource/formats/schemabound.md +28 -48
  846. package/docs/resource/formats/static.md +70 -97
  847. package/docs/resource/formats/webgl/carbon-constant-layouts.md +8 -8
  848. package/docs/resource/formats/webgl/decl-io.md +165 -256
  849. package/docs/resource/formats/webgl/memory-structured.md +64 -142
  850. package/docs/resource/formats/webgl/texture-sample.md +109 -138
  851. package/docs/resource/formats/webgpu/formats/carbon-webgpu.md +38 -69
  852. package/docs/resource/formats/webgpu/guides/effect-packaging.md +54 -116
  853. package/docs/resource/formats/webgpu/reference/api.md +64 -67
  854. package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +158 -345
  855. package/docs/resource/reference/classes/core.md +256 -236
  856. package/docs/resource/reference/classes/formats.md +1668 -1672
  857. package/docs/resource/reference/workers.md +4 -2
  858. package/docs/sof/reference/classes/core.md +1 -1
  859. package/docs/sof/reference/classes/faction.md +2 -2
  860. package/docs/sof/reference/classes/generic.md +4 -4
  861. package/docs/sof/reference/classes/pattern.md +1 -1
  862. package/docs/sof/reference/classes/shared.md +10 -10
  863. package/docs/trinity/architecture.md +55 -44
  864. package/docs/trinity/concepts/generated-class-lifecycle.md +10 -15
  865. package/docs/trinity/reference/classes/curves-and-utilities.md +496 -506
  866. package/docs/trinity/reference/classes/dropped.md +0 -189
  867. package/docs/trinity/reference/classes/eve-runtime.md +8 -8
  868. package/docs/trinity/reference/classes/generated.md +0 -10
  869. package/docs/trinity/reference/classes/particle.md +2 -2
  870. package/docs/trinity/reference/classes/trinity-core.md +1554 -1256
  871. package/docs/trinity/reference/implementation-status.md +50 -75
  872. package/docs/trinity/reference/main-semantic-extraction.md +13 -17
  873. package/docs/trinityal/reference/classes/README.md +77 -27
  874. package/docs/trinityal/reference/classes/dropped.md +92 -0
  875. package/docs/trinityal/webgpu/README.md +3 -1
  876. package/docs/trinityal/webgpu/architecture.md +121 -228
  877. package/docs/trinityal/webgpu/reference/api.md +5 -5
  878. package/docs/trinityal/webgpu/reference/classes/README.md +13 -13
  879. package/format-notices/gr2/NOTICE +18 -12
  880. package/format-notices/gr2/THIRD-PARTY-NOTICES.md +5 -5
  881. package/package.json +4 -1
  882. package/dist/audio/trinity/audio/AudActionLog.js +0 -173
  883. package/dist/audio/trinity/audio/AudActionLog.js.map +0 -1
  884. package/dist/audio/trinity/audio/AudObstructionOcclusion.js.map +0 -1
  885. package/dist/global/contracts/CjsScriptCallback.js +0 -94
  886. package/dist/global/contracts/CjsScriptCallback.js.map +0 -1
  887. package/dist/trinity/controllers/ITr2Controller.js.map +0 -1
  888. package/dist/trinity/core/Tr2GpuResourcePool.js.map +0 -1
  889. package/dist/trinity/core/Tr2QuadRenderer.js.map +0 -1
  890. package/dist/trinity/core/Tr2TextureArray.js.map +0 -1
  891. package/dist/trinity/core/batch/ITriRenderBatchAccumulator.js.map +0 -1
  892. package/dist/trinity/core/batch/Tr2RenderBatch.js.map +0 -1
  893. package/dist/trinity/core/batch/TriRenderBatchAccumulator.js.map +0 -1
  894. package/dist/trinity/core/context/CjsShadowMapExecutor.js +0 -43
  895. package/dist/trinity/core/context/CjsShadowMapExecutor.js.map +0 -1
  896. package/dist/trinity/core/context/CjsVolumetricsExecutor.js +0 -64
  897. package/dist/trinity/core/context/CjsVolumetricsExecutor.js.map +0 -1
  898. package/dist/trinity/core/context/Tr2VisibilityResults.js +0 -109
  899. package/dist/trinity/core/context/Tr2VisibilityResults.js.map +0 -1
  900. package/dist/trinity/core/device/Tr2RingBuffer.js.map +0 -1
  901. package/dist/trinity/core/device/Tr2SuballocatedBuffer.js.map +0 -1
  902. package/dist/trinity/core/mesh/ITr2ImpostorSource.js.map +0 -1
  903. package/dist/trinity/core/mesh/ITr2InstanceData.js.map +0 -1
  904. package/dist/trinity/core/rawData/Tr2PerObjectData.js.map +0 -1
  905. package/dist/trinity/core/rawData/constantLayout.js +0 -175
  906. package/dist/trinity/core/rawData/constantLayout.js.map +0 -1
  907. package/dist/trinity/core/vertex/Tr2VertexDefinition.js.map +0 -1
  908. package/dist/trinity/eve/child/EveChildInstancedMeshes.js.map +0 -1
  909. package/dist/trinity/eve/child/EveChildPartData.js.map +0 -1
  910. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js +0 -47
  911. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js.map +0 -1
  912. package/dist/trinity/particle/ITr2GenericEmitter.js.map +0 -1
  913. package/dist/trinityal/Tr2DeviceResourceAL.js.map +0 -1
  914. package/dist/trinityal/Tr2HalHelperStructures.js.map +0 -1
  915. package/dist/trinityal/Tr2RenderPassAL.js.map +0 -1
  916. package/dist/trinityal/Tr2ResourceSetAL.js +0 -419
  917. package/dist/trinityal/Tr2ResourceSetAL.js.map +0 -1
  918. package/dist/trinityal/Tr2SamplerDescription.js +0 -72
  919. package/dist/trinityal/Tr2SamplerDescription.js.map +0 -1
  920. package/dist/trinityal/stub/Tr2QueryALStub.js +0 -326
  921. package/dist/trinityal/stub/Tr2QueryALStub.js.map +0 -1
  922. package/dist/trinityal/stub/Tr2RenderContextALStub.js.map +0 -1
  923. package/dist/trinityal/stub/Tr2VideoAdapterInfoALStub.js.map +0 -1
  924. package/dist/trinityal/webgpu/core/batchGroups.js.map +0 -1
  925. package/dist/trinityal/webgpu/core/constantArena.js.map +0 -1
  926. package/dist/trinityal/webgpu/core/perFrameSource.js.map +0 -1
  927. package/dist/trinityal/webgpu/core/pipelineCache.js.map +0 -1
  928. package/dist/trinityal/webgpu/core/psoDescription.js.map +0 -1
  929. package/dist/trinityal/webgpu/core/renderTarget.js.map +0 -1
  930. package/dist/trinityal/webgpu/core/samplerSource.js.map +0 -1
  931. package/dist/trinityal/webgpu/core/textureSource.js.map +0 -1
  932. package/dist/trinityal/webgpu/core/trinityBatchDispatcher.js.map +0 -1
  933. package/dist/trinityal/webgpu/core/trinityBatchResolver.js.map +0 -1
  934. package/dist/trinityal/webgpu/core/trinityPassEncoder.js.map +0 -1
  935. package/dist/trinityal/webgpu/core/workQueue.js.map +0 -1
@@ -1,5 +1,6 @@
1
1
  export { CjsExternalRef } from './CjsExternalRef.js';
2
- export { ErrSOFAreaTypeNotFound, EveSOFDataArea } from './EveSOFDataArea.js';
2
+ export { ErrSOFAreaTypeNotFound } from './ErrSOFAreaTypeNotFound.js';
3
+ export { EveSOFDataArea } from './EveSOFDataArea.js';
3
4
  export { EveSOFDataAreaMaterial } from './EveSOFDataAreaMaterial.js';
4
5
  export { EveSOFDataBooster } from './EveSOFDataBooster.js';
5
6
  export { EveSOFDataBoosterShape } from './EveSOFDataBoosterShape.js';
@@ -9,11 +10,19 @@ export { EveSOFDataBlinkType } from './EveSOFDataBlinkType.js';
9
10
  export { EveSOFDataInstancedMesh } from './EveSOFDataInstancedMesh.js';
10
11
  export { EveSOFDNADescriptor } from './EveSOFDNADescriptor.js';
11
12
  export { EveSOFDataLogo } from './EveSOFDataLogo.js';
12
- export { ErrSOFLogoSetTypeNotFound, ErrSOFLogoSetTypeUnknown, EveSOFDataLogoSet } from './EveSOFDataLogoSet.js';
13
+ export { ErrSOFLogoSetTypeNotFound } from './ErrSOFLogoSetTypeNotFound.js';
14
+ export { ErrSOFLogoSetTypeUnknown } from './ErrSOFLogoSetTypeUnknown.js';
15
+ export { EveSOFDataLogoSet } from './EveSOFDataLogoSet.js';
13
16
  export { EveSOFDataMaterial } from './EveSOFDataMaterial.js';
14
- export { EveSOFDataParameter, EveSOFDataParameterBool, EveSOFDataParameterColor, EveSOFDataParameterFloat, EveSOFDataParameterInt, EveSOFDataParameterVector2, EveSOFDataParameterVector3 } from './EveSOFDataParameter.js';
17
+ export { EveSOFDataParameter } from './EveSOFDataParameter.js';
18
+ export { EveSOFDataParameterBool } from './EveSOFDataParameterBool.js';
19
+ export { EveSOFDataParameterColor } from './EveSOFDataParameterColor.js';
20
+ export { EveSOFDataParameterFloat } from './EveSOFDataParameterFloat.js';
21
+ export { EveSOFDataParameterInt } from './EveSOFDataParameterInt.js';
22
+ export { EveSOFDataParameterVector2 } from './EveSOFDataParameterVector2.js';
23
+ export { EveSOFDataParameterVector3 } from './EveSOFDataParameterVector3.js';
15
24
  export { EveSOFDataPointLightAttachment } from './EveSOFDataPointLightAttachment.js';
16
- export { EveSOFDataSpotLightAttachment } from './EveSOFDataSpotlightAttachment.js';
25
+ export { EveSOFDataSpotLightAttachment } from './EveSOFDataSpotLightAttachment.js';
17
26
  export { EveSOFDataTexture } from './EveSOFDataTexture.js';
18
27
  export { EveSOFDataTransform } from './EveSOFDataTransform.js';
19
28
  export { EveSofDataMeshInstance } from './EveSofDataMeshInstance.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,33 @@
1
+ // Source: trinity/trinity/Eve/SpaceObjectFactory/EveSOF.cpp
2
+ //
3
+ // The values-document predicates and the literal-$ref marker, shared by EveSOF
4
+ // and SofDocumentBuilder. They live here rather than on either of them so that
5
+ // splitting the builder out does not put the two modules in an import cycle.
6
+
7
+ // A model-values record may legitimately own a `$ref` field: only `_ref` is
8
+ // reserved by that format. Mark such records while they cross the deprecated
9
+ // document intermediate so its private reference walker does not reinterpret
10
+ // their data. Symbols survive the in-process shallow normalization but never
11
+ // appear in either JSON output shape.
12
+ const VALUES_LITERAL_DOLLAR_REF = Symbol("values-literal-dollar-ref");
13
+ function IsModelValuesRoot(value) {
14
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value) && Object.hasOwn(value, "_type") && typeof value._type === "string" && value._type.length > 0;
15
+ }
16
+ function IsModelValuesReference(value) {
17
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value) && Object.hasOwn(value, "_ref");
18
+ }
19
+ function remapImportedValue(value, refs) {
20
+ if (Array.isArray(value)) return value.map(item => remapImportedValue(item, refs));
21
+ if (!value || typeof value !== "object") return value;
22
+ if (Object.hasOwn(value, "$ref")) {
23
+ const ref = refs.get(Number(value.$ref));
24
+ if (!ref) throw new TypeError(`EveSOF child resource ref ${value.$ref} does not exist`);
25
+ return {
26
+ $ref: ref.$ref
27
+ };
28
+ }
29
+ return Object.fromEntries(Object.entries(value).map(([key, item]) => [key, remapImportedValue(item, refs)]));
30
+ }
31
+
32
+ export { IsModelValuesReference, IsModelValuesRoot, VALUES_LITERAL_DOLLAR_REF, remapImportedValue };
33
+ //# sourceMappingURL=sofDocumentValues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sofDocumentValues.js","sources":["../../../src/sof/sofDocumentValues.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObjectFactory/EveSOF.cpp\n//\n// The values-document predicates and the literal-$ref marker, shared by EveSOF\n// and SofDocumentBuilder. They live here rather than on either of them so that\n// splitting the builder out does not put the two modules in an import cycle.\n\n\n// A model-values record may legitimately own a `$ref` field: only `_ref` is\n// reserved by that format. Mark such records while they cross the deprecated\n// document intermediate so its private reference walker does not reinterpret\n// their data. Symbols survive the in-process shallow normalization but never\n// appear in either JSON output shape.\nexport const VALUES_LITERAL_DOLLAR_REF = Symbol(\"values-literal-dollar-ref\");\n\nexport function IsModelValuesRoot(value)\n{\n return Boolean(value)\n && typeof value === \"object\"\n && !Array.isArray(value)\n && Object.hasOwn(value, \"_type\")\n && typeof value._type === \"string\"\n && value._type.length > 0;\n}\n\nexport function IsModelValuesReference(value)\n{\n return Boolean(value)\n && typeof value === \"object\"\n && !Array.isArray(value)\n && Object.hasOwn(value, \"_ref\");\n}\n\nexport function remapImportedValue(value, refs)\n{\n if (Array.isArray(value)) return value.map(item => remapImportedValue(item, refs));\n if (!value || typeof value !== \"object\") return value;\n if (Object.hasOwn(value, \"$ref\"))\n {\n const ref = refs.get(Number(value.$ref));\n if (!ref) throw new TypeError(`EveSOF child resource ref ${value.$ref} does not exist`);\n return { $ref: ref.$ref };\n }\n return Object.fromEntries(Object.entries(value).map(([key, item]) => [key, remapImportedValue(item, refs)]));\n}\n"],"names":["VALUES_LITERAL_DOLLAR_REF","Symbol","IsModelValuesRoot","value","Boolean","Array","isArray","Object","hasOwn","_type","length","IsModelValuesReference","remapImportedValue","refs","map","item","ref","get","Number","$ref","TypeError","fromEntries","entries","key"],"mappings":"AAAA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;MACaA,yBAAyB,GAAGC,MAAM,CAAC,2BAA2B;AAEpE,SAASC,iBAAiBA,CAACC,KAAK,EACvC;AACE,EAAA,OAAOC,OAAO,CAACD,KAAK,CAAC,IAChB,OAAOA,KAAK,KAAK,QAAQ,IACzB,CAACE,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,IACrBI,MAAM,CAACC,MAAM,CAACL,KAAK,EAAE,OAAO,CAAC,IAC7B,OAAOA,KAAK,CAACM,KAAK,KAAK,QAAQ,IAC/BN,KAAK,CAACM,KAAK,CAACC,MAAM,GAAG,CAAC;AAC7B;AAEO,SAASC,sBAAsBA,CAACR,KAAK,EAC5C;EACE,OAAOC,OAAO,CAACD,KAAK,CAAC,IAChB,OAAOA,KAAK,KAAK,QAAQ,IACzB,CAACE,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,IACrBI,MAAM,CAACC,MAAM,CAACL,KAAK,EAAE,MAAM,CAAC;AACnC;AAEO,SAASS,kBAAkBA,CAACT,KAAK,EAAEU,IAAI,EAC9C;EACE,IAAIR,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,EAAE,OAAOA,KAAK,CAACW,GAAG,CAACC,IAAI,IAAIH,kBAAkB,CAACG,IAAI,EAAEF,IAAI,CAAC,CAAC;EAClF,IAAI,CAACV,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE,OAAOA,KAAK;EACrD,IAAII,MAAM,CAACC,MAAM,CAACL,KAAK,EAAE,MAAM,CAAC,EAChC;AACE,IAAA,MAAMa,GAAG,GAAGH,IAAI,CAACI,GAAG,CAACC,MAAM,CAACf,KAAK,CAACgB,IAAI,CAAC,CAAC;AACxC,IAAA,IAAI,CAACH,GAAG,EAAE,MAAM,IAAII,SAAS,CAAC,CAAA,0BAAA,EAA6BjB,KAAK,CAACgB,IAAI,CAAA,eAAA,CAAiB,CAAC;IACvF,OAAO;MAAEA,IAAI,EAAEH,GAAG,CAACG;KAAM;AAC3B,EAAA;AACA,EAAA,OAAOZ,MAAM,CAACc,WAAW,CAACd,MAAM,CAACe,OAAO,CAACnB,KAAK,CAAC,CAACW,GAAG,CAAC,CAAC,CAACS,GAAG,EAAER,IAAI,CAAC,KAAK,CAACQ,GAAG,EAAEX,kBAAkB,CAACG,IAAI,EAAEF,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9G;;;;"}
@@ -0,0 +1,168 @@
1
+ import { CjsSchema } from '#schema';
2
+ import { Brand, ITR2_CONTROLLER, ITr2Controller, Adopt, CONTROLLER_NOOPS } from './ITr2Controller.js';
3
+
4
+ // Source: trinity/trinity/Controllers/ITr2Controller.h
5
+ //
6
+ // The contract a controller answers to, and the reason 235 call sites in this
7
+ // runtime were written as `controller?.Update?.()`.
8
+ //
9
+ // WHAT WAS WRONG. Our schema already names this interface - EveStretch3 and its
10
+ // neighbours declare `@type.list("ITr2Controller") controllers = []` - but no
11
+ // class implemented it, so nothing guaranteed that a thing in one of those
12
+ // lists could be told to Update, Start or Stop. Every caller hedged instead,
13
+ // and a hedge cannot tell "this controller does not care about Update" from
14
+ // "this object is not a controller at all". Carbon never has that ambiguity,
15
+ // because the base answers the first case and the type system answers the
16
+ // second.
17
+ //
18
+ // THE KEY DETAIL, AND WHY THE HEDGES CAN SIMPLY GO. Only `IsLinked` is pure
19
+ // virtual. `Link`, `Unlink`, `Start`, `Stop`, `Update`, `SetVariable` and
20
+ // `HandleEvent` all have EMPTY BODIES in Carbon's header. The optional chain
21
+ // was emulating exactly that - a call that harmlessly does nothing when the
22
+ // controller has no opinion - one call site at a time. Inheriting the empty
23
+ // body gives the same behaviour in one place, and turns a genuinely absent
24
+ // method back into the error it should be.
25
+ //
26
+ // TWO INTERFACES, ONE HEADER, as Carbon has them. A plain controller answers
27
+ // the eight verbs below; `ITr2ActionController` adds what a controller driving
28
+ // controller ACTIONS must also provide, all of it pure virtual there and
29
+ // abstract here.
30
+ //
31
+ // `IRoot`, Carbon's base for both, is not ported: it is Blue's reference-counted
32
+ // object root, which a garbage-collected runtime has no use for.
33
+
34
+ const ITR2_ACTION_CONTROLLER = Symbol.for("carbonenginejs.contract.ITr2ActionController");
35
+
36
+ /** Contract for a controller that also drives controller actions. */
37
+ class ITr2ActionController extends ITr2Controller {
38
+ static [Symbol.hasInstance](value) {
39
+ return value !== null && value !== undefined && value[ITR2_ACTION_CONTROLLER] === true;
40
+ }
41
+
42
+ /**
43
+ * The object this controller was linked to.
44
+ *
45
+ * @returns {object} The owner.
46
+ */
47
+ GetOwner() {
48
+ throw new Error("ITr2ActionController.GetOwner must be implemented by an action controller.");
49
+ }
50
+
51
+ /**
52
+ * Delivers a named callback to the controller.
53
+ *
54
+ * @param {string} _callbackName The callback's name.
55
+ */
56
+ Callback(_callbackName) {
57
+ throw new Error("ITr2ActionController.Callback must be implemented by an action controller.");
58
+ }
59
+
60
+ /**
61
+ * Registers an object to be updated whenever this controller updates.
62
+ *
63
+ * @param {object} _updateable The object to update.
64
+ */
65
+ RegisterUpdateable(_updateable) {
66
+ throw new Error("ITr2ActionController.RegisterUpdateable must be implemented by an action controller.");
67
+ }
68
+
69
+ /**
70
+ * Stops updating a previously registered object.
71
+ *
72
+ * @param {object} _updateable The object to stop updating.
73
+ */
74
+ UnRegisterUpdateable(_updateable) {
75
+ throw new Error("ITr2ActionController.UnRegisterUpdateable must be implemented by an action controller.");
76
+ }
77
+
78
+ /**
79
+ * The named root objects a dynamic binding path may start from.
80
+ *
81
+ * @returns {Array} Name and root pairs.
82
+ */
83
+ GetBindingPathRoots() {
84
+ throw new Error("ITr2ActionController.GetBindingPathRoots must be implemented by an action controller.");
85
+ }
86
+
87
+ /**
88
+ * One float variable by name.
89
+ *
90
+ * Carbon returns an optional, so a missing name is ABSENT rather than zero -
91
+ * a distinction an expression needs, since zero is a legitimate value.
92
+ *
93
+ * @param {string} _name The variable's name.
94
+ * @returns {number|null} Its value, or null when there is no such variable.
95
+ */
96
+ GetFloatVariableByName(_name) {
97
+ throw new Error("ITr2ActionController.GetFloatVariableByName must be implemented by an action controller.");
98
+ }
99
+
100
+ /**
101
+ * Adds the functions and variables this controller offers to expressions.
102
+ *
103
+ * @param {Array} _out Term info collected from every contributor.
104
+ */
105
+ GetExpressionTermInfo(_out) {
106
+ throw new Error("ITr2ActionController.GetExpressionTermInfo must be implemented by an action controller.");
107
+ }
108
+
109
+ /**
110
+ * The layout of this controller's variable buffer.
111
+ *
112
+ * @returns {Array} The variable view.
113
+ */
114
+ GetVariableView() {
115
+ throw new Error("ITr2ActionController.GetVariableView must be implemented by an action controller.");
116
+ }
117
+
118
+ /**
119
+ * The buffer the variable view describes.
120
+ *
121
+ * @returns {object} The variable buffer.
122
+ */
123
+ GetVariableBuffer() {
124
+ throw new Error("ITr2ActionController.GetVariableBuffer must be implemented by an action controller.");
125
+ }
126
+
127
+ /**
128
+ * Grows the scratch arena expressions evaluate into.
129
+ *
130
+ * @param {number} _size Bytes required.
131
+ */
132
+ EnsureTempArenaSize(_size) {
133
+ throw new Error("ITr2ActionController.EnsureTempArenaSize must be implemented by an action controller.");
134
+ }
135
+
136
+ /**
137
+ * The scratch arena expressions evaluate into.
138
+ *
139
+ * @returns {object} The arena.
140
+ */
141
+ GetTempArena() {
142
+ throw new Error("ITr2ActionController.GetTempArena must be implemented by an action controller.");
143
+ }
144
+ }
145
+ const ACTION_ABSTRACTS = ["GetOwner", "Callback", "RegisterUpdateable", "UnRegisterUpdateable", "GetBindingPathRoots", "GetFloatVariableByName", "GetExpressionTermInfo", "GetVariableView", "GetVariableBuffer", "EnsureTempArenaSize", "GetTempArena"];
146
+ Brand(ITr2ActionController, ITR2_ACTION_CONTROLLER, [], ACTION_ABSTRACTS);
147
+ Object.defineProperty(ITr2ActionController.prototype, ITR2_CONTROLLER, {
148
+ value: true
149
+ });
150
+ CjsSchema.define(ITr2ActionController, {
151
+ className: "ITr2ActionController"
152
+ });
153
+
154
+ /**
155
+ * Adds the ITr2ActionController contract, and ITr2Controller with it.
156
+ *
157
+ * @param {Function} Base The class to extend.
158
+ * @returns {Function} A subclass carrying both contracts.
159
+ */
160
+ function withITr2ActionController(Base) {
161
+ const Controller = Adopt(Adopt(Base, ITr2Controller, [...CONTROLLER_NOOPS, "IsLinked"]), ITr2ActionController, ACTION_ABSTRACTS);
162
+ Brand(Controller, ITR2_CONTROLLER, CONTROLLER_NOOPS, ["IsLinked"]);
163
+ Brand(Controller, ITR2_ACTION_CONTROLLER, [], ACTION_ABSTRACTS);
164
+ return Controller;
165
+ }
166
+
167
+ export { ITr2ActionController, withITr2ActionController };
168
+ //# sourceMappingURL=ITr2ActionController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ITr2ActionController.js","sources":["../../../../../src/trinity/controllers/ITr2Controller/ITr2ActionController.js"],"sourcesContent":["// Source: trinity/trinity/Controllers/ITr2Controller.h\n//\n// The contract a controller answers to, and the reason 235 call sites in this\n// runtime were written as `controller?.Update?.()`.\n//\n// WHAT WAS WRONG. Our schema already names this interface - EveStretch3 and its\n// neighbours declare `@type.list(\"ITr2Controller\") controllers = []` - but no\n// class implemented it, so nothing guaranteed that a thing in one of those\n// lists could be told to Update, Start or Stop. Every caller hedged instead,\n// and a hedge cannot tell \"this controller does not care about Update\" from\n// \"this object is not a controller at all\". Carbon never has that ambiguity,\n// because the base answers the first case and the type system answers the\n// second.\n//\n// THE KEY DETAIL, AND WHY THE HEDGES CAN SIMPLY GO. Only `IsLinked` is pure\n// virtual. `Link`, `Unlink`, `Start`, `Stop`, `Update`, `SetVariable` and\n// `HandleEvent` all have EMPTY BODIES in Carbon's header. The optional chain\n// was emulating exactly that - a call that harmlessly does nothing when the\n// controller has no opinion - one call site at a time. Inheriting the empty\n// body gives the same behaviour in one place, and turns a genuinely absent\n// method back into the error it should be.\n//\n// TWO INTERFACES, ONE HEADER, as Carbon has them. A plain controller answers\n// the eight verbs below; `ITr2ActionController` adds what a controller driving\n// controller ACTIONS must also provide, all of it pure virtual there and\n// abstract here.\n//\n// `IRoot`, Carbon's base for both, is not ported: it is Blue's reference-counted\n// object root, which a garbage-collected runtime has no use for.\n\nimport { CjsSchema } from \"#schema\";\nimport { ITr2Controller, Brand, ITR2_CONTROLLER, Adopt, CONTROLLER_NOOPS } from \"./ITr2Controller.js\";\n\nconst ITR2_ACTION_CONTROLLER = Symbol.for(\"carbonenginejs.contract.ITr2ActionController\");\n\n/** Contract for a controller that also drives controller actions. */\nexport class ITr2ActionController extends ITr2Controller\n{\n static [Symbol.hasInstance](value)\n {\n return value !== null && value !== undefined && value[ITR2_ACTION_CONTROLLER] === true;\n }\n\n /**\n * The object this controller was linked to.\n *\n * @returns {object} The owner.\n */\n GetOwner()\n {\n throw new Error(\"ITr2ActionController.GetOwner must be implemented by an action controller.\");\n }\n\n /**\n * Delivers a named callback to the controller.\n *\n * @param {string} _callbackName The callback's name.\n */\n Callback(_callbackName)\n {\n throw new Error(\"ITr2ActionController.Callback must be implemented by an action controller.\");\n }\n\n /**\n * Registers an object to be updated whenever this controller updates.\n *\n * @param {object} _updateable The object to update.\n */\n RegisterUpdateable(_updateable)\n {\n throw new Error(\"ITr2ActionController.RegisterUpdateable must be implemented by an action controller.\");\n }\n\n /**\n * Stops updating a previously registered object.\n *\n * @param {object} _updateable The object to stop updating.\n */\n UnRegisterUpdateable(_updateable)\n {\n throw new Error(\"ITr2ActionController.UnRegisterUpdateable must be implemented by an action controller.\");\n }\n\n /**\n * The named root objects a dynamic binding path may start from.\n *\n * @returns {Array} Name and root pairs.\n */\n GetBindingPathRoots()\n {\n throw new Error(\"ITr2ActionController.GetBindingPathRoots must be implemented by an action controller.\");\n }\n\n /**\n * One float variable by name.\n *\n * Carbon returns an optional, so a missing name is ABSENT rather than zero -\n * a distinction an expression needs, since zero is a legitimate value.\n *\n * @param {string} _name The variable's name.\n * @returns {number|null} Its value, or null when there is no such variable.\n */\n GetFloatVariableByName(_name)\n {\n throw new Error(\"ITr2ActionController.GetFloatVariableByName must be implemented by an action controller.\");\n }\n\n /**\n * Adds the functions and variables this controller offers to expressions.\n *\n * @param {Array} _out Term info collected from every contributor.\n */\n GetExpressionTermInfo(_out)\n {\n throw new Error(\"ITr2ActionController.GetExpressionTermInfo must be implemented by an action controller.\");\n }\n\n /**\n * The layout of this controller's variable buffer.\n *\n * @returns {Array} The variable view.\n */\n GetVariableView()\n {\n throw new Error(\"ITr2ActionController.GetVariableView must be implemented by an action controller.\");\n }\n\n /**\n * The buffer the variable view describes.\n *\n * @returns {object} The variable buffer.\n */\n GetVariableBuffer()\n {\n throw new Error(\"ITr2ActionController.GetVariableBuffer must be implemented by an action controller.\");\n }\n\n /**\n * Grows the scratch arena expressions evaluate into.\n *\n * @param {number} _size Bytes required.\n */\n EnsureTempArenaSize(_size)\n {\n throw new Error(\"ITr2ActionController.EnsureTempArenaSize must be implemented by an action controller.\");\n }\n\n /**\n * The scratch arena expressions evaluate into.\n *\n * @returns {object} The arena.\n */\n GetTempArena()\n {\n throw new Error(\"ITr2ActionController.GetTempArena must be implemented by an action controller.\");\n }\n}\n\nconst ACTION_ABSTRACTS = [\n \"GetOwner\", \"Callback\", \"RegisterUpdateable\", \"UnRegisterUpdateable\", \"GetBindingPathRoots\",\n \"GetFloatVariableByName\", \"GetExpressionTermInfo\", \"GetVariableView\", \"GetVariableBuffer\",\n \"EnsureTempArenaSize\", \"GetTempArena\"\n];\n\nBrand(ITr2ActionController, ITR2_ACTION_CONTROLLER, [], ACTION_ABSTRACTS);\n\nObject.defineProperty(ITr2ActionController.prototype, ITR2_CONTROLLER, { value: true });\n\nCjsSchema.define(ITr2ActionController, { className: \"ITr2ActionController\" });\n\n/**\n * Adds the ITr2ActionController contract, and ITr2Controller with it.\n *\n * @param {Function} Base The class to extend.\n * @returns {Function} A subclass carrying both contracts.\n */\nexport function withITr2ActionController(Base)\n{\n const Controller = Adopt(\n Adopt(Base, ITr2Controller, [ ...CONTROLLER_NOOPS, \"IsLinked\" ]),\n ITr2ActionController,\n ACTION_ABSTRACTS\n );\n\n Brand(Controller, ITR2_CONTROLLER, CONTROLLER_NOOPS, [ \"IsLinked\" ]);\n Brand(Controller, ITR2_ACTION_CONTROLLER, [], ACTION_ABSTRACTS);\n\n return Controller;\n}\n"],"names":["ITR2_ACTION_CONTROLLER","Symbol","for","ITr2ActionController","ITr2Controller","hasInstance","value","undefined","GetOwner","Error","Callback","_callbackName","RegisterUpdateable","_updateable","UnRegisterUpdateable","GetBindingPathRoots","GetFloatVariableByName","_name","GetExpressionTermInfo","_out","GetVariableView","GetVariableBuffer","EnsureTempArenaSize","_size","GetTempArena","ACTION_ABSTRACTS","Brand","Object","defineProperty","prototype","ITR2_CONTROLLER","CjsSchema","define","className","withITr2ActionController","Base","Controller","Adopt","CONTROLLER_NOOPS"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { CjsSchema, impl } from '#schema';
2
- import { UnlinkReason } from './enums.js';
2
+ import { UnlinkReason } from '../enums.js';
3
3
 
4
4
  // Source: trinity/trinity/Controllers/ITr2Controller.h
5
5
  //
@@ -32,7 +32,6 @@ import { UnlinkReason } from './enums.js';
32
32
  // object root, which a garbage-collected runtime has no use for.
33
33
 
34
34
  const ITR2_CONTROLLER = Symbol.for("carbonenginejs.contract.ITr2Controller");
35
- const ITR2_ACTION_CONTROLLER = Symbol.for("carbonenginejs.contract.ITr2ActionController");
36
35
 
37
36
  /** Contract for an object that controls another between Start and Stop. */
38
37
  class ITr2Controller {
@@ -98,118 +97,7 @@ class ITr2Controller {
98
97
  */
99
98
  HandleEvent(_eventName) {}
100
99
  }
101
-
102
- /** Contract for a controller that also drives controller actions. */
103
- class ITr2ActionController extends ITr2Controller {
104
- static [Symbol.hasInstance](value) {
105
- return value !== null && value !== undefined && value[ITR2_ACTION_CONTROLLER] === true;
106
- }
107
-
108
- /**
109
- * The object this controller was linked to.
110
- *
111
- * @returns {object} The owner.
112
- */
113
- GetOwner() {
114
- throw new Error("ITr2ActionController.GetOwner must be implemented by an action controller.");
115
- }
116
-
117
- /**
118
- * Delivers a named callback to the controller.
119
- *
120
- * @param {string} _callbackName The callback's name.
121
- */
122
- Callback(_callbackName) {
123
- throw new Error("ITr2ActionController.Callback must be implemented by an action controller.");
124
- }
125
-
126
- /**
127
- * Registers an object to be updated whenever this controller updates.
128
- *
129
- * @param {object} _updateable The object to update.
130
- */
131
- RegisterUpdateable(_updateable) {
132
- throw new Error("ITr2ActionController.RegisterUpdateable must be implemented by an action controller.");
133
- }
134
-
135
- /**
136
- * Stops updating a previously registered object.
137
- *
138
- * @param {object} _updateable The object to stop updating.
139
- */
140
- UnRegisterUpdateable(_updateable) {
141
- throw new Error("ITr2ActionController.UnRegisterUpdateable must be implemented by an action controller.");
142
- }
143
-
144
- /**
145
- * The named root objects a dynamic binding path may start from.
146
- *
147
- * @returns {Array} Name and root pairs.
148
- */
149
- GetBindingPathRoots() {
150
- throw new Error("ITr2ActionController.GetBindingPathRoots must be implemented by an action controller.");
151
- }
152
-
153
- /**
154
- * One float variable by name.
155
- *
156
- * Carbon returns an optional, so a missing name is ABSENT rather than zero -
157
- * a distinction an expression needs, since zero is a legitimate value.
158
- *
159
- * @param {string} _name The variable's name.
160
- * @returns {number|null} Its value, or null when there is no such variable.
161
- */
162
- GetFloatVariableByName(_name) {
163
- throw new Error("ITr2ActionController.GetFloatVariableByName must be implemented by an action controller.");
164
- }
165
-
166
- /**
167
- * Adds the functions and variables this controller offers to expressions.
168
- *
169
- * @param {Array} _out Term info collected from every contributor.
170
- */
171
- GetExpressionTermInfo(_out) {
172
- throw new Error("ITr2ActionController.GetExpressionTermInfo must be implemented by an action controller.");
173
- }
174
-
175
- /**
176
- * The layout of this controller's variable buffer.
177
- *
178
- * @returns {Array} The variable view.
179
- */
180
- GetVariableView() {
181
- throw new Error("ITr2ActionController.GetVariableView must be implemented by an action controller.");
182
- }
183
-
184
- /**
185
- * The buffer the variable view describes.
186
- *
187
- * @returns {object} The variable buffer.
188
- */
189
- GetVariableBuffer() {
190
- throw new Error("ITr2ActionController.GetVariableBuffer must be implemented by an action controller.");
191
- }
192
-
193
- /**
194
- * Grows the scratch arena expressions evaluate into.
195
- *
196
- * @param {number} _size Bytes required.
197
- */
198
- EnsureTempArenaSize(_size) {
199
- throw new Error("ITr2ActionController.EnsureTempArenaSize must be implemented by an action controller.");
200
- }
201
-
202
- /**
203
- * The scratch arena expressions evaluate into.
204
- *
205
- * @returns {object} The arena.
206
- */
207
- GetTempArena() {
208
- throw new Error("ITr2ActionController.GetTempArena must be implemented by an action controller.");
209
- }
210
- }
211
100
  const CONTROLLER_NOOPS = ["Link", "Unlink", "Start", "Stop", "Update", "SetVariable", "HandleEvent"];
212
- const ACTION_ABSTRACTS = ["GetOwner", "Callback", "RegisterUpdateable", "UnRegisterUpdateable", "GetBindingPathRoots", "GetFloatVariableByName", "GetExpressionTermInfo", "GetVariableView", "GetVariableBuffer", "EnsureTempArenaSize", "GetTempArena"];
213
101
 
214
102
  /**
215
103
  * Marks a class as carrying a contract, and records each method's provenance.
@@ -231,16 +119,9 @@ function Brand(target, symbol, noops, abstracts) {
231
119
  for (const name of abstracts) CjsSchema.decorateMethod(target, name, impl.abstract);
232
120
  }
233
121
  Brand(ITr2Controller, ITR2_CONTROLLER, CONTROLLER_NOOPS, ["IsLinked"]);
234
- Brand(ITr2ActionController, ITR2_ACTION_CONTROLLER, [], ACTION_ABSTRACTS);
235
- Object.defineProperty(ITr2ActionController.prototype, ITR2_CONTROLLER, {
236
- value: true
237
- });
238
122
  CjsSchema.define(ITr2Controller, {
239
123
  className: "ITr2Controller"
240
124
  });
241
- CjsSchema.define(ITr2ActionController, {
242
- className: "ITr2ActionController"
243
- });
244
125
 
245
126
  /**
246
127
  * Adds the ITr2Controller contract without replacing an existing model base.
@@ -259,19 +140,6 @@ function withITr2Controller(Base) {
259
140
  return Controller;
260
141
  }
261
142
 
262
- /**
263
- * Adds the ITr2ActionController contract, and ITr2Controller with it.
264
- *
265
- * @param {Function} Base The class to extend.
266
- * @returns {Function} A subclass carrying both contracts.
267
- */
268
- function withITr2ActionController(Base) {
269
- const Controller = Adopt(Adopt(Base, ITr2Controller, [...CONTROLLER_NOOPS, "IsLinked"]), ITr2ActionController, ACTION_ABSTRACTS);
270
- Brand(Controller, ITR2_CONTROLLER, CONTROLLER_NOOPS, ["IsLinked"]);
271
- Brand(Controller, ITR2_ACTION_CONTROLLER, [], ACTION_ABSTRACTS);
272
- return Controller;
273
- }
274
-
275
143
  /**
276
144
  * Subclasses `Base`, filling in only the contract methods it does not already
277
145
  * have.
@@ -298,5 +166,5 @@ function Adopt(Base, Contract, names) {
298
166
  return Adopted;
299
167
  }
300
168
 
301
- export { Adopt, Brand, ITr2ActionController, ITr2Controller, withITr2ActionController, withITr2Controller };
169
+ export { Adopt, Brand, CONTROLLER_NOOPS, ITR2_CONTROLLER, ITr2Controller, withITr2Controller };
302
170
  //# sourceMappingURL=ITr2Controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ITr2Controller.js","sources":["../../../../../src/trinity/controllers/ITr2Controller/ITr2Controller.js"],"sourcesContent":["// Source: trinity/trinity/Controllers/ITr2Controller.h\n//\n// The contract a controller answers to, and the reason 235 call sites in this\n// runtime were written as `controller?.Update?.()`.\n//\n// WHAT WAS WRONG. Our schema already names this interface - EveStretch3 and its\n// neighbours declare `@type.list(\"ITr2Controller\") controllers = []` - but no\n// class implemented it, so nothing guaranteed that a thing in one of those\n// lists could be told to Update, Start or Stop. Every caller hedged instead,\n// and a hedge cannot tell \"this controller does not care about Update\" from\n// \"this object is not a controller at all\". Carbon never has that ambiguity,\n// because the base answers the first case and the type system answers the\n// second.\n//\n// THE KEY DETAIL, AND WHY THE HEDGES CAN SIMPLY GO. Only `IsLinked` is pure\n// virtual. `Link`, `Unlink`, `Start`, `Stop`, `Update`, `SetVariable` and\n// `HandleEvent` all have EMPTY BODIES in Carbon's header. The optional chain\n// was emulating exactly that - a call that harmlessly does nothing when the\n// controller has no opinion - one call site at a time. Inheriting the empty\n// body gives the same behaviour in one place, and turns a genuinely absent\n// method back into the error it should be.\n//\n// TWO INTERFACES, ONE HEADER, as Carbon has them. A plain controller answers\n// the eight verbs below; `ITr2ActionController` adds what a controller driving\n// controller ACTIONS must also provide, all of it pure virtual there and\n// abstract here.\n//\n// `IRoot`, Carbon's base for both, is not ported: it is Blue's reference-counted\n// object root, which a garbage-collected runtime has no use for.\n\nimport { CjsSchema, impl } from \"#schema\";\nimport { UnlinkReason } from \"../enums.js\";\n\nexport const ITR2_CONTROLLER = Symbol.for(\"carbonenginejs.contract.ITr2Controller\");\n\n/** Contract for an object that controls another between Start and Stop. */\nexport class ITr2Controller\n{\n static [Symbol.hasInstance](value)\n {\n return value !== null && value !== undefined && value[ITR2_CONTROLLER] === true;\n }\n\n /**\n * Attaches this controller to its owner.\n *\n * The owner guarantees Link runs before any other method on the controller,\n * which is why the rest may assume an owner without checking for one.\n *\n * @param {object} _owner The object being controlled.\n */\n Link(_owner)\n {\n }\n\n /**\n * Detaches this controller, dropping every reference to the owner.\n *\n * @param {number} [_reason] An `UnlinkReason`; DELETING means the owner is going away.\n */\n Unlink(_reason = UnlinkReason.UNLINKING)\n {\n }\n\n /**\n * Whether this controller is attached to an owner.\n *\n * THE ONE METHOD CARBON MAKES PURE VIRTUAL. There is no sensible default:\n * answering false would let an owner silently skip a linked controller, and\n * answering true would let it drive an unlinked one.\n *\n * @returns {boolean} Whether Link has run without a matching Unlink.\n */\n IsLinked()\n {\n throw new Error(\"ITr2Controller.IsLinked must be implemented by a controller.\");\n }\n\n /** Begins controlling the owner. */\n Start()\n {\n }\n\n /** Stops controlling the owner. */\n Stop()\n {\n }\n\n /**\n * Runs one frame's control, between Start and Stop.\n *\n * @param {number} _normalizedUpdateFrequency Carbon's normalised frame delta.\n */\n Update(_normalizedUpdateFrequency)\n {\n }\n\n /**\n * Sets one named controller variable.\n *\n * @param {string} _name The variable's name.\n * @param {number} _value Its new value.\n */\n SetVariable(_name, _value)\n {\n }\n\n /**\n * Handles one instantaneous named event.\n *\n * @param {string} _eventName The event's name.\n */\n HandleEvent(_eventName)\n {\n }\n}\n\nexport const CONTROLLER_NOOPS = [ \"Link\", \"Unlink\", \"Start\", \"Stop\", \"Update\", \"SetVariable\", \"HandleEvent\" ];\n\n/**\n * Marks a class as carrying a contract, and records each method's provenance.\n *\n * Shared by every ported Carbon interface in this folder - `ITr2Controller`,\n * `ITr2ControllerAction`, `ITr2StateMachineStateFinalizer` - so the brand and\n * the noop/abstract bookkeeping are written once.\n *\n * @param {Function} target The contract or adopted class.\n * @param {symbol} symbol The contract's brand symbol.\n * @param {string[]} noops Methods Carbon gives an empty body.\n * @param {string[]} abstracts Methods Carbon makes pure virtual.\n */\nexport function Brand(target, symbol, noops, abstracts)\n{\n Object.defineProperty(target.prototype, symbol, { value: true });\n\n for (const name of noops) CjsSchema.decorateMethod(target, name, impl.noop);\n for (const name of abstracts) CjsSchema.decorateMethod(target, name, impl.abstract);\n}\n\nBrand(ITr2Controller, ITR2_CONTROLLER, CONTROLLER_NOOPS, [ \"IsLinked\" ]);\n\nCjsSchema.define(ITr2Controller, { className: \"ITr2Controller\" });\n\n/**\n * Adds the ITr2Controller contract without replacing an existing model base.\n *\n * A controller class already extends something - CjsModel, EveThrottleable -\n * so the contract arrives as a mixin rather than as a root. The subclass\n * overrides what it cares about and inherits Carbon's empty body for the rest,\n * which is the whole point: the caller no longer has to ask.\n *\n * @param {Function} Base The class to extend.\n * @returns {Function} A subclass carrying the contract.\n */\nexport function withITr2Controller(Base)\n{\n const Controller = Adopt(Base, ITr2Controller, [ ...CONTROLLER_NOOPS, \"IsLinked\" ]);\n\n Brand(Controller, ITR2_CONTROLLER, CONTROLLER_NOOPS, [ \"IsLinked\" ]);\n\n return Controller;\n}\n\n/**\n * Subclasses `Base`, filling in only the contract methods it does not already\n * have.\n *\n * A CLASS THAT IMPLEMENTS A METHOD KEEPS ITS OWN. That is the whole point of\n * the empty bodies: the contract supplies a default where the implementor has\n * no opinion, and stays out of the way where it does.\n *\n * @param {Function} Base The class to extend.\n * @param {Function} Contract The contract whose methods fill the gaps.\n * @param {string[]} names The contract's method names.\n * @returns {Function} The subclass.\n */\nexport function Adopt(Base, Contract, names)\n{\n const Adopted = class extends Base\n {\n };\n\n for (const name of names)\n {\n if (name in Adopted.prototype) continue;\n\n Object.defineProperty(Adopted.prototype, name, {\n value: Contract.prototype[name],\n writable: true,\n configurable: true\n });\n }\n\n return Adopted;\n}\n"],"names":["ITR2_CONTROLLER","Symbol","for","ITr2Controller","hasInstance","value","undefined","Link","_owner","Unlink","_reason","UnlinkReason","UNLINKING","IsLinked","Error","Start","Stop","Update","_normalizedUpdateFrequency","SetVariable","_name","_value","HandleEvent","_eventName","CONTROLLER_NOOPS","Brand","target","symbol","noops","abstracts","Object","defineProperty","prototype","name","CjsSchema","decorateMethod","impl","noop","abstract","define","className","withITr2Controller","Base","Controller","Adopt","Contract","names","Adopted","writable","configurable"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKO,MAAMA,eAAe,GAAGC,MAAM,CAACC,GAAG,CAAC,wCAAwC;;AAElF;AACO,MAAMC,cAAc,CAC3B;AACE,EAAA,QAAQF,MAAM,CAACG,WAAW,CAAA,CAAEC,KAAK,EACjC;AACE,IAAA,OAAOA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKC,SAAS,IAAID,KAAK,CAACL,eAAe,CAAC,KAAK,IAAI;AACjF,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEO,IAAIA,CAACC,MAAM,EACX,CACA;;AAEA;AACF;AACA;AACA;AACA;AACEC,EAAAA,MAAMA,CAACC,OAAO,GAAGC,YAAY,CAACC,SAAS,EACvC,CACA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,QAAQA,GACR;AACE,IAAA,MAAM,IAAIC,KAAK,CAAC,8DAA8D,CAAC;AACjF,EAAA;;AAEA;EACAC,KAAKA,GACL,CACA;;AAEA;EACAC,IAAIA,GACJ,CACA;;AAEA;AACF;AACA;AACA;AACA;EACEC,MAAMA,CAACC,0BAA0B,EACjC,CACA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACEC,EAAAA,WAAWA,CAACC,KAAK,EAAEC,MAAM,EACzB,CACA;;AAEA;AACF;AACA;AACA;AACA;EACEC,WAAWA,CAACC,UAAU,EACtB,CACA;AACF;MAEaC,gBAAgB,GAAG,CAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa;;AAE3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,KAAKA,CAACC,MAAM,EAAEC,MAAM,EAAEC,KAAK,EAAEC,SAAS,EACtD;EACEC,MAAM,CAACC,cAAc,CAACL,MAAM,CAACM,SAAS,EAAEL,MAAM,EAAE;AAAEtB,IAAAA,KAAK,EAAE;AAAK,GAAC,CAAC;AAEhE,EAAA,KAAK,MAAM4B,IAAI,IAAIL,KAAK,EAAEM,SAAS,CAACC,cAAc,CAACT,MAAM,EAAEO,IAAI,EAAEG,IAAI,CAACC,IAAI,CAAC;AAC3E,EAAA,KAAK,MAAMJ,IAAI,IAAIJ,SAAS,EAAEK,SAAS,CAACC,cAAc,CAACT,MAAM,EAAEO,IAAI,EAAEG,IAAI,CAACE,QAAQ,CAAC;AACrF;AAEAb,KAAK,CAACtB,cAAc,EAAEH,eAAe,EAAEwB,gBAAgB,EAAE,CAAE,UAAU,CAAE,CAAC;AAExEU,SAAS,CAACK,MAAM,CAACpC,cAAc,EAAE;AAAEqC,EAAAA,SAAS,EAAE;AAAiB,CAAC,CAAC;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAACC,IAAI,EACvC;AACE,EAAA,MAAMC,UAAU,GAAGC,KAAK,CAACF,IAAI,EAAEvC,cAAc,EAAE,CAAE,GAAGqB,gBAAgB,EAAE,UAAU,CAAE,CAAC;EAEnFC,KAAK,CAACkB,UAAU,EAAE3C,eAAe,EAAEwB,gBAAgB,EAAE,CAAE,UAAU,CAAE,CAAC;AAEpE,EAAA,OAAOmB,UAAU;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,KAAKA,CAACF,IAAI,EAAEG,QAAQ,EAAEC,KAAK,EAC3C;AACE,EAAA,MAAMC,OAAO,GAAG,cAAcL,IAAI,CAClC,EACC;AAED,EAAA,KAAK,MAAMT,IAAI,IAAIa,KAAK,EACxB;AACE,IAAA,IAAIb,IAAI,IAAIc,OAAO,CAACf,SAAS,EAAE;IAE/BF,MAAM,CAACC,cAAc,CAACgB,OAAO,CAACf,SAAS,EAAEC,IAAI,EAAE;AAC7C5B,MAAAA,KAAK,EAAEwC,QAAQ,CAACb,SAAS,CAACC,IAAI,CAAC;AAC/Be,MAAAA,QAAQ,EAAE,IAAI;AACdC,MAAAA,YAAY,EAAE;AAChB,KAAC,CAAC;AACJ,EAAA;AAEA,EAAA,OAAOF,OAAO;AAChB;;;;"}
@@ -3,7 +3,8 @@ import { io, type, carbon, impl } from '#schema';
3
3
  import { UnlinkReason } from './enums.js';
4
4
  import { TR2_DIRTY_ALL, GetControllerFrameTimeSeconds, GetControllerActualTimeSeconds, GetControllerTimeSeconds, BELIST_EVENTMASK, BELIST_REMOVED, BELIST_INSERTED } from './contracts.js';
5
5
  import { EveThrottleable as _EveThrottleable } from '../eve/EveThrottleable.js';
6
- import { withITr2ActionController } from './ITr2Controller.js';
6
+ import './ITr2Controller/ITr2Controller.js';
7
+ import { withITr2ActionController } from './ITr2Controller/ITr2ActionController.js';
7
8
  import { Tr2ControllerEventHandler as _Tr2ControllerEventHa } from './Tr2ControllerEventHandler.js';
8
9
 
9
10
  var _withITr2ActionContro;
@@ -1 +1 @@
1
- {"version":3,"file":"Tr2Controller.js","sources":["../../../../src/trinity/controllers/Tr2Controller.js"],"sourcesContent":["// Source: trinity/trinity/Controllers/Tr2Controller.h\r\n// Source: trinity/trinity/Controllers/Tr2Controller.cpp\r\nimport { carbon, impl, io, type } from \"#schema\";\nimport { UnlinkReason } from \"./enums.js\";\nimport { BELIST_EVENTMASK, BELIST_INSERTED, BELIST_REMOVED, GetControllerActualTimeSeconds, GetControllerFrameTimeSeconds, GetControllerTimeSeconds, TR2_DIRTY_ALL } from \"./contracts.js\";\nimport { EveThrottleable } from \"../eve/EveThrottleable.js\";\nimport { withITr2ActionController } from \"./ITr2Controller.js\";\nimport { Tr2ControllerEventHandler } from \"./Tr2ControllerEventHandler.js\";\n\r\n\r\n/**\r\n * Owns a set of state machines, float variables and event handlers, driving them\r\n * against a linked owner object on a throttled update.\r\n */\r\n@type.define({\r\n className: \"Tr2Controller\",\r\n family: \"controllers\"\r\n})\r\nexport class Tr2Controller extends withITr2ActionController(EveThrottleable)\n{\r\n @io.persist\r\n @type.list(\"Tr2StateMachine\")\r\n stateMachines = [];\r\n\r\n @io.persist\r\n @type.list(\"Tr2ControllerFloatVariable\")\r\n variables = [];\r\n\r\n @io.persist\r\n @type.list(\"Tr2ControllerEventHandler\")\r\n eventHandlers = [];\r\n\r\n @io.read\r\n @type.boolean\r\n isPlaying = false;\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.persist\r\n @type.boolean\r\n isShared = false;\r\n\r\n #updateables = new Set();\r\n\r\n #callbacks = [];\r\n\r\n #variableView = [];\r\n\r\n #variableData = new Float32Array(0);\r\n\r\n #tempArena = new ArrayBuffer(0);\r\n\r\n #dirtyVariables = {\r\n value: TR2_DIRTY_ALL\r\n };\r\n #bindingPathRoots = [];\r\n\r\n #owner = null;\r\n\r\n #time = 0;\r\n\r\n #currentFrameTime = 0;\r\n\r\n #callbackCount = 0;\r\n\r\n /**\r\n * Number of named callbacks currently registered; kept as a field so schema\r\n * consumers can observe registration without walking the private list.\r\n */\r\n get callbackCount()\r\n {\r\n return this.#callbackCount;\r\n }\r\n\r\n /**\r\n * Number of named callbacks currently registered; mirrored as a field so\r\n * consumers can observe registration without walking the private callback\r\n * list.\r\n */\r\n set callbackCount(value)\r\n {\r\n this.#callbackCount = value;\r\n }\r\n\r\n /**\r\n * Handles Carbon list notifications for controller child lists.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n OnListModified(event, _key = 0, _key2 = 0, value = null, list = null)\r\n {\r\n if (list === this.stateMachines)\r\n {\r\n this.#onStateMachineListModified(event, value);\r\n }\r\n else if (list === this.eventHandlers)\r\n {\r\n this.#onEventHandlerListModified(event, value);\r\n }\r\n else if (list === this.variables)\r\n {\r\n this.#onVariableListModified(event);\r\n }\r\n }\r\n\r\n /**\r\n * Links the controller to an owner and prepares the variable buffer.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Link(owner)\r\n {\r\n this.Unlink();\r\n this.#variableView = [];\r\n this.#variableData = new Float32Array(this.variables.length);\r\n for (let i = 0; i < this.variables.length; i++)\r\n {\r\n const variable = this.variables[i];\r\n this.#variableView.push({\r\n name: variable.GetName(),\r\n index: i,\r\n offset: i * Float32Array.BYTES_PER_ELEMENT\r\n });\r\n variable.SetDestinationBuffer(this.#variableData, i);\r\n if (i < 64)\r\n {\r\n variable.SetDirtyMask(this.#dirtyVariables, 1n << BigInt(i));\r\n }\r\n else\r\n {\r\n variable.SetDirtyMask(null, 0);\r\n }\r\n }\r\n this.#owner = owner;\r\n for (const stateMachine of this.stateMachines)\r\n {\r\n stateMachine.Link(this);\r\n }\r\n for (const handler of this.eventHandlers)\r\n {\r\n handler.Link(this);\r\n }\r\n }\r\n\r\n /**\r\n * Unlinks from the owner and clears runtime bindings.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Unlink(reason = UnlinkReason.UNLINKING)\r\n {\r\n if (!this.#owner)\r\n {\r\n return;\r\n }\r\n if (reason !== UnlinkReason.DELETING)\r\n {\r\n this.Stop();\r\n }\r\n for (const variable of this.variables)\r\n {\r\n variable.SetDestinationBuffer(null);\r\n variable.SetDirtyMask(null, 0);\r\n }\r\n for (const stateMachine of this.stateMachines)\r\n {\r\n stateMachine.Unlink(reason);\r\n }\r\n for (const handler of this.eventHandlers)\r\n {\r\n handler.Unlink();\r\n }\r\n this.#bindingPathRoots = [];\r\n this.#owner = null;\r\n }\r\n\r\n /**\r\n * Relinks the controller to its current owner.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ReLink()\r\n {\r\n const owner = this.#owner;\r\n if (owner)\r\n {\r\n this.Link(owner);\r\n }\r\n }\r\n\r\n /**\r\n * Checks whether this controller is linked to an owner.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n IsLinked()\r\n {\r\n return this.#owner !== null;\r\n }\r\n\r\n /**\r\n * Starts all state machines.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Start()\r\n {\r\n if (this.isPlaying)\r\n {\r\n this.Stop();\r\n }\r\n this.#dirtyVariables.value = TR2_DIRTY_ALL;\r\n this.#currentFrameTime = GetControllerFrameTimeSeconds();\r\n for (const stateMachine of this.stateMachines)\r\n {\r\n stateMachine.Start();\r\n }\r\n this.isPlaying = true;\r\n }\r\n\r\n /**\r\n * Stops all active state machines.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Stop()\r\n {\r\n if (!this.isPlaying)\r\n {\r\n return;\r\n }\r\n for (const stateMachine of this.stateMachines)\r\n {\r\n stateMachine.Stop();\r\n }\r\n this.isPlaying = false;\r\n }\r\n\r\n /**\r\n * Updates state machines and registered updateables.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Update(normalizedUpdateFrequency = 0.5)\r\n {\r\n if (!this.isPlaying)\r\n {\r\n return;\r\n }\r\n const actualTime = GetControllerActualTimeSeconds();\r\n if (this.ShouldSkipUpdate(normalizedUpdateFrequency, actualTime))\n {\r\n return;\r\n }\r\n this.#currentFrameTime = GetControllerFrameTimeSeconds();\r\n this.#time = this.#currentFrameTime;\r\n const dirtyVariables = this.#dirtyVariables.value;\r\n this.#dirtyVariables.value = 0n;\r\n for (const stateMachine of this.stateMachines)\r\n {\r\n stateMachine.Update(dirtyVariables);\r\n }\r\n if (this.#updateables.size)\r\n {\r\n for (const updateable of this.#updateables)\r\n {\r\n updateable.Update(actualTime, this.#currentFrameTime);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Sets a named float variable.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetVariable(name, value)\r\n {\r\n this.SetVariableValue(name, value);\r\n }\r\n\r\n /**\r\n * Executes event handlers matching a named event.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n HandleEvent(eventName)\r\n {\r\n if (!this.isPlaying)\r\n {\r\n return;\r\n }\r\n for (const handler of this.eventHandlers)\r\n {\r\n if (handler.GetName() === eventName)\r\n {\r\n handler.Execute(this);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Gets the linked owner.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetOwner()\r\n {\r\n return this.#owner;\r\n }\r\n\r\n /**\r\n * Gets elapsed controller time in seconds.\r\n */\r\n GetTime()\r\n {\r\n return this.#time;\r\n }\r\n\r\n /**\r\n * Gets the current frame simulation time for JS action adapters.\r\n */\r\n CjsGetCurrentFrameTime()\r\n {\r\n return this.#currentFrameTime || GetControllerTimeSeconds();\r\n }\r\n\r\n /**\r\n * Gets a controller variable by name.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetVariableByName(name)\r\n {\r\n return this.variables.find(variable => variable.GetName() === name) ?? null;\r\n }\r\n\r\n /**\r\n * Gets a named float variable value.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetFloatVariableByName(name)\r\n {\r\n return this.GetVariableByName(name)?.GetValue();\r\n }\r\n\r\n /**\r\n * Gets a named variable value, or a fallback when absent.\r\n */\r\n GetVariableValue(name, fallback = 0)\r\n {\r\n return this.GetVariableByName(name)?.GetValue() ?? fallback;\r\n }\r\n\r\n /**\r\n * Sets a named variable value.\r\n */\r\n SetVariableValue(name, value)\r\n {\r\n const variable = this.GetVariableByName(name);\r\n if (!variable)\r\n {\r\n return false;\r\n }\r\n variable.SetValue(value);\r\n return true;\r\n }\r\n\r\n /**\r\n * Appends expression metadata for controller variables.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetExpressionTermInfo(out)\r\n {\r\n for (const variable of this.variables)\r\n {\r\n out.push({\r\n group: \"Variables\",\r\n name: variable.GetName(),\r\n description: \"controller variable\",\r\n kind: \"variable\"\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Gets the controller variable list.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetVariables()\r\n {\r\n return this.variables;\r\n }\r\n\r\n /**\r\n * Gets parser-facing variable metadata.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetVariableView()\r\n {\r\n return this.#variableView;\r\n }\r\n\r\n /**\r\n * Gets the parser-facing variable buffer.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetVariableBuffer()\r\n {\r\n return this.#variableData;\r\n }\r\n\r\n /**\r\n * Ensures the temporary expression arena has at least the supplied byte size.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n EnsureTempArenaSize(size)\r\n {\r\n if (this.#tempArena.byteLength < size)\r\n {\r\n this.#tempArena = new ArrayBuffer(size);\r\n }\r\n }\r\n\r\n /**\r\n * Gets the temporary expression arena.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetTempArena()\r\n {\r\n return this.#tempArena;\r\n }\r\n\r\n /**\r\n * Gets dynamic binding path roots.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetBindingPathRoots()\r\n {\r\n if (!this.#bindingPathRoots.length)\r\n {\r\n if (this.#owner)\r\n {\r\n this.#bindingPathRoots.push([\"Owner\", this.#owner]);\r\n }\r\n for (const variable of this.variables)\r\n {\r\n this.#bindingPathRoots.push([variable.GetName(), variable]);\r\n }\r\n }\r\n return this.#bindingPathRoots;\r\n }\r\n\r\n /**\r\n * Registers an updateable object.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterUpdateable(updateable)\r\n {\r\n this.#updateables.add(updateable);\r\n }\r\n\r\n /**\r\n * Unregisters an updateable object.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n UnRegisterUpdateable(updateable)\r\n {\r\n this.#updateables.delete(updateable);\r\n }\r\n\r\n /**\r\n * Runs callbacks registered for a named callback.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Callback(callbackName)\r\n {\r\n if (!this.isPlaying || !this.#callbacks.length)\r\n {\r\n return false;\r\n }\r\n let called = false;\r\n for (const entry of this.#callbacks)\r\n {\r\n if (entry.name === callbackName)\r\n {\r\n entry.callback();\r\n called = true;\r\n }\r\n }\r\n return called;\r\n }\r\n\r\n /**\r\n * Registers a named callback.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n RegisterCallback(callbackName, callback)\r\n {\r\n if (!callbackName)\r\n {\r\n return false;\r\n }\r\n this.#callbacks.push({\r\n name: callbackName,\r\n callback\r\n });\r\n this.callbackCount = this.#callbacks.length;\r\n return true;\r\n }\r\n\r\n /**\r\n * Clears all registered callbacks.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ClearCallbacks()\r\n {\r\n this.#callbacks = [];\r\n this.callbackCount = 0;\r\n }\r\n\r\n /**\r\n * Gets expression evaluation context.\r\n */\r\n GetExpressionContext(owner = this.#owner, stateMachine = null, extra = {})\r\n {\r\n return {\r\n ...extra,\r\n controller: this,\r\n owner,\r\n stateMachine,\r\n time: this.#time\r\n };\r\n }\r\n\r\n /**\r\n * Links and starts an inserted state machine, or stops and unlinks a removed\r\n * one, so list edits stay consistent with the controller's play state.\r\n */\r\n #onStateMachineListModified(event, value)\r\n {\r\n const stateMachine = Tr2Controller.#asStateMachine(value);\r\n switch (event & BELIST_EVENTMASK)\r\n {\r\n case BELIST_INSERTED:\r\n if (this.#owner && stateMachine)\r\n {\r\n stateMachine.Link(this);\r\n if (this.isPlaying)\r\n {\r\n stateMachine.Start();\r\n }\r\n }\r\n break;\r\n case BELIST_REMOVED:\r\n if (stateMachine)\r\n {\r\n if (this.isPlaying)\r\n {\r\n stateMachine.Stop();\r\n }\r\n stateMachine.Unlink();\r\n }\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Links an inserted event handler to this controller and unlinks a removed\r\n * one.\r\n */\r\n #onEventHandlerListModified(event, value)\r\n {\r\n const handler = value instanceof Tr2ControllerEventHandler ? value : null;\r\n switch (event & BELIST_EVENTMASK)\r\n {\r\n case BELIST_INSERTED:\r\n if (this.#owner && handler)\r\n {\r\n handler.Link(this);\r\n }\r\n break;\r\n case BELIST_REMOVED:\r\n handler?.Unlink();\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Relinks the whole controller when a variable is inserted or removed, because\r\n * the variable buffer and per-variable dirty bits are index-based and must be\r\n * rebuilt.\r\n */\r\n #onVariableListModified(event)\r\n {\r\n const maskedEvent = event & BELIST_EVENTMASK;\r\n if (maskedEvent !== BELIST_INSERTED && maskedEvent !== BELIST_REMOVED)\r\n {\r\n return;\r\n }\r\n const owner = this.#owner;\r\n if (owner)\r\n {\r\n this.Unlink();\r\n this.Link(owner);\r\n }\r\n }\r\n\r\n /**\r\n * Narrows a list payload to an object reference before it is treated as a\r\n * state machine.\r\n */\r\n static #asStateMachine(value)\r\n {\r\n return value && typeof value === \"object\" ? value : null;\r\n }\r\n}\r\n"],"names":["_Tr2Controller","_identity","Tr2Controller","_withITr2ActionContro","withITr2ActionController","EveThrottleable","e","_init_stateMachines","_init_extra_stateMachines","_init_variables","_init_extra_variables","_init_eventHandlers","_init_extra_eventHandlers","_init_isPlaying","_init_extra_isPlaying","_init_name","_init_extra_name","_init_isShared","_init_extra_isShared","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","list","read","boolean","string","carbon","method","impl","implemented","adapted","stateMachines","variables","eventHandlers","isPlaying","name","isShared","Set","Float32Array","ArrayBuffer","value","TR2_DIRTY_ALL","callbackCount","OnListModified","event","_key","_key2","Link","owner","Unlink","length","i","variable","push","GetName","index","offset","BYTES_PER_ELEMENT","SetDestinationBuffer","SetDirtyMask","BigInt","stateMachine","handler","reason","UnlinkReason","UNLINKING","DELETING","Stop","ReLink","IsLinked","Start","GetControllerFrameTimeSeconds","Update","normalizedUpdateFrequency","actualTime","GetControllerActualTimeSeconds","ShouldSkipUpdate","dirtyVariables","size","updateable","SetVariable","SetVariableValue","HandleEvent","eventName","Execute","GetOwner","GetTime","CjsGetCurrentFrameTime","GetControllerTimeSeconds","GetVariableByName","find","GetFloatVariableByName","GetValue","GetVariableValue","fallback","SetValue","GetExpressionTermInfo","out","group","description","kind","GetVariables","GetVariableView","GetVariableBuffer","EnsureTempArenaSize","byteLength","GetTempArena","GetBindingPathRoots","RegisterUpdateable","add","UnRegisterUpdateable","delete","Callback","callbackName","called","entry","callback","RegisterCallback","ClearCallbacks","GetExpressionContext","extra","controller","time","#onStateMachineListModified","BELIST_EVENTMASK","BELIST_INSERTED","BELIST_REMOVED","#onEventHandlerListModified","Tr2ControllerEventHandler","#onVariableListModified","maskedEvent","#asStateMachine","constructor"],"mappings":"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"}
1
+ {"version":3,"file":"Tr2Controller.js","sources":["../../../../src/trinity/controllers/Tr2Controller.js"],"sourcesContent":["// Source: trinity/trinity/Controllers/Tr2Controller.h\r\n// Source: trinity/trinity/Controllers/Tr2Controller.cpp\r\nimport { carbon, impl, io, type } from \"#schema\";\nimport { UnlinkReason } from \"./enums.js\";\nimport { BELIST_EVENTMASK, BELIST_INSERTED, BELIST_REMOVED, GetControllerActualTimeSeconds, GetControllerFrameTimeSeconds, GetControllerTimeSeconds, TR2_DIRTY_ALL } from \"./contracts.js\";\nimport { EveThrottleable } from \"../eve/EveThrottleable.js\";\nimport { withITr2ActionController } from \"./ITr2Controller/index.js\";\nimport { Tr2ControllerEventHandler } from \"./Tr2ControllerEventHandler.js\";\n\r\n\r\n/**\r\n * Owns a set of state machines, float variables and event handlers, driving them\r\n * against a linked owner object on a throttled update.\r\n */\r\n@type.define({\r\n className: \"Tr2Controller\",\r\n family: \"controllers\"\r\n})\r\nexport class Tr2Controller extends withITr2ActionController(EveThrottleable)\n{\r\n @io.persist\r\n @type.list(\"Tr2StateMachine\")\r\n stateMachines = [];\r\n\r\n @io.persist\r\n @type.list(\"Tr2ControllerFloatVariable\")\r\n variables = [];\r\n\r\n @io.persist\r\n @type.list(\"Tr2ControllerEventHandler\")\r\n eventHandlers = [];\r\n\r\n @io.read\r\n @type.boolean\r\n isPlaying = false;\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.persist\r\n @type.boolean\r\n isShared = false;\r\n\r\n #updateables = new Set();\r\n\r\n #callbacks = [];\r\n\r\n #variableView = [];\r\n\r\n #variableData = new Float32Array(0);\r\n\r\n #tempArena = new ArrayBuffer(0);\r\n\r\n #dirtyVariables = {\r\n value: TR2_DIRTY_ALL\r\n };\r\n #bindingPathRoots = [];\r\n\r\n #owner = null;\r\n\r\n #time = 0;\r\n\r\n #currentFrameTime = 0;\r\n\r\n #callbackCount = 0;\r\n\r\n /**\r\n * Number of named callbacks currently registered; kept as a field so schema\r\n * consumers can observe registration without walking the private list.\r\n */\r\n get callbackCount()\r\n {\r\n return this.#callbackCount;\r\n }\r\n\r\n /**\r\n * Number of named callbacks currently registered; mirrored as a field so\r\n * consumers can observe registration without walking the private callback\r\n * list.\r\n */\r\n set callbackCount(value)\r\n {\r\n this.#callbackCount = value;\r\n }\r\n\r\n /**\r\n * Handles Carbon list notifications for controller child lists.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n OnListModified(event, _key = 0, _key2 = 0, value = null, list = null)\r\n {\r\n if (list === this.stateMachines)\r\n {\r\n this.#onStateMachineListModified(event, value);\r\n }\r\n else if (list === this.eventHandlers)\r\n {\r\n this.#onEventHandlerListModified(event, value);\r\n }\r\n else if (list === this.variables)\r\n {\r\n this.#onVariableListModified(event);\r\n }\r\n }\r\n\r\n /**\r\n * Links the controller to an owner and prepares the variable buffer.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Link(owner)\r\n {\r\n this.Unlink();\r\n this.#variableView = [];\r\n this.#variableData = new Float32Array(this.variables.length);\r\n for (let i = 0; i < this.variables.length; i++)\r\n {\r\n const variable = this.variables[i];\r\n this.#variableView.push({\r\n name: variable.GetName(),\r\n index: i,\r\n offset: i * Float32Array.BYTES_PER_ELEMENT\r\n });\r\n variable.SetDestinationBuffer(this.#variableData, i);\r\n if (i < 64)\r\n {\r\n variable.SetDirtyMask(this.#dirtyVariables, 1n << BigInt(i));\r\n }\r\n else\r\n {\r\n variable.SetDirtyMask(null, 0);\r\n }\r\n }\r\n this.#owner = owner;\r\n for (const stateMachine of this.stateMachines)\r\n {\r\n stateMachine.Link(this);\r\n }\r\n for (const handler of this.eventHandlers)\r\n {\r\n handler.Link(this);\r\n }\r\n }\r\n\r\n /**\r\n * Unlinks from the owner and clears runtime bindings.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Unlink(reason = UnlinkReason.UNLINKING)\r\n {\r\n if (!this.#owner)\r\n {\r\n return;\r\n }\r\n if (reason !== UnlinkReason.DELETING)\r\n {\r\n this.Stop();\r\n }\r\n for (const variable of this.variables)\r\n {\r\n variable.SetDestinationBuffer(null);\r\n variable.SetDirtyMask(null, 0);\r\n }\r\n for (const stateMachine of this.stateMachines)\r\n {\r\n stateMachine.Unlink(reason);\r\n }\r\n for (const handler of this.eventHandlers)\r\n {\r\n handler.Unlink();\r\n }\r\n this.#bindingPathRoots = [];\r\n this.#owner = null;\r\n }\r\n\r\n /**\r\n * Relinks the controller to its current owner.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ReLink()\r\n {\r\n const owner = this.#owner;\r\n if (owner)\r\n {\r\n this.Link(owner);\r\n }\r\n }\r\n\r\n /**\r\n * Checks whether this controller is linked to an owner.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n IsLinked()\r\n {\r\n return this.#owner !== null;\r\n }\r\n\r\n /**\r\n * Starts all state machines.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Start()\r\n {\r\n if (this.isPlaying)\r\n {\r\n this.Stop();\r\n }\r\n this.#dirtyVariables.value = TR2_DIRTY_ALL;\r\n this.#currentFrameTime = GetControllerFrameTimeSeconds();\r\n for (const stateMachine of this.stateMachines)\r\n {\r\n stateMachine.Start();\r\n }\r\n this.isPlaying = true;\r\n }\r\n\r\n /**\r\n * Stops all active state machines.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Stop()\r\n {\r\n if (!this.isPlaying)\r\n {\r\n return;\r\n }\r\n for (const stateMachine of this.stateMachines)\r\n {\r\n stateMachine.Stop();\r\n }\r\n this.isPlaying = false;\r\n }\r\n\r\n /**\r\n * Updates state machines and registered updateables.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Update(normalizedUpdateFrequency = 0.5)\r\n {\r\n if (!this.isPlaying)\r\n {\r\n return;\r\n }\r\n const actualTime = GetControllerActualTimeSeconds();\r\n if (this.ShouldSkipUpdate(normalizedUpdateFrequency, actualTime))\n {\r\n return;\r\n }\r\n this.#currentFrameTime = GetControllerFrameTimeSeconds();\r\n this.#time = this.#currentFrameTime;\r\n const dirtyVariables = this.#dirtyVariables.value;\r\n this.#dirtyVariables.value = 0n;\r\n for (const stateMachine of this.stateMachines)\r\n {\r\n stateMachine.Update(dirtyVariables);\r\n }\r\n if (this.#updateables.size)\r\n {\r\n for (const updateable of this.#updateables)\r\n {\r\n updateable.Update(actualTime, this.#currentFrameTime);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Sets a named float variable.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetVariable(name, value)\r\n {\r\n this.SetVariableValue(name, value);\r\n }\r\n\r\n /**\r\n * Executes event handlers matching a named event.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n HandleEvent(eventName)\r\n {\r\n if (!this.isPlaying)\r\n {\r\n return;\r\n }\r\n for (const handler of this.eventHandlers)\r\n {\r\n if (handler.GetName() === eventName)\r\n {\r\n handler.Execute(this);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Gets the linked owner.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetOwner()\r\n {\r\n return this.#owner;\r\n }\r\n\r\n /**\r\n * Gets elapsed controller time in seconds.\r\n */\r\n GetTime()\r\n {\r\n return this.#time;\r\n }\r\n\r\n /**\r\n * Gets the current frame simulation time for JS action adapters.\r\n */\r\n CjsGetCurrentFrameTime()\r\n {\r\n return this.#currentFrameTime || GetControllerTimeSeconds();\r\n }\r\n\r\n /**\r\n * Gets a controller variable by name.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetVariableByName(name)\r\n {\r\n return this.variables.find(variable => variable.GetName() === name) ?? null;\r\n }\r\n\r\n /**\r\n * Gets a named float variable value.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetFloatVariableByName(name)\r\n {\r\n return this.GetVariableByName(name)?.GetValue();\r\n }\r\n\r\n /**\r\n * Gets a named variable value, or a fallback when absent.\r\n */\r\n GetVariableValue(name, fallback = 0)\r\n {\r\n return this.GetVariableByName(name)?.GetValue() ?? fallback;\r\n }\r\n\r\n /**\r\n * Sets a named variable value.\r\n */\r\n SetVariableValue(name, value)\r\n {\r\n const variable = this.GetVariableByName(name);\r\n if (!variable)\r\n {\r\n return false;\r\n }\r\n variable.SetValue(value);\r\n return true;\r\n }\r\n\r\n /**\r\n * Appends expression metadata for controller variables.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetExpressionTermInfo(out)\r\n {\r\n for (const variable of this.variables)\r\n {\r\n out.push({\r\n group: \"Variables\",\r\n name: variable.GetName(),\r\n description: \"controller variable\",\r\n kind: \"variable\"\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Gets the controller variable list.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetVariables()\r\n {\r\n return this.variables;\r\n }\r\n\r\n /**\r\n * Gets parser-facing variable metadata.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetVariableView()\r\n {\r\n return this.#variableView;\r\n }\r\n\r\n /**\r\n * Gets the parser-facing variable buffer.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetVariableBuffer()\r\n {\r\n return this.#variableData;\r\n }\r\n\r\n /**\r\n * Ensures the temporary expression arena has at least the supplied byte size.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n EnsureTempArenaSize(size)\r\n {\r\n if (this.#tempArena.byteLength < size)\r\n {\r\n this.#tempArena = new ArrayBuffer(size);\r\n }\r\n }\r\n\r\n /**\r\n * Gets the temporary expression arena.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetTempArena()\r\n {\r\n return this.#tempArena;\r\n }\r\n\r\n /**\r\n * Gets dynamic binding path roots.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetBindingPathRoots()\r\n {\r\n if (!this.#bindingPathRoots.length)\r\n {\r\n if (this.#owner)\r\n {\r\n this.#bindingPathRoots.push([\"Owner\", this.#owner]);\r\n }\r\n for (const variable of this.variables)\r\n {\r\n this.#bindingPathRoots.push([variable.GetName(), variable]);\r\n }\r\n }\r\n return this.#bindingPathRoots;\r\n }\r\n\r\n /**\r\n * Registers an updateable object.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterUpdateable(updateable)\r\n {\r\n this.#updateables.add(updateable);\r\n }\r\n\r\n /**\r\n * Unregisters an updateable object.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n UnRegisterUpdateable(updateable)\r\n {\r\n this.#updateables.delete(updateable);\r\n }\r\n\r\n /**\r\n * Runs callbacks registered for a named callback.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Callback(callbackName)\r\n {\r\n if (!this.isPlaying || !this.#callbacks.length)\r\n {\r\n return false;\r\n }\r\n let called = false;\r\n for (const entry of this.#callbacks)\r\n {\r\n if (entry.name === callbackName)\r\n {\r\n entry.callback();\r\n called = true;\r\n }\r\n }\r\n return called;\r\n }\r\n\r\n /**\r\n * Registers a named callback.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n RegisterCallback(callbackName, callback)\r\n {\r\n if (!callbackName)\r\n {\r\n return false;\r\n }\r\n this.#callbacks.push({\r\n name: callbackName,\r\n callback\r\n });\r\n this.callbackCount = this.#callbacks.length;\r\n return true;\r\n }\r\n\r\n /**\r\n * Clears all registered callbacks.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ClearCallbacks()\r\n {\r\n this.#callbacks = [];\r\n this.callbackCount = 0;\r\n }\r\n\r\n /**\r\n * Gets expression evaluation context.\r\n */\r\n GetExpressionContext(owner = this.#owner, stateMachine = null, extra = {})\r\n {\r\n return {\r\n ...extra,\r\n controller: this,\r\n owner,\r\n stateMachine,\r\n time: this.#time\r\n };\r\n }\r\n\r\n /**\r\n * Links and starts an inserted state machine, or stops and unlinks a removed\r\n * one, so list edits stay consistent with the controller's play state.\r\n */\r\n #onStateMachineListModified(event, value)\r\n {\r\n const stateMachine = Tr2Controller.#asStateMachine(value);\r\n switch (event & BELIST_EVENTMASK)\r\n {\r\n case BELIST_INSERTED:\r\n if (this.#owner && stateMachine)\r\n {\r\n stateMachine.Link(this);\r\n if (this.isPlaying)\r\n {\r\n stateMachine.Start();\r\n }\r\n }\r\n break;\r\n case BELIST_REMOVED:\r\n if (stateMachine)\r\n {\r\n if (this.isPlaying)\r\n {\r\n stateMachine.Stop();\r\n }\r\n stateMachine.Unlink();\r\n }\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Links an inserted event handler to this controller and unlinks a removed\r\n * one.\r\n */\r\n #onEventHandlerListModified(event, value)\r\n {\r\n const handler = value instanceof Tr2ControllerEventHandler ? value : null;\r\n switch (event & BELIST_EVENTMASK)\r\n {\r\n case BELIST_INSERTED:\r\n if (this.#owner && handler)\r\n {\r\n handler.Link(this);\r\n }\r\n break;\r\n case BELIST_REMOVED:\r\n handler?.Unlink();\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Relinks the whole controller when a variable is inserted or removed, because\r\n * the variable buffer and per-variable dirty bits are index-based and must be\r\n * rebuilt.\r\n */\r\n #onVariableListModified(event)\r\n {\r\n const maskedEvent = event & BELIST_EVENTMASK;\r\n if (maskedEvent !== BELIST_INSERTED && maskedEvent !== BELIST_REMOVED)\r\n {\r\n return;\r\n }\r\n const owner = this.#owner;\r\n if (owner)\r\n {\r\n this.Unlink();\r\n this.Link(owner);\r\n }\r\n }\r\n\r\n /**\r\n * Narrows a list payload to an object reference before it is treated as a\r\n * state machine.\r\n */\r\n static #asStateMachine(value)\r\n {\r\n return value && typeof value === \"object\" ? value : null;\r\n }\r\n}\r\n"],"names":["_Tr2Controller","_identity","Tr2Controller","_withITr2ActionContro","withITr2ActionController","EveThrottleable","e","_init_stateMachines","_init_extra_stateMachines","_init_variables","_init_extra_variables","_init_eventHandlers","_init_extra_eventHandlers","_init_isPlaying","_init_extra_isPlaying","_init_name","_init_extra_name","_init_isShared","_init_extra_isShared","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","list","read","boolean","string","carbon","method","impl","implemented","adapted","stateMachines","variables","eventHandlers","isPlaying","name","isShared","Set","Float32Array","ArrayBuffer","value","TR2_DIRTY_ALL","callbackCount","OnListModified","event","_key","_key2","Link","owner","Unlink","length","i","variable","push","GetName","index","offset","BYTES_PER_ELEMENT","SetDestinationBuffer","SetDirtyMask","BigInt","stateMachine","handler","reason","UnlinkReason","UNLINKING","DELETING","Stop","ReLink","IsLinked","Start","GetControllerFrameTimeSeconds","Update","normalizedUpdateFrequency","actualTime","GetControllerActualTimeSeconds","ShouldSkipUpdate","dirtyVariables","size","updateable","SetVariable","SetVariableValue","HandleEvent","eventName","Execute","GetOwner","GetTime","CjsGetCurrentFrameTime","GetControllerTimeSeconds","GetVariableByName","find","GetFloatVariableByName","GetValue","GetVariableValue","fallback","SetValue","GetExpressionTermInfo","out","group","description","kind","GetVariables","GetVariableView","GetVariableBuffer","EnsureTempArenaSize","byteLength","GetTempArena","GetBindingPathRoots","RegisterUpdateable","add","UnRegisterUpdateable","delete","Callback","callbackName","called","entry","callback","RegisterCallback","ClearCallbacks","GetExpressionContext","extra","controller","time","#onStateMachineListModified","BELIST_EVENTMASK","BELIST_INSERTED","BELIST_REMOVED","#onEventHandlerListModified","Tr2ControllerEventHandler","#onVariableListModified","maskedEvent","#asStateMachine","constructor"],"mappings":"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"}