@carbonenginejs/runtime-trinity 0.4.3 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/dist/curves/CjsGrannyCurves.js +12 -13
  2. package/dist/curves/CjsGrannyCurves.js.map +1 -1
  3. package/dist/eve/EveBannerSet.js +20 -1
  4. package/dist/eve/EveBannerSet.js.map +1 -1
  5. package/dist/eve/EveBoosterSet2.js +19 -1
  6. package/dist/eve/EveBoosterSet2.js.map +1 -1
  7. package/dist/eve/EveComponentTypes.js +116 -0
  8. package/dist/eve/EveComponentTypes.js.map +1 -0
  9. package/dist/eve/EveHazeSet.js +18 -1
  10. package/dist/eve/EveHazeSet.js.map +1 -1
  11. package/dist/eve/EvePlaneSet.js +19 -1
  12. package/dist/eve/EvePlaneSet.js.map +1 -1
  13. package/dist/eve/EveSpotlightSet.js +18 -1
  14. package/dist/eve/EveSpotlightSet.js.map +1 -1
  15. package/dist/eve/EveSpriteLineSet.js +18 -1
  16. package/dist/eve/EveSpriteLineSet.js.map +1 -1
  17. package/dist/eve/EveSpriteSet.js +18 -1
  18. package/dist/eve/EveSpriteSet.js.map +1 -1
  19. package/dist/eve/EveUpdateContext.js +195 -31
  20. package/dist/eve/EveUpdateContext.js.map +1 -1
  21. package/dist/eve/attachment/turrets/EveTurretFiringFX.js +23 -1
  22. package/dist/eve/attachment/turrets/EveTurretFiringFX.js.map +1 -1
  23. package/dist/eve/attachment/turrets/EveTurretSet.js +43 -1
  24. package/dist/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  25. package/dist/eve/child/EveChildContainer.js +95 -60
  26. package/dist/eve/child/EveChildContainer.js.map +1 -1
  27. package/dist/eve/child/EveChildFogVolume.js +14 -1
  28. package/dist/eve/child/EveChildFogVolume.js.map +1 -1
  29. package/dist/eve/child/EveChildInstancedMeshes.js +43 -1
  30. package/dist/eve/child/EveChildInstancedMeshes.js.map +1 -1
  31. package/dist/eve/child/EveChildLightingOverride.js +14 -1
  32. package/dist/eve/child/EveChildLightingOverride.js.map +1 -1
  33. package/dist/eve/child/EveChildMesh.js +121 -80
  34. package/dist/eve/child/EveChildMesh.js.map +1 -1
  35. package/dist/eve/child/EveChildTransform.js +27 -17
  36. package/dist/eve/child/EveChildTransform.js.map +1 -1
  37. package/dist/eve/index.js +2 -0
  38. package/dist/eve/index.js.map +1 -1
  39. package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js +14 -1
  40. package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js.map +1 -1
  41. package/dist/eve/renderable/stretch/EveStretch.js +11 -1
  42. package/dist/eve/renderable/stretch/EveStretch.js.map +1 -1
  43. package/dist/eve/renderable/stretch/EveStretch2.js +14 -1
  44. package/dist/eve/renderable/stretch/EveStretch2.js.map +1 -1
  45. package/dist/eve/renderable/stretch/EveStretch3.js +24 -1
  46. package/dist/eve/renderable/stretch/EveStretch3.js.map +1 -1
  47. package/dist/eve/scene/EveSpaceScene.js +443 -16
  48. package/dist/eve/scene/EveSpaceScene.js.map +1 -1
  49. package/dist/eve/spaceObject/EveEffectRoot2.js +28 -1
  50. package/dist/eve/spaceObject/EveEffectRoot2.js.map +1 -1
  51. package/dist/eve/spaceObject/EveMobile.js +25 -1
  52. package/dist/eve/spaceObject/EveMobile.js.map +1 -1
  53. package/dist/eve/spaceObject/EveSpaceObject2.js +59 -1
  54. package/dist/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  55. package/dist/generated/eve/child/EveChildCloud2.js +88 -5
  56. package/dist/generated/eve/child/EveChildCloud2.js.map +1 -1
  57. package/dist/generated/eve/child/EveChildExplosion.js +17 -1
  58. package/dist/generated/eve/child/EveChildExplosion.js.map +1 -1
  59. package/dist/generated/eve/child/EveChildInstanceContainer.js +29 -1
  60. package/dist/generated/eve/child/EveChildInstanceContainer.js.map +1 -1
  61. package/dist/generated/eve/child/EveChildParticleSystem.js +32 -24
  62. package/dist/generated/eve/child/EveChildParticleSystem.js.map +1 -1
  63. package/dist/generated/eve/child/EveChildPlug.js +23 -1
  64. package/dist/generated/eve/child/EveChildPlug.js.map +1 -1
  65. package/dist/generated/eve/child/EveChildPostProcessVolume.js +27 -14
  66. package/dist/generated/eve/child/EveChildPostProcessVolume.js.map +1 -1
  67. package/dist/generated/eve/child/EveChildRef.js +17 -1
  68. package/dist/generated/eve/child/EveChildRef.js.map +1 -1
  69. package/dist/generated/eve/child/EveChildSocket.js +17 -1
  70. package/dist/generated/eve/child/EveChildSocket.js.map +1 -1
  71. package/dist/generated/eve/child/behaviors/BehaviorGroup.js +43 -40
  72. package/dist/generated/eve/child/behaviors/BehaviorGroup.js.map +1 -1
  73. package/dist/generated/eve/child/procedural/EveChildProceduralContainer.js +53 -49
  74. package/dist/generated/eve/child/procedural/EveChildProceduralContainer.js.map +1 -1
  75. package/dist/generated/eve/scene/EveComponentRegistry.js +11 -0
  76. package/dist/generated/eve/scene/EveComponentRegistry.js.map +1 -1
  77. package/dist/generated/eve/scene/TriShadowFrustum.js +74 -22
  78. package/dist/generated/eve/scene/TriShadowFrustum.js.map +1 -1
  79. package/dist/generated/eve/scene/TriShadowOrthoFrustum.js +128 -26
  80. package/dist/generated/eve/scene/TriShadowOrthoFrustum.js.map +1 -1
  81. package/dist/generated/eve/smartLights/EveChildSmartLightSet.js +37 -24
  82. package/dist/generated/eve/smartLights/EveChildSmartLightSet.js.map +1 -1
  83. package/dist/generated/eve/smartLights/EveSmartLightPointLight.js +29 -28
  84. package/dist/generated/eve/smartLights/EveSmartLightPointLight.js.map +1 -1
  85. package/dist/generated/eve/spaceObject/EveShip2.js +39 -19
  86. package/dist/generated/eve/spaceObject/EveShip2.js.map +1 -1
  87. package/dist/generated/eve/spaceObject/swarm/EveSwarm.js +28 -1
  88. package/dist/generated/eve/spaceObject/swarm/EveSwarm.js.map +1 -1
  89. package/dist/generated/eve/spaceObject/swarm/EveSwarmRenderable.js +28 -1
  90. package/dist/generated/eve/spaceObject/swarm/EveSwarmRenderable.js.map +1 -1
  91. package/dist/index.js +3 -0
  92. package/dist/index.js.map +1 -1
  93. package/dist/trinityCore/TriFrustum.js +374 -0
  94. package/dist/trinityCore/TriFrustum.js.map +1 -0
  95. package/dist/trinityCore/TriFrustumOrtho.js +158 -0
  96. package/dist/trinityCore/TriFrustumOrtho.js.map +1 -0
  97. package/dist/trinityCore/index.js +2 -0
  98. package/dist/trinityCore/index.js.map +1 -1
  99. package/package.json +2 -2
@@ -17,7 +17,7 @@ new class extends _identity {
17
17
  } = _applyDecs2311(this, [type.define({
18
18
  className: "EveChildSmartLightSet",
19
19
  family: "eve/smartLights"
20
- })], [[[io, io.persist, type, type.string], 16, "name"], [[io, io.persist, type, type.boolean], 16, "display"], [[io, io.persist, void 0, type.model("IEveDistributionMethod")], 16, "distribution"], [[io, io.persist, void 0, type.list("IEveSmartLightGroup")], 16, "lightGroups"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetName"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetName"], [[carbon, carbon.method, impl, impl.noop], 18, "Setup"], [[carbon, carbon.method, impl, impl.noop], 18, "ChangeLOD"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetBoundingSphere"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateSyncronous"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateAsyncronous"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateVisibility"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The class flattens onto EveChildTransform without Carbon's EveEntity base; the re-register hook is limited to an optional duck-typed call.")], 18, "OnModified"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("List events carry no BELIST insert mask; the inserted value (or, absent one, the whole list) is re-fanned - SetInheritProperties is idempotent.")], 18, "OnListModified"], [[carbon, carbon.method, impl, impl.notImplemented], 18, "RegisterComponents"], [[carbon, carbon.method, impl, impl.notImplemented], 18, "UnRegisterComponents"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetRenderables"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("CarbonEngineJS uses an out-last signature and returns the matrix when no output is supplied.")], 18, "GetLocalToWorldTransform"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetControllerVariable"], [[carbon, carbon.method, impl, impl.notImplemented], 18, "RenderDebugInfo"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Tr2DebugRendererOptions is a std::set of option names; the duck-typed bag accepts add or insert.")], 18, "GetDebugOptions"], [[carbon, carbon.method, impl, impl.implemented], 18, "AddQuadsToQuadRenderer"], [[carbon, carbon.method, impl, impl.implemented], 18, "RegisterWithQuadRenderer"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetInheritProperties"]], 0, void 0, _EveChildTransform));
20
+ })], [[[io, io.persist, type, type.string], 16, "name"], [[io, io.persist, type, type.boolean], 16, "display"], [[io, io.persist, void 0, type.model("IEveDistributionMethod")], 16, "distribution"], [[io, io.persist, void 0, type.list("IEveSmartLightGroup")], 16, "lightGroups"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetName"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetName"], [[carbon, carbon.method, impl, impl.noop], 18, "Setup"], [[carbon, carbon.method, impl, impl.noop], 18, "ChangeLOD"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetBoundingSphere"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateSyncronous"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateAsyncronous"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateVisibility"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon re-registers on m_display/m_distribution Var edits; JS forwards every OnModified to the EveEntity ReRegister lifecycle on the flattened EveChildTransform base.")], 18, "OnModified"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("List events carry no BELIST insert mask; the inserted value (or, absent one, the whole list) is re-fanned - SetInheritProperties is idempotent.")], 18, "OnListModified"], [[carbon, carbon.method, impl, impl.implemented], 18, "RegisterComponents"], [[carbon, carbon.method, impl, impl.implemented], 18, "UnRegisterComponents"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetRenderables"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("CarbonEngineJS uses an out-last signature and returns the matrix when no output is supplied.")], 18, "GetLocalToWorldTransform"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetControllerVariable"], [[carbon, carbon.method, impl, impl.notImplemented], 18, "RenderDebugInfo"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Tr2DebugRendererOptions is a std::set of option names; the duck-typed bag accepts add or insert.")], 18, "GetDebugOptions"], [[carbon, carbon.method, impl, impl.implemented], 18, "AddQuadsToQuadRenderer"], [[carbon, carbon.method, impl, impl.implemented], 18, "RegisterWithQuadRenderer"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetInheritProperties"]], 0, void 0, _EveChildTransform));
21
21
  }
22
22
  /** m_name (std::string) [READWRITE, PERSIST] */
23
23
  name = (_initProto(this), _init_name(this, ""));
@@ -51,9 +51,9 @@ new class extends _identity {
51
51
  return false;
52
52
  }
53
53
 
54
- /**
55
- * Rebuilds the world transform, then updates the distribution and every
56
- * light group (EveChildSmartLightSet.cpp:73-86).
54
+ /**
55
+ * Rebuilds the world transform, then updates the distribution and every
56
+ * light group (EveChildSmartLightSet.cpp:73-86).
57
57
  */
58
58
  UpdateSyncronous(updateContext, params) {
59
59
  this.UpdateTransform(params?.localToWorldTransform ?? _EveChildSmartLightSe.#identity);
@@ -80,20 +80,21 @@ new class extends _identity {
80
80
  }
81
81
  }
82
82
 
83
- /**
84
- * display/distribution edits re-register the entity components
85
- * (EveChildSmartLightSet.cpp:112-119).
83
+ /**
84
+ * display/distribution edits re-register the entity components
85
+ * (EveChildSmartLightSet.cpp:112-119).
86
86
  */
87
87
  OnModified(_options = {}) {
88
88
  this.ReRegister?.();
89
89
  return true;
90
90
  }
91
91
 
92
- /**
93
- * Inserted light groups inherit the current color set
94
- * (EveChildSmartLightSet.cpp:26-71). Carbon's registry (un)wiring of the
95
- * inserted/removed EveEntity groups is omitted: this class has no EveEntity
96
- * surface in JS (see RegisterComponents).
92
+ /**
93
+ * Inserted light groups inherit the current color set
94
+ * (EveChildSmartLightSet.cpp:26-71). Carbon's registry (un)wiring of the
95
+ * inserted/removed EveEntity groups is a dynamic list-notify trigger and
96
+ * stays a follow-up (registration is one-shot via
97
+ * EveSpaceScene.ReregisterEntities in this pass).
97
98
  */
98
99
  OnListModified(_event, _key, _key2, value, list) {
99
100
  if (list === this.lightGroups && this.#inheritProperties) {
@@ -108,14 +109,26 @@ new class extends _identity {
108
109
  }
109
110
  }
110
111
 
111
- /** Carbon method RegisterComponents (EveChildSmartLightSet.cpp:121-134). */
112
- RegisterComponents(..._args) {
113
- throw new Error("EveChildSmartLightSet.RegisterComponents is not implemented in CarbonEngineJS.");
112
+ /** Carbon EveChildSmartLightSet::RegisterComponents (cpp:121-134):
113
+ * forward-only to the light groups. Gate m_distribution && m_display. */
114
+ RegisterComponents() {
115
+ const registry = this.GetComponentRegistry();
116
+ if (registry && this.distribution && this.display) {
117
+ for (const group of this.lightGroups) {
118
+ group?.Register?.(registry);
119
+ }
120
+ }
114
121
  }
115
122
 
116
- /** Carbon method UnRegisterComponents (EveChildSmartLightSet.cpp:136-149). */
117
- UnRegisterComponents(..._args) {
118
- throw new Error("EveChildSmartLightSet.UnRegisterComponents is not implemented in CarbonEngineJS.");
123
+ /** Carbon EveChildSmartLightSet::UnRegisterComponents (cpp:136-149):
124
+ * forwards to the light groups; no distribution/display re-check. */
125
+ UnRegisterComponents() {
126
+ const registry = this.GetComponentRegistry();
127
+ if (registry) {
128
+ for (const group of this.lightGroups) {
129
+ group?.UnRegister?.(registry);
130
+ }
131
+ }
119
132
  }
120
133
 
121
134
  /** Renderable fan-out, gated on the distribution and display (EveChildSmartLightSet.cpp:151-160). */
@@ -158,9 +171,9 @@ new class extends _identity {
158
171
  }
159
172
  }
160
173
 
161
- /**
162
- * Quad fan-out with the distribution's placement data
163
- * (EveChildSmartLightSet.cpp:191-200).
174
+ /**
175
+ * Quad fan-out with the distribution's placement data
176
+ * (EveChildSmartLightSet.cpp:191-200).
164
177
  */
165
178
  AddQuadsToQuadRenderer(frustum, quadRenderer) {
166
179
  if (this.display && this.distribution) {
@@ -179,9 +192,9 @@ new class extends _identity {
179
192
  }
180
193
  }
181
194
 
182
- /**
183
- * Lazily creates the property holder, stores the color set, and fans it out
184
- * to every light group (EveChildSmartLightSet.cpp:215-227).
195
+ /**
196
+ * Lazily creates the property holder, stores the color set, and fans it out
197
+ * to every light group (EveChildSmartLightSet.cpp:215-227).
185
198
  */
186
199
  SetInheritProperties(colorSet) {
187
200
  if (!this.#inheritProperties) {
@@ -1 +1 @@
1
- {"version":3,"file":"EveChildSmartLightSet.js","sources":["../../../../../src/generated/eve/smartLights/EveChildSmartLightSet.js"],"sourcesContent":["// Ported from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\n// trinity/trinity/Eve/SpaceObject/Children/SmartLightSets/EveChildSmartLightSet.h\n// Generated by format-carbon carbon-class --emit. Verify against eve/smartLights/EveChildSmartLightSet.json.\nimport { carbon, impl, io, type } from \"@carbonenginejs/core-types/schema\";\nimport { EveChildTransform } from \"../../../eve/child/EveChildTransform.js\";\nimport { EveChildInheritProperties } from \"../../../eve/child/EveChildInheritProperties.js\";\nimport { mat4 } from \"@carbonenginejs/core-math/mat4\";\n\n/** EveChildSmartLightSet (eve/smartLights) - generated from schema shapeHash 05d4824f.... */\n@type.define({ className: \"EveChildSmartLightSet\", family: \"eve/smartLights\" })\nexport class EveChildSmartLightSet extends EveChildTransform\n{\n\n /** m_name (std::string) [READWRITE, PERSIST] */\n @io.persist\n @type.string\n name = \"\";\n\n /** m_display (bool) [READWRITE, PERSIST] */\n @io.persist\n @type.boolean\n display = true;\n\n /** m_distribution (IEveDistributionMethodPtr) [READWRITE, PERSIST] */\n @io.persist\n @type.model(\"IEveDistributionMethod\")\n distribution = null;\n\n /** m_lightGroups (PIEveSmartLightGroupVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"IEveSmartLightGroup\")\n lightGroups = [];\n\n /** m_inheritProperties (EveChildInheritPropertiesPtr) - lazily created, never persisted (EveChildSmartLightSet.h:72). */\n #inheritProperties = null;\n\n @carbon.method\n @impl.implemented\n GetName()\n {\n return this.name;\n }\n\n @carbon.method\n @impl.implemented\n SetName(name)\n {\n this.name = String(name ?? \"\");\n }\n\n /** Carbon declares Setup inline empty (EveChildSmartLightSet.h:48). */\n @carbon.method\n @impl.noop\n Setup(_scale = null, _rotation = null, _translation = null, _lowestLodVisible = null)\n {\n }\n\n /** Carbon declares ChangeLOD inline empty (EveChildSmartLightSet.h:49). */\n @carbon.method\n @impl.noop\n ChangeLOD(_lod)\n {\n }\n\n /** Smart light sets carry no bound (EveChildSmartLightSet.h:39-42). */\n @carbon.method\n @impl.implemented\n GetBoundingSphere(_sphere = null, _query = 0)\n {\n return false;\n }\n\n /**\n * Rebuilds the world transform, then updates the distribution and every\n * light group (EveChildSmartLightSet.cpp:73-86).\n */\n @carbon.method\n @impl.implemented\n UpdateSyncronous(updateContext, params)\n {\n this.UpdateTransform(params?.localToWorldTransform ?? EveChildSmartLightSet.#identity);\n\n this.distribution?.UpdateSyncronous?.(updateContext, params);\n\n for (const group of this.lightGroups)\n {\n group?.UpdateSyncronous?.(updateContext, params, this.distribution);\n }\n }\n\n /** Asynchronous fan-out to the distribution and light groups (EveChildSmartLightSet.cpp:88-99). */\n @carbon.method\n @impl.implemented\n UpdateAsyncronous(updateContext, params)\n {\n this.distribution?.UpdateAsyncronous?.(updateContext, params);\n\n for (const group of this.lightGroups)\n {\n group?.UpdateAsyncronous?.(updateContext, params, this.distribution);\n }\n }\n\n /** Visibility fan-out, gated on the distribution and display (EveChildSmartLightSet.cpp:101-110). */\n @carbon.method\n @impl.implemented\n UpdateVisibility(updateContext, parentTransform, parentLod)\n {\n if (this.distribution && this.display)\n {\n for (const group of this.lightGroups)\n {\n group?.UpdateVisibility?.(updateContext, parentTransform, parentLod);\n }\n }\n }\n\n /**\n * display/distribution edits re-register the entity components\n * (EveChildSmartLightSet.cpp:112-119).\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"The class flattens onto EveChildTransform without Carbon's EveEntity base; the re-register hook is limited to an optional duck-typed call.\")\n OnModified(_options = {})\n {\n this.ReRegister?.();\n return true;\n }\n\n /**\n * Inserted light groups inherit the current color set\n * (EveChildSmartLightSet.cpp:26-71). Carbon's registry (un)wiring of the\n * inserted/removed EveEntity groups is omitted: this class has no EveEntity\n * surface in JS (see RegisterComponents).\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"List events carry no BELIST insert mask; the inserted value (or, absent one, the whole list) is re-fanned - SetInheritProperties is idempotent.\")\n OnListModified(_event, _key, _key2, value, list)\n {\n if (list === this.lightGroups && this.#inheritProperties)\n {\n const properties = this.#inheritProperties.GetProperties();\n if (value)\n {\n value.SetInheritProperties?.(properties);\n }\n else\n {\n for (const group of this.lightGroups)\n {\n group?.SetInheritProperties?.(properties);\n }\n }\n }\n }\n\n /** Carbon method RegisterComponents (EveChildSmartLightSet.cpp:121-134). */\n @carbon.method\n @impl.notImplemented\n RegisterComponents(..._args)\n {\n throw new Error(\"EveChildSmartLightSet.RegisterComponents is not implemented in CarbonEngineJS.\");\n }\n\n /** Carbon method UnRegisterComponents (EveChildSmartLightSet.cpp:136-149). */\n @carbon.method\n @impl.notImplemented\n UnRegisterComponents(..._args)\n {\n throw new Error(\"EveChildSmartLightSet.UnRegisterComponents is not implemented in CarbonEngineJS.\");\n }\n\n /** Renderable fan-out, gated on the distribution and display (EveChildSmartLightSet.cpp:151-160). */\n @carbon.method\n @impl.implemented\n GetRenderables(renderables = [])\n {\n if (this.distribution && this.display)\n {\n for (const group of this.lightGroups)\n {\n group?.GetRenderables?.(renderables);\n }\n }\n return renderables;\n }\n\n /** Returns the local-to-world matrix (EveChildSmartLightSet.cpp:162-165). */\n @carbon.method\n @impl.adapted\n @impl.reason(\"CarbonEngineJS uses an out-last signature and returns the matrix when no output is supplied.\")\n GetLocalToWorldTransform(out = null)\n {\n if (out)\n {\n return mat4.copy(out, this.worldTransform);\n }\n return this.worldTransform;\n }\n\n /** Fans a controller variable to the distribution and light groups (EveChildSmartLightSet.cpp:167-178). */\n @carbon.method\n @impl.implemented\n SetControllerVariable(name, value)\n {\n this.distribution?.SetControllerVariable?.(name, value);\n\n for (const group of this.lightGroups)\n {\n group?.SetControllerVariable?.(name, value);\n }\n }\n\n /** Carbon method RenderDebugInfo (EveChildSmartLightSet.cpp:180-189). */\n @carbon.method\n @impl.notImplemented\n RenderDebugInfo(..._args)\n {\n throw new Error(\"EveChildSmartLightSet.RenderDebugInfo is not implemented in CarbonEngineJS.\");\n }\n\n /** Advertises the smartLightSets debug option (EveChildSmartLightSet.cpp:210-213); options is a Set-like bag. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Tr2DebugRendererOptions is a std::set of option names; the duck-typed bag accepts add or insert.\")\n GetDebugOptions(options)\n {\n if (options?.add)\n {\n options.add(\"smartLightSets\");\n }\n else\n {\n options?.insert?.(\"smartLightSets\");\n }\n }\n\n /**\n * Quad fan-out with the distribution's placement data\n * (EveChildSmartLightSet.cpp:191-200).\n */\n @carbon.method\n @impl.implemented\n AddQuadsToQuadRenderer(frustum, quadRenderer)\n {\n if (this.display && this.distribution)\n {\n const placements = this.distribution.GetPlacementData?.() ?? [];\n const size = Number(this.distribution.GetNumberOfPlacements?.() ?? placements.length);\n for (const group of this.lightGroups)\n {\n group?.AddQuadsToQuadRenderer?.(placements, size, frustum, quadRenderer);\n }\n }\n }\n\n /** Effect-registration fan-out (EveChildSmartLightSet.cpp:202-208). */\n @carbon.method\n @impl.implemented\n RegisterWithQuadRenderer(quadRenderer)\n {\n for (const group of this.lightGroups)\n {\n group?.RegisterWithQuadRenderer?.(quadRenderer);\n }\n }\n\n /**\n * Lazily creates the property holder, stores the color set, and fans it out\n * to every light group (EveChildSmartLightSet.cpp:215-227).\n */\n @carbon.method\n @impl.implemented\n SetInheritProperties(colorSet)\n {\n if (!this.#inheritProperties)\n {\n this.#inheritProperties = new EveChildInheritProperties();\n }\n this.#inheritProperties.SetProperties(colorSet);\n\n for (const group of this.lightGroups)\n {\n group?.SetInheritProperties?.(colorSet);\n }\n }\n\n static #identity = mat4.create();\n\n}\n"],"names":["_EveChildSmartLightSe","_identity","EveChildSmartLightSet","EveChildTransform","e","_init_name","_init_extra_name","_init_display","_init_extra_display","_init_distribution","_init_extra_distribution","_init_lightGroups","_init_extra_lightGroups","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","string","boolean","model","list","carbon","method","impl","implemented","noop","adapted","reason","notImplemented","name","display","distribution","lightGroups","GetName","SetName","String","Setup","_scale","_rotation","_translation","_lowestLodVisible","ChangeLOD","_lod","GetBoundingSphere","_sphere","_query","UpdateSyncronous","updateContext","params","UpdateTransform","localToWorldTransform","group","UpdateAsyncronous","UpdateVisibility","parentTransform","parentLod","OnModified","_options","ReRegister","OnListModified","_event","_key","_key2","value","properties","GetProperties","SetInheritProperties","RegisterComponents","_args","Error","UnRegisterComponents","GetRenderables","renderables","GetLocalToWorldTransform","out","mat4","copy","worldTransform","SetControllerVariable","RenderDebugInfo","GetDebugOptions","options","add","insert","AddQuadsToQuadRenderer","frustum","quadRenderer","placements","GetPlacementData","size","Number","GetNumberOfPlacements","length","RegisterWithQuadRenderer","colorSet","EveChildInheritProperties","SetProperties","create","constructor"],"mappings":"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"}
1
+ {"version":3,"file":"EveChildSmartLightSet.js","sources":["../../../../../src/generated/eve/smartLights/EveChildSmartLightSet.js"],"sourcesContent":["// Ported from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\r\n// trinity/trinity/Eve/SpaceObject/Children/SmartLightSets/EveChildSmartLightSet.h\r\n// Generated by format-carbon carbon-class --emit. Verify against eve/smartLights/EveChildSmartLightSet.json.\r\nimport { carbon, impl, io, type } from \"@carbonenginejs/core-types/schema\";\r\nimport { EveChildTransform } from \"../../../eve/child/EveChildTransform.js\";\r\nimport { EveChildInheritProperties } from \"../../../eve/child/EveChildInheritProperties.js\";\r\nimport { mat4 } from \"@carbonenginejs/core-math/mat4\";\r\n\r\n/** EveChildSmartLightSet (eve/smartLights) - generated from schema shapeHash 05d4824f.... */\r\n@type.define({ className: \"EveChildSmartLightSet\", family: \"eve/smartLights\" })\r\nexport class EveChildSmartLightSet extends EveChildTransform\r\n{\r\n\r\n /** m_name (std::string) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n /** m_display (bool) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n /** m_distribution (IEveDistributionMethodPtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.model(\"IEveDistributionMethod\")\r\n distribution = null;\r\n\r\n /** m_lightGroups (PIEveSmartLightGroupVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"IEveSmartLightGroup\")\r\n lightGroups = [];\r\n\r\n /** m_inheritProperties (EveChildInheritPropertiesPtr) - lazily created, never persisted (EveChildSmartLightSet.h:72). */\r\n #inheritProperties = null;\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetName()\r\n {\r\n return this.name;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetName(name)\r\n {\r\n this.name = String(name ?? \"\");\r\n }\r\n\r\n /** Carbon declares Setup inline empty (EveChildSmartLightSet.h:48). */\r\n @carbon.method\r\n @impl.noop\r\n Setup(_scale = null, _rotation = null, _translation = null, _lowestLodVisible = null)\r\n {\r\n }\r\n\r\n /** Carbon declares ChangeLOD inline empty (EveChildSmartLightSet.h:49). */\r\n @carbon.method\r\n @impl.noop\r\n ChangeLOD(_lod)\r\n {\r\n }\r\n\r\n /** Smart light sets carry no bound (EveChildSmartLightSet.h:39-42). */\r\n @carbon.method\r\n @impl.implemented\r\n GetBoundingSphere(_sphere = null, _query = 0)\r\n {\r\n return false;\r\n }\r\n\r\n /**\r\n * Rebuilds the world transform, then updates the distribution and every\r\n * light group (EveChildSmartLightSet.cpp:73-86).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateSyncronous(updateContext, params)\r\n {\r\n this.UpdateTransform(params?.localToWorldTransform ?? EveChildSmartLightSet.#identity);\r\n\r\n this.distribution?.UpdateSyncronous?.(updateContext, params);\r\n\r\n for (const group of this.lightGroups)\r\n {\r\n group?.UpdateSyncronous?.(updateContext, params, this.distribution);\r\n }\r\n }\r\n\r\n /** Asynchronous fan-out to the distribution and light groups (EveChildSmartLightSet.cpp:88-99). */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateAsyncronous(updateContext, params)\r\n {\r\n this.distribution?.UpdateAsyncronous?.(updateContext, params);\r\n\r\n for (const group of this.lightGroups)\r\n {\r\n group?.UpdateAsyncronous?.(updateContext, params, this.distribution);\r\n }\r\n }\r\n\r\n /** Visibility fan-out, gated on the distribution and display (EveChildSmartLightSet.cpp:101-110). */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateVisibility(updateContext, parentTransform, parentLod)\r\n {\r\n if (this.distribution && this.display)\r\n {\r\n for (const group of this.lightGroups)\r\n {\r\n group?.UpdateVisibility?.(updateContext, parentTransform, parentLod);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * display/distribution edits re-register the entity components\r\n * (EveChildSmartLightSet.cpp:112-119).\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon re-registers on m_display/m_distribution Var edits; JS forwards every OnModified to the EveEntity ReRegister lifecycle on the flattened EveChildTransform base.\")\r\n OnModified(_options = {})\r\n {\r\n this.ReRegister?.();\r\n return true;\r\n }\r\n\r\n /**\r\n * Inserted light groups inherit the current color set\r\n * (EveChildSmartLightSet.cpp:26-71). Carbon's registry (un)wiring of the\r\n * inserted/removed EveEntity groups is a dynamic list-notify trigger and\r\n * stays a follow-up (registration is one-shot via\r\n * EveSpaceScene.ReregisterEntities in this pass).\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"List events carry no BELIST insert mask; the inserted value (or, absent one, the whole list) is re-fanned - SetInheritProperties is idempotent.\")\r\n OnListModified(_event, _key, _key2, value, list)\r\n {\r\n if (list === this.lightGroups && this.#inheritProperties)\r\n {\r\n const properties = this.#inheritProperties.GetProperties();\r\n if (value)\r\n {\r\n value.SetInheritProperties?.(properties);\r\n }\r\n else\r\n {\r\n for (const group of this.lightGroups)\r\n {\r\n group?.SetInheritProperties?.(properties);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /** Carbon EveChildSmartLightSet::RegisterComponents (cpp:121-134):\r\n * forward-only to the light groups. Gate m_distribution && m_display. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.distribution && this.display)\r\n {\r\n for (const group of this.lightGroups)\r\n {\r\n group?.Register?.(registry);\r\n }\r\n }\r\n }\r\n\r\n /** Carbon EveChildSmartLightSet::UnRegisterComponents (cpp:136-149):\r\n * forwards to the light groups; no distribution/display re-check. */\r\n @carbon.method\r\n @impl.implemented\r\n UnRegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n for (const group of this.lightGroups)\r\n {\r\n group?.UnRegister?.(registry);\r\n }\r\n }\r\n }\r\n\r\n /** Renderable fan-out, gated on the distribution and display (EveChildSmartLightSet.cpp:151-160). */\r\n @carbon.method\r\n @impl.implemented\r\n GetRenderables(renderables = [])\r\n {\r\n if (this.distribution && this.display)\r\n {\r\n for (const group of this.lightGroups)\r\n {\r\n group?.GetRenderables?.(renderables);\r\n }\r\n }\r\n return renderables;\r\n }\r\n\r\n /** Returns the local-to-world matrix (EveChildSmartLightSet.cpp:162-165). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"CarbonEngineJS uses an out-last signature and returns the matrix when no output is supplied.\")\r\n GetLocalToWorldTransform(out = null)\r\n {\r\n if (out)\r\n {\r\n return mat4.copy(out, this.worldTransform);\r\n }\r\n return this.worldTransform;\r\n }\r\n\r\n /** Fans a controller variable to the distribution and light groups (EveChildSmartLightSet.cpp:167-178). */\r\n @carbon.method\r\n @impl.implemented\r\n SetControllerVariable(name, value)\r\n {\r\n this.distribution?.SetControllerVariable?.(name, value);\r\n\r\n for (const group of this.lightGroups)\r\n {\r\n group?.SetControllerVariable?.(name, value);\r\n }\r\n }\r\n\r\n /** Carbon method RenderDebugInfo (EveChildSmartLightSet.cpp:180-189). */\r\n @carbon.method\r\n @impl.notImplemented\r\n RenderDebugInfo(..._args)\r\n {\r\n throw new Error(\"EveChildSmartLightSet.RenderDebugInfo is not implemented in CarbonEngineJS.\");\r\n }\r\n\r\n /** Advertises the smartLightSets debug option (EveChildSmartLightSet.cpp:210-213); options is a Set-like bag. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Tr2DebugRendererOptions is a std::set of option names; the duck-typed bag accepts add or insert.\")\r\n GetDebugOptions(options)\r\n {\r\n if (options?.add)\r\n {\r\n options.add(\"smartLightSets\");\r\n }\r\n else\r\n {\r\n options?.insert?.(\"smartLightSets\");\r\n }\r\n }\r\n\r\n /**\r\n * Quad fan-out with the distribution's placement data\r\n * (EveChildSmartLightSet.cpp:191-200).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n AddQuadsToQuadRenderer(frustum, quadRenderer)\r\n {\r\n if (this.display && this.distribution)\r\n {\r\n const placements = this.distribution.GetPlacementData?.() ?? [];\r\n const size = Number(this.distribution.GetNumberOfPlacements?.() ?? placements.length);\r\n for (const group of this.lightGroups)\r\n {\r\n group?.AddQuadsToQuadRenderer?.(placements, size, frustum, quadRenderer);\r\n }\r\n }\r\n }\r\n\r\n /** Effect-registration fan-out (EveChildSmartLightSet.cpp:202-208). */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterWithQuadRenderer(quadRenderer)\r\n {\r\n for (const group of this.lightGroups)\r\n {\r\n group?.RegisterWithQuadRenderer?.(quadRenderer);\r\n }\r\n }\r\n\r\n /**\r\n * Lazily creates the property holder, stores the color set, and fans it out\r\n * to every light group (EveChildSmartLightSet.cpp:215-227).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetInheritProperties(colorSet)\r\n {\r\n if (!this.#inheritProperties)\r\n {\r\n this.#inheritProperties = new EveChildInheritProperties();\r\n }\r\n this.#inheritProperties.SetProperties(colorSet);\r\n\r\n for (const group of this.lightGroups)\r\n {\r\n group?.SetInheritProperties?.(colorSet);\r\n }\r\n }\r\n\r\n static #identity = mat4.create();\r\n\r\n}\r\n"],"names":["_EveChildSmartLightSe","_identity","EveChildSmartLightSet","EveChildTransform","e","_init_name","_init_extra_name","_init_display","_init_extra_display","_init_distribution","_init_extra_distribution","_init_lightGroups","_init_extra_lightGroups","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","string","boolean","model","list","carbon","method","impl","implemented","noop","adapted","reason","notImplemented","name","display","distribution","lightGroups","GetName","SetName","String","Setup","_scale","_rotation","_translation","_lowestLodVisible","ChangeLOD","_lod","GetBoundingSphere","_sphere","_query","UpdateSyncronous","updateContext","params","UpdateTransform","localToWorldTransform","group","UpdateAsyncronous","UpdateVisibility","parentTransform","parentLod","OnModified","_options","ReRegister","OnListModified","_event","_key","_key2","value","properties","GetProperties","SetInheritProperties","RegisterComponents","registry","GetComponentRegistry","Register","UnRegisterComponents","UnRegister","GetRenderables","renderables","GetLocalToWorldTransform","out","mat4","copy","worldTransform","SetControllerVariable","RenderDebugInfo","_args","Error","GetDebugOptions","options","add","insert","AddQuadsToQuadRenderer","frustum","quadRenderer","placements","GetPlacementData","size","Number","GetNumberOfPlacements","length","RegisterWithQuadRenderer","colorSet","EveChildInheritProperties","SetProperties","create","constructor"],"mappings":"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"}
@@ -7,6 +7,7 @@ import { quat } from '@carbonenginejs/core-math/quat';
7
7
  import { vec3 } from '@carbonenginejs/core-math/vec3';
8
8
  import { vec4 } from '@carbonenginejs/core-math/vec4';
9
9
  import { Tr2Light as _Tr2Light } from '../../../eve/lights/Tr2Light.js';
10
+ import { EveComponentType } from '../../../eve/EveComponentTypes.js';
10
11
  import { createCjsLightDataView, setCjsLightDataOwnerValues } from '../../../eve/lights/CjsLightData.js';
11
12
 
12
13
  let _initProto, _initClass, _init_flags, _init_extra_flags, _init_innerRadius, _init_extra_innerRadius, _init_brightness, _init_extra_brightness, _init_radius, _init_extra_radius, _init_lightProfile, _init_extra_lightProfile, _init_name, _init_extra_name, _init_display, _init_extra_display, _init_lightProfilePath, _init_extra_lightProfilePath, _init_staticOffsetTranslation, _init_extra_staticOffsetTranslation, _init_staticOffsetRotation, _init_extra_staticOffsetRotation, _init_factionColor, _init_extra_factionColor, _init_useFactionColor, _init_extra_useFactionColor, _init_attributeModifiers, _init_extra_attributeModifiers, _init_customColor, _init_extra_customColor;
@@ -22,7 +23,7 @@ new class extends _identity {
22
23
  } = _applyDecs2311(this, [type.define({
23
24
  className: "EveSmartLightPointLight",
24
25
  family: "eve/smartLights"
25
- })], [[[io, io.persist, type, type.uint16], 16, "flags"], [[io, io.persist, type, type.float32], 16, "innerRadius"], [[io, io.persist, type, type.float32], 16, "brightness"], [[io, io.persist, type, type.float32], 16, "radius"], [[io, io.read, void 0, type.objectRef("Tr2LightProfileRes")], 16, "lightProfile"], [[io, io.persist, type, type.string], 16, "name"], [[io, io.persist, type, type.boolean], 16, "display"], [[io, io.notify, io, io.persist, type, type.string], 16, "lightProfilePath"], [[io, io.persist, type, type.vec3], 16, "staticOffsetTranslation"], [[io, io.persist, type, type.quat], 16, "staticOffsetRotation"], [[io, io.notify, io, io.persist, type, type.int32], 16, "factionColor"], [[io, io.persist, type, type.boolean], 16, "useFactionColor"], [[io, io.persist, void 0, type.list("IEveSmartLightGroupAttributeModifier")], 16, "attributeModifiers"], [[io, io.persist, type, type.color], 16, "customColor"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon inherits EveSmartLightBaseGroup; JS single inheritance flattens the base-group surface through the shared resolveGroupColor helper.")], 18, "GetGroupColor"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon inherits EveSmartLightBaseGroup; JS single inheritance flattens the base-group surface.")], 18, "SetColor"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon inherits EveSmartLightBaseGroup; JS single inheritance flattens the base-group surface.")], 18, "SetInheritProperties"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon inherits EveSmartLightBaseGroup; JS single inheritance flattens the base-group surface.")], 18, "SetControllerVariable"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("List events carry no BELIST insert mask; the inserted value (or, absent one, the whole list) is re-fanned - SetInheritProperties is idempotent.")], 18, "OnListModified"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Light-profile resolution (BeResMan lp resource) is supplied by the resource/runtime adapter; Trinity keeps only the typed path/reference.")], 18, "Initialize"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The settle hook receives no changed-property list, and profile resolution belongs to the resource adapter; a detected path edit only invalidates the cached reference.")], 18, "OnModified"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateSyncronous"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon's RegisterComponent<ITr2LightOwner> template is expressed as the registry's explicit component-name signature.")], 18, "RegisterComponents"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Physical per-light packing (half floats, profile-index flag bits) moves to the renderer backend; Trinity submits the typed CPU record per placement.")], 18, "GetLights"], [[carbon, carbon.method, impl, impl.notImplemented], 18, "RenderDebugInfo"]], 0, void 0, _EveEntity));
26
+ })], [[[io, io.persist, type, type.uint16], 16, "flags"], [[io, io.persist, type, type.float32], 16, "innerRadius"], [[io, io.persist, type, type.float32], 16, "brightness"], [[io, io.persist, type, type.float32], 16, "radius"], [[io, io.read, void 0, type.objectRef("Tr2LightProfileRes")], 16, "lightProfile"], [[io, io.persist, type, type.string], 16, "name"], [[io, io.persist, type, type.boolean], 16, "display"], [[io, io.notify, io, io.persist, type, type.string], 16, "lightProfilePath"], [[io, io.persist, type, type.vec3], 16, "staticOffsetTranslation"], [[io, io.persist, type, type.quat], 16, "staticOffsetRotation"], [[io, io.notify, io, io.persist, type, type.int32], 16, "factionColor"], [[io, io.persist, type, type.boolean], 16, "useFactionColor"], [[io, io.persist, void 0, type.list("IEveSmartLightGroupAttributeModifier")], 16, "attributeModifiers"], [[io, io.persist, type, type.color], 16, "customColor"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon inherits EveSmartLightBaseGroup; JS single inheritance flattens the base-group surface through the shared resolveGroupColor helper.")], 18, "GetGroupColor"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon inherits EveSmartLightBaseGroup; JS single inheritance flattens the base-group surface.")], 18, "SetColor"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon inherits EveSmartLightBaseGroup; JS single inheritance flattens the base-group surface.")], 18, "SetInheritProperties"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon inherits EveSmartLightBaseGroup; JS single inheritance flattens the base-group surface.")], 18, "SetControllerVariable"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("List events carry no BELIST insert mask; the inserted value (or, absent one, the whole list) is re-fanned - SetInheritProperties is idempotent.")], 18, "OnListModified"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Light-profile resolution (BeResMan lp resource) is supplied by the resource/runtime adapter; Trinity keeps only the typed path/reference.")], 18, "Initialize"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The settle hook receives no changed-property list, and profile resolution belongs to the resource adapter; a detected path edit only invalidates the cached reference.")], 18, "OnModified"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateSyncronous"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon's RegisterComponent<ITr2LightOwner> template is expressed as the registry's explicit component-name signature (verbatim \"LightOwner\", Lights/ITr2LightOwner.h:18).")], 18, "RegisterComponents"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Physical per-light packing (half floats, profile-index flag bits) moves to the renderer backend; Trinity submits the typed CPU record per placement.")], 18, "GetLights"], [[carbon, carbon.method, impl, impl.notImplemented], 18, "RenderDebugInfo"]], 0, void 0, _EveEntity));
26
27
  }
27
28
  /** m_lightGroupData.flags (uint16_t) [READWRITE, PERSIST] */
28
29
  flags = (_initProto(this), _init_flags(this, 1));
@@ -110,9 +111,9 @@ new class extends _identity {
110
111
  vec4.copy(this.customColor, color);
111
112
  }
112
113
 
113
- /**
114
- * Stores the inherited faction color set and fans it out to the attribute
115
- * modifiers (Carbon base EveSmartLightBaseGroup.cpp:30-41).
114
+ /**
115
+ * Stores the inherited faction color set and fans it out to the attribute
116
+ * modifiers (Carbon base EveSmartLightBaseGroup.cpp:30-41).
116
117
  */
117
118
  SetInheritProperties(colorSet) {
118
119
  if (colorSet) {
@@ -130,9 +131,9 @@ new class extends _identity {
130
131
  }
131
132
  }
132
133
 
133
- /**
134
- * Newly inserted attribute modifiers inherit the parent color set (Carbon
135
- * base EveSmartLightBaseGroup.cpp:16-28).
134
+ /**
135
+ * Newly inserted attribute modifiers inherit the parent color set (Carbon
136
+ * base EveSmartLightBaseGroup.cpp:16-28).
136
137
  */
137
138
  OnListModified(_event, _key, _key2, value, list) {
138
139
  if (list === this.attributeModifiers && this.#parentColorSet) {
@@ -146,20 +147,20 @@ new class extends _identity {
146
147
  }
147
148
  }
148
149
 
149
- /**
150
- * Carbon resolves the light profile through BeResMan
151
- * (EveSmartLightPointLight.cpp:18-27); profile resolution belongs to the
152
- * resource adapter in CarbonEngineJS.
150
+ /**
151
+ * Carbon resolves the light profile through BeResMan
152
+ * (EveSmartLightPointLight.cpp:18-27); profile resolution belongs to the
153
+ * resource adapter in CarbonEngineJS.
153
154
  */
154
155
  Initialize() {
155
156
  this.#lastAppliedProfilePath = this.lightProfilePath;
156
157
  return true;
157
158
  }
158
159
 
159
- /**
160
- * A lightProfilePath edit re-resolves the profile
161
- * (EveSmartLightPointLight.cpp:29-41); the stale reference is dropped so the
162
- * resource adapter re-resolves it.
160
+ /**
161
+ * A lightProfilePath edit re-resolves the profile
162
+ * (EveSmartLightPointLight.cpp:29-41); the stale reference is dropped so the
163
+ * resource adapter re-resolves it.
163
164
  */
164
165
  OnModified(_options = {}) {
165
166
  if (this.lightProfilePath !== this.#lastAppliedProfilePath) {
@@ -169,9 +170,9 @@ new class extends _identity {
169
170
  return true;
170
171
  }
171
172
 
172
- /**
173
- * Captures the frame state and updates the attribute modifiers with full
174
- * strength (EveSmartLightPointLight.cpp:43-54).
173
+ /**
174
+ * Captures the frame state and updates the attribute modifiers with full
175
+ * strength (EveSmartLightPointLight.cpp:43-54).
175
176
  */
176
177
  UpdateSyncronous(updateContext, params, distribution) {
177
178
  this.#activationStrength = params?.activationStrength ?? 1;
@@ -184,18 +185,18 @@ new class extends _identity {
184
185
 
185
186
  /** Registers this entity as a light owner (EveSmartLightPointLight.cpp:56-63). */
186
187
  RegisterComponents() {
187
- this.GetComponentRegistry()?.RegisterComponent?.("ITr2LightOwner", this);
188
+ this.GetComponentRegistry()?.RegisterComponent?.(EveComponentType.LightOwner, this);
188
189
  }
189
190
 
190
- /**
191
- * Registers one light per distribution placement with the duck-typed light
192
- * manager (EveSmartLightPointLight.cpp:65-131). The submitted record keeps
193
- * typed CPU state only (float32 color/direction, unpacked flags, the
194
- * CjsLightData and unresolved profile reference); Carbon's Float_16/
195
- * Vector3_16 packing and the profile-index flag packing
196
- * (GetTextureIndex() + 1 << 4) are renderer/resource-adapter concerns.
197
- * The record is scratch - the manager must copy, as Carbon's
198
- * Tr2LightManager::AddLight copies PerLightData by value.
191
+ /**
192
+ * Registers one light per distribution placement with the duck-typed light
193
+ * manager (EveSmartLightPointLight.cpp:65-131). The submitted record keeps
194
+ * typed CPU state only (float32 color/direction, unpacked flags, the
195
+ * CjsLightData and unresolved profile reference); Carbon's Float_16/
196
+ * Vector3_16 packing and the profile-index flag packing
197
+ * (GetTextureIndex() + 1 << 4) are renderer/resource-adapter concerns.
198
+ * The record is scratch - the manager must copy, as Carbon's
199
+ * Tr2LightManager::AddLight copies PerLightData by value.
199
200
  */
200
201
  GetLights(lightManager) {
201
202
  if (!this.display || !this.#distribution) {
@@ -1 +1 @@
1
- {"version":3,"file":"EveSmartLightPointLight.js","sources":["../../../../../src/generated/eve/smartLights/EveSmartLightPointLight.js"],"sourcesContent":["// Ported from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\n// trinity/trinity/Eve/SpaceObject/Children/SmartLightSets/EveSmartLightPointLight.h\n// Generated by format-carbon carbon-class --emit. Verify against eve/smartLights/EveSmartLightPointLight.json.\nimport { carbon, impl, io, type } from \"@carbonenginejs/core-types/schema\";\nimport { EveEntity } from \"../EveEntity.js\";\nimport { resolveGroupColor } from \"./EveSmartLightBaseGroup.js\";\nimport { mat4 } from \"@carbonenginejs/core-math/mat4\";\nimport { quat } from \"@carbonenginejs/core-math/quat\";\nimport { vec3 } from \"@carbonenginejs/core-math/vec3\";\nimport { vec4 } from \"@carbonenginejs/core-math/vec4\";\nimport { Tr2Light } from \"../../../eve/lights/Tr2Light.js\";\nimport {\n createCjsLightDataView,\n setCjsLightDataOwnerValues\n} from \"../../../eve/lights/CjsLightData.js\";\n\n/** EveSmartLightPointLight (eve/smartLights) - generated from schema shapeHash d980f7c3.... */\n@type.define({ className: \"EveSmartLightPointLight\", family: \"eve/smartLights\" })\nexport class EveSmartLightPointLight extends EveEntity\n{\n /** m_lightGroupData.flags (uint16_t) [READWRITE, PERSIST] */\n @io.persist\n @type.uint16\n flags = 1;\n\n /** m_lightGroupData.innerRadius (float) [READWRITE, PERSIST] */\n @io.persist\n @type.float32\n innerRadius = 0;\n\n /** m_lightGroupData.brightness (float) [READWRITE, PERSIST] */\n @io.persist\n @type.float32\n brightness = 1;\n\n /** m_lightGroupData.radius (float) [READWRITE, PERSIST] */\n @io.persist\n @type.float32\n radius = 0;\n\n /** m_lightProfile (Tr2LightProfileResPtr) [READ] */\n @io.read\n @type.objectRef(\"Tr2LightProfileRes\")\n lightProfile = null;\n\n /** m_name (std::string) [READWRITE, PERSIST] */\n @io.persist\n @type.string\n name = \"\";\n\n /** m_display (bool) [READWRITE, PERSIST] */\n @io.persist\n @type.boolean\n display = true;\n\n /** m_lightProfilePath (std::wstring) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.string\n lightProfilePath = \"\";\n\n /** m_staticOffsetTranslation (Vector3) [READWRITE, PERSIST] */\n @io.persist\n @type.vec3\n staticOffsetTranslation = vec3.create();\n\n /** m_staticOffsetRotation (Quaternion) [READWRITE, PERSIST] */\n @io.persist\n @type.quat\n staticOffsetRotation = quat.create();\n\n // Flattened EveSmartLightBaseGroup secondary base (Carbon multiple\n // inheritance; EveSmartLightBaseGroup_Blue.cpp:15-20 - the wire format of\n // this class carries these fields).\n\n /** m_selectedColor (int32_t) [READWRITE, PERSIST, NOTIFY, ENUM] (EveSmartLightBaseGroup.h:31) */\n @io.notify\n @io.persist\n @type.int32\n factionColor = -1;\n\n /** m_useFactionColor (bool) [READWRITE, PERSIST] (EveSmartLightBaseGroup.h:32) */\n @io.persist\n @type.boolean\n useFactionColor = false;\n\n /** m_attributeModifiers (PIEveSmartLightGroupAttributeModifierVector) [READ, PERSIST] (EveSmartLightBaseGroup.h:29) */\n @io.persist\n @type.list(\"IEveSmartLightGroupAttributeModifier\")\n attributeModifiers = [];\n\n /** m_color (Color) [READWRITE, PERSIST] (EveSmartLightBaseGroup.h:30) */\n @io.persist\n @type.color\n customColor = vec4.createLinear();\n\n /** m_lightType (Tr2Light::LIGHT_TYPE) - POINT_LIGHT here, SPOT_LIGHT on the subclass (EveSmartLightPointLight.cpp:15). */\n lightType = Tr2Light.POINT_LIGHT;\n\n /** m_parentColorSet (const Color*) - inherited faction color set, never persisted. */\n #parentColorSet = null;\n\n /** m_activationStrength (float) - captured from the update params (EveSmartLightPointLight.h:49). */\n #activationStrength = 1;\n\n /** m_worldTransform (Matrix) - captured from the update params (EveSmartLightPointLight.h:45). */\n #worldTransform = mat4.create();\n\n /** m_distribution (IEveDistributionMethodPtr) - captured from the update pass (EveSmartLightPointLight.h:52). */\n #distribution = null;\n\n /** Last lightProfilePath the settle hook applied (JS-only change detection). */\n #lastAppliedProfilePath = \"\";\n\n // Compat view over the flattened m_lightGroupData fields (2026-07-23\n // flatten decision); light-manager records and the pre-flatten hydration\n // shape keep reading a LightData-shaped object.\n #lightDataView = null;\n\n get lightData()\n {\n this.#lightDataView ??= createCjsLightDataView(this, this.constructor.LightDataFields);\n return this.#lightDataView;\n }\n\n SetValues(values = {}, options = {})\n {\n return setCjsLightDataOwnerValues(\n this,\n values,\n options,\n (ownerValues, ownerOptions) => super.SetValues(ownerValues, ownerOptions),\n this.constructor.LightDataFields\n );\n }\n\n /** Faction-aware group color (Carbon base EveSmartLightBaseGroup.cpp:43-53). */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon inherits EveSmartLightBaseGroup; JS single inheritance flattens the base-group surface through the shared resolveGroupColor helper.\")\n GetGroupColor()\n {\n return resolveGroupColor(this.customColor, this.useFactionColor, this.factionColor, this.#parentColorSet);\n }\n\n /** Overwrites the custom color (Carbon base EveSmartLightBaseGroup.cpp:55-58). */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon inherits EveSmartLightBaseGroup; JS single inheritance flattens the base-group surface.\")\n SetColor(color)\n {\n vec4.copy(this.customColor, color);\n }\n\n /**\n * Stores the inherited faction color set and fans it out to the attribute\n * modifiers (Carbon base EveSmartLightBaseGroup.cpp:30-41).\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon inherits EveSmartLightBaseGroup; JS single inheritance flattens the base-group surface.\")\n SetInheritProperties(colorSet)\n {\n if (colorSet)\n {\n this.#parentColorSet = colorSet;\n }\n\n for (const attributeModifier of this.attributeModifiers)\n {\n attributeModifier?.SetInheritProperties?.(colorSet);\n }\n }\n\n /** Fans a controller variable out to the attribute modifiers (Carbon base EveSmartLightBaseGroup.cpp:60-66). */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon inherits EveSmartLightBaseGroup; JS single inheritance flattens the base-group surface.\")\n SetControllerVariable(name, value)\n {\n for (const attributeModifier of this.attributeModifiers)\n {\n attributeModifier?.SetControllerVariable?.(name, value);\n }\n }\n\n /**\n * Newly inserted attribute modifiers inherit the parent color set (Carbon\n * base EveSmartLightBaseGroup.cpp:16-28).\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"List events carry no BELIST insert mask; the inserted value (or, absent one, the whole list) is re-fanned - SetInheritProperties is idempotent.\")\n OnListModified(_event, _key, _key2, value, list)\n {\n if (list === this.attributeModifiers && this.#parentColorSet)\n {\n if (value)\n {\n value.SetInheritProperties?.(this.#parentColorSet);\n }\n else\n {\n for (const attributeModifier of this.attributeModifiers)\n {\n attributeModifier?.SetInheritProperties?.(this.#parentColorSet);\n }\n }\n }\n }\n\n /**\n * Carbon resolves the light profile through BeResMan\n * (EveSmartLightPointLight.cpp:18-27); profile resolution belongs to the\n * resource adapter in CarbonEngineJS.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Light-profile resolution (BeResMan lp resource) is supplied by the resource/runtime adapter; Trinity keeps only the typed path/reference.\")\n Initialize()\n {\n this.#lastAppliedProfilePath = this.lightProfilePath;\n return true;\n }\n\n /**\n * A lightProfilePath edit re-resolves the profile\n * (EveSmartLightPointLight.cpp:29-41); the stale reference is dropped so the\n * resource adapter re-resolves it.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"The settle hook receives no changed-property list, and profile resolution belongs to the resource adapter; a detected path edit only invalidates the cached reference.\")\n OnModified(_options = {})\n {\n if (this.lightProfilePath !== this.#lastAppliedProfilePath)\n {\n this.#lastAppliedProfilePath = this.lightProfilePath;\n this.lightProfile = null;\n }\n return true;\n }\n\n /**\n * Captures the frame state and updates the attribute modifiers with full\n * strength (EveSmartLightPointLight.cpp:43-54).\n */\n @carbon.method\n @impl.implemented\n UpdateSyncronous(updateContext, params, distribution)\n {\n this.#activationStrength = params?.activationStrength ?? 1;\n mat4.copy(this.#worldTransform, params?.localToWorldTransform ?? EveSmartLightPointLight.#identity);\n\n for (const attributeModifier of this.attributeModifiers)\n {\n attributeModifier?.UpdateSyncronous?.(updateContext, params, 1);\n }\n\n this.#distribution = distribution ?? null;\n }\n\n /** Registers this entity as a light owner (EveSmartLightPointLight.cpp:56-63). */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon's RegisterComponent<ITr2LightOwner> template is expressed as the registry's explicit component-name signature.\")\n RegisterComponents()\n {\n this.GetComponentRegistry()?.RegisterComponent?.(\"ITr2LightOwner\", this);\n }\n\n /**\n * Registers one light per distribution placement with the duck-typed light\n * manager (EveSmartLightPointLight.cpp:65-131). The submitted record keeps\n * typed CPU state only (float32 color/direction, unpacked flags, the\n * CjsLightData and unresolved profile reference); Carbon's Float_16/\n * Vector3_16 packing and the profile-index flag packing\n * (GetTextureIndex() + 1 << 4) are renderer/resource-adapter concerns.\n * The record is scratch - the manager must copy, as Carbon's\n * Tr2LightManager::AddLight copies PerLightData by value.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Physical per-light packing (half floats, profile-index flag bits) moves to the renderer backend; Trinity submits the typed CPU record per placement.\")\n GetLights(lightManager)\n {\n if (!this.display || !this.#distribution)\n {\n return;\n }\n\n const placements = this.#distribution.GetPlacementData?.() ?? [];\n const size = Number(this.#distribution.GetNumberOfPlacements?.() ?? placements.length);\n const statics = EveSmartLightPointLight;\n const m = this.#worldTransform;\n\n // Carbon: (|X| + |Y| + |Z|) / 3 of the world basis rows - single-matrix\n // reads, no composition (cpp:75-78).\n const scaling = (\n Math.hypot(m[0], m[1], m[2]) +\n Math.hypot(m[4], m[5], m[6]) +\n Math.hypot(m[8], m[9], m[10])\n ) / 3;\n const groupColor = this.GetGroupColor();\n const record = statics.#lightRecord;\n const rotation = statics.#rotation;\n const position = statics.#position;\n const direction = statics.#direction;\n\n for (let index = 0; index < size; index++)\n {\n const placement = placements[index];\n\n let perLightScaling = Math.max(placement.initialScale[0], placement.initialScale[1], placement.initialScale[2]);\n perLightScaling *= Math.max(placement.additionalScale[0], placement.additionalScale[1], placement.additionalScale[2]);\n\n record.radius = this.radius * scaling * perLightScaling;\n record.innerRadius = this.innerRadius * scaling * perLightScaling;\n record.flags = this.flags;\n\n // Carbon (row-vector): initialRotation * additionalRotation - initialRotation first.\n quat.multiply(rotation, placement.additionalRotation, placement.initialRotation);\n vec3.set(position, 0, 0, 0);\n const offset = this.staticOffsetTranslation;\n if (offset[0] !== 0 || offset[1] !== 0 || offset[2] !== 0)\n {\n // TriVectorRotateQuaternion == vec3.transformQuat (q v q* on both sides).\n vec3.transformQuat(position, offset, rotation);\n }\n\n vec3.add(position, position, placement.initialTranslation);\n vec3.add(position, position, placement.additionalTranslation);\n // TransformCoord == vec3.transformMat4 - identical on the shared layout.\n vec3.transformMat4(position, position, m);\n vec3.copy(record.position, position);\n\n // Carbon (row-vector): rotation * staticOffsetRotation - rotation first.\n quat.multiply(rotation, this.staticOffsetRotation, rotation);\n vec3.set(direction, 0, 1, 0);\n vec3.transformQuat(direction, direction, rotation);\n vec3.scale(direction, direction, -1);\n // TriVectorRotateMatrix: rotate by the world basis only (no translation).\n statics.#TransformNormal(direction, direction, m);\n vec3.normalize(record.direction, direction);\n\n const strength = this.brightness * this.#activationStrength;\n vec3.set(record.color, groupColor[0] * strength, groupColor[1] * strength, groupColor[2] * strength);\n\n for (const attributeModifier of this.attributeModifiers)\n {\n attributeModifier?.ProcessAttributeModifier?.(record.color, placement, position, direction, this.#activationStrength);\n }\n\n record.outerAngle = 0;\n record.innerAngle = 0;\n\n if (this.lightType === Tr2Light.SPOT_LIGHT)\n {\n record.outerAngle = Math.cos((2 * Math.PI * this.outerAngle) / 360);\n record.innerAngle = Math.cos((2 * Math.PI * this.innerAngle) / 360);\n }\n\n record.lightType = this.lightType;\n record.lightData = this.lightData;\n record.lightProfile = this.lightProfile;\n record.owner = this;\n\n lightManager?.AddLight?.(record);\n }\n }\n\n /** Carbon method RenderDebugInfo (EveSmartLightPointLight.cpp:133-161). */\n @carbon.method\n @impl.notImplemented\n RenderDebugInfo(..._args)\n {\n throw new Error(\"EveSmartLightPointLight.RenderDebugInfo is not implemented in CarbonEngineJS.\");\n }\n\n static LightDataFields = [\"flags\", \"innerRadius\", \"brightness\", \"radius\"];\n\n /** TriVectorRotateMatrix (TriMath.cpp:81-94): basis-rows multiply, no translation. */\n static #TransformNormal(out, direction, matrix)\n {\n const x = direction[0];\n const y = direction[1];\n const z = direction[2];\n out[0] = matrix[0] * x + matrix[4] * y + matrix[8] * z;\n out[1] = matrix[1] * x + matrix[5] * y + matrix[9] * z;\n out[2] = matrix[2] * x + matrix[6] * y + matrix[10] * z;\n return out;\n }\n\n static #identity = mat4.create();\n\n static #rotation = quat.create();\n\n static #position = vec3.create();\n\n static #direction = vec3.create();\n\n // Scratch per-light record (Carbon Tr2LightManager::PerLightData,\n // Tr2LightManager.h:55-68) - reused across placements; the manager copies.\n static #lightRecord = {\n owner: null,\n lightData: null,\n lightProfile: null,\n lightType: Tr2Light.POINT_LIGHT,\n position: vec3.create(),\n direction: vec3.create(),\n color: vec3.create(),\n radius: 0,\n innerRadius: 0,\n flags: 0,\n outerAngle: 0,\n innerAngle: 0\n };\n\n}\n"],"names":["_EveSmartLightPointLi","_identity","EveSmartLightPointLight","EveEntity","e","_init_flags","_init_extra_flags","_init_innerRadius","_init_extra_innerRadius","_init_brightness","_init_extra_brightness","_init_radius","_init_extra_radius","_init_lightProfile","_init_extra_lightProfile","_init_name","_init_extra_name","_init_display","_init_extra_display","_init_lightProfilePath","_init_extra_lightProfilePath","_init_staticOffsetTranslation","_init_extra_staticOffsetTranslation","_init_staticOffsetRotation","_init_extra_staticOffsetRotation","_init_factionColor","_init_extra_factionColor","_init_useFactionColor","_init_extra_useFactionColor","_init_attributeModifiers","_init_extra_attributeModifiers","_init_customColor","_init_extra_customColor","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","uint16","float32","read","objectRef","string","boolean","notify","vec3","quat","int32","list","color","carbon","method","impl","adapted","reason","implemented","notImplemented","flags","innerRadius","brightness","radius","lightProfile","name","display","lightProfilePath","staticOffsetTranslation","create","staticOffsetRotation","factionColor","useFactionColor","attributeModifiers","customColor","vec4","createLinear","lightType","Tr2Light","POINT_LIGHT","mat4","lightData","createCjsLightDataView","constructor","LightDataFields","SetValues","values","options","setCjsLightDataOwnerValues","ownerValues","ownerOptions","GetGroupColor","resolveGroupColor","SetColor","copy","SetInheritProperties","colorSet","attributeModifier","SetControllerVariable","value","OnListModified","_event","_key","_key2","Initialize","OnModified","_options","UpdateSyncronous","updateContext","params","distribution","activationStrength","localToWorldTransform","RegisterComponents","GetComponentRegistry","RegisterComponent","GetLights","lightManager","placements","GetPlacementData","size","Number","GetNumberOfPlacements","length","statics","m","scaling","Math","hypot","groupColor","record","rotation","position","direction","index","placement","perLightScaling","max","initialScale","additionalScale","multiply","additionalRotation","initialRotation","set","offset","transformQuat","add","initialTranslation","additionalTranslation","transformMat4","scale","normalize","strength","ProcessAttributeModifier","outerAngle","innerAngle","SPOT_LIGHT","cos","PI","owner","AddLight","RenderDebugInfo","_args","Error","#TransformNormal","out","matrix","x","y","z"],"mappings":";;;;;;;;;;;;;AAgBA;AAAA,IAAAA;AAAA,IAAA,cAAAC,SAAA,CAAA;AAAA,EAAA,QACA,MAAAC,uBAAA,SAC6CC,UAAS,CACtD;AAAA,IAAA;AAAA,MAAA,CAAA;QAAAC,CAAA,EAAA,CAAAC,WAAA,EAAAC,iBAAA,EAAAC,iBAAA,EAAAC,uBAAA,EAAAC,gBAAA,EAAAC,sBAAA,EAAAC,YAAA,EAAAC,kBAAA,EAAAC,kBAAA,EAAAC,wBAAA,EAAAC,UAAA,EAAAC,gBAAA,EAAAC,aAAA,EAAAC,mBAAA,EAAAC,sBAAA,EAAAC,4BAAA,EAAAC,6BAAA,EAAAC,mCAAA,EAAAC,0BAAA,EAAAC,gCAAA,EAAAC,kBAAA,EAAAC,wBAAA,EAAAC,qBAAA,EAAAC,2BAAA,EAAAC,wBAAA,EAAAC,8BAAA,EAAAC,iBAAA,EAAAC,uBAAA,EAAAC,UAAA,CAAA;QAAAC,CAAA,EAAA,CAAAlC,qBAAA,EAAAmC,UAAA;AAAA,OAAA,GAAAC,cAAA,CAAA,IAAA,EAAA,CAFCC,IAAI,CAACC,MAAM,CAAC;AAAEC,QAAAA,SAAS,EAAE,yBAAyB;AAAEC,QAAAA,MAAM,EAAE;AAAkB,OAAC,CAAC,CAAA,EAAA,CAAA,CAAA,CAI9EC,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACM,MAAM,CAAA,EAAA,EAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAIXF,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACO,OAAO,CAAA,EAAA,EAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAIZH,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACO,OAAO,CAAA,EAAA,EAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAIZH,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACO,OAAO,CAAA,EAAA,EAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAIZH,EAAE,EAAFA,EAAE,CAACI,IAAI,EAAA,MAAA,EACPR,IAAI,CAACS,SAAS,CAAC,oBAAoB,CAAC,CAAA,EAAA,EAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAIpCL,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACU,MAAM,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAIXN,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACW,OAAO,CAAA,EAAA,EAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAIZP,EAAE,EAAFA,EAAE,CAACQ,MAAM,EACTR,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACU,MAAM,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAIXN,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACa,IAAI,CAAA,EAAA,EAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,CAITT,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACc,IAAI,CAAA,EAAA,EAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,CAQTV,EAAE,EAAFA,EAAE,CAACQ,MAAM,EACTR,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACe,KAAK,CAAA,EAAA,EAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAIVX,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACW,OAAO,CAAA,EAAA,EAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAIZP,EAAE,EAAFA,EAAE,CAACC,OAAO,EAAA,MAAA,EACVL,IAAI,CAACgB,IAAI,CAAC,sCAAsC,CAAC,gCAIjDZ,EAAE,EAAFA,EAAE,CAACC,OAAO,EACVL,IAAI,EAAJA,IAAI,CAACiB,KAAK,yBA4CVC,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,UACZD,IAAI,CAACE,MAAM,CAAC,4IAA4I,CAAC,CAAA,EAAA,EAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAOzJJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EACZD,IAAI,CAACE,MAAM,CAAC,gGAAgG,CAAC,CAAA,EAAA,EAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAU7GJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EACZD,IAAI,CAACE,MAAM,CAAC,gGAAgG,CAAC,kCAe7GJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,UACZD,IAAI,CAACE,MAAM,CAAC,gGAAgG,CAAC,CAAA,EAAA,EAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,CAa7GJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EACZD,IAAI,CAACE,MAAM,CAAC,iJAAiJ,CAAC,CAAA,EAAA,EAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAwB9JJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EACZD,IAAI,CAACE,MAAM,CAAC,2IAA2I,CAAC,wBAYxJJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,UACZD,IAAI,CAACE,MAAM,CAAC,wKAAwK,CAAC,CAAA,EAAA,EAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAerLJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACG,WAAW,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAehBL,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EACZD,IAAI,CAACE,MAAM,CAAC,uHAAuH,CAAC,CAAA,EAAA,EAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAgBpIJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EACZD,IAAI,CAACE,MAAM,CAAC,sJAAsJ,CAAC,uBAyFnKJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACI,cAAc,uCAnWuB1D,UAAS,CAAA;AAAA;AAEpD;AAGA2D,IAAAA,KAAK,IAAA7B,UAAA,CAAA,IAAA,CAAA,EAAA5B,WAAA,OAAG,CAAC,CAAA;;AAET;AAGA0D,IAAAA,WAAW,IAAAzD,iBAAA,CAAA,IAAA,CAAA,EAAAC,iBAAA,OAAG,CAAC,CAAA;;AAEf;AAGAyD,IAAAA,UAAU,IAAAxD,uBAAA,CAAA,IAAA,CAAA,EAAAC,gBAAA,OAAG,CAAC,CAAA;;AAEd;AAGAwD,IAAAA,MAAM,IAAAvD,sBAAA,CAAA,IAAA,CAAA,EAAAC,YAAA,OAAG,CAAC,CAAA;;AAEV;AAGAuD,IAAAA,YAAY,IAAAtD,kBAAA,CAAA,IAAA,CAAA,EAAAC,kBAAA,OAAG,IAAI,CAAA;;AAEnB;AAGAsD,IAAAA,IAAI,IAAArD,wBAAA,CAAA,IAAA,CAAA,EAAAC,UAAA,OAAG,EAAE,CAAA;;AAET;AAGAqD,IAAAA,OAAO,IAAApD,gBAAA,CAAA,IAAA,CAAA,EAAAC,aAAA,OAAG,IAAI,CAAA;;AAEd;AAIAoD,IAAAA,gBAAgB,IAAAnD,mBAAA,CAAA,IAAA,CAAA,EAAAC,sBAAA,OAAG,EAAE,CAAA;;AAErB;IAGAmD,uBAAuB,IAAAlD,4BAAA,CAAA,IAAA,CAAA,EAAAC,6BAAA,OAAG6B,IAAI,CAACqB,MAAM,EAAE,CAAA;;AAEvC;IAGAC,oBAAoB,IAAAlD,mCAAA,CAAA,IAAA,CAAA,EAAAC,0BAAA,OAAG4B,IAAI,CAACoB,MAAM,EAAE,CAAA;;AAEpC;AACA;AACA;;AAEA;AAIAE,IAAAA,YAAY,IAAAjD,gCAAA,CAAA,IAAA,CAAA,EAAAC,kBAAA,CAAA,IAAA,EAAG,EAAE,CAAA;;AAEjB;AAGAiD,IAAAA,eAAe,IAAAhD,wBAAA,CAAA,IAAA,CAAA,EAAAC,qBAAA,OAAG,KAAK,CAAA;;AAEvB;AAGAgD,IAAAA,kBAAkB,IAAA/C,2BAAA,CAAA,IAAA,CAAA,EAAAC,wBAAA,OAAG,EAAE,CAAA;;AAEvB;IAGA+C,WAAW,IAAA9C,8BAAA,CAAA,IAAA,CAAA,EAAAC,iBAAA,OAAG8C,IAAI,CAACC,YAAY,EAAE,CAAA;;AAEjC;AACAC,IAAAA,SAAS,IAAA/C,uBAAA,CAAA,IAAA,CAAA,EAAGgD,SAAQ,CAACC,WAAW;;AAEhC;IACA,eAAe,GAAG,IAAI;;AAEtB;IACA,mBAAmB,GAAG,CAAC;;AAEvB;AACA,IAAA,eAAe,GAAGC,IAAI,CAACX,MAAM,EAAE;;AAE/B;IACA,aAAa,GAAG,IAAI;;AAEpB;IACA,uBAAuB,GAAG,EAAE;;AAE5B;AACA;AACA;IACA,cAAc,GAAG,IAAI;IAErB,IAAIY,SAASA,GACb;AACE,MAAA,IAAI,CAAC,cAAc,KAAKC,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAACC,WAAW,CAACC,eAAe,CAAC;MACtF,OAAO,IAAI,CAAC,cAAc;AAC5B,IAAA;IAEAC,SAASA,CAACC,MAAM,GAAG,EAAE,EAAEC,OAAO,GAAG,EAAE,EACnC;MACE,OAAOC,0BAA0B,CAC/B,IAAI,EACJF,MAAM,EACNC,OAAO,EACP,CAACE,WAAW,EAAEC,YAAY,KAAK,KAAK,CAACL,SAAS,CAACI,WAAW,EAAEC,YAAY,CAAC,EACzE,IAAI,CAACP,WAAW,CAACC,eACnB,CAAC;AACH,IAAA;;AAEA;AAIAO,IAAAA,aAAaA,GACb;AACE,MAAA,OAAOC,iBAAiB,CAAC,IAAI,CAAClB,WAAW,EAAE,IAAI,CAACF,eAAe,EAAE,IAAI,CAACD,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC;AAC3G,IAAA;;AAEA;IAIAsB,QAAQA,CAACzC,KAAK,EACd;MACEuB,IAAI,CAACmB,IAAI,CAAC,IAAI,CAACpB,WAAW,EAAEtB,KAAK,CAAC;AACpC,IAAA;;AAEA;AACF;AACA;AACA;IAIE2C,oBAAoBA,CAACC,QAAQ,EAC7B;AACE,MAAA,IAAIA,QAAQ,EACZ;AACE,QAAA,IAAI,CAAC,eAAe,GAAGA,QAAQ;AACjC,MAAA;AAEA,MAAA,KAAK,MAAMC,iBAAiB,IAAI,IAAI,CAACxB,kBAAkB,EACvD;AACEwB,QAAAA,iBAAiB,EAAEF,oBAAoB,GAAGC,QAAQ,CAAC;AACrD,MAAA;AACF,IAAA;;AAEA;AAIAE,IAAAA,qBAAqBA,CAACjC,IAAI,EAAEkC,KAAK,EACjC;AACE,MAAA,KAAK,MAAMF,iBAAiB,IAAI,IAAI,CAACxB,kBAAkB,EACvD;AACEwB,QAAAA,iBAAiB,EAAEC,qBAAqB,GAAGjC,IAAI,EAAEkC,KAAK,CAAC;AACzD,MAAA;AACF,IAAA;;AAEA;AACF;AACA;AACA;IAIEC,cAAcA,CAACC,MAAM,EAAEC,IAAI,EAAEC,KAAK,EAAEJ,KAAK,EAAEhD,IAAI,EAC/C;MACE,IAAIA,IAAI,KAAK,IAAI,CAACsB,kBAAkB,IAAI,IAAI,CAAC,eAAe,EAC5D;AACE,QAAA,IAAI0B,KAAK,EACT;AACEA,UAAAA,KAAK,CAACJ,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC;AACpD,QAAA,CAAC,MAED;AACE,UAAA,KAAK,MAAME,iBAAiB,IAAI,IAAI,CAACxB,kBAAkB,EACvD;AACEwB,YAAAA,iBAAiB,EAAEF,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC;AACjE,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;;AAEA;AACF;AACA;AACA;AACA;AAIES,IAAAA,UAAUA,GACV;AACE,MAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAACrC,gBAAgB;AACpD,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;AACF;AACA;AACA;AACA;AAIEsC,IAAAA,UAAUA,CAACC,QAAQ,GAAG,EAAE,EACxB;MACE,IAAI,IAAI,CAACvC,gBAAgB,KAAK,IAAI,CAAC,uBAAuB,EAC1D;AACE,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAACA,gBAAgB;QACpD,IAAI,CAACH,YAAY,GAAG,IAAI;AAC1B,MAAA;AACA,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;AACF;AACA;AACA;AAGE2C,IAAAA,gBAAgBA,CAACC,aAAa,EAAEC,MAAM,EAAEC,YAAY,EACpD;MACE,IAAI,CAAC,mBAAmB,GAAGD,MAAM,EAAEE,kBAAkB,IAAI,CAAC;AAC1D/B,MAAAA,IAAI,CAACc,IAAI,CAAC,IAAI,CAAC,eAAe,EAAEe,MAAM,EAAEG,qBAAqB,IAAIhH,qBAAuB,CAAC,SAAS,CAAC;AAEnG,MAAA,KAAK,MAAMiG,iBAAiB,IAAI,IAAI,CAACxB,kBAAkB,EACvD;QACEwB,iBAAiB,EAAEU,gBAAgB,GAAGC,aAAa,EAAEC,MAAM,EAAE,CAAC,CAAC;AACjE,MAAA;AAEA,MAAA,IAAI,CAAC,aAAa,GAAGC,YAAY,IAAI,IAAI;AAC3C,IAAA;;AAEA;AAIAG,IAAAA,kBAAkBA,GAClB;MACE,IAAI,CAACC,oBAAoB,EAAE,EAAEC,iBAAiB,GAAG,gBAAgB,EAAE,IAAI,CAAC;AAC1E,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IAIEC,SAASA,CAACC,YAAY,EACtB;MACE,IAAI,CAAC,IAAI,CAACnD,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EACxC;AACE,QAAA;AACF,MAAA;MAEA,MAAMoD,UAAU,GAAG,IAAI,CAAC,aAAa,CAACC,gBAAgB,IAAI,IAAI,EAAE;AAChE,MAAA,MAAMC,IAAI,GAAGC,MAAM,CAAC,IAAI,CAAC,aAAa,CAACC,qBAAqB,IAAI,IAAIJ,UAAU,CAACK,MAAM,CAAC;MACtF,MAAMC,OAAO,GAAG5H,qBAAuB;AACvC,MAAA,MAAM6H,CAAC,GAAG,IAAI,CAAC,eAAe;;AAE9B;AACA;AACA,MAAA,MAAMC,OAAO,GAAG,CACdC,IAAI,CAACC,KAAK,CAACH,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,CAAC,GAC5BE,IAAI,CAACC,KAAK,CAACH,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,CAAC,GAC5BE,IAAI,CAACC,KAAK,CAACH,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,EAAE,CAAC,CAAC,IAC3B,CAAC;AACL,MAAA,MAAMI,UAAU,GAAG,IAAI,CAACtC,aAAa,EAAE;AACvC,MAAA,MAAMuC,MAAM,GAAGN,OAAO,CAAC,YAAY;AACnC,MAAA,MAAMO,QAAQ,GAAGP,OAAO,CAAC,SAAS;AAClC,MAAA,MAAMQ,QAAQ,GAAGR,OAAO,CAAC,SAAS;AAClC,MAAA,MAAMS,SAAS,GAAGT,OAAO,CAAC,UAAU;MAEpC,KAAK,IAAIU,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGd,IAAI,EAAEc,KAAK,EAAE,EACzC;AACE,QAAA,MAAMC,SAAS,GAAGjB,UAAU,CAACgB,KAAK,CAAC;QAEnC,IAAIE,eAAe,GAAGT,IAAI,CAACU,GAAG,CAACF,SAAS,CAACG,YAAY,CAAC,CAAC,CAAC,EAAEH,SAAS,CAACG,YAAY,CAAC,CAAC,CAAC,EAAEH,SAAS,CAACG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/GF,eAAe,IAAIT,IAAI,CAACU,GAAG,CAACF,SAAS,CAACI,eAAe,CAAC,CAAC,CAAC,EAAEJ,SAAS,CAACI,eAAe,CAAC,CAAC,CAAC,EAAEJ,SAAS,CAACI,eAAe,CAAC,CAAC,CAAC,CAAC;QAErHT,MAAM,CAACnE,MAAM,GAAG,IAAI,CAACA,MAAM,GAAG+D,OAAO,GAAGU,eAAe;QACvDN,MAAM,CAACrE,WAAW,GAAG,IAAI,CAACA,WAAW,GAAGiE,OAAO,GAAGU,eAAe;AACjEN,QAAAA,MAAM,CAACtE,KAAK,GAAG,IAAI,CAACA,KAAK;;AAEzB;AACAX,QAAAA,IAAI,CAAC2F,QAAQ,CAACT,QAAQ,EAAEI,SAAS,CAACM,kBAAkB,EAAEN,SAAS,CAACO,eAAe,CAAC;QAChF9F,IAAI,CAAC+F,GAAG,CAACX,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3B,QAAA,MAAMY,MAAM,GAAG,IAAI,CAAC5E,uBAAuB;QAC3C,IAAI4E,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAIA,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAIA,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EACzD;AACE;UACAhG,IAAI,CAACiG,aAAa,CAACb,QAAQ,EAAEY,MAAM,EAAEb,QAAQ,CAAC;AAChD,QAAA;QAEAnF,IAAI,CAACkG,GAAG,CAACd,QAAQ,EAAEA,QAAQ,EAAEG,SAAS,CAACY,kBAAkB,CAAC;QAC1DnG,IAAI,CAACkG,GAAG,CAACd,QAAQ,EAAEA,QAAQ,EAAEG,SAAS,CAACa,qBAAqB,CAAC;AAC7D;QACApG,IAAI,CAACqG,aAAa,CAACjB,QAAQ,EAAEA,QAAQ,EAAEP,CAAC,CAAC;QACzC7E,IAAI,CAAC8C,IAAI,CAACoC,MAAM,CAACE,QAAQ,EAAEA,QAAQ,CAAC;;AAEpC;QACAnF,IAAI,CAAC2F,QAAQ,CAACT,QAAQ,EAAE,IAAI,CAAC7D,oBAAoB,EAAE6D,QAAQ,CAAC;QAC5DnF,IAAI,CAAC+F,GAAG,CAACV,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5BrF,IAAI,CAACiG,aAAa,CAACZ,SAAS,EAAEA,SAAS,EAAEF,QAAQ,CAAC;QAClDnF,IAAI,CAACsG,KAAK,CAACjB,SAAS,EAAEA,SAAS,EAAE,EAAE,CAAC;AACpC;QACAT,OAAO,CAAC,gBAAgB,CAACS,SAAS,EAAEA,SAAS,EAAER,CAAC,CAAC;QACjD7E,IAAI,CAACuG,SAAS,CAACrB,MAAM,CAACG,SAAS,EAAEA,SAAS,CAAC;QAE3C,MAAMmB,QAAQ,GAAG,IAAI,CAAC1F,UAAU,GAAG,IAAI,CAAC,mBAAmB;QAC3Dd,IAAI,CAAC+F,GAAG,CAACb,MAAM,CAAC9E,KAAK,EAAE6E,UAAU,CAAC,CAAC,CAAC,GAAGuB,QAAQ,EAAEvB,UAAU,CAAC,CAAC,CAAC,GAAGuB,QAAQ,EAAEvB,UAAU,CAAC,CAAC,CAAC,GAAGuB,QAAQ,CAAC;AAEpG,QAAA,KAAK,MAAMvD,iBAAiB,IAAI,IAAI,CAACxB,kBAAkB,EACvD;AACEwB,UAAAA,iBAAiB,EAAEwD,wBAAwB,GAAGvB,MAAM,CAAC9E,KAAK,EAAEmF,SAAS,EAAEH,QAAQ,EAAEC,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC;AACvH,QAAA;QAEAH,MAAM,CAACwB,UAAU,GAAG,CAAC;QACrBxB,MAAM,CAACyB,UAAU,GAAG,CAAC;AAErB,QAAA,IAAI,IAAI,CAAC9E,SAAS,KAAKC,SAAQ,CAAC8E,UAAU,EAC1C;AACE1B,UAAAA,MAAM,CAACwB,UAAU,GAAG3B,IAAI,CAAC8B,GAAG,CAAE,CAAC,GAAG9B,IAAI,CAAC+B,EAAE,GAAG,IAAI,CAACJ,UAAU,GAAI,GAAG,CAAC;AACnExB,UAAAA,MAAM,CAACyB,UAAU,GAAG5B,IAAI,CAAC8B,GAAG,CAAE,CAAC,GAAG9B,IAAI,CAAC+B,EAAE,GAAG,IAAI,CAACH,UAAU,GAAI,GAAG,CAAC;AACrE,QAAA;AAEAzB,QAAAA,MAAM,CAACrD,SAAS,GAAG,IAAI,CAACA,SAAS;AACjCqD,QAAAA,MAAM,CAACjD,SAAS,GAAG,IAAI,CAACA,SAAS;AACjCiD,QAAAA,MAAM,CAAClE,YAAY,GAAG,IAAI,CAACA,YAAY;QACvCkE,MAAM,CAAC6B,KAAK,GAAG,IAAI;AAEnB1C,QAAAA,YAAY,EAAE2C,QAAQ,GAAG9B,MAAM,CAAC;AAClC,MAAA;AACF,IAAA;;AAEA;IAGA+B,eAAeA,CAAC,GAAGC,KAAK,EACxB;AACE,MAAA,MAAM,IAAIC,KAAK,CAAC,+EAA+E,CAAC;AAClG,IAAA;;AAIA;;AAoBA;AACA;GAgBD;EAvCQ/E,eAAe,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,CAAC;AAGlE,EAAA,gBAAgBgF,CAACC,GAAG,EAAEhC,SAAS,EAAEiC,MAAM,EAC9C;AACE,IAAA,MAAMC,CAAC,GAAGlC,SAAS,CAAC,CAAC,CAAC;AACtB,IAAA,MAAMmC,CAAC,GAAGnC,SAAS,CAAC,CAAC,CAAC;AACtB,IAAA,MAAMoC,CAAC,GAAGpC,SAAS,CAAC,CAAC,CAAC;IACtBgC,GAAG,CAAC,CAAC,CAAC,GAAGC,MAAM,CAAC,CAAC,CAAC,GAAGC,CAAC,GAAGD,MAAM,CAAC,CAAC,CAAC,GAAGE,CAAC,GAAGF,MAAM,CAAC,CAAC,CAAC,GAAGG,CAAC;IACtDJ,GAAG,CAAC,CAAC,CAAC,GAAGC,MAAM,CAAC,CAAC,CAAC,GAAGC,CAAC,GAAGD,MAAM,CAAC,CAAC,CAAC,GAAGE,CAAC,GAAGF,MAAM,CAAC,CAAC,CAAC,GAAGG,CAAC;IACtDJ,GAAG,CAAC,CAAC,CAAC,GAAGC,MAAM,CAAC,CAAC,CAAC,GAAGC,CAAC,GAAGD,MAAM,CAAC,CAAC,CAAC,GAAGE,CAAC,GAAGF,MAAM,CAAC,EAAE,CAAC,GAAGG,CAAC;AACvD,IAAA,OAAOJ,GAAG;AACZ,EAAA;AAEO,EAAA,SAAS,GAAGrF,IAAI,CAACX,MAAM,EAAE;AAEzB,EAAA,SAAS,GAAGpB,IAAI,CAACoB,MAAM,EAAE;AAEzB,EAAA,SAAS,GAAGrB,IAAI,CAACqB,MAAM,EAAE;AAEzB,EAAA,UAAU,GAAGrB,IAAI,CAACqB,MAAM,EAAE;AAI1B,EAAA,YAAY,GAAG;AACpB0F,IAAAA,KAAK,EAAE,IAAI;AACX9E,IAAAA,SAAS,EAAE,IAAI;AACfjB,IAAAA,YAAY,EAAE,IAAI;IAClBa,SAAS,EAAEC,SAAQ,CAACC,WAAW;AAC/BqD,IAAAA,QAAQ,EAAEpF,IAAI,CAACqB,MAAM,EAAE;AACvBgE,IAAAA,SAAS,EAAErF,IAAI,CAACqB,MAAM,EAAE;AACxBjB,IAAAA,KAAK,EAAEJ,IAAI,CAACqB,MAAM,EAAE;AACpBN,IAAAA,MAAM,EAAE,CAAC;AACTF,IAAAA,WAAW,EAAE,CAAC;AACdD,IAAAA,KAAK,EAAE,CAAC;AACR8F,IAAAA,UAAU,EAAE,CAAC;AACbC,IAAAA,UAAU,EAAE;GACb;EAACxE,WAAAA,GAAA;IAAA,KAAA,CAAArF,qBAAA,GAAAmC,UAAA,EAAA;AAAA,EAAA;AAAA,CAAA,EAAA;;;;"}
1
+ {"version":3,"file":"EveSmartLightPointLight.js","sources":["../../../../../src/generated/eve/smartLights/EveSmartLightPointLight.js"],"sourcesContent":["// Ported from CarbonEngine (MIT, (c) 2026 CCP Games) - https://github.com/carbonengine/trinity\r\n// trinity/trinity/Eve/SpaceObject/Children/SmartLightSets/EveSmartLightPointLight.h\r\n// Generated by format-carbon carbon-class --emit. Verify against eve/smartLights/EveSmartLightPointLight.json.\r\nimport { carbon, impl, io, type } from \"@carbonenginejs/core-types/schema\";\r\nimport { EveEntity } from \"../EveEntity.js\";\r\nimport { resolveGroupColor } from \"./EveSmartLightBaseGroup.js\";\r\nimport { mat4 } from \"@carbonenginejs/core-math/mat4\";\r\nimport { quat } from \"@carbonenginejs/core-math/quat\";\r\nimport { vec3 } from \"@carbonenginejs/core-math/vec3\";\r\nimport { vec4 } from \"@carbonenginejs/core-math/vec4\";\r\nimport { Tr2Light } from \"../../../eve/lights/Tr2Light.js\";\r\nimport { EveComponentType } from \"../../../eve/EveComponentTypes.js\";\r\nimport {\r\n createCjsLightDataView,\r\n setCjsLightDataOwnerValues\r\n} from \"../../../eve/lights/CjsLightData.js\";\r\n\r\n/** EveSmartLightPointLight (eve/smartLights) - generated from schema shapeHash d980f7c3.... */\r\n@type.define({ className: \"EveSmartLightPointLight\", family: \"eve/smartLights\" })\r\nexport class EveSmartLightPointLight extends EveEntity\r\n{\r\n /** m_lightGroupData.flags (uint16_t) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.uint16\r\n flags = 1;\r\n\r\n /** m_lightGroupData.innerRadius (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n innerRadius = 0;\r\n\r\n /** m_lightGroupData.brightness (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n brightness = 1;\r\n\r\n /** m_lightGroupData.radius (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n radius = 0;\r\n\r\n /** m_lightProfile (Tr2LightProfileResPtr) [READ] */\r\n @io.read\r\n @type.objectRef(\"Tr2LightProfileRes\")\r\n lightProfile = null;\r\n\r\n /** m_name (std::string) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n /** m_display (bool) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n /** m_lightProfilePath (std::wstring) [READWRITE, PERSIST, NOTIFY] */\r\n @io.notify\r\n @io.persist\r\n @type.string\r\n lightProfilePath = \"\";\r\n\r\n /** m_staticOffsetTranslation (Vector3) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.vec3\r\n staticOffsetTranslation = vec3.create();\r\n\r\n /** m_staticOffsetRotation (Quaternion) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.quat\r\n staticOffsetRotation = quat.create();\r\n\r\n // Flattened EveSmartLightBaseGroup secondary base (Carbon multiple\r\n // inheritance; EveSmartLightBaseGroup_Blue.cpp:15-20 - the wire format of\r\n // this class carries these fields).\r\n\r\n /** m_selectedColor (int32_t) [READWRITE, PERSIST, NOTIFY, ENUM] (EveSmartLightBaseGroup.h:31) */\r\n @io.notify\r\n @io.persist\r\n @type.int32\r\n factionColor = -1;\r\n\r\n /** m_useFactionColor (bool) [READWRITE, PERSIST] (EveSmartLightBaseGroup.h:32) */\r\n @io.persist\r\n @type.boolean\r\n useFactionColor = false;\r\n\r\n /** m_attributeModifiers (PIEveSmartLightGroupAttributeModifierVector) [READ, PERSIST] (EveSmartLightBaseGroup.h:29) */\r\n @io.persist\r\n @type.list(\"IEveSmartLightGroupAttributeModifier\")\r\n attributeModifiers = [];\r\n\r\n /** m_color (Color) [READWRITE, PERSIST] (EveSmartLightBaseGroup.h:30) */\r\n @io.persist\r\n @type.color\r\n customColor = vec4.createLinear();\r\n\r\n /** m_lightType (Tr2Light::LIGHT_TYPE) - POINT_LIGHT here, SPOT_LIGHT on the subclass (EveSmartLightPointLight.cpp:15). */\r\n lightType = Tr2Light.POINT_LIGHT;\r\n\r\n /** m_parentColorSet (const Color*) - inherited faction color set, never persisted. */\r\n #parentColorSet = null;\r\n\r\n /** m_activationStrength (float) - captured from the update params (EveSmartLightPointLight.h:49). */\r\n #activationStrength = 1;\r\n\r\n /** m_worldTransform (Matrix) - captured from the update params (EveSmartLightPointLight.h:45). */\r\n #worldTransform = mat4.create();\r\n\r\n /** m_distribution (IEveDistributionMethodPtr) - captured from the update pass (EveSmartLightPointLight.h:52). */\r\n #distribution = null;\r\n\r\n /** Last lightProfilePath the settle hook applied (JS-only change detection). */\r\n #lastAppliedProfilePath = \"\";\r\n\r\n // Compat view over the flattened m_lightGroupData fields (2026-07-23\r\n // flatten decision); light-manager records and the pre-flatten hydration\r\n // shape keep reading a LightData-shaped object.\r\n #lightDataView = null;\r\n\r\n get lightData()\r\n {\r\n this.#lightDataView ??= createCjsLightDataView(this, this.constructor.LightDataFields);\r\n return this.#lightDataView;\r\n }\r\n\r\n SetValues(values = {}, options = {})\r\n {\r\n return setCjsLightDataOwnerValues(\r\n this,\r\n values,\r\n options,\r\n (ownerValues, ownerOptions) => super.SetValues(ownerValues, ownerOptions),\r\n this.constructor.LightDataFields\r\n );\r\n }\r\n\r\n /** Faction-aware group color (Carbon base EveSmartLightBaseGroup.cpp:43-53). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon inherits EveSmartLightBaseGroup; JS single inheritance flattens the base-group surface through the shared resolveGroupColor helper.\")\r\n GetGroupColor()\r\n {\r\n return resolveGroupColor(this.customColor, this.useFactionColor, this.factionColor, this.#parentColorSet);\r\n }\r\n\r\n /** Overwrites the custom color (Carbon base EveSmartLightBaseGroup.cpp:55-58). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon inherits EveSmartLightBaseGroup; JS single inheritance flattens the base-group surface.\")\r\n SetColor(color)\r\n {\r\n vec4.copy(this.customColor, color);\r\n }\r\n\r\n /**\r\n * Stores the inherited faction color set and fans it out to the attribute\r\n * modifiers (Carbon base EveSmartLightBaseGroup.cpp:30-41).\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon inherits EveSmartLightBaseGroup; JS single inheritance flattens the base-group surface.\")\r\n SetInheritProperties(colorSet)\r\n {\r\n if (colorSet)\r\n {\r\n this.#parentColorSet = colorSet;\r\n }\r\n\r\n for (const attributeModifier of this.attributeModifiers)\r\n {\r\n attributeModifier?.SetInheritProperties?.(colorSet);\r\n }\r\n }\r\n\r\n /** Fans a controller variable out to the attribute modifiers (Carbon base EveSmartLightBaseGroup.cpp:60-66). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon inherits EveSmartLightBaseGroup; JS single inheritance flattens the base-group surface.\")\r\n SetControllerVariable(name, value)\r\n {\r\n for (const attributeModifier of this.attributeModifiers)\r\n {\r\n attributeModifier?.SetControllerVariable?.(name, value);\r\n }\r\n }\r\n\r\n /**\r\n * Newly inserted attribute modifiers inherit the parent color set (Carbon\r\n * base EveSmartLightBaseGroup.cpp:16-28).\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"List events carry no BELIST insert mask; the inserted value (or, absent one, the whole list) is re-fanned - SetInheritProperties is idempotent.\")\r\n OnListModified(_event, _key, _key2, value, list)\r\n {\r\n if (list === this.attributeModifiers && this.#parentColorSet)\r\n {\r\n if (value)\r\n {\r\n value.SetInheritProperties?.(this.#parentColorSet);\r\n }\r\n else\r\n {\r\n for (const attributeModifier of this.attributeModifiers)\r\n {\r\n attributeModifier?.SetInheritProperties?.(this.#parentColorSet);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Carbon resolves the light profile through BeResMan\r\n * (EveSmartLightPointLight.cpp:18-27); profile resolution belongs to the\r\n * resource adapter in CarbonEngineJS.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Light-profile resolution (BeResMan lp resource) is supplied by the resource/runtime adapter; Trinity keeps only the typed path/reference.\")\r\n Initialize()\r\n {\r\n this.#lastAppliedProfilePath = this.lightProfilePath;\r\n return true;\r\n }\r\n\r\n /**\r\n * A lightProfilePath edit re-resolves the profile\r\n * (EveSmartLightPointLight.cpp:29-41); the stale reference is dropped so the\r\n * resource adapter re-resolves it.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The settle hook receives no changed-property list, and profile resolution belongs to the resource adapter; a detected path edit only invalidates the cached reference.\")\r\n OnModified(_options = {})\r\n {\r\n if (this.lightProfilePath !== this.#lastAppliedProfilePath)\r\n {\r\n this.#lastAppliedProfilePath = this.lightProfilePath;\r\n this.lightProfile = null;\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Captures the frame state and updates the attribute modifiers with full\r\n * strength (EveSmartLightPointLight.cpp:43-54).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateSyncronous(updateContext, params, distribution)\r\n {\r\n this.#activationStrength = params?.activationStrength ?? 1;\r\n mat4.copy(this.#worldTransform, params?.localToWorldTransform ?? EveSmartLightPointLight.#identity);\r\n\r\n for (const attributeModifier of this.attributeModifiers)\r\n {\r\n attributeModifier?.UpdateSyncronous?.(updateContext, params, 1);\r\n }\r\n\r\n this.#distribution = distribution ?? null;\r\n }\r\n\r\n /** Registers this entity as a light owner (EveSmartLightPointLight.cpp:56-63). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon's RegisterComponent<ITr2LightOwner> template is expressed as the registry's explicit component-name signature (verbatim \\\"LightOwner\\\", Lights/ITr2LightOwner.h:18).\")\r\n RegisterComponents()\r\n {\r\n this.GetComponentRegistry()?.RegisterComponent?.(EveComponentType.LightOwner, this);\r\n }\r\n\r\n /**\r\n * Registers one light per distribution placement with the duck-typed light\r\n * manager (EveSmartLightPointLight.cpp:65-131). The submitted record keeps\r\n * typed CPU state only (float32 color/direction, unpacked flags, the\r\n * CjsLightData and unresolved profile reference); Carbon's Float_16/\r\n * Vector3_16 packing and the profile-index flag packing\r\n * (GetTextureIndex() + 1 << 4) are renderer/resource-adapter concerns.\r\n * The record is scratch - the manager must copy, as Carbon's\r\n * Tr2LightManager::AddLight copies PerLightData by value.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Physical per-light packing (half floats, profile-index flag bits) moves to the renderer backend; Trinity submits the typed CPU record per placement.\")\r\n GetLights(lightManager)\r\n {\r\n if (!this.display || !this.#distribution)\r\n {\r\n return;\r\n }\r\n\r\n const placements = this.#distribution.GetPlacementData?.() ?? [];\r\n const size = Number(this.#distribution.GetNumberOfPlacements?.() ?? placements.length);\r\n const statics = EveSmartLightPointLight;\r\n const m = this.#worldTransform;\r\n\r\n // Carbon: (|X| + |Y| + |Z|) / 3 of the world basis rows - single-matrix\r\n // reads, no composition (cpp:75-78).\r\n const scaling = (\r\n Math.hypot(m[0], m[1], m[2]) +\r\n Math.hypot(m[4], m[5], m[6]) +\r\n Math.hypot(m[8], m[9], m[10])\r\n ) / 3;\r\n const groupColor = this.GetGroupColor();\r\n const record = statics.#lightRecord;\r\n const rotation = statics.#rotation;\r\n const position = statics.#position;\r\n const direction = statics.#direction;\r\n\r\n for (let index = 0; index < size; index++)\r\n {\r\n const placement = placements[index];\r\n\r\n let perLightScaling = Math.max(placement.initialScale[0], placement.initialScale[1], placement.initialScale[2]);\r\n perLightScaling *= Math.max(placement.additionalScale[0], placement.additionalScale[1], placement.additionalScale[2]);\r\n\r\n record.radius = this.radius * scaling * perLightScaling;\r\n record.innerRadius = this.innerRadius * scaling * perLightScaling;\r\n record.flags = this.flags;\r\n\r\n // Carbon (row-vector): initialRotation * additionalRotation - initialRotation first.\r\n quat.multiply(rotation, placement.additionalRotation, placement.initialRotation);\r\n vec3.set(position, 0, 0, 0);\r\n const offset = this.staticOffsetTranslation;\r\n if (offset[0] !== 0 || offset[1] !== 0 || offset[2] !== 0)\r\n {\r\n // TriVectorRotateQuaternion == vec3.transformQuat (q v q* on both sides).\r\n vec3.transformQuat(position, offset, rotation);\r\n }\r\n\r\n vec3.add(position, position, placement.initialTranslation);\r\n vec3.add(position, position, placement.additionalTranslation);\r\n // TransformCoord == vec3.transformMat4 - identical on the shared layout.\r\n vec3.transformMat4(position, position, m);\r\n vec3.copy(record.position, position);\r\n\r\n // Carbon (row-vector): rotation * staticOffsetRotation - rotation first.\r\n quat.multiply(rotation, this.staticOffsetRotation, rotation);\r\n vec3.set(direction, 0, 1, 0);\r\n vec3.transformQuat(direction, direction, rotation);\r\n vec3.scale(direction, direction, -1);\r\n // TriVectorRotateMatrix: rotate by the world basis only (no translation).\r\n statics.#TransformNormal(direction, direction, m);\r\n vec3.normalize(record.direction, direction);\r\n\r\n const strength = this.brightness * this.#activationStrength;\r\n vec3.set(record.color, groupColor[0] * strength, groupColor[1] * strength, groupColor[2] * strength);\r\n\r\n for (const attributeModifier of this.attributeModifiers)\r\n {\r\n attributeModifier?.ProcessAttributeModifier?.(record.color, placement, position, direction, this.#activationStrength);\r\n }\r\n\r\n record.outerAngle = 0;\r\n record.innerAngle = 0;\r\n\r\n if (this.lightType === Tr2Light.SPOT_LIGHT)\r\n {\r\n record.outerAngle = Math.cos((2 * Math.PI * this.outerAngle) / 360);\r\n record.innerAngle = Math.cos((2 * Math.PI * this.innerAngle) / 360);\r\n }\r\n\r\n record.lightType = this.lightType;\r\n record.lightData = this.lightData;\r\n record.lightProfile = this.lightProfile;\r\n record.owner = this;\r\n\r\n lightManager?.AddLight?.(record);\r\n }\r\n }\r\n\r\n /** Carbon method RenderDebugInfo (EveSmartLightPointLight.cpp:133-161). */\r\n @carbon.method\r\n @impl.notImplemented\r\n RenderDebugInfo(..._args)\r\n {\r\n throw new Error(\"EveSmartLightPointLight.RenderDebugInfo is not implemented in CarbonEngineJS.\");\r\n }\r\n\r\n static LightDataFields = [\"flags\", \"innerRadius\", \"brightness\", \"radius\"];\r\n\r\n /** TriVectorRotateMatrix (TriMath.cpp:81-94): basis-rows multiply, no translation. */\r\n static #TransformNormal(out, direction, matrix)\r\n {\r\n const x = direction[0];\r\n const y = direction[1];\r\n const z = direction[2];\r\n out[0] = matrix[0] * x + matrix[4] * y + matrix[8] * z;\r\n out[1] = matrix[1] * x + matrix[5] * y + matrix[9] * z;\r\n out[2] = matrix[2] * x + matrix[6] * y + matrix[10] * z;\r\n return out;\r\n }\r\n\r\n static #identity = mat4.create();\r\n\r\n static #rotation = quat.create();\r\n\r\n static #position = vec3.create();\r\n\r\n static #direction = vec3.create();\r\n\r\n // Scratch per-light record (Carbon Tr2LightManager::PerLightData,\r\n // Tr2LightManager.h:55-68) - reused across placements; the manager copies.\r\n static #lightRecord = {\r\n owner: null,\r\n lightData: null,\r\n lightProfile: null,\r\n lightType: Tr2Light.POINT_LIGHT,\r\n position: vec3.create(),\r\n direction: vec3.create(),\r\n color: vec3.create(),\r\n radius: 0,\r\n innerRadius: 0,\r\n flags: 0,\r\n outerAngle: 0,\r\n innerAngle: 0\r\n };\r\n\r\n}\r\n"],"names":["_EveSmartLightPointLi","_identity","EveSmartLightPointLight","EveEntity","e","_init_flags","_init_extra_flags","_init_innerRadius","_init_extra_innerRadius","_init_brightness","_init_extra_brightness","_init_radius","_init_extra_radius","_init_lightProfile","_init_extra_lightProfile","_init_name","_init_extra_name","_init_display","_init_extra_display","_init_lightProfilePath","_init_extra_lightProfilePath","_init_staticOffsetTranslation","_init_extra_staticOffsetTranslation","_init_staticOffsetRotation","_init_extra_staticOffsetRotation","_init_factionColor","_init_extra_factionColor","_init_useFactionColor","_init_extra_useFactionColor","_init_attributeModifiers","_init_extra_attributeModifiers","_init_customColor","_init_extra_customColor","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","uint16","float32","read","objectRef","string","boolean","notify","vec3","quat","int32","list","color","carbon","method","impl","adapted","reason","implemented","notImplemented","flags","innerRadius","brightness","radius","lightProfile","name","display","lightProfilePath","staticOffsetTranslation","create","staticOffsetRotation","factionColor","useFactionColor","attributeModifiers","customColor","vec4","createLinear","lightType","Tr2Light","POINT_LIGHT","mat4","lightData","createCjsLightDataView","constructor","LightDataFields","SetValues","values","options","setCjsLightDataOwnerValues","ownerValues","ownerOptions","GetGroupColor","resolveGroupColor","SetColor","copy","SetInheritProperties","colorSet","attributeModifier","SetControllerVariable","value","OnListModified","_event","_key","_key2","Initialize","OnModified","_options","UpdateSyncronous","updateContext","params","distribution","activationStrength","localToWorldTransform","RegisterComponents","GetComponentRegistry","RegisterComponent","EveComponentType","LightOwner","GetLights","lightManager","placements","GetPlacementData","size","Number","GetNumberOfPlacements","length","statics","m","scaling","Math","hypot","groupColor","record","rotation","position","direction","index","placement","perLightScaling","max","initialScale","additionalScale","multiply","additionalRotation","initialRotation","set","offset","transformQuat","add","initialTranslation","additionalTranslation","transformMat4","scale","normalize","strength","ProcessAttributeModifier","outerAngle","innerAngle","SPOT_LIGHT","cos","PI","owner","AddLight","RenderDebugInfo","_args","Error","#TransformNormal","out","matrix","x","y","z"],"mappings":"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"}
@@ -17,7 +17,7 @@ class EveShip2 extends _EveMobile {
17
17
  } = _applyDecs2311(this, [type.define({
18
18
  className: "EveShip2",
19
19
  family: "eve/spaceObject"
20
- })], [[[io, io.persistOnly, void 0, type.model("EveBoosterSet2")], 16, "boosters"], [[io, io.readwrite, type, type.uint32], 16, "displayKillCounterValue"], [[io, io.readwrite, type, type.float32], 16, "maxSpeed"], [[io, io.read, void 0, type.objectRef("TriFloat")], 16, "speed"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateSyncronous"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateAsyncronous"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateBoosters"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateVisibility"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetRenderables"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetBoosters"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetBoosters"], [[carbon, carbon.method, impl, impl.implemented], 18, "DisplayBoosters"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetKillCounterValue"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetMaxSpeed"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Blue FindEntry member binding becomes a duck-typed value holder; runtime-audio owns the emitter side.")], 18, "UpdateShipSpeedForAudio"], [[carbon, carbon.method, impl, impl.implemented], 18, "RebuildCachedData"], [[carbon, carbon.method, impl, impl.adapted], 18, "RebuildBoosterSet"], [[carbon, carbon.method, impl, impl.implemented], 18, "Initialize"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Persistent VS/PS buffers are engine-owned; shipData is exposed for createEveSpaceObjectMainPerObjectValues.")], 18, "GetPerObjectData"]], 0, void 0, _EveMobile));
20
+ })], [[[io, io.persistOnly, void 0, type.model("EveBoosterSet2")], 16, "boosters"], [[io, io.readwrite, type, type.uint32], 16, "displayKillCounterValue"], [[io, io.readwrite, type, type.float32], 16, "maxSpeed"], [[io, io.read, void 0, type.objectRef("TriFloat")], 16, "speed"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateSyncronous"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateAsyncronous"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateBoosters"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateVisibility"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetRenderables"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetBoosters"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetBoosters"], [[carbon, carbon.method, impl, impl.implemented], 18, "RegisterComponents"], [[carbon, carbon.method, impl, impl.implemented], 18, "UnRegisterComponents"], [[carbon, carbon.method, impl, impl.implemented], 18, "DisplayBoosters"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetKillCounterValue"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetMaxSpeed"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Blue FindEntry member binding becomes a duck-typed value holder; runtime-audio owns the emitter side.")], 18, "UpdateShipSpeedForAudio"], [[carbon, carbon.method, impl, impl.implemented], 18, "RebuildCachedData"], [[carbon, carbon.method, impl, impl.adapted], 18, "RebuildBoosterSet"], [[carbon, carbon.method, impl, impl.implemented], 18, "Initialize"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Persistent VS/PS buffers are engine-owned; shipData is exposed for createEveSpaceObjectMainPerObjectValues.")], 18, "GetPerObjectData"]], 0, void 0, _EveMobile));
21
21
  }
22
22
  /** m_boosters (EveBoosterSet2Ptr) [PERSISTONLY] */
23
23
  boosters = (_initProto(this), _init_boosters(this, null));
@@ -40,10 +40,10 @@ class EveShip2 extends _EveMobile {
40
40
  /** m_spaceObjectShipData - vs/ps ship constants; x carries booster glow. */
41
41
  #spaceObjectShipData = vec4.create();
42
42
 
43
- /**
44
- * Carbon EveShip2::UpdateSyncronous - base sync, then speed from the world
45
- * velocity, audio speed parameter, and booster acceleration from the
46
- * position curve's second derivative (EveShip2.cpp:16-45).
43
+ /**
44
+ * Carbon EveShip2::UpdateSyncronous - base sync, then speed from the world
45
+ * velocity, audio speed parameter, and booster acceleration from the
46
+ * position curve's second derivative (EveShip2.cpp:16-45).
47
47
  */
48
48
  UpdateSyncronous(updateContext) {
49
49
  if (!this.update) {
@@ -113,9 +113,9 @@ class EveShip2 extends _EveMobile {
113
113
  return this.boosters;
114
114
  }
115
115
 
116
- /**
117
- * Carbon EveShip2::SetBoosters - swaps the set and re-registers it with
118
- * the component registry when one is attached (duck-typed).
116
+ /**
117
+ * Carbon EveShip2::SetBoosters - swaps the set and re-registers it with
118
+ * the component registry when one is attached (duck-typed).
119
119
  */
120
120
  SetBoosters(boosters) {
121
121
  const registry = this.GetComponentRegistry?.();
@@ -128,6 +128,26 @@ class EveShip2 extends _EveMobile {
128
128
  }
129
129
  }
130
130
 
131
+ /** Carbon EveShip2::RegisterComponents (cpp:145-153): base registration,
132
+ * then forwards the booster set (no display gate of its own). */
133
+ RegisterComponents() {
134
+ super.RegisterComponents();
135
+ const registry = this.GetComponentRegistry();
136
+ if (registry && this.boosters) {
137
+ this.boosters.Register?.(registry);
138
+ }
139
+ }
140
+
141
+ /** Carbon EveShip2::UnRegisterComponents (cpp:155-163): base, then forwards
142
+ * the booster set. */
143
+ UnRegisterComponents() {
144
+ super.UnRegisterComponents();
145
+ const registry = this.GetComponentRegistry();
146
+ if (registry && this.boosters) {
147
+ this.boosters.UnRegister?.(registry);
148
+ }
149
+ }
150
+
131
151
  /** Carbon EveShip2::DisplayBoosters - boosters render with the children. */
132
152
  DisplayBoosters() {
133
153
  return !!this.boosters && this.DisplayChildren();
@@ -139,9 +159,9 @@ class EveShip2 extends _EveMobile {
139
159
  return this.maxSpeed;
140
160
  }
141
161
 
142
- /**
143
- * Carbon EveShip2::UpdateShipSpeedForAudio - normalizes speed/maxSpeed
144
- * into the bound audio parameter (EveShip2.cpp:360-380).
162
+ /**
163
+ * Carbon EveShip2::UpdateShipSpeedForAudio - normalizes speed/maxSpeed
164
+ * into the bound audio parameter (EveShip2.cpp:360-380).
145
165
  */
146
166
  UpdateShipSpeedForAudio() {
147
167
  if (this.maxSpeed === 0 || !this.boosters) {
@@ -153,9 +173,9 @@ class EveShip2 extends _EveMobile {
153
173
  }
154
174
  }
155
175
 
156
- /**
157
- * Carbon EveShip2::RebuildCachedData - after geometry load, re-attach
158
- * turrets to the freshly loaded locators (EveShip2.cpp:169-174).
176
+ /**
177
+ * Carbon EveShip2::RebuildCachedData - after geometry load, re-attach
178
+ * turrets to the freshly loaded locators (EveShip2.cpp:169-174).
159
179
  */
160
180
  RebuildCachedData(asyncRes) {
161
181
  super.RebuildCachedData(asyncRes);
@@ -181,11 +201,11 @@ class EveShip2 extends _EveMobile {
181
201
  return super.Initialize?.() ?? true;
182
202
  }
183
203
 
184
- /**
185
- * Carbon EveShip2::GetPerObjectData - stamps the booster glow intensity
186
- * into shipData.x before delegating to the base record
187
- * (EveShip2.cpp:275-289). The ship-data vec4 is exposed for the
188
- * per-object values builder.
204
+ /**
205
+ * Carbon EveShip2::GetPerObjectData - stamps the booster glow intensity
206
+ * into shipData.x before delegating to the base record
207
+ * (EveShip2.cpp:275-289). The ship-data vec4 is exposed for the
208
+ * per-object values builder.
189
209
  */
190
210
  GetPerObjectData(accumulator = null) {
191
211
  this.#spaceObjectShipData[0] = this.boosters?.GetBoosterIntensity?.() ?? 0;