@fps-games/editor 0.2.0-beta.4 → 0.2.1-beta.1

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 (1397) hide show
  1. package/dist/agent-bridge/capabilities/editor-state.d.ts.map +1 -1
  2. package/dist/agent-bridge/capabilities/editor-state.js +12 -6
  3. package/dist/agent-bridge/capabilities/editor-state.js.map +1 -1
  4. package/dist/agent-bridge/capabilities/hierarchy.d.ts +4 -0
  5. package/dist/agent-bridge/capabilities/hierarchy.d.ts.map +1 -0
  6. package/dist/agent-bridge/capabilities/hierarchy.js +209 -0
  7. package/dist/agent-bridge/capabilities/hierarchy.js.map +1 -0
  8. package/dist/agent-bridge/capabilities/prefabs.d.ts.map +1 -1
  9. package/dist/agent-bridge/capabilities/prefabs.js +208 -73
  10. package/dist/agent-bridge/capabilities/prefabs.js.map +1 -1
  11. package/dist/agent-bridge/capabilities/scene-objects.d.ts +3 -4
  12. package/dist/agent-bridge/capabilities/scene-objects.d.ts.map +1 -1
  13. package/dist/agent-bridge/capabilities/scene-objects.js +24 -23
  14. package/dist/agent-bridge/capabilities/scene-objects.js.map +1 -1
  15. package/dist/agent-bridge/capabilities/shadows.d.ts.map +1 -1
  16. package/dist/agent-bridge/capabilities/shadows.js +829 -66
  17. package/dist/agent-bridge/capabilities/shadows.js.map +1 -1
  18. package/dist/agent-bridge/capabilities/ui-regions.d.ts.map +1 -1
  19. package/dist/agent-bridge/capabilities/ui-regions.js +3 -1
  20. package/dist/agent-bridge/capabilities/ui-regions.js.map +1 -1
  21. package/dist/agent-bridge/capabilities/viewport.d.ts.map +1 -1
  22. package/dist/agent-bridge/capabilities/viewport.js +22 -9
  23. package/dist/agent-bridge/capabilities/viewport.js.map +1 -1
  24. package/dist/agent-bridge/capability-sources.d.ts.map +1 -1
  25. package/dist/agent-bridge/capability-sources.js +2 -0
  26. package/dist/agent-bridge/capability-sources.js.map +1 -1
  27. package/dist/agent-bridge/register.d.ts.map +1 -1
  28. package/dist/agent-bridge/register.js +194 -0
  29. package/dist/agent-bridge/register.js.map +1 -1
  30. package/dist/agent-bridge/shared.d.ts +231 -11
  31. package/dist/agent-bridge/shared.d.ts.map +1 -1
  32. package/dist/agent-bridge/shared.js +162 -20
  33. package/dist/agent-bridge/shared.js.map +1 -1
  34. package/dist/agent-bridge/source-types.d.ts +17 -1
  35. package/dist/agent-bridge/source-types.d.ts.map +1 -1
  36. package/dist/agent-bridge/source-types.js.map +1 -1
  37. package/dist/build-info.json +57 -42
  38. package/dist/index.d.ts +7 -6
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +4 -3
  41. package/dist/index.js.map +1 -1
  42. package/dist/internal/babylon-preview-engine.d.ts +3 -0
  43. package/dist/internal/babylon-preview-engine.d.ts.map +1 -0
  44. package/dist/internal/babylon-preview-engine.js +11 -0
  45. package/dist/internal/babylon-preview-engine.js.map +1 -0
  46. package/dist/internal/product-local-editor-cleanup.d.ts +5 -0
  47. package/dist/internal/product-local-editor-cleanup.d.ts.map +1 -0
  48. package/dist/internal/product-local-editor-cleanup.js +20 -0
  49. package/dist/internal/product-local-editor-cleanup.js.map +1 -0
  50. package/dist/local-editor-agent-actions.d.ts +2 -4
  51. package/dist/local-editor-agent-actions.d.ts.map +1 -1
  52. package/dist/local-editor-agent-actions.js +56 -32
  53. package/dist/local-editor-agent-actions.js.map +1 -1
  54. package/dist/local-editor-agent-context.d.ts +5 -5
  55. package/dist/local-editor-agent-context.d.ts.map +1 -1
  56. package/dist/local-editor-agent-context.js.map +1 -1
  57. package/dist/local-editor-harness.d.ts +340 -35
  58. package/dist/local-editor-harness.d.ts.map +1 -1
  59. package/dist/local-editor-harness.js +3834 -1321
  60. package/dist/local-editor-harness.js.map +1 -1
  61. package/dist/local-editor-marker-graph.d.ts +15 -15
  62. package/dist/local-editor-marker-graph.d.ts.map +1 -1
  63. package/dist/local-editor-marker-graph.js +3 -0
  64. package/dist/local-editor-marker-graph.js.map +1 -1
  65. package/dist/local-editor-performance-stats.d.ts +3 -2
  66. package/dist/local-editor-performance-stats.d.ts.map +1 -1
  67. package/dist/local-editor-performance-stats.js.map +1 -1
  68. package/dist/local-editor-prefab-stage-transaction.d.ts +19 -0
  69. package/dist/local-editor-prefab-stage-transaction.d.ts.map +1 -0
  70. package/dist/local-editor-prefab-stage-transaction.js +45 -0
  71. package/dist/local-editor-prefab-stage-transaction.js.map +1 -0
  72. package/dist/local-editor-scene-view-interaction-runtime.d.ts +3 -1
  73. package/dist/local-editor-scene-view-interaction-runtime.d.ts.map +1 -1
  74. package/dist/local-editor-scene-view-interaction-runtime.js +24 -0
  75. package/dist/local-editor-scene-view-interaction-runtime.js.map +1 -1
  76. package/dist/local-editor-tools.d.ts +18 -0
  77. package/dist/local-editor-tools.d.ts.map +1 -0
  78. package/dist/local-editor-tools.js +53 -0
  79. package/dist/local-editor-tools.js.map +1 -0
  80. package/dist/playable-babylon-rendering.d.ts +9 -0
  81. package/dist/playable-babylon-rendering.d.ts.map +1 -1
  82. package/dist/playable-babylon-rendering.js +162 -6
  83. package/dist/playable-babylon-rendering.js.map +1 -1
  84. package/dist/playable-local-editor-entry.d.ts +68 -0
  85. package/dist/playable-local-editor-entry.d.ts.map +1 -0
  86. package/dist/playable-local-editor-entry.js +424 -0
  87. package/dist/playable-local-editor-entry.js.map +1 -0
  88. package/dist/playable-local-editor-host.d.ts +51 -29
  89. package/dist/playable-local-editor-host.d.ts.map +1 -1
  90. package/dist/playable-local-editor-host.js +23 -11
  91. package/dist/playable-local-editor-host.js.map +1 -1
  92. package/dist/playable-product-local-editor.d.ts +10 -12
  93. package/dist/playable-product-local-editor.d.ts.map +1 -1
  94. package/dist/playable-product-local-editor.js +178 -85
  95. package/dist/playable-product-local-editor.js.map +1 -1
  96. package/dist/playable-product-projection-preview.d.ts +4 -1
  97. package/dist/playable-product-projection-preview.d.ts.map +1 -1
  98. package/dist/playable-product-projection-preview.js +122 -5
  99. package/dist/playable-product-projection-preview.js.map +1 -1
  100. package/dist/playable-product-rendering.d.ts +12 -0
  101. package/dist/playable-product-rendering.d.ts.map +1 -1
  102. package/dist/playable-product-rendering.js +128 -6
  103. package/dist/playable-product-rendering.js.map +1 -1
  104. package/dist/playable-product-scene-capabilities.d.ts +24 -7
  105. package/dist/playable-product-scene-capabilities.d.ts.map +1 -1
  106. package/dist/playable-product-scene-capabilities.js +172 -15
  107. package/dist/playable-product-scene-capabilities.js.map +1 -1
  108. package/dist/playable-project-mode.d.ts +17 -0
  109. package/dist/playable-project-mode.d.ts.map +1 -0
  110. package/dist/playable-project-mode.js +2 -0
  111. package/dist/playable-project-mode.js.map +1 -0
  112. package/dist/playable-runtime-babylon.d.ts +3 -6
  113. package/dist/playable-runtime-babylon.d.ts.map +1 -1
  114. package/dist/playable-runtime-babylon.js +1 -5
  115. package/dist/playable-runtime-babylon.js.map +1 -1
  116. package/dist/playable-sdk.d.ts +16 -9
  117. package/dist/playable-sdk.d.ts.map +1 -1
  118. package/dist/playable-sdk.js +6 -4
  119. package/dist/playable-sdk.js.map +1 -1
  120. package/dist/playable-standard-project.d.ts +23 -14
  121. package/dist/playable-standard-project.d.ts.map +1 -1
  122. package/dist/playable-standard-project.js +53 -19
  123. package/dist/playable-standard-project.js.map +1 -1
  124. package/dist/vite-client.d.ts +4 -0
  125. package/node_modules/@babel/helper-string-parser/lib/index.js +0 -1
  126. package/node_modules/@babel/helper-validator-identifier/lib/identifier.js +0 -1
  127. package/node_modules/@babel/helper-validator-identifier/lib/index.js +0 -1
  128. package/node_modules/@babel/helper-validator-identifier/lib/keyword.js +0 -1
  129. package/node_modules/@babel/parser/lib/index.js +0 -1
  130. package/node_modules/@babel/types/lib/asserts/assertNode.js +0 -1
  131. package/node_modules/@babel/types/lib/asserts/generated/index.js +0 -1
  132. package/node_modules/@babel/types/lib/ast-types/generated/index.js +0 -1
  133. package/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js +0 -1
  134. package/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js +0 -1
  135. package/node_modules/@babel/types/lib/builders/generated/index.js +0 -1
  136. package/node_modules/@babel/types/lib/builders/generated/lowercase.js +0 -1
  137. package/node_modules/@babel/types/lib/builders/generated/uppercase.js +0 -1
  138. package/node_modules/@babel/types/lib/builders/productions.js +0 -1
  139. package/node_modules/@babel/types/lib/builders/react/buildChildren.js +0 -1
  140. package/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js +0 -1
  141. package/node_modules/@babel/types/lib/builders/validateNode.js +0 -1
  142. package/node_modules/@babel/types/lib/clone/clone.js +0 -1
  143. package/node_modules/@babel/types/lib/clone/cloneDeep.js +0 -1
  144. package/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js +0 -1
  145. package/node_modules/@babel/types/lib/clone/cloneNode.js +0 -1
  146. package/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js +0 -1
  147. package/node_modules/@babel/types/lib/comments/addComment.js +0 -1
  148. package/node_modules/@babel/types/lib/comments/addComments.js +0 -1
  149. package/node_modules/@babel/types/lib/comments/inheritInnerComments.js +0 -1
  150. package/node_modules/@babel/types/lib/comments/inheritLeadingComments.js +0 -1
  151. package/node_modules/@babel/types/lib/comments/inheritTrailingComments.js +0 -1
  152. package/node_modules/@babel/types/lib/comments/inheritsComments.js +0 -1
  153. package/node_modules/@babel/types/lib/comments/removeComments.js +0 -1
  154. package/node_modules/@babel/types/lib/constants/generated/index.js +0 -1
  155. package/node_modules/@babel/types/lib/constants/index.js +0 -1
  156. package/node_modules/@babel/types/lib/converters/ensureBlock.js +0 -1
  157. package/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js +0 -1
  158. package/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js +0 -1
  159. package/node_modules/@babel/types/lib/converters/toBlock.js +0 -1
  160. package/node_modules/@babel/types/lib/converters/toComputedKey.js +0 -1
  161. package/node_modules/@babel/types/lib/converters/toExpression.js +0 -1
  162. package/node_modules/@babel/types/lib/converters/toIdentifier.js +0 -1
  163. package/node_modules/@babel/types/lib/converters/toKeyAlias.js +0 -1
  164. package/node_modules/@babel/types/lib/converters/toSequenceExpression.js +0 -1
  165. package/node_modules/@babel/types/lib/converters/toStatement.js +0 -1
  166. package/node_modules/@babel/types/lib/converters/valueToNode.js +0 -1
  167. package/node_modules/@babel/types/lib/definitions/core.js +0 -1
  168. package/node_modules/@babel/types/lib/definitions/deprecated-aliases.js +0 -1
  169. package/node_modules/@babel/types/lib/definitions/experimental.js +0 -1
  170. package/node_modules/@babel/types/lib/definitions/flow.js +0 -1
  171. package/node_modules/@babel/types/lib/definitions/index.js +0 -1
  172. package/node_modules/@babel/types/lib/definitions/jsx.js +0 -1
  173. package/node_modules/@babel/types/lib/definitions/misc.js +0 -1
  174. package/node_modules/@babel/types/lib/definitions/placeholders.js +0 -1
  175. package/node_modules/@babel/types/lib/definitions/typescript.js +0 -1
  176. package/node_modules/@babel/types/lib/definitions/utils.js +0 -1
  177. package/node_modules/@babel/types/lib/index.js +0 -1
  178. package/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js +0 -1
  179. package/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js +0 -1
  180. package/node_modules/@babel/types/lib/modifications/inherits.js +0 -1
  181. package/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js +0 -1
  182. package/node_modules/@babel/types/lib/modifications/removeProperties.js +0 -1
  183. package/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js +0 -1
  184. package/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js +0 -1
  185. package/node_modules/@babel/types/lib/retrievers/getAssignmentIdentifiers.js +0 -1
  186. package/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js +0 -1
  187. package/node_modules/@babel/types/lib/retrievers/getFunctionName.js +0 -1
  188. package/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js +0 -1
  189. package/node_modules/@babel/types/lib/traverse/traverse.js +0 -1
  190. package/node_modules/@babel/types/lib/traverse/traverseFast.js +0 -1
  191. package/node_modules/@babel/types/lib/utils/deprecationWarning.js +0 -1
  192. package/node_modules/@babel/types/lib/utils/inherit.js +0 -1
  193. package/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js +0 -1
  194. package/node_modules/@babel/types/lib/utils/shallowEqual.js +0 -1
  195. package/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js +0 -1
  196. package/node_modules/@babel/types/lib/validators/generated/index.js +0 -1
  197. package/node_modules/@babel/types/lib/validators/is.js +0 -1
  198. package/node_modules/@babel/types/lib/validators/isBinding.js +0 -1
  199. package/node_modules/@babel/types/lib/validators/isBlockScoped.js +0 -1
  200. package/node_modules/@babel/types/lib/validators/isImmutable.js +0 -1
  201. package/node_modules/@babel/types/lib/validators/isLet.js +0 -1
  202. package/node_modules/@babel/types/lib/validators/isNode.js +0 -1
  203. package/node_modules/@babel/types/lib/validators/isNodesEquivalent.js +0 -1
  204. package/node_modules/@babel/types/lib/validators/isPlaceholderType.js +0 -1
  205. package/node_modules/@babel/types/lib/validators/isReferenced.js +0 -1
  206. package/node_modules/@babel/types/lib/validators/isScope.js +0 -1
  207. package/node_modules/@babel/types/lib/validators/isSpecifierDefault.js +0 -1
  208. package/node_modules/@babel/types/lib/validators/isType.js +0 -1
  209. package/node_modules/@babel/types/lib/validators/isValidES3Identifier.js +0 -1
  210. package/node_modules/@babel/types/lib/validators/isValidIdentifier.js +0 -1
  211. package/node_modules/@babel/types/lib/validators/isVar.js +0 -1
  212. package/node_modules/@babel/types/lib/validators/matchesPattern.js +0 -1
  213. package/node_modules/@babel/types/lib/validators/react/isCompatTag.js +0 -1
  214. package/node_modules/@babel/types/lib/validators/react/isReactComponent.js +0 -1
  215. package/node_modules/@babel/types/lib/validators/validate.js +0 -1
  216. package/node_modules/@babylonjs/loaders/BVH/bvhFileLoader.d.ts +69 -0
  217. package/node_modules/@babylonjs/loaders/BVH/bvhFileLoader.js +132 -0
  218. package/node_modules/@babylonjs/loaders/BVH/bvhFileLoader.metadata.d.ts +8 -0
  219. package/node_modules/@babylonjs/loaders/BVH/bvhFileLoader.metadata.js +7 -0
  220. package/node_modules/@babylonjs/loaders/BVH/bvhLoader.d.ts +14 -0
  221. package/node_modules/@babylonjs/loaders/BVH/bvhLoader.js +328 -0
  222. package/node_modules/@babylonjs/loaders/BVH/bvhLoadingOptions.d.ts +9 -0
  223. package/node_modules/@babylonjs/loaders/BVH/bvhLoadingOptions.js +1 -0
  224. package/node_modules/@babylonjs/loaders/BVH/index.d.ts +2 -0
  225. package/node_modules/@babylonjs/loaders/BVH/index.js +3 -0
  226. package/node_modules/@babylonjs/loaders/OBJ/index.d.ts +4 -0
  227. package/node_modules/@babylonjs/loaders/OBJ/index.js +4 -0
  228. package/node_modules/@babylonjs/loaders/OBJ/mtlFileLoader.d.ts +41 -0
  229. package/node_modules/@babylonjs/loaders/OBJ/mtlFileLoader.js +230 -0
  230. package/node_modules/@babylonjs/loaders/OBJ/objFileLoader.d.ts +136 -0
  231. package/node_modules/@babylonjs/loaders/OBJ/objFileLoader.js +317 -0
  232. package/node_modules/@babylonjs/loaders/OBJ/objFileLoader.metadata.d.ts +4 -0
  233. package/node_modules/@babylonjs/loaders/OBJ/objFileLoader.metadata.js +4 -0
  234. package/node_modules/@babylonjs/loaders/OBJ/objLoadingOptions.d.ts +47 -0
  235. package/node_modules/@babylonjs/loaders/OBJ/objLoadingOptions.js +1 -0
  236. package/node_modules/@babylonjs/loaders/OBJ/solidParser.d.ts +175 -0
  237. package/node_modules/@babylonjs/loaders/OBJ/solidParser.js +903 -0
  238. package/node_modules/@babylonjs/loaders/SPLAT/index.d.ts +2 -0
  239. package/node_modules/@babylonjs/loaders/SPLAT/index.js +3 -0
  240. package/node_modules/@babylonjs/loaders/SPLAT/sog.d.ts +84 -0
  241. package/node_modules/@babylonjs/loaders/SPLAT/sog.js +294 -0
  242. package/node_modules/@babylonjs/loaders/SPLAT/splatDefs.d.ts +26 -0
  243. package/node_modules/@babylonjs/loaders/SPLAT/splatDefs.js +10 -0
  244. package/node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.d.ts +100 -0
  245. package/node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.js +536 -0
  246. package/node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.metadata.d.ts +20 -0
  247. package/node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.metadata.js +15 -0
  248. package/node_modules/@babylonjs/loaders/SPLAT/splatLoadingOptions.d.ts +33 -0
  249. package/node_modules/@babylonjs/loaders/SPLAT/splatLoadingOptions.js +1 -0
  250. package/node_modules/@babylonjs/loaders/SPLAT/spz.d.ts +11 -0
  251. package/node_modules/@babylonjs/loaders/SPLAT/spz.js +168 -0
  252. package/node_modules/@babylonjs/loaders/STL/index.d.ts +1 -0
  253. package/node_modules/@babylonjs/loaders/STL/index.js +1 -0
  254. package/node_modules/@babylonjs/loaders/STL/stlFileLoader.d.ts +78 -0
  255. package/node_modules/@babylonjs/loaders/STL/stlFileLoader.js +238 -0
  256. package/node_modules/@babylonjs/loaders/STL/stlFileLoader.metadata.d.ts +8 -0
  257. package/node_modules/@babylonjs/loaders/STL/stlFileLoader.metadata.js +7 -0
  258. package/node_modules/@babylonjs/loaders/bvh/license.md +21 -0
  259. package/node_modules/@babylonjs/loaders/dynamic.d.ts +5 -0
  260. package/node_modules/@babylonjs/loaders/dynamic.js +56 -0
  261. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFBinaryExtension.d.ts +16 -0
  262. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFBinaryExtension.js +64 -0
  263. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoader.d.ts +144 -0
  264. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoader.js +1841 -0
  265. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderInterfaces.d.ts +412 -0
  266. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderInterfaces.js +95 -0
  267. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderUtils.d.ts +71 -0
  268. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderUtils.js +254 -0
  269. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFMaterialsCommonExtension.d.ts +13 -0
  270. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFMaterialsCommonExtension.js +130 -0
  271. package/node_modules/@babylonjs/loaders/glTF/1.0/index.d.ts +5 -0
  272. package/node_modules/@babylonjs/loaders/glTF/1.0/index.js +5 -0
  273. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_area.d.ts +41 -0
  274. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_area.js +93 -0
  275. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_ies.d.ts +41 -0
  276. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_ies.js +83 -0
  277. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_image_based.d.ts +48 -0
  278. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_image_based.js +115 -0
  279. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.d.ts +39 -0
  280. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.js +94 -0
  281. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_meshopt_compression.d.ts +39 -0
  282. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_meshopt_compression.js +50 -0
  283. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_avif.d.ts +34 -0
  284. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_avif.js +38 -0
  285. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_webp.d.ts +33 -0
  286. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_webp.js +37 -0
  287. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/ExtrasAsMetadata.d.ts +53 -0
  288. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/ExtrasAsMetadata.js +73 -0
  289. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.d.ts +47 -0
  290. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.data.d.ts +1 -0
  291. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.data.js +251 -0
  292. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.js +77 -0
  293. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_draco_mesh_compression.d.ts +47 -0
  294. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_draco_mesh_compression.js +92 -0
  295. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/declarationMapper.d.ts +355 -0
  296. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/declarationMapper.js +1678 -0
  297. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/flowGraphGLTFDataProvider.d.ts +33 -0
  298. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/flowGraphGLTFDataProvider.js +19 -0
  299. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/index.d.ts +3 -0
  300. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/index.js +3 -0
  301. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/interactivityGraphParser.d.ts +70 -0
  302. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/interactivityGraphParser.js +438 -0
  303. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity.d.ts +38 -0
  304. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity.js +150 -0
  305. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_lights_punctual.d.ts +41 -0
  306. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_lights_punctual.js +91 -0
  307. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_anisotropy.d.ts +42 -0
  308. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_anisotropy.js +65 -0
  309. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_clearcoat.d.ts +43 -0
  310. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_clearcoat.js +79 -0
  311. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_coat.d.ts +49 -0
  312. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_coat.js +119 -0
  313. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.d.ts +43 -0
  314. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.js +58 -0
  315. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.d.ts +43 -0
  316. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.js +69 -0
  317. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_dispersion.d.ts +43 -0
  318. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_dispersion.js +56 -0
  319. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_emissive_strength.d.ts +42 -0
  320. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_emissive_strength.js +47 -0
  321. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_fuzz.d.ts +43 -0
  322. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_fuzz.js +77 -0
  323. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_ior.d.ts +46 -0
  324. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_ior.js +54 -0
  325. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_iridescence.d.ts +42 -0
  326. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_iridescence.js +68 -0
  327. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.d.ts +42 -0
  328. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.js +80 -0
  329. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_sheen.d.ts +43 -0
  330. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_sheen.js +73 -0
  331. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_specular.d.ts +42 -0
  332. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_specular.js +76 -0
  333. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_transmission.d.ts +42 -0
  334. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_transmission.js +303 -0
  335. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_unlit.d.ts +42 -0
  336. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_unlit.js +66 -0
  337. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_variants.d.ts +112 -0
  338. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_variants.js +262 -0
  339. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume.d.ts +43 -0
  340. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume.js +82 -0
  341. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume_scatter.d.ts +45 -0
  342. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume_scatter.js +109 -0
  343. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_mesh_quantization.d.ts +29 -0
  344. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_mesh_quantization.js +22 -0
  345. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_hoverability.d.ts +31 -0
  346. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_hoverability.js +189 -0
  347. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_selectability.d.ts +30 -0
  348. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_selectability.js +123 -0
  349. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_visibility.d.ts +30 -0
  350. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_visibility.js +66 -0
  351. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_basisu.d.ts +33 -0
  352. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_basisu.js +37 -0
  353. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_transform.d.ts +37 -0
  354. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_transform.js +58 -0
  355. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_xmp_json_ld.d.ts +39 -0
  356. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_xmp_json_ld.js +47 -0
  357. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_audio_emitter.d.ts +56 -0
  358. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_audio_emitter.js +228 -0
  359. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_lod.d.ts +104 -0
  360. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_lod.js +337 -0
  361. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_minecraftMesh.d.ts +27 -0
  362. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_minecraftMesh.js +39 -0
  363. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_sRGBFactors.d.ts +27 -0
  364. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_sRGBFactors.js +38 -0
  365. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/dynamic.d.ts +4 -0
  366. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/dynamic.js +212 -0
  367. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/gltfPathToObjectConverter.d.ts +45 -0
  368. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/gltfPathToObjectConverter.js +100 -0
  369. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/index.d.ts +43 -0
  370. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/index.js +44 -0
  371. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/objectModelMapping.d.ts +306 -0
  372. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/objectModelMapping.js +884 -0
  373. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoader.d.ts +450 -0
  374. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoader.js +2485 -0
  375. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderAnimation.d.ts +42 -0
  376. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderAnimation.js +79 -0
  377. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtension.d.ts +165 -0
  378. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtension.js +1 -0
  379. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtensionRegistry.d.ts +25 -0
  380. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtensionRegistry.js +32 -0
  381. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderInterfaces.d.ts +262 -0
  382. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderInterfaces.js +1 -0
  383. package/node_modules/@babylonjs/loaders/glTF/2.0/index.d.ts +8 -0
  384. package/node_modules/@babylonjs/loaders/glTF/2.0/index.js +9 -0
  385. package/node_modules/@babylonjs/loaders/glTF/2.0/materialLoadingAdapter.d.ts +364 -0
  386. package/node_modules/@babylonjs/loaders/glTF/2.0/materialLoadingAdapter.js +1 -0
  387. package/node_modules/@babylonjs/loaders/glTF/2.0/openpbrMaterialLoadingAdapter.d.ts +674 -0
  388. package/node_modules/@babylonjs/loaders/glTF/2.0/openpbrMaterialLoadingAdapter.js +1034 -0
  389. package/node_modules/@babylonjs/loaders/glTF/2.0/pbrMaterialLoadingAdapter.d.ts +705 -0
  390. package/node_modules/@babylonjs/loaders/glTF/2.0/pbrMaterialLoadingAdapter.js +1126 -0
  391. package/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.d.ts +553 -0
  392. package/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.js +998 -0
  393. package/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.metadata.d.ts +15 -0
  394. package/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.metadata.js +17 -0
  395. package/node_modules/@babylonjs/loaders/glTF/glTFValidation.d.ts +35 -0
  396. package/node_modules/@babylonjs/loaders/glTF/glTFValidation.js +131 -0
  397. package/node_modules/@babylonjs/loaders/glTF/index.d.ts +5 -0
  398. package/node_modules/@babylonjs/loaders/glTF/index.js +6 -0
  399. package/node_modules/@babylonjs/loaders/index.d.ts +6 -0
  400. package/node_modules/@babylonjs/loaders/index.js +7 -0
  401. package/node_modules/@babylonjs/loaders/legacy/legacy-bvhFileLoader.d.ts +1 -0
  402. package/node_modules/@babylonjs/loaders/legacy/legacy-bvhFileLoader.js +15 -0
  403. package/node_modules/@babylonjs/loaders/legacy/legacy-dynamic.d.ts +1 -0
  404. package/node_modules/@babylonjs/loaders/legacy/legacy-dynamic.js +13 -0
  405. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF.d.ts +2 -0
  406. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF.js +18 -0
  407. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF1.d.ts +2 -0
  408. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF1.js +15 -0
  409. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF1FileLoader.d.ts +2 -0
  410. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF1FileLoader.js +3 -0
  411. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF2.d.ts +2 -0
  412. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF2.js +34 -0
  413. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF2FileLoader.d.ts +2 -0
  414. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF2FileLoader.js +3 -0
  415. package/node_modules/@babylonjs/loaders/legacy/legacy-glTFFileLoader.d.ts +3 -0
  416. package/node_modules/@babylonjs/loaders/legacy/legacy-glTFFileLoader.js +4 -0
  417. package/node_modules/@babylonjs/loaders/legacy/legacy-objFileLoader.d.ts +1 -0
  418. package/node_modules/@babylonjs/loaders/legacy/legacy-objFileLoader.js +15 -0
  419. package/node_modules/@babylonjs/loaders/legacy/legacy-stlFileLoader.d.ts +1 -0
  420. package/node_modules/@babylonjs/loaders/legacy/legacy-stlFileLoader.js +15 -0
  421. package/node_modules/@babylonjs/loaders/legacy/legacy.d.ts +8 -0
  422. package/node_modules/@babylonjs/loaders/legacy/legacy.js +10 -0
  423. package/node_modules/@babylonjs/loaders/license.md +71 -0
  424. package/node_modules/@babylonjs/loaders/package.json +49 -0
  425. package/node_modules/@babylonjs/loaders/readme.md +23 -0
  426. package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.d.ts +22 -0
  427. package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.d.ts.map +1 -0
  428. package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.js +187 -0
  429. package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.js.map +1 -0
  430. package/node_modules/@fps-games/babylon-renderer/dist/index.d.ts +3 -0
  431. package/node_modules/@fps-games/babylon-renderer/dist/index.d.ts.map +1 -1
  432. package/node_modules/@fps-games/babylon-renderer/dist/index.js +3 -0
  433. package/node_modules/@fps-games/babylon-renderer/dist/index.js.map +1 -1
  434. package/node_modules/@fps-games/babylon-renderer/dist/material-owner-candidates.d.ts +19 -0
  435. package/node_modules/@fps-games/babylon-renderer/dist/material-owner-candidates.d.ts.map +1 -0
  436. package/node_modules/@fps-games/babylon-renderer/dist/material-owner-candidates.js +212 -0
  437. package/node_modules/@fps-games/babylon-renderer/dist/material-owner-candidates.js.map +1 -0
  438. package/node_modules/@fps-games/babylon-renderer/dist/plugin.d.ts +17 -2
  439. package/node_modules/@fps-games/babylon-renderer/dist/plugin.d.ts.map +1 -1
  440. package/node_modules/@fps-games/babylon-renderer/dist/plugin.js +192 -17
  441. package/node_modules/@fps-games/babylon-renderer/dist/plugin.js.map +1 -1
  442. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.d.ts +2 -0
  443. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.d.ts.map +1 -1
  444. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js +139 -3
  445. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js.map +1 -1
  446. package/node_modules/@fps-games/babylon-renderer/dist/post-process/types.d.ts +4 -0
  447. package/node_modules/@fps-games/babylon-renderer/dist/post-process/types.d.ts.map +1 -1
  448. package/node_modules/@fps-games/babylon-renderer/dist/post-process/types.js.map +1 -1
  449. package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.d.ts +1 -0
  450. package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.d.ts.map +1 -1
  451. package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.js +1 -0
  452. package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.js.map +1 -1
  453. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-generator-shaders.d.ts +14 -0
  454. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-generator-shaders.d.ts.map +1 -0
  455. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-generator-shaders.js +14 -0
  456. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-generator-shaders.js.map +1 -0
  457. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-depth-backend.d.ts +59 -0
  458. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-depth-backend.d.ts.map +1 -0
  459. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-depth-backend.js +725 -0
  460. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-depth-backend.js.map +1 -0
  461. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-system.d.ts +136 -0
  462. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-system.d.ts.map +1 -0
  463. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-system.js +2735 -0
  464. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-system.js.map +1 -0
  465. package/node_modules/@fps-games/babylon-renderer/package.json +7 -7
  466. package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js +1 -1
  467. package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js.map +1 -1
  468. package/node_modules/@fps-games/editor-babylon/dist/index.d.ts +2 -1
  469. package/node_modules/@fps-games/editor-babylon/dist/index.d.ts.map +1 -1
  470. package/node_modules/@fps-games/editor-babylon/dist/index.js +2 -1
  471. package/node_modules/@fps-games/editor-babylon/dist/index.js.map +1 -1
  472. package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.d.ts +2 -0
  473. package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.d.ts.map +1 -1
  474. package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.js +59 -6
  475. package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.js.map +1 -1
  476. package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.d.ts.map +1 -1
  477. package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js +81 -11
  478. package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js.map +1 -1
  479. package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js +2 -8
  480. package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js.map +1 -1
  481. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts +17 -5
  482. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts.map +1 -1
  483. package/node_modules/@fps-games/editor-babylon/dist/projection.js +300 -362
  484. package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
  485. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.d.ts +4 -0
  486. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.d.ts.map +1 -1
  487. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js +76 -10
  488. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js.map +1 -1
  489. package/node_modules/@fps-games/editor-babylon/dist/selection-identity-pass.d.ts +46 -0
  490. package/node_modules/@fps-games/editor-babylon/dist/selection-identity-pass.d.ts.map +1 -0
  491. package/node_modules/@fps-games/editor-babylon/dist/selection-identity-pass.js +304 -0
  492. package/node_modules/@fps-games/editor-babylon/dist/selection-identity-pass.js.map +1 -0
  493. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.d.ts +85 -0
  494. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.d.ts.map +1 -0
  495. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.js +1600 -0
  496. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.js.map +1 -0
  497. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.d.ts +11 -3
  498. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.d.ts.map +1 -1
  499. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js +105 -15
  500. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js.map +1 -1
  501. package/node_modules/@fps-games/editor-babylon/dist/viewport-ground-projection.d.ts +25 -0
  502. package/node_modules/@fps-games/editor-babylon/dist/viewport-ground-projection.d.ts.map +1 -0
  503. package/node_modules/@fps-games/editor-babylon/dist/viewport-ground-projection.js +44 -0
  504. package/node_modules/@fps-games/editor-babylon/dist/viewport-ground-projection.js.map +1 -0
  505. package/node_modules/@fps-games/editor-babylon/package.json +6 -5
  506. package/node_modules/@fps-games/editor-browser/dist/index.d.ts +8 -11
  507. package/node_modules/@fps-games/editor-browser/dist/index.d.ts.map +1 -1
  508. package/node_modules/@fps-games/editor-browser/dist/index.js +6 -9
  509. package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
  510. package/node_modules/@fps-games/editor-browser/dist/local-editor-clipboard.d.ts +2 -0
  511. package/node_modules/@fps-games/editor-browser/dist/local-editor-clipboard.d.ts.map +1 -0
  512. package/node_modules/@fps-games/editor-browser/dist/local-editor-clipboard.js +36 -0
  513. package/node_modules/@fps-games/editor-browser/dist/local-editor-clipboard.js.map +1 -0
  514. package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.d.ts +2 -0
  515. package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.d.ts.map +1 -1
  516. package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.js +17 -0
  517. package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.js.map +1 -1
  518. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.d.ts +1 -1
  519. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.d.ts.map +1 -1
  520. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.js +6 -0
  521. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.js.map +1 -1
  522. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.d.ts.map +1 -1
  523. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.js +157 -77
  524. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.js.map +1 -1
  525. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-dock-panel.d.ts.map +1 -1
  526. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-dock-panel.js +27 -21
  527. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-dock-panel.js.map +1 -1
  528. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.d.ts +19 -0
  529. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.d.ts.map +1 -0
  530. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.js +44 -0
  531. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.js.map +1 -0
  532. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts +36 -6
  533. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts.map +1 -1
  534. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js +829 -866
  535. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js.map +1 -1
  536. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.d.ts +8 -7
  537. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.d.ts.map +1 -1
  538. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.js +1 -7
  539. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.js.map +1 -1
  540. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view-adapter.d.ts +7 -0
  541. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view-adapter.d.ts.map +1 -0
  542. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view-adapter.js +20 -0
  543. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view-adapter.js.map +1 -0
  544. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts +6 -7
  545. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts.map +1 -1
  546. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js +266 -114
  547. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js.map +1 -1
  548. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts +1 -1
  549. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts.map +1 -1
  550. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js +5 -0
  551. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js.map +1 -1
  552. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.d.ts.map +1 -1
  553. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js +3 -17
  554. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js.map +1 -1
  555. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.d.ts +14 -0
  556. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.d.ts.map +1 -1
  557. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.js +44 -62
  558. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.js.map +1 -1
  559. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts +10 -7
  560. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts.map +1 -1
  561. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js +591 -639
  562. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
  563. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.d.ts +8 -36
  564. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.d.ts.map +1 -1
  565. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.js +25 -103
  566. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.js.map +1 -1
  567. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.d.ts.map +1 -1
  568. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.js +29 -110
  569. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.js.map +1 -1
  570. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.d.ts +1 -3
  571. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.d.ts.map +1 -1
  572. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js +6 -90
  573. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js.map +1 -1
  574. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.d.ts.map +1 -1
  575. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js +9 -54
  576. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js.map +1 -1
  577. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.d.ts +16 -1
  578. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.d.ts.map +1 -1
  579. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.js +44 -39
  580. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.js.map +1 -1
  581. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-format.d.ts +4 -0
  582. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-format.d.ts.map +1 -0
  583. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-format.js +44 -0
  584. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-format.js.map +1 -0
  585. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.d.ts.map +1 -1
  586. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.js +35 -44
  587. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.js.map +1 -1
  588. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.d.ts.map +1 -1
  589. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.js +40 -24
  590. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.js.map +1 -1
  591. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.d.ts.map +1 -1
  592. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.js +2 -20
  593. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.js.map +1 -1
  594. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts +52 -341
  595. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts.map +1 -1
  596. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.js.map +1 -1
  597. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.d.ts +4 -14
  598. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.d.ts.map +1 -1
  599. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js +33 -119
  600. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js.map +1 -1
  601. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts +5 -10
  602. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts.map +1 -1
  603. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +595 -544
  604. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
  605. package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.d.ts +2 -3
  606. package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.d.ts.map +1 -1
  607. package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.js +0 -180
  608. package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.js.map +1 -1
  609. package/node_modules/@fps-games/editor-browser/dist/runtime-debug.d.ts +5 -0
  610. package/node_modules/@fps-games/editor-browser/dist/runtime-debug.d.ts.map +1 -0
  611. package/node_modules/@fps-games/editor-browser/dist/runtime-debug.js +5 -0
  612. package/node_modules/@fps-games/editor-browser/dist/runtime-debug.js.map +1 -0
  613. package/node_modules/@fps-games/editor-browser/package.json +15 -4
  614. package/node_modules/@fps-games/editor-core/dist/editor-diagnostic-store.d.ts +22 -0
  615. package/node_modules/@fps-games/editor-core/dist/editor-diagnostic-store.d.ts.map +1 -0
  616. package/node_modules/@fps-games/editor-core/dist/editor-diagnostic-store.js +226 -0
  617. package/node_modules/@fps-games/editor-core/dist/editor-diagnostic-store.js.map +1 -0
  618. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.d.ts +6 -1
  619. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.d.ts.map +1 -1
  620. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js +94 -2
  621. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js.map +1 -1
  622. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts +24 -2
  623. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts.map +1 -1
  624. package/node_modules/@fps-games/editor-core/dist/editor-session.js +70 -10
  625. package/node_modules/@fps-games/editor-core/dist/editor-session.js.map +1 -1
  626. package/node_modules/@fps-games/editor-core/dist/editor-tools.d.ts +112 -0
  627. package/node_modules/@fps-games/editor-core/dist/editor-tools.d.ts.map +1 -0
  628. package/node_modules/@fps-games/editor-core/dist/editor-tools.js +613 -0
  629. package/node_modules/@fps-games/editor-core/dist/editor-tools.js.map +1 -0
  630. package/node_modules/@fps-games/editor-core/dist/inspector.d.ts +46 -0
  631. package/node_modules/@fps-games/editor-core/dist/inspector.d.ts.map +1 -1
  632. package/node_modules/@fps-games/editor-core/dist/inspector.js +62 -0
  633. package/node_modules/@fps-games/editor-core/dist/inspector.js.map +1 -1
  634. package/node_modules/@fps-games/editor-core/dist/scene-graph.d.ts +1 -0
  635. package/node_modules/@fps-games/editor-core/dist/scene-graph.d.ts.map +1 -1
  636. package/node_modules/@fps-games/editor-core/dist/scene-graph.js.map +1 -1
  637. package/node_modules/@fps-games/editor-core/package.json +14 -6
  638. package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
  639. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js +14 -3
  640. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js.map +1 -1
  641. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.d.ts +1 -1
  642. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.d.ts.map +1 -1
  643. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.js +1 -1
  644. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.js.map +1 -1
  645. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts +14 -0
  646. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts.map +1 -1
  647. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js +49 -1
  648. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js.map +1 -1
  649. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.js +58 -2
  650. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.js.map +1 -1
  651. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.d.ts.map +1 -1
  652. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.js +48 -6
  653. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.js.map +1 -1
  654. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.d.ts +28 -3
  655. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.d.ts.map +1 -1
  656. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js +314 -6
  657. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js.map +1 -1
  658. package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.d.ts +2 -0
  659. package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.d.ts.map +1 -1
  660. package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.js +2 -0
  661. package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.js.map +1 -1
  662. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-instance-identity.d.ts +11 -0
  663. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-instance-identity.d.ts.map +1 -0
  664. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-instance-identity.js +27 -0
  665. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-instance-identity.js.map +1 -0
  666. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-marker.d.ts +5 -0
  667. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-marker.d.ts.map +1 -0
  668. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-marker.js +285 -0
  669. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-marker.js.map +1 -0
  670. package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.d.ts +7 -3
  671. package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.d.ts.map +1 -1
  672. package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.js.map +1 -1
  673. package/node_modules/@fps-games/editor-playable-sdk/dist/index.d.ts +3 -0
  674. package/node_modules/@fps-games/editor-playable-sdk/dist/index.d.ts.map +1 -1
  675. package/node_modules/@fps-games/editor-playable-sdk/dist/index.js +6 -0
  676. package/node_modules/@fps-games/editor-playable-sdk/dist/index.js.map +1 -1
  677. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.d.ts.map +1 -1
  678. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.js +23 -81
  679. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.js.map +1 -1
  680. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-manifest.d.ts +41 -0
  681. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-manifest.d.ts.map +1 -0
  682. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-manifest.js +93 -0
  683. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-manifest.js.map +1 -0
  684. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-module.d.ts +29 -0
  685. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-module.d.ts.map +1 -0
  686. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-module.js +77 -0
  687. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-module.js.map +1 -0
  688. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-performance.d.ts +51 -0
  689. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-performance.d.ts.map +1 -0
  690. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-performance.js +105 -0
  691. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-performance.js.map +1 -0
  692. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry.d.ts +60 -0
  693. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry.d.ts.map +1 -0
  694. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry.js +287 -0
  695. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry.js.map +1 -0
  696. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts +6 -1
  697. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts.map +1 -1
  698. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.js.map +1 -1
  699. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts +1 -0
  700. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts.map +1 -1
  701. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js +53 -17
  702. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js.map +1 -1
  703. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.d.ts +16 -8
  704. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.d.ts.map +1 -1
  705. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js +10 -6
  706. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js.map +1 -1
  707. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts +5 -3
  708. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts.map +1 -1
  709. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js +2 -1
  710. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js.map +1 -1
  711. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.d.ts.map +1 -1
  712. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js +134 -66
  713. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js.map +1 -1
  714. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts +11 -0
  715. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts.map +1 -1
  716. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js +21 -14
  717. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js.map +1 -1
  718. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.d.ts +17 -9
  719. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.d.ts.map +1 -1
  720. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.js.map +1 -1
  721. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.d.ts.map +1 -1
  722. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.js +20 -0
  723. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.js.map +1 -1
  724. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.d.ts.map +1 -1
  725. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.js +49 -10
  726. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.js.map +1 -1
  727. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts +2 -2
  728. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts.map +1 -1
  729. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js +18 -0
  730. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js.map +1 -1
  731. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.d.ts +7 -0
  732. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.d.ts.map +1 -1
  733. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.js +130 -20
  734. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.js.map +1 -1
  735. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.d.ts +1 -1
  736. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.d.ts.map +1 -1
  737. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.js +12 -3
  738. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.js.map +1 -1
  739. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/derived-markers.d.ts +11 -0
  740. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/derived-markers.d.ts.map +1 -0
  741. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/derived-markers.js +136 -0
  742. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/derived-markers.js.map +1 -0
  743. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.d.ts +1 -0
  744. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.d.ts.map +1 -1
  745. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.js +1 -0
  746. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.js.map +1 -1
  747. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.d.ts +36 -51
  748. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.d.ts.map +1 -1
  749. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.js +40 -65
  750. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.js.map +1 -1
  751. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.d.ts +5 -2
  752. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.d.ts.map +1 -1
  753. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js +207 -1
  754. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js.map +1 -1
  755. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.d.ts +1 -0
  756. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.d.ts.map +1 -1
  757. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js +3 -0
  758. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js.map +1 -1
  759. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts +18 -7
  760. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts.map +1 -1
  761. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js +110 -18
  762. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js.map +1 -1
  763. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.d.ts +5 -0
  764. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.d.ts.map +1 -1
  765. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.js +6 -0
  766. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.js.map +1 -1
  767. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.d.ts +5 -2
  768. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.d.ts.map +1 -1
  769. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js +22 -2
  770. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js.map +1 -1
  771. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.d.ts.map +1 -1
  772. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js +144 -0
  773. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js.map +1 -1
  774. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.d.ts +16 -0
  775. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.d.ts.map +1 -1
  776. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.js.map +1 -1
  777. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.d.ts.map +1 -1
  778. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js +1 -0
  779. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js.map +1 -1
  780. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.d.ts +2 -1
  781. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.d.ts.map +1 -1
  782. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.js.map +1 -1
  783. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.d.ts +2 -0
  784. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.d.ts.map +1 -1
  785. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js +241 -13
  786. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js.map +1 -1
  787. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.d.ts +1 -0
  788. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.d.ts.map +1 -1
  789. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.js +1 -0
  790. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.js.map +1 -1
  791. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/shadow-map-experiment-migration.d.ts +31 -0
  792. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/shadow-map-experiment-migration.d.ts.map +1 -0
  793. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/shadow-map-experiment-migration.js +170 -0
  794. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/shadow-map-experiment-migration.js.map +1 -0
  795. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.d.ts +153 -13
  796. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.d.ts.map +1 -1
  797. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.js.map +1 -1
  798. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.d.ts +17 -0
  799. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.d.ts.map +1 -1
  800. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.js +1295 -3
  801. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.js.map +1 -1
  802. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.d.ts.map +1 -1
  803. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js +14 -0
  804. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js.map +1 -1
  805. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.d.ts.map +1 -1
  806. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.js +57 -34
  807. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.js.map +1 -1
  808. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.d.ts.map +1 -1
  809. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.js +4 -1
  810. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.js.map +1 -1
  811. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts +4 -0
  812. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts.map +1 -1
  813. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.js.map +1 -1
  814. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.d.ts.map +1 -1
  815. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js +20 -198
  816. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js.map +1 -1
  817. package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy-facade.d.ts.map +1 -1
  818. package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy-facade.js +5 -1
  819. package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy-facade.js.map +1 -1
  820. package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.d.ts +5 -0
  821. package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.d.ts.map +1 -1
  822. package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js +144 -8
  823. package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js.map +1 -1
  824. package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.d.ts +1 -1
  825. package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.d.ts.map +1 -1
  826. package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.js +30 -1
  827. package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.js.map +1 -1
  828. package/node_modules/@fps-games/editor-playable-sdk/dist/session/types.d.ts +6 -0
  829. package/node_modules/@fps-games/editor-playable-sdk/dist/session/types.d.ts.map +1 -1
  830. package/node_modules/@fps-games/editor-playable-sdk/dist/session/types.js.map +1 -1
  831. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js +31 -3
  832. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js.map +1 -1
  833. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts +5 -2
  834. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts.map +1 -1
  835. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js +40 -4
  836. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js.map +1 -1
  837. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts.map +1 -1
  838. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js +116 -3
  839. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js.map +1 -1
  840. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts +2 -1
  841. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts.map +1 -1
  842. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.js +1 -0
  843. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.js.map +1 -1
  844. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts +17 -1
  845. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts.map +1 -1
  846. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js +50 -2
  847. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js.map +1 -1
  848. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts.map +1 -1
  849. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js +7 -5
  850. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js.map +1 -1
  851. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts +5 -6
  852. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts.map +1 -1
  853. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js +31 -17
  854. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js.map +1 -1
  855. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts +6 -0
  856. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts.map +1 -1
  857. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.js.map +1 -1
  858. package/node_modules/@fps-games/editor-playable-sdk/package.json +6 -6
  859. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts +417 -2
  860. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts.map +1 -1
  861. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js +692 -2
  862. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js.map +1 -1
  863. package/node_modules/@fps-games/editor-protocol/dist/editor-diagnostics.d.ts +55 -0
  864. package/node_modules/@fps-games/editor-protocol/dist/editor-diagnostics.d.ts.map +1 -0
  865. package/node_modules/@fps-games/editor-protocol/dist/editor-diagnostics.js +2 -0
  866. package/node_modules/@fps-games/editor-protocol/dist/editor-diagnostics.js.map +1 -0
  867. package/node_modules/@fps-games/editor-protocol/dist/index.d.ts +3 -18
  868. package/node_modules/@fps-games/editor-protocol/dist/index.d.ts.map +1 -1
  869. package/node_modules/@fps-games/editor-protocol/dist/index.js +1 -0
  870. package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -1
  871. package/node_modules/@fps-games/editor-protocol/package.json +2 -2
  872. package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.d.ts.map +1 -1
  873. package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.js +5 -0
  874. package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.js.map +1 -1
  875. package/node_modules/@fps-games/editor-tooling/dist/vite.d.ts.map +1 -1
  876. package/node_modules/@fps-games/editor-tooling/dist/vite.js +151 -5
  877. package/node_modules/@fps-games/editor-tooling/dist/vite.js.map +1 -1
  878. package/node_modules/@fps-games/editor-tooling/package.json +3 -3
  879. package/node_modules/@fps-games/editor-ui/dist/editor-ui-controls.d.ts +107 -0
  880. package/node_modules/@fps-games/editor-ui/dist/editor-ui-controls.d.ts.map +1 -0
  881. package/node_modules/@fps-games/editor-ui/dist/editor-ui-controls.js +770 -0
  882. package/node_modules/@fps-games/editor-ui/dist/editor-ui-controls.js.map +1 -0
  883. package/node_modules/@fps-games/editor-ui/dist/editor-ui-layer-host.d.ts +21 -0
  884. package/node_modules/@fps-games/editor-ui/dist/editor-ui-layer-host.d.ts.map +1 -0
  885. package/node_modules/@fps-games/editor-ui/dist/editor-ui-layer-host.js +172 -0
  886. package/node_modules/@fps-games/editor-ui/dist/editor-ui-layer-host.js.map +1 -0
  887. package/node_modules/@fps-games/editor-ui/dist/editor-ui-shell.d.ts +14 -0
  888. package/node_modules/@fps-games/editor-ui/dist/editor-ui-shell.d.ts.map +1 -0
  889. package/node_modules/@fps-games/editor-ui/dist/editor-ui-shell.js +32 -0
  890. package/node_modules/@fps-games/editor-ui/dist/editor-ui-shell.js.map +1 -0
  891. package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.d.ts +3 -0
  892. package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.d.ts.map +1 -0
  893. package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.js +653 -0
  894. package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.js.map +1 -0
  895. package/node_modules/@fps-games/editor-ui/dist/gallery.d.ts +3 -0
  896. package/node_modules/@fps-games/editor-ui/dist/gallery.d.ts.map +1 -0
  897. package/node_modules/@fps-games/editor-ui/dist/gallery.js +3 -0
  898. package/node_modules/@fps-games/editor-ui/dist/gallery.js.map +1 -0
  899. package/node_modules/@fps-games/editor-ui/dist/index.d.ts +5 -0
  900. package/node_modules/@fps-games/editor-ui/dist/index.d.ts.map +1 -0
  901. package/node_modules/@fps-games/editor-ui/dist/index.js +5 -0
  902. package/node_modules/@fps-games/editor-ui/dist/index.js.map +1 -0
  903. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-model.d.ts +7 -0
  904. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-model.d.ts.map +1 -0
  905. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-model.js +29 -0
  906. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-model.js.map +1 -0
  907. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-styles.d.ts +2 -0
  908. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-styles.d.ts.map +1 -0
  909. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-styles.js +95 -0
  910. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-styles.js.map +1 -0
  911. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery.d.ts +28 -0
  912. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery.d.ts.map +1 -0
  913. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery.js +387 -0
  914. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery.js.map +1 -0
  915. package/node_modules/@fps-games/editor-ui/package.json +23 -0
  916. package/node_modules/@fps-games/playable-assets/package.json +1 -1
  917. package/node_modules/@fps-games/playable-contracts/dist/index.d.ts +1 -0
  918. package/node_modules/@fps-games/playable-contracts/dist/index.d.ts.map +1 -1
  919. package/node_modules/@fps-games/playable-contracts/dist/index.js +1 -0
  920. package/node_modules/@fps-games/playable-contracts/dist/index.js.map +1 -1
  921. package/node_modules/@fps-games/playable-contracts/dist/material-owner.d.ts +116 -0
  922. package/node_modules/@fps-games/playable-contracts/dist/material-owner.d.ts.map +1 -0
  923. package/node_modules/@fps-games/playable-contracts/dist/material-owner.js +403 -0
  924. package/node_modules/@fps-games/playable-contracts/dist/material-owner.js.map +1 -0
  925. package/node_modules/@fps-games/playable-contracts/package.json +1 -1
  926. package/node_modules/@fps-games/playable-rendering/dist/index.d.ts +3 -0
  927. package/node_modules/@fps-games/playable-rendering/dist/index.d.ts.map +1 -1
  928. package/node_modules/@fps-games/playable-rendering/dist/index.js +3 -0
  929. package/node_modules/@fps-games/playable-rendering/dist/index.js.map +1 -1
  930. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-validation.js +5 -25
  931. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-validation.js.map +1 -1
  932. package/node_modules/@fps-games/playable-rendering/dist/runtime.d.ts +3 -0
  933. package/node_modules/@fps-games/playable-rendering/dist/runtime.d.ts.map +1 -1
  934. package/node_modules/@fps-games/playable-rendering/dist/runtime.js +3 -0
  935. package/node_modules/@fps-games/playable-rendering/dist/runtime.js.map +1 -1
  936. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-depth.d.ts +61 -0
  937. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-depth.d.ts.map +1 -0
  938. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-depth.js +176 -0
  939. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-depth.js.map +1 -0
  940. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-lifecycle.d.ts +84 -0
  941. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-lifecycle.d.ts.map +1 -0
  942. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-lifecycle.js +362 -0
  943. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-lifecycle.js.map +1 -0
  944. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment.d.ts +167 -0
  945. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment.d.ts.map +1 -0
  946. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment.js +484 -0
  947. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment.js.map +1 -0
  948. package/node_modules/@fps-games/playable-rendering/package.json +2 -2
  949. package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.d.ts +5 -0
  950. package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.d.ts.map +1 -1
  951. package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.js +1 -0
  952. package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.js.map +1 -1
  953. package/node_modules/@fps-games/playable-runtime/package.json +12 -12
  954. package/node_modules/@fps-games/playable-runtime-data/package.json +4 -4
  955. package/node_modules/@fps-games/playable-scene/package.json +2 -2
  956. package/node_modules/@fps-games/plugin-api/package.json +1 -1
  957. package/node_modules/@fps-games/plugin-assets/dist/version.d.ts +1 -1
  958. package/node_modules/@fps-games/plugin-assets/dist/version.js +1 -1
  959. package/node_modules/@fps-games/plugin-assets/dist/version.js.map +1 -1
  960. package/node_modules/@fps-games/plugin-assets/package.json +5 -5
  961. package/node_modules/@fps-games/plugin-hierarchy/dist/editor.d.ts +6 -0
  962. package/node_modules/@fps-games/plugin-hierarchy/dist/editor.d.ts.map +1 -0
  963. package/node_modules/@fps-games/plugin-hierarchy/dist/editor.js +16 -0
  964. package/node_modules/@fps-games/plugin-hierarchy/dist/editor.js.map +1 -0
  965. package/node_modules/@fps-games/plugin-hierarchy/dist/integration.d.ts +7 -0
  966. package/node_modules/@fps-games/plugin-hierarchy/dist/integration.d.ts.map +1 -0
  967. package/node_modules/@fps-games/plugin-hierarchy/dist/integration.js +47 -0
  968. package/node_modules/@fps-games/plugin-hierarchy/dist/integration.js.map +1 -0
  969. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.d.ts +306 -0
  970. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.d.ts.map +1 -0
  971. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.js +1237 -0
  972. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.js.map +1 -0
  973. package/node_modules/@fps-games/plugin-hierarchy/dist/reference.d.ts +8 -0
  974. package/node_modules/@fps-games/plugin-hierarchy/dist/reference.d.ts.map +1 -0
  975. package/node_modules/@fps-games/plugin-hierarchy/dist/reference.js +32 -0
  976. package/node_modules/@fps-games/plugin-hierarchy/dist/reference.js.map +1 -0
  977. package/node_modules/@fps-games/plugin-hierarchy/dist/version.d.ts +2 -0
  978. package/node_modules/@fps-games/plugin-hierarchy/dist/version.d.ts.map +1 -0
  979. package/node_modules/@fps-games/plugin-hierarchy/dist/version.js +2 -0
  980. package/node_modules/@fps-games/plugin-hierarchy/dist/version.js.map +1 -0
  981. package/node_modules/@fps-games/plugin-hierarchy/package.json +57 -0
  982. package/node_modules/@fps-games/plugin-host/package.json +2 -2
  983. package/node_modules/@fps-games/plugin-markers/dist/version.d.ts +1 -1
  984. package/node_modules/@fps-games/plugin-markers/dist/version.js +1 -1
  985. package/node_modules/@fps-games/plugin-markers/dist/version.js.map +1 -1
  986. package/node_modules/@fps-games/plugin-markers/package.json +5 -5
  987. package/node_modules/@fps-games/plugin-materials/dist/version.d.ts +1 -1
  988. package/node_modules/@fps-games/plugin-materials/dist/version.js +1 -1
  989. package/node_modules/@fps-games/plugin-materials/dist/version.js.map +1 -1
  990. package/node_modules/@fps-games/plugin-materials/package.json +5 -5
  991. package/node_modules/@fps-games/plugin-rendering/dist/version.d.ts +1 -1
  992. package/node_modules/@fps-games/plugin-rendering/dist/version.js +1 -1
  993. package/node_modules/@fps-games/plugin-rendering/dist/version.js.map +1 -1
  994. package/node_modules/@fps-games/plugin-rendering/package.json +5 -5
  995. package/node_modules/@fps-games/plugin-scene/dist/version.d.ts +1 -1
  996. package/node_modules/@fps-games/plugin-scene/dist/version.js +1 -1
  997. package/node_modules/@fps-games/plugin-scene/dist/version.js.map +1 -1
  998. package/node_modules/@fps-games/plugin-scene/package.json +5 -5
  999. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/reference.d.ts +8 -0
  1000. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/reference.d.ts.map +1 -0
  1001. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/reference.js +35 -0
  1002. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/reference.js.map +1 -0
  1003. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/runtime.d.ts +11 -0
  1004. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/runtime.d.ts.map +1 -0
  1005. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/runtime.js +14 -0
  1006. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/runtime.js.map +1 -0
  1007. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.d.ts +2 -0
  1008. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.d.ts.map +1 -0
  1009. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.js +2 -0
  1010. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.js.map +1 -0
  1011. package/node_modules/@fps-games/plugin-shadow-map-experiment/package.json +53 -0
  1012. package/node_modules/@fps-games/plugin-shadows/dist/version.d.ts +1 -1
  1013. package/node_modules/@fps-games/plugin-shadows/dist/version.js +1 -1
  1014. package/node_modules/@fps-games/plugin-shadows/dist/version.js.map +1 -1
  1015. package/node_modules/@fps-games/plugin-shadows/package.json +7 -7
  1016. package/node_modules/@playcanvas/observer/LICENSE +19 -0
  1017. package/node_modules/@playcanvas/observer/README.md +72 -0
  1018. package/node_modules/@playcanvas/observer/dist/index.cjs +2033 -0
  1019. package/node_modules/@playcanvas/observer/dist/index.js +2039 -0
  1020. package/node_modules/@playcanvas/observer/dist/index.mjs +2026 -0
  1021. package/node_modules/@playcanvas/observer/package.json +78 -0
  1022. package/node_modules/@playcanvas/observer/types/event-handle.d.ts +41 -0
  1023. package/node_modules/@playcanvas/observer/types/events.d.ts +162 -0
  1024. package/node_modules/@playcanvas/observer/types/history.d.ts +123 -0
  1025. package/node_modules/@playcanvas/observer/types/index.d.ts +15 -0
  1026. package/node_modules/@playcanvas/observer/types/observer-history.d.ts +32 -0
  1027. package/node_modules/@playcanvas/observer/types/observer-list.d.ts +39 -0
  1028. package/node_modules/@playcanvas/observer/types/observer.d.ts +157 -0
  1029. package/node_modules/@playcanvas/observer/types/utils.d.ts +33 -0
  1030. package/node_modules/@playcanvas/pcui/LICENSE +19 -0
  1031. package/node_modules/@playcanvas/pcui/README.md +164 -0
  1032. package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/constants.mjs +6 -0
  1033. package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve-evaluator.mjs +119 -0
  1034. package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve-set.mjs +82 -0
  1035. package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve.mjs +92 -0
  1036. package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/math.mjs +105 -0
  1037. package/node_modules/@playcanvas/pcui/dist/module/src/Math/color-value.mjs +77 -0
  1038. package/node_modules/@playcanvas/pcui/dist/module/src/binding/BindingBase/index.mjs +215 -0
  1039. package/node_modules/@playcanvas/pcui/dist/module/src/binding/BindingElementToObservers/index.mjs +297 -0
  1040. package/node_modules/@playcanvas/pcui/dist/module/src/binding/BindingObserversToElement/index.mjs +110 -0
  1041. package/node_modules/@playcanvas/pcui/dist/module/src/binding/BindingTwoWay/index.mjs +113 -0
  1042. package/node_modules/@playcanvas/pcui/dist/module/src/class.mjs +19 -0
  1043. package/node_modules/@playcanvas/pcui/dist/module/src/components/ArrayInput/index.mjs +498 -0
  1044. package/node_modules/@playcanvas/pcui/dist/module/src/components/BooleanInput/index.mjs +122 -0
  1045. package/node_modules/@playcanvas/pcui/dist/module/src/components/Button/index.mjs +119 -0
  1046. package/node_modules/@playcanvas/pcui/dist/module/src/components/Canvas/index.mjs +104 -0
  1047. package/node_modules/@playcanvas/pcui/dist/module/src/components/Code/index.mjs +43 -0
  1048. package/node_modules/@playcanvas/pcui/dist/module/src/components/ColorPicker/index.mjs +619 -0
  1049. package/node_modules/@playcanvas/pcui/dist/module/src/components/Container/index.mjs +642 -0
  1050. package/node_modules/@playcanvas/pcui/dist/module/src/components/Divider/index.mjs +20 -0
  1051. package/node_modules/@playcanvas/pcui/dist/module/src/components/Element/index.mjs +829 -0
  1052. package/node_modules/@playcanvas/pcui/dist/module/src/components/GradientPicker/index.mjs +1136 -0
  1053. package/node_modules/@playcanvas/pcui/dist/module/src/components/GridView/index.mjs +448 -0
  1054. package/node_modules/@playcanvas/pcui/dist/module/src/components/GridViewItem/index.mjs +152 -0
  1055. package/node_modules/@playcanvas/pcui/dist/module/src/components/InfoBox/index.mjs +90 -0
  1056. package/node_modules/@playcanvas/pcui/dist/module/src/components/InputElement/index.mjs +186 -0
  1057. package/node_modules/@playcanvas/pcui/dist/module/src/components/Label/index.mjs +124 -0
  1058. package/node_modules/@playcanvas/pcui/dist/module/src/components/LabelGroup/index.mjs +74 -0
  1059. package/node_modules/@playcanvas/pcui/dist/module/src/components/Menu/index.mjs +174 -0
  1060. package/node_modules/@playcanvas/pcui/dist/module/src/components/MenuItem/index.mjs +223 -0
  1061. package/node_modules/@playcanvas/pcui/dist/module/src/components/NumericInput/index.mjs +400 -0
  1062. package/node_modules/@playcanvas/pcui/dist/module/src/components/Overlay/index.mjs +108 -0
  1063. package/node_modules/@playcanvas/pcui/dist/module/src/components/Panel/index.mjs +400 -0
  1064. package/node_modules/@playcanvas/pcui/dist/module/src/components/Progress/index.mjs +45 -0
  1065. package/node_modules/@playcanvas/pcui/dist/module/src/components/RadioButton/index.mjs +113 -0
  1066. package/node_modules/@playcanvas/pcui/dist/module/src/components/SelectInput/index.mjs +1085 -0
  1067. package/node_modules/@playcanvas/pcui/dist/module/src/components/SliderInput/index.mjs +333 -0
  1068. package/node_modules/@playcanvas/pcui/dist/module/src/components/Spinner/index.mjs +34 -0
  1069. package/node_modules/@playcanvas/pcui/dist/module/src/components/TextAreaInput/index.mjs +50 -0
  1070. package/node_modules/@playcanvas/pcui/dist/module/src/components/TextInput/index.mjs +98 -0
  1071. package/node_modules/@playcanvas/pcui/dist/module/src/components/TreeView/index.mjs +1131 -0
  1072. package/node_modules/@playcanvas/pcui/dist/module/src/components/TreeViewItem/index.mjs +500 -0
  1073. package/node_modules/@playcanvas/pcui/dist/module/src/components/VectorInput/index.mjs +366 -0
  1074. package/node_modules/@playcanvas/pcui/dist/module/src/helpers/search.mjs +194 -0
  1075. package/node_modules/@playcanvas/pcui/dist/module/src/helpers/utils.mjs +43 -0
  1076. package/node_modules/@playcanvas/pcui/dist/module/src/index.mjs +56 -0
  1077. package/node_modules/@playcanvas/pcui/dist/pcui-theme-green.scss +2798 -0
  1078. package/node_modules/@playcanvas/pcui/dist/pcui-theme-grey.scss +2798 -0
  1079. package/node_modules/@playcanvas/pcui/package.json +150 -0
  1080. package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/constants.mjs +6 -0
  1081. package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve-evaluator.mjs +119 -0
  1082. package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve-set.mjs +82 -0
  1083. package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve.mjs +92 -0
  1084. package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/math.mjs +105 -0
  1085. package/node_modules/@playcanvas/pcui/react/dist/module/src/Math/color-value.mjs +77 -0
  1086. package/node_modules/@playcanvas/pcui/react/dist/module/src/binding/BindingBase/index.mjs +215 -0
  1087. package/node_modules/@playcanvas/pcui/react/dist/module/src/binding/BindingElementToObservers/index.mjs +297 -0
  1088. package/node_modules/@playcanvas/pcui/react/dist/module/src/binding/BindingObserversToElement/index.mjs +110 -0
  1089. package/node_modules/@playcanvas/pcui/react/dist/module/src/binding/BindingTwoWay/index.mjs +113 -0
  1090. package/node_modules/@playcanvas/pcui/react/dist/module/src/class.mjs +19 -0
  1091. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/ArrayInput/component.mjs +11 -0
  1092. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/ArrayInput/index.mjs +498 -0
  1093. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/BooleanInput/component.mjs +11 -0
  1094. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/BooleanInput/index.mjs +122 -0
  1095. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Button/component.mjs +16 -0
  1096. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Button/index.mjs +119 -0
  1097. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Canvas/component.mjs +16 -0
  1098. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Canvas/index.mjs +104 -0
  1099. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Code/component.mjs +11 -0
  1100. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Code/index.mjs +43 -0
  1101. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/ColorPicker/component.mjs +16 -0
  1102. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/ColorPicker/index.mjs +619 -0
  1103. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Container/component.mjs +36 -0
  1104. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Container/index.mjs +642 -0
  1105. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Divider/component.mjs +11 -0
  1106. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Divider/index.mjs +20 -0
  1107. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Element/component.mjs +107 -0
  1108. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Element/index.mjs +829 -0
  1109. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GradientPicker/component.mjs +16 -0
  1110. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GradientPicker/index.mjs +1136 -0
  1111. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GridView/component.mjs +38 -0
  1112. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GridView/index.mjs +448 -0
  1113. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GridViewItem/component.mjs +11 -0
  1114. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GridViewItem/index.mjs +152 -0
  1115. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/InfoBox/component.mjs +16 -0
  1116. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/InfoBox/index.mjs +90 -0
  1117. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/InputElement/index.mjs +186 -0
  1118. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Label/component.mjs +16 -0
  1119. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Label/index.mjs +124 -0
  1120. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/LabelGroup/component.mjs +42 -0
  1121. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/LabelGroup/index.mjs +74 -0
  1122. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Menu/component.mjs +23 -0
  1123. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Menu/index.mjs +174 -0
  1124. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/MenuItem/index.mjs +223 -0
  1125. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/NumericInput/component.mjs +11 -0
  1126. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/NumericInput/index.mjs +400 -0
  1127. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Overlay/component.mjs +11 -0
  1128. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Overlay/index.mjs +108 -0
  1129. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Panel/component.mjs +32 -0
  1130. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Panel/index.mjs +400 -0
  1131. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Progress/component.mjs +11 -0
  1132. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Progress/index.mjs +45 -0
  1133. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/RadioButton/component.mjs +11 -0
  1134. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/RadioButton/index.mjs +113 -0
  1135. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/SelectInput/component.mjs +21 -0
  1136. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/SelectInput/index.mjs +1085 -0
  1137. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/SliderInput/component.mjs +12 -0
  1138. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/SliderInput/index.mjs +333 -0
  1139. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Spinner/component.mjs +16 -0
  1140. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Spinner/index.mjs +34 -0
  1141. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TextAreaInput/component.mjs +11 -0
  1142. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TextAreaInput/index.mjs +50 -0
  1143. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TextInput/component.mjs +23 -0
  1144. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TextInput/index.mjs +98 -0
  1145. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TreeView/component.mjs +52 -0
  1146. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TreeView/index.mjs +1131 -0
  1147. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TreeViewItem/component.mjs +33 -0
  1148. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TreeViewItem/index.mjs +500 -0
  1149. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/VectorInput/component.mjs +11 -0
  1150. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/VectorInput/index.mjs +366 -0
  1151. package/node_modules/@playcanvas/pcui/react/dist/module/src/helpers/search.mjs +194 -0
  1152. package/node_modules/@playcanvas/pcui/react/dist/module/src/helpers/utils.mjs +43 -0
  1153. package/node_modules/@playcanvas/pcui/react/dist/module/src/index.mjs +39 -0
  1154. package/node_modules/@playcanvas/pcui/react/package.json +18 -0
  1155. package/node_modules/@playcanvas/pcui/react/types/Math/color-value.d.ts +3 -0
  1156. package/node_modules/@playcanvas/pcui/react/types/binding/BindingBase/index.d.ts +178 -0
  1157. package/node_modules/@playcanvas/pcui/react/types/binding/BindingElementToObservers/index.d.ts +24 -0
  1158. package/node_modules/@playcanvas/pcui/react/types/binding/BindingObserversToElement/index.d.ts +40 -0
  1159. package/node_modules/@playcanvas/pcui/react/types/binding/BindingTwoWay/index.d.ts +54 -0
  1160. package/node_modules/@playcanvas/pcui/react/types/binding/index.d.ts +5 -0
  1161. package/node_modules/@playcanvas/pcui/react/types/class.d.ts +17 -0
  1162. package/node_modules/@playcanvas/pcui/react/types/components/ArrayInput/component.d.ts +9 -0
  1163. package/node_modules/@playcanvas/pcui/react/types/components/ArrayInput/index.d.ts +140 -0
  1164. package/node_modules/@playcanvas/pcui/react/types/components/BooleanInput/component.d.ts +9 -0
  1165. package/node_modules/@playcanvas/pcui/react/types/components/BooleanInput/index.d.ts +41 -0
  1166. package/node_modules/@playcanvas/pcui/react/types/components/Button/component.d.ts +11 -0
  1167. package/node_modules/@playcanvas/pcui/react/types/components/Button/index.d.ts +75 -0
  1168. package/node_modules/@playcanvas/pcui/react/types/components/Canvas/component.d.ts +11 -0
  1169. package/node_modules/@playcanvas/pcui/react/types/components/Canvas/index.d.ts +61 -0
  1170. package/node_modules/@playcanvas/pcui/react/types/components/Code/component.d.ts +9 -0
  1171. package/node_modules/@playcanvas/pcui/react/types/components/Code/index.d.ts +33 -0
  1172. package/node_modules/@playcanvas/pcui/react/types/components/ColorPicker/component.d.ts +11 -0
  1173. package/node_modules/@playcanvas/pcui/react/types/components/ColorPicker/index.d.ts +99 -0
  1174. package/node_modules/@playcanvas/pcui/react/types/components/Container/component.d.ts +15 -0
  1175. package/node_modules/@playcanvas/pcui/react/types/components/Container/index.d.ts +292 -0
  1176. package/node_modules/@playcanvas/pcui/react/types/components/Divider/component.d.ts +10 -0
  1177. package/node_modules/@playcanvas/pcui/react/types/components/Divider/index.d.ts +13 -0
  1178. package/node_modules/@playcanvas/pcui/react/types/components/Element/component.d.ts +23 -0
  1179. package/node_modules/@playcanvas/pcui/react/types/components/Element/index.d.ts +671 -0
  1180. package/node_modules/@playcanvas/pcui/react/types/components/GradientPicker/component.d.ts +11 -0
  1181. package/node_modules/@playcanvas/pcui/react/types/components/GradientPicker/index.d.ts +152 -0
  1182. package/node_modules/@playcanvas/pcui/react/types/components/GridView/component.d.ts +14 -0
  1183. package/node_modules/@playcanvas/pcui/react/types/components/GridView/index.d.ts +103 -0
  1184. package/node_modules/@playcanvas/pcui/react/types/components/GridViewItem/component.d.ts +9 -0
  1185. package/node_modules/@playcanvas/pcui/react/types/components/GridViewItem/index.d.ts +82 -0
  1186. package/node_modules/@playcanvas/pcui/react/types/components/InfoBox/component.d.ts +11 -0
  1187. package/node_modules/@playcanvas/pcui/react/types/components/InfoBox/index.d.ts +71 -0
  1188. package/node_modules/@playcanvas/pcui/react/types/components/InputElement/index.d.ts +84 -0
  1189. package/node_modules/@playcanvas/pcui/react/types/components/Label/component.d.ts +11 -0
  1190. package/node_modules/@playcanvas/pcui/react/types/components/Label/index.d.ts +85 -0
  1191. package/node_modules/@playcanvas/pcui/react/types/components/LabelGroup/component.d.ts +10 -0
  1192. package/node_modules/@playcanvas/pcui/react/types/components/LabelGroup/index.d.ts +62 -0
  1193. package/node_modules/@playcanvas/pcui/react/types/components/Menu/component.d.ts +14 -0
  1194. package/node_modules/@playcanvas/pcui/react/types/components/Menu/index.d.ts +70 -0
  1195. package/node_modules/@playcanvas/pcui/react/types/components/MenuItem/index.d.ts +139 -0
  1196. package/node_modules/@playcanvas/pcui/react/types/components/NumericInput/component.d.ts +9 -0
  1197. package/node_modules/@playcanvas/pcui/react/types/components/NumericInput/index.d.ts +173 -0
  1198. package/node_modules/@playcanvas/pcui/react/types/components/Overlay/component.d.ts +9 -0
  1199. package/node_modules/@playcanvas/pcui/react/types/components/Overlay/index.d.ts +53 -0
  1200. package/node_modules/@playcanvas/pcui/react/types/components/Panel/component.d.ts +16 -0
  1201. package/node_modules/@playcanvas/pcui/react/types/components/Panel/index.d.ts +178 -0
  1202. package/node_modules/@playcanvas/pcui/react/types/components/Progress/component.d.ts +9 -0
  1203. package/node_modules/@playcanvas/pcui/react/types/components/Progress/index.d.ts +33 -0
  1204. package/node_modules/@playcanvas/pcui/react/types/components/RadioButton/component.d.ts +9 -0
  1205. package/node_modules/@playcanvas/pcui/react/types/components/RadioButton/index.d.ts +33 -0
  1206. package/node_modules/@playcanvas/pcui/react/types/components/SelectInput/component.d.ts +12 -0
  1207. package/node_modules/@playcanvas/pcui/react/types/components/SelectInput/index.d.ts +278 -0
  1208. package/node_modules/@playcanvas/pcui/react/types/components/SliderInput/component.d.ts +10 -0
  1209. package/node_modules/@playcanvas/pcui/react/types/components/SliderInput/index.d.ts +133 -0
  1210. package/node_modules/@playcanvas/pcui/react/types/components/Spinner/component.d.ts +11 -0
  1211. package/node_modules/@playcanvas/pcui/react/types/components/Spinner/index.d.ts +27 -0
  1212. package/node_modules/@playcanvas/pcui/react/types/components/TextAreaInput/component.d.ts +9 -0
  1213. package/node_modules/@playcanvas/pcui/react/types/components/TextAreaInput/index.d.ts +24 -0
  1214. package/node_modules/@playcanvas/pcui/react/types/components/TextInput/component.d.ts +12 -0
  1215. package/node_modules/@playcanvas/pcui/react/types/components/TextInput/index.d.ts +40 -0
  1216. package/node_modules/@playcanvas/pcui/react/types/components/TreeView/component.d.ts +17 -0
  1217. package/node_modules/@playcanvas/pcui/react/types/components/TreeView/index.d.ts +359 -0
  1218. package/node_modules/@playcanvas/pcui/react/types/components/TreeViewItem/component.d.ts +13 -0
  1219. package/node_modules/@playcanvas/pcui/react/types/components/TreeViewItem/index.d.ts +224 -0
  1220. package/node_modules/@playcanvas/pcui/react/types/components/VectorInput/component.d.ts +9 -0
  1221. package/node_modules/@playcanvas/pcui/react/types/components/VectorInput/index.d.ts +176 -0
  1222. package/node_modules/@playcanvas/pcui/react/types/components/components.d.ts +30 -0
  1223. package/node_modules/@playcanvas/pcui/react/types/components/index.d.ts +32 -0
  1224. package/node_modules/@playcanvas/pcui/react/types/helpers/search.d.ts +31 -0
  1225. package/node_modules/@playcanvas/pcui/react/types/helpers/utils.d.ts +2 -0
  1226. package/node_modules/@playcanvas/pcui/react/types/index.d.ts +4 -0
  1227. package/node_modules/@playcanvas/pcui/styles/dist/index.mjs +11 -0
  1228. package/node_modules/@playcanvas/pcui/styles/package.json +17 -0
  1229. package/node_modules/@playcanvas/pcui/types/Math/color-value.d.ts +3 -0
  1230. package/node_modules/@playcanvas/pcui/types/binding/BindingBase/index.d.ts +178 -0
  1231. package/node_modules/@playcanvas/pcui/types/binding/BindingElementToObservers/index.d.ts +24 -0
  1232. package/node_modules/@playcanvas/pcui/types/binding/BindingObserversToElement/index.d.ts +40 -0
  1233. package/node_modules/@playcanvas/pcui/types/binding/BindingTwoWay/index.d.ts +54 -0
  1234. package/node_modules/@playcanvas/pcui/types/binding/index.d.ts +5 -0
  1235. package/node_modules/@playcanvas/pcui/types/class.d.ts +17 -0
  1236. package/node_modules/@playcanvas/pcui/types/components/ArrayInput/index.d.ts +140 -0
  1237. package/node_modules/@playcanvas/pcui/types/components/BooleanInput/index.d.ts +41 -0
  1238. package/node_modules/@playcanvas/pcui/types/components/Button/index.d.ts +75 -0
  1239. package/node_modules/@playcanvas/pcui/types/components/Canvas/index.d.ts +61 -0
  1240. package/node_modules/@playcanvas/pcui/types/components/Code/index.d.ts +33 -0
  1241. package/node_modules/@playcanvas/pcui/types/components/ColorPicker/index.d.ts +99 -0
  1242. package/node_modules/@playcanvas/pcui/types/components/Container/index.d.ts +292 -0
  1243. package/node_modules/@playcanvas/pcui/types/components/Divider/index.d.ts +13 -0
  1244. package/node_modules/@playcanvas/pcui/types/components/Element/index.d.ts +671 -0
  1245. package/node_modules/@playcanvas/pcui/types/components/GradientPicker/index.d.ts +152 -0
  1246. package/node_modules/@playcanvas/pcui/types/components/GridView/index.d.ts +103 -0
  1247. package/node_modules/@playcanvas/pcui/types/components/GridViewItem/index.d.ts +82 -0
  1248. package/node_modules/@playcanvas/pcui/types/components/InfoBox/index.d.ts +71 -0
  1249. package/node_modules/@playcanvas/pcui/types/components/InputElement/index.d.ts +84 -0
  1250. package/node_modules/@playcanvas/pcui/types/components/Label/index.d.ts +85 -0
  1251. package/node_modules/@playcanvas/pcui/types/components/LabelGroup/index.d.ts +62 -0
  1252. package/node_modules/@playcanvas/pcui/types/components/Menu/index.d.ts +70 -0
  1253. package/node_modules/@playcanvas/pcui/types/components/MenuItem/index.d.ts +139 -0
  1254. package/node_modules/@playcanvas/pcui/types/components/NumericInput/index.d.ts +173 -0
  1255. package/node_modules/@playcanvas/pcui/types/components/Overlay/index.d.ts +53 -0
  1256. package/node_modules/@playcanvas/pcui/types/components/Panel/index.d.ts +178 -0
  1257. package/node_modules/@playcanvas/pcui/types/components/Progress/index.d.ts +33 -0
  1258. package/node_modules/@playcanvas/pcui/types/components/RadioButton/index.d.ts +33 -0
  1259. package/node_modules/@playcanvas/pcui/types/components/SelectInput/index.d.ts +278 -0
  1260. package/node_modules/@playcanvas/pcui/types/components/SliderInput/index.d.ts +133 -0
  1261. package/node_modules/@playcanvas/pcui/types/components/Spinner/index.d.ts +27 -0
  1262. package/node_modules/@playcanvas/pcui/types/components/TextAreaInput/index.d.ts +24 -0
  1263. package/node_modules/@playcanvas/pcui/types/components/TextInput/index.d.ts +40 -0
  1264. package/node_modules/@playcanvas/pcui/types/components/TreeView/index.d.ts +359 -0
  1265. package/node_modules/@playcanvas/pcui/types/components/TreeViewItem/index.d.ts +224 -0
  1266. package/node_modules/@playcanvas/pcui/types/components/VectorInput/index.d.ts +176 -0
  1267. package/node_modules/@playcanvas/pcui/types/components/index.d.ts +32 -0
  1268. package/node_modules/@playcanvas/pcui/types/helpers/search.d.ts +31 -0
  1269. package/node_modules/@playcanvas/pcui/types/helpers/utils.d.ts +2 -0
  1270. package/node_modules/@playcanvas/pcui/types/index.d.ts +20 -0
  1271. package/node_modules/babylonjs-gltf2interface/babylon.glTF2Interface.d.ts +1655 -0
  1272. package/node_modules/babylonjs-gltf2interface/license.md +71 -0
  1273. package/node_modules/babylonjs-gltf2interface/package.json +26 -0
  1274. package/package.json +31 -19
  1275. package/dist/editor-plugin-hierarchy-command.d.ts +0 -19
  1276. package/dist/editor-plugin-hierarchy-command.d.ts.map +0 -1
  1277. package/dist/editor-plugin-hierarchy-command.js +0 -119
  1278. package/dist/editor-plugin-hierarchy-command.js.map +0 -1
  1279. package/node_modules/@babel/helper-string-parser/lib/index.js.map +0 -1
  1280. package/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map +0 -1
  1281. package/node_modules/@babel/helper-validator-identifier/lib/index.js.map +0 -1
  1282. package/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map +0 -1
  1283. package/node_modules/@babel/parser/lib/index.js.map +0 -1
  1284. package/node_modules/@babel/types/lib/asserts/assertNode.js.map +0 -1
  1285. package/node_modules/@babel/types/lib/asserts/generated/index.js.map +0 -1
  1286. package/node_modules/@babel/types/lib/ast-types/generated/index.js.map +0 -1
  1287. package/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js.map +0 -1
  1288. package/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js.map +0 -1
  1289. package/node_modules/@babel/types/lib/builders/generated/index.js.map +0 -1
  1290. package/node_modules/@babel/types/lib/builders/generated/lowercase.js.map +0 -1
  1291. package/node_modules/@babel/types/lib/builders/generated/uppercase.js.map +0 -1
  1292. package/node_modules/@babel/types/lib/builders/productions.js.map +0 -1
  1293. package/node_modules/@babel/types/lib/builders/react/buildChildren.js.map +0 -1
  1294. package/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js.map +0 -1
  1295. package/node_modules/@babel/types/lib/builders/validateNode.js.map +0 -1
  1296. package/node_modules/@babel/types/lib/clone/clone.js.map +0 -1
  1297. package/node_modules/@babel/types/lib/clone/cloneDeep.js.map +0 -1
  1298. package/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js.map +0 -1
  1299. package/node_modules/@babel/types/lib/clone/cloneNode.js.map +0 -1
  1300. package/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js.map +0 -1
  1301. package/node_modules/@babel/types/lib/comments/addComment.js.map +0 -1
  1302. package/node_modules/@babel/types/lib/comments/addComments.js.map +0 -1
  1303. package/node_modules/@babel/types/lib/comments/inheritInnerComments.js.map +0 -1
  1304. package/node_modules/@babel/types/lib/comments/inheritLeadingComments.js.map +0 -1
  1305. package/node_modules/@babel/types/lib/comments/inheritTrailingComments.js.map +0 -1
  1306. package/node_modules/@babel/types/lib/comments/inheritsComments.js.map +0 -1
  1307. package/node_modules/@babel/types/lib/comments/removeComments.js.map +0 -1
  1308. package/node_modules/@babel/types/lib/constants/generated/index.js.map +0 -1
  1309. package/node_modules/@babel/types/lib/constants/index.js.map +0 -1
  1310. package/node_modules/@babel/types/lib/converters/ensureBlock.js.map +0 -1
  1311. package/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js.map +0 -1
  1312. package/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js.map +0 -1
  1313. package/node_modules/@babel/types/lib/converters/toBlock.js.map +0 -1
  1314. package/node_modules/@babel/types/lib/converters/toComputedKey.js.map +0 -1
  1315. package/node_modules/@babel/types/lib/converters/toExpression.js.map +0 -1
  1316. package/node_modules/@babel/types/lib/converters/toIdentifier.js.map +0 -1
  1317. package/node_modules/@babel/types/lib/converters/toKeyAlias.js.map +0 -1
  1318. package/node_modules/@babel/types/lib/converters/toSequenceExpression.js.map +0 -1
  1319. package/node_modules/@babel/types/lib/converters/toStatement.js.map +0 -1
  1320. package/node_modules/@babel/types/lib/converters/valueToNode.js.map +0 -1
  1321. package/node_modules/@babel/types/lib/definitions/core.js.map +0 -1
  1322. package/node_modules/@babel/types/lib/definitions/deprecated-aliases.js.map +0 -1
  1323. package/node_modules/@babel/types/lib/definitions/experimental.js.map +0 -1
  1324. package/node_modules/@babel/types/lib/definitions/flow.js.map +0 -1
  1325. package/node_modules/@babel/types/lib/definitions/index.js.map +0 -1
  1326. package/node_modules/@babel/types/lib/definitions/jsx.js.map +0 -1
  1327. package/node_modules/@babel/types/lib/definitions/misc.js.map +0 -1
  1328. package/node_modules/@babel/types/lib/definitions/placeholders.js.map +0 -1
  1329. package/node_modules/@babel/types/lib/definitions/typescript.js.map +0 -1
  1330. package/node_modules/@babel/types/lib/definitions/utils.js.map +0 -1
  1331. package/node_modules/@babel/types/lib/index.js.map +0 -1
  1332. package/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js.map +0 -1
  1333. package/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js.map +0 -1
  1334. package/node_modules/@babel/types/lib/modifications/inherits.js.map +0 -1
  1335. package/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js.map +0 -1
  1336. package/node_modules/@babel/types/lib/modifications/removeProperties.js.map +0 -1
  1337. package/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js.map +0 -1
  1338. package/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js.map +0 -1
  1339. package/node_modules/@babel/types/lib/retrievers/getAssignmentIdentifiers.js.map +0 -1
  1340. package/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js.map +0 -1
  1341. package/node_modules/@babel/types/lib/retrievers/getFunctionName.js.map +0 -1
  1342. package/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js.map +0 -1
  1343. package/node_modules/@babel/types/lib/traverse/traverse.js.map +0 -1
  1344. package/node_modules/@babel/types/lib/traverse/traverseFast.js.map +0 -1
  1345. package/node_modules/@babel/types/lib/utils/deprecationWarning.js.map +0 -1
  1346. package/node_modules/@babel/types/lib/utils/inherit.js.map +0 -1
  1347. package/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js.map +0 -1
  1348. package/node_modules/@babel/types/lib/utils/shallowEqual.js.map +0 -1
  1349. package/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js.map +0 -1
  1350. package/node_modules/@babel/types/lib/validators/generated/index.js.map +0 -1
  1351. package/node_modules/@babel/types/lib/validators/is.js.map +0 -1
  1352. package/node_modules/@babel/types/lib/validators/isBinding.js.map +0 -1
  1353. package/node_modules/@babel/types/lib/validators/isBlockScoped.js.map +0 -1
  1354. package/node_modules/@babel/types/lib/validators/isImmutable.js.map +0 -1
  1355. package/node_modules/@babel/types/lib/validators/isLet.js.map +0 -1
  1356. package/node_modules/@babel/types/lib/validators/isNode.js.map +0 -1
  1357. package/node_modules/@babel/types/lib/validators/isNodesEquivalent.js.map +0 -1
  1358. package/node_modules/@babel/types/lib/validators/isPlaceholderType.js.map +0 -1
  1359. package/node_modules/@babel/types/lib/validators/isReferenced.js.map +0 -1
  1360. package/node_modules/@babel/types/lib/validators/isScope.js.map +0 -1
  1361. package/node_modules/@babel/types/lib/validators/isSpecifierDefault.js.map +0 -1
  1362. package/node_modules/@babel/types/lib/validators/isType.js.map +0 -1
  1363. package/node_modules/@babel/types/lib/validators/isValidES3Identifier.js.map +0 -1
  1364. package/node_modules/@babel/types/lib/validators/isValidIdentifier.js.map +0 -1
  1365. package/node_modules/@babel/types/lib/validators/isVar.js.map +0 -1
  1366. package/node_modules/@babel/types/lib/validators/matchesPattern.js.map +0 -1
  1367. package/node_modules/@babel/types/lib/validators/react/isCompatTag.js.map +0 -1
  1368. package/node_modules/@babel/types/lib/validators/react/isReactComponent.js.map +0 -1
  1369. package/node_modules/@babel/types/lib/validators/validate.js.map +0 -1
  1370. package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.d.ts +0 -37
  1371. package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.d.ts.map +0 -1
  1372. package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.js +0 -451
  1373. package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.js.map +0 -1
  1374. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.d.ts +0 -49
  1375. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.d.ts.map +0 -1
  1376. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js +0 -627
  1377. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js.map +0 -1
  1378. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.d.ts +0 -52
  1379. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.d.ts.map +0 -1
  1380. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.js +0 -450
  1381. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.js.map +0 -1
  1382. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.d.ts +0 -21
  1383. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.d.ts.map +0 -1
  1384. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.js +0 -75
  1385. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.js.map +0 -1
  1386. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.d.ts +0 -7
  1387. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.d.ts.map +0 -1
  1388. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.js +0 -186
  1389. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.js.map +0 -1
  1390. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.d.ts +0 -5
  1391. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.d.ts.map +0 -1
  1392. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js +0 -98
  1393. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js.map +0 -1
  1394. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.d.ts +0 -63
  1395. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.d.ts.map +0 -1
  1396. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js +0 -301
  1397. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"panel.js","sourceRoot":"","sources":["../../src/rendering-profile/panel.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n EDITOR_SHADOW_STATIC_AUTHORING_ENABLED,\n} from '@fps-games/playable-rendering';\nimport type {\n EditorSceneRenderingPanelLanguage,\n EditorSceneRenderingPanelOptions,\n EditorSceneRenderingPanelState,\n EditorSceneRenderingPanelStateInput,\n EditorSceneRenderingProperty,\n EditorSceneRenderingProfile,\n EditorSceneRenderingGroupSlot,\n EditorSceneRenderingProgress,\n EditorSceneRenderingSystemDetail,\n EditorSceneStaticShadowBakeLifecycleState,\n EditorSceneRenderingTextureAsset,\n} from './types';\n\nconst SHADOW_RENDERING_GROUP_BLOB = {\n id: 'shadow-group-moving-object',\n label: 'Moving Object Shadows',\n summary: 'Blob: lightweight for moving objects and project-default fallback.',\n};\n\nconst SHADOW_RENDERING_GROUP_STATIC = {\n id: 'shadow-group-static-scene',\n label: 'Static Scene Shadows',\n summary: 'Consumes baked artifacts; update during authoring/build, runtime only displays results.',\n};\n\nconst SHADOW_RENDERING_GROUP_PLANAR = {\n id: 'shadow-group-directional-planar',\n label: 'Directional Planar Shadows',\n summary: 'Real-time planar projection following the directional light.',\n};\n\nconst SHADOW_RENDERING_GROUP_COMPAT = {\n id: 'shadow-group-compatibility',\n label: 'Advanced Shadows',\n summary: 'CSM read-only runtime status.',\n};\n\nexport function createEditorSceneRenderingPanelState(\n profile: EditorSceneRenderingProfile,\n state: EditorSceneRenderingPanelStateInput = {},\n options: EditorSceneRenderingPanelOptions = {},\n): EditorSceneRenderingPanelState {\n const blob = profile.shadows.blob;\n const staticProjected = profile.shadows.staticProjected;\n const planar = profile.shadows.planar;\n const environment = profile.environment;\n const postProcess = profile.postProcess;\n const dirty = state.dirty === true;\n const lastError = state.lastError ?? null;\n const language = options.language ?? 'en';\n const staticShadowBake = resolveStaticShadowBakeLifecycleState(state.staticShadowBake, staticProjected.enabled);\n const staticShadowStatus = formatStaticShadowBakeLifecycleStatus(staticShadowBake, language);\n const staticShadowBakeInProgress = staticShadowBake.status === 'baking';\n const panel: EditorSceneRenderingPanelState = {\n title: 'Rendering',\n summary: 'Project-level rendering settings shared by editor preview and runtime.',\n dirty,\n status: lastError ?? (dirty ? 'Rendering changes are not saved yet.' : undefined),\n statusTone: lastError ? 'error' : dirty ? 'warning' : undefined,\n actions: [{\n id: 'revert-rendering',\n label: 'Revert',\n icon: 'undo',\n disabled: !dirty,\n tooltip: dirty\n ? 'Revert rendering settings to the last saved rendering settings.'\n : 'Rendering settings already match the last saved rendering settings.',\n }],\n sections: [createRenderingGroupsSection(profile.renderingGroups.slots), {\n id: 'environment',\n title: 'Environment / IBL',\n summary: 'World environment texture and reflection lighting shared by editor preview and runtime.',\n systems: [\n {\n id: 'environment-global',\n label: 'Environment Texture',\n kind: 'environment',\n active: !!environment.texture,\n summary: environment.texture?.textureAssetId ?? environment.texture?.url ?? 'No IBL texture',\n properties: [\n {\n path: 'globalVolume.environment.texture.textureAssetId',\n label: 'IBL Texture',\n valueType: 'asset',\n control: 'asset-picker-card',\n value: environment.texture?.textureAssetId ?? '',\n tooltip: 'Select a project texture asset for Babylon scene.environmentTexture. Prefer prefiltered .env environment textures.',\n commitMode: 'immediate',\n controlOptions: createEnvironmentTexturePickerControlOptions({\n textureAssets: options.textureAssets,\n currentTextureAssetId: environment.texture?.textureAssetId ?? '',\n fallbackUrl: environment.texture?.url ?? '',\n language: options.language ?? 'en',\n }),\n },\n {\n path: 'globalVolume.environment.iblIntensity',\n label: 'IBL Intensity',\n valueType: 'number',\n control: 'number',\n value: environment.iblIntensity,\n min: 0,\n step: 0.05,\n tooltip: 'Environment reflection intensity for PBR materials.',\n commitMode: 'live',\n },\n {\n path: 'globalVolume.environment.rotationY',\n label: 'IBL Rotation',\n valueType: 'number',\n control: 'number',\n value: environment.rotationY,\n step: 0.01,\n tooltip: 'Y-axis rotation applied to the environment texture.',\n commitMode: 'live',\n },\n ],\n },\n ],\n }, {\n id: 'post-process',\n title: 'Post Process Volume',\n summary: 'Global Babylon Default post-process profile shared by editor preview and runtime.',\n systems: [\n {\n id: 'post-process-global',\n label: 'Global',\n kind: 'custom',\n active: postProcess.enabled,\n summary: 'Babylon Default',\n properties: [\n {\n path: 'globalVolume.enabled',\n label: 'Enabled',\n valueType: 'boolean',\n control: 'boolean',\n value: postProcess.enabled,\n tooltip: 'Enable the shared post-process pipeline.',\n commitMode: 'immediate',\n },\n {\n path: 'globalVolume.hdr',\n label: 'HDR',\n valueType: 'boolean',\n control: 'boolean',\n value: postProcess.hdr,\n tooltip: 'Use HDR render targets for the default post-process pipeline.',\n commitMode: 'immediate',\n },\n {\n path: 'globalVolume.imageProcessing.exposure',\n label: 'Exposure',\n valueType: 'number',\n control: 'number',\n value: postProcess.imageProcessing.exposure,\n min: 0,\n step: 0.01,\n tooltip: 'Image processing exposure multiplier.',\n commitMode: 'live',\n },\n {\n path: 'globalVolume.imageProcessing.contrast',\n label: 'Contrast',\n valueType: 'number',\n control: 'number',\n value: postProcess.imageProcessing.contrast,\n min: 0,\n step: 0.01,\n tooltip: 'Image processing contrast multiplier.',\n commitMode: 'live',\n },\n {\n path: 'globalVolume.toneMapping.enabled',\n label: 'ToneMapping',\n valueType: 'boolean',\n control: 'boolean',\n value: postProcess.toneMapping.enabled,\n tooltip: 'Enable tone mapping in the default post-process pipeline.',\n commitMode: 'immediate',\n },\n {\n path: 'globalVolume.toneMapping.type',\n label: 'Tone Type',\n valueType: 'enum',\n control: 'enum',\n value: postProcess.toneMapping.type,\n options: [\n { label: 'ACES', value: 'aces' },\n { label: 'Standard', value: 'standard' },\n { label: 'KHR PBR Neutral', value: 'khr-pbr-neutral' },\n ],\n tooltip: 'Tone mapping curve used by the default post-process pipeline.',\n commitMode: 'immediate',\n },\n {\n path: 'globalVolume.antialiasing.samples',\n label: 'MSAA Samples',\n valueType: 'enum',\n control: 'enum',\n value: postProcess.antialiasing.samples,\n options: [\n { label: '1', value: 1 },\n { label: '2', value: 2 },\n { label: '4', value: 4 },\n { label: '8', value: 8 },\n ],\n tooltip: 'MSAA sample count for the default post-process pipeline.',\n commitMode: 'immediate',\n },\n {\n path: 'globalVolume.postProcessing.bloom.enabled',\n label: 'Bloom',\n valueType: 'boolean',\n control: 'boolean',\n value: postProcess.bloom.enabled,\n tooltip: 'Enable bloom in the shared default post-process pipeline.',\n commitMode: 'immediate',\n },\n {\n path: 'globalVolume.postProcessing.bloom.threshold',\n label: 'Bloom Threshold',\n valueType: 'number',\n control: 'number',\n value: postProcess.bloom.threshold,\n min: 0,\n step: 0.01,\n tooltip: 'Brightness threshold before pixels contribute to bloom.',\n commitMode: 'live',\n },\n {\n path: 'globalVolume.postProcessing.bloom.weight',\n label: 'Bloom Weight',\n valueType: 'number',\n control: 'number',\n value: postProcess.bloom.weight,\n min: 0,\n step: 0.01,\n tooltip: 'Bloom contribution weight.',\n commitMode: 'live',\n },\n {\n path: 'globalVolume.postProcessing.bloom.kernel',\n label: 'Bloom Kernel',\n valueType: 'number',\n control: 'number',\n value: postProcess.bloom.kernel,\n min: 0,\n step: 1,\n tooltip: 'Bloom blur kernel size.',\n commitMode: 'live',\n },\n {\n path: 'globalVolume.postProcessing.bloom.scale',\n label: 'Bloom Scale',\n valueType: 'number',\n control: 'number',\n value: postProcess.bloom.scale,\n min: 0.01,\n step: 0.01,\n tooltip: 'Bloom render scale.',\n commitMode: 'live',\n },\n ],\n },\n ],\n }, {\n id: 'shadows',\n title: 'Shadows',\n summary: 'Global shadow systems for editor preview and runtime.',\n layout: 'list',\n systemsCollapsible: true,\n systems: [\n {\n id: 'blob-shadow',\n label: 'Blob Shadow',\n kind: 'blob-shadow',\n group: { ...SHADOW_RENDERING_GROUP_BLOB },\n active: blob.enabled,\n summary: 'Default object shadow',\n properties: [\n {\n path: 'shadows.defaultMode',\n label: 'Default Mode',\n valueType: 'enum',\n control: 'enum',\n value: profile.shadows.defaultMode,\n options: createShadowDefaultModeOptions(options.language ?? 'en'),\n tooltip: 'Default shadow mode for GameObjects that use the project default.',\n commitMode: 'immediate',\n },\n {\n path: 'shadows.blob.enabled',\n label: 'Enabled',\n valueType: 'boolean',\n control: 'boolean',\n value: blob.enabled,\n tooltip: 'Enable the shared blob shadow system.',\n commitMode: 'immediate',\n },\n {\n path: 'shadows.blob.appearance.color',\n label: 'Color',\n valueType: 'color',\n control: 'color',\n value: blob.appearance.color,\n tooltip: 'Blob shadow RGB color. Opacity is edited separately.',\n commitMode: 'immediate',\n },\n {\n path: 'shadows.blob.appearance.color.a',\n label: 'Opacity',\n valueType: 'number',\n control: 'number',\n value: blob.appearance.color.a,\n min: 0,\n max: 1,\n step: 0.01,\n tooltip: 'Blob shadow opacity, clamped between 0 and 1.',\n commitMode: 'live',\n },\n {\n path: 'shadows.blob.appearance.edgeSoftness',\n label: 'Soft Edge',\n valueType: 'number',\n control: 'number',\n value: blob.appearance.edgeSoftness,\n min: 0,\n max: 0.98,\n step: 0.01,\n tooltip: 'Blob shadow soft edge start. Higher values keep the center denser before fading out.',\n commitMode: 'live',\n },\n {\n path: 'shadows.blob.plane.height',\n label: 'Height',\n valueType: 'number',\n control: 'number',\n value: blob.plane.height,\n step: 0.01,\n unit: 'm',\n tooltip: 'Ground plane height used by blob shadows.',\n commitMode: 'live',\n },\n {\n path: 'shadows.blob.plane.yOffset',\n label: 'Y Offset',\n valueType: 'number',\n control: 'number',\n value: blob.plane.yOffset,\n min: 0,\n step: 0.01,\n unit: 'm',\n tooltip: 'Vertical offset above the blob shadow plane to reduce z-fighting.',\n commitMode: 'live',\n },\n {\n path: 'shadows.blob.size.sizeMultiplier',\n label: 'Size Multiplier',\n valueType: 'number',\n control: 'number',\n value: blob.size.sizeMultiplier,\n min: 0,\n step: 0.01,\n tooltip: 'Scale blob shadow size from each caster bounds.',\n commitMode: 'live',\n },\n {\n path: 'shadows.blob.size.minSize',\n label: 'Min Size',\n valueType: 'number',\n control: 'number',\n value: blob.size.minSize,\n min: 0,\n step: 0.01,\n unit: 'm',\n tooltip: 'Minimum blob shadow size for tiny objects.',\n commitMode: 'live',\n },\n {\n path: 'shadows.blob.size.maxSize',\n label: 'Max Size',\n valueType: 'number',\n control: 'number',\n value: blob.size.maxSize,\n min: 0.01,\n step: 0.01,\n unit: 'm',\n tooltip: 'Maximum blob shadow size for large objects.',\n commitMode: 'live',\n },\n ],\n },\n {\n id: 'static-projected-shadow',\n label: 'Static Baked Shadow',\n kind: 'static-projected-shadow',\n group: { ...SHADOW_RENDERING_GROUP_STATIC },\n active: staticProjected.enabled,\n summary: staticShadowStatus.summary,\n status: staticShadowStatus.status,\n details: createStaticShadowBakeDetails(staticShadowBake, language),\n progress: staticShadowStatus.progress,\n actions: [{\n id: 'bake-static-shadows',\n label: 'Bake Static Shadows',\n icon: 'save',\n disabled: !staticProjected.enabled || staticShadowBakeInProgress,\n tooltip: staticShadowBakeInProgress\n ? 'Static shadow bake is already running.'\n : staticProjected.enabled\n ? 'Bake static shadow chunks for objects authored as Static Baked Shadow.'\n : 'Enable Static Baked Shadow before baking.',\n }],\n properties: [\n {\n path: 'shadows.staticProjected.enabled',\n label: 'Enabled',\n valueType: 'boolean',\n control: 'boolean',\n value: staticProjected.enabled,\n tooltip: 'Enable the shared static projected shadow system.',\n commitMode: 'immediate',\n },\n {\n path: 'shadows.staticProjected.appearance.color',\n label: 'Color',\n valueType: 'color',\n control: 'color',\n value: staticProjected.appearance.color,\n tooltip: 'Static shadow RGB color. Opacity is edited separately.',\n commitMode: 'immediate',\n },\n {\n path: 'shadows.staticProjected.appearance.color.a',\n label: 'Opacity',\n valueType: 'number',\n control: 'number',\n value: staticProjected.appearance.color.a,\n min: 0,\n max: 1,\n step: 0.01,\n tooltip: 'Static shadow opacity, clamped between 0 and 1.',\n commitMode: 'live',\n },\n {\n path: 'shadows.staticProjected.plane.height',\n label: 'Height',\n valueType: 'number',\n control: 'number',\n value: staticProjected.plane.height,\n step: 0.01,\n unit: 'm',\n tooltip: 'Ground plane height used by static projected shadows.',\n commitMode: 'live',\n },\n {\n path: 'shadows.staticProjected.plane.yOffset',\n label: 'Y Offset',\n valueType: 'number',\n control: 'number',\n value: staticProjected.plane.yOffset,\n min: 0,\n step: 0.01,\n unit: 'm',\n tooltip: 'Vertical offset above the static shadow plane to reduce z-fighting.',\n commitMode: 'live',\n },\n {\n path: 'shadows.staticProjected.bake.texelsPerMeter',\n label: 'Texels per Meter',\n valueType: 'number',\n control: 'number',\n value: staticProjected.bake.texelsPerMeter,\n min: 1,\n step: 1,\n tooltip: 'Target SDF atlas texel density for baked static shadows.',\n commitMode: 'blur',\n },\n {\n path: 'shadows.staticProjected.bake.atlasSize',\n label: 'Atlas Size',\n valueType: 'number',\n control: 'number',\n value: staticProjected.bake.atlasSize,\n min: 16,\n step: 1,\n tooltip: 'Maximum width and height for each static shadow atlas page.',\n commitMode: 'blur',\n },\n {\n path: 'shadows.staticProjected.bake.maxAtlasPages',\n label: 'Page Budget',\n valueType: 'number',\n control: 'number',\n value: staticProjected.bake.maxAtlasPages,\n min: 1,\n step: 1,\n tooltip: 'Maximum atlas pages allowed before bake lowers the effective texel density.',\n commitMode: 'blur',\n },\n {\n path: 'shadows.staticProjected.bake.sdfRadiusPx',\n label: 'SDF Radius',\n valueType: 'number',\n control: 'number',\n value: staticProjected.bake.sdfRadiusPx,\n min: 0,\n step: 1,\n tooltip: 'Signed-distance radius in pixels used to preserve crisp controllable edges.',\n commitMode: 'blur',\n },\n {\n path: 'shadows.staticProjected.bake.padding',\n label: 'Padding',\n valueType: 'number',\n control: 'number',\n value: staticProjected.bake.padding,\n min: 0,\n step: 0.01,\n tooltip: 'Extra projected bounds padding before baking the static shadow.',\n commitMode: 'live',\n },\n {\n path: 'shadows.staticProjected.bake.blur',\n label: 'Blur',\n valueType: 'number',\n control: 'number',\n value: staticProjected.bake.blur,\n min: 0,\n step: 0.5,\n tooltip: 'Reserved blur radius for static shadow bake softness.',\n commitMode: 'live',\n },\n {\n path: 'shadows.staticProjected.bake.spatialChunkSize',\n label: 'Spatial Chunk Size',\n valueType: 'number',\n control: 'number',\n value: staticProjected.bake.spatialChunkSize,\n min: 0.01,\n step: 0.01,\n unit: 'm',\n tooltip: 'World size of each spatial bake chunk before atlas packing.',\n commitMode: 'live',\n },\n {\n path: 'shadows.staticProjected.bake.targetChunkCount',\n label: 'Target Chunks',\n valueType: 'number',\n control: 'number',\n value: staticProjected.bake.targetChunkCount,\n min: 1,\n step: 1,\n tooltip: 'Soft chunk-count budget. Large scenes automatically enlarge spatial chunks to stay near this target.',\n commitMode: 'blur',\n },\n ],\n },\n {\n id: 'planar-main',\n label: 'Planar Main',\n kind: 'planar-shadow',\n group: { ...SHADOW_RENDERING_GROUP_PLANAR },\n active: planar.enabled,\n summary: 'Follow Directional Light',\n properties: [\n {\n path: 'shadows.planar.enabled',\n label: 'Enabled',\n valueType: 'boolean',\n control: 'boolean',\n value: planar.enabled,\n tooltip: 'Enable the shared planar shadow system.',\n commitMode: 'immediate',\n },\n {\n path: 'shadows.planar.appearance.color',\n label: 'Color',\n valueType: 'color',\n control: 'color',\n value: planar.appearance.color,\n tooltip: 'Planar shadow RGB color. Opacity is edited separately.',\n commitMode: 'immediate',\n },\n {\n path: 'shadows.planar.appearance.color.a',\n label: 'Opacity',\n valueType: 'number',\n control: 'number',\n value: planar.appearance.color.a,\n min: 0,\n max: 1,\n step: 0.01,\n tooltip: 'Planar shadow opacity, clamped between 0 and 1.',\n commitMode: 'live',\n },\n {\n path: 'shadows.planar.plane.heightMode',\n label: 'Height Source',\n valueType: 'string',\n control: 'readonly',\n value: planar.plane.heightMode === 'receiver' ? 'Auto from Receivers' : 'Fixed Height',\n readOnly: true,\n tooltip: 'Planar shadow receiver height is resolved from matched receiver meshes when available.',\n },\n {\n path: 'shadows.planar.plane.height',\n label: 'Fallback Height',\n valueType: 'number',\n control: 'number',\n value: planar.plane.height,\n step: 0.01,\n unit: 'm',\n tooltip: 'Fallback receiver plane height, used only when no receiver mesh can be resolved.',\n commitMode: 'live',\n },\n {\n path: 'shadows.planar.plane.bias',\n label: 'Bias',\n valueType: 'number',\n control: 'number',\n value: planar.plane.bias,\n min: 0,\n step: 0.01,\n tooltip: 'Projection bias used to keep the planar shadow stable.',\n commitMode: 'live',\n },\n {\n path: 'shadows.planar.projection.footprintScale',\n label: 'Footprint Scale',\n valueType: 'number',\n control: 'number',\n value: planar.projection.footprintScale,\n min: 0,\n max: 2,\n step: 0.01,\n tooltip: 'Scale the projected footprint around the caster center; lower values reduce hard-edged mesh projection artifacts.',\n commitMode: 'live',\n },\n {\n path: 'shadows.planar.stencil.enabled',\n label: 'Stencil',\n valueType: 'boolean',\n control: 'boolean',\n value: planar.stencil.enabled,\n tooltip: 'Use stencil routing so shadows affect only receivers.',\n commitMode: 'immediate',\n },\n {\n path: 'shadows.planar.casters.excludePatterns',\n label: 'Caster Excludes',\n valueType: 'string-list',\n control: 'string-list',\n value: planar.casters.excludePatterns,\n placeholder: 'One pattern per line',\n tooltip: 'Meshes matching these patterns will not cast planar shadows.',\n commitMode: 'blur',\n },\n {\n path: 'shadows.planar.casters.rootBoundaryPatterns',\n label: 'Caster Roots',\n valueType: 'string-list',\n control: 'string-list',\n value: planar.casters.rootBoundaryPatterns,\n placeholder: 'One pattern per line',\n tooltip: 'Optional root boundary patterns for caster auto-detection.',\n commitMode: 'blur',\n },\n {\n path: 'shadows.planar.receivers.patterns',\n label: 'Receivers',\n valueType: 'string-list',\n control: 'string-list',\n value: planar.receivers.patterns,\n placeholder: 'One pattern per line',\n tooltip: 'Meshes matching these patterns can receive planar shadows.',\n commitMode: 'blur',\n },\n {\n path: 'shadows.planar.direction',\n label: 'Direction',\n valueType: 'string',\n control: 'readonly',\n value: 'Follow Directional Light',\n readOnly: true,\n tooltip: 'Shadow direction is derived from the protected Directional Light.',\n },\n ],\n },\n {\n id: 'csm-shadow',\n label: 'CSM',\n kind: 'csm-shadow',\n group: { ...SHADOW_RENDERING_GROUP_COMPAT },\n active: profile.shadows.enabled && profile.shadows.useCsm && !planar.enabled,\n readOnly: true,\n summary: profile.shadows.useCsm ? 'Compatibility path' : 'Disabled',\n properties: [\n createReadonlyRenderingProperty('shadows.useCsm', 'Enabled', profile.shadows.useCsm),\n createReadonlyRenderingProperty('shadows.csm.numCascades', 'Cascades', profile.shadows.csm.numCascades),\n createReadonlyRenderingProperty('shadows.csm.lambda', 'Lambda', profile.shadows.csm.lambda),\n ],\n },\n ],\n }],\n };\n return localizeRenderingPanelState(\n hideDisabledShadowAuthoringSystems(panel),\n language,\n dirty,\n );\n}\n\nfunction resolveStaticShadowBakeLifecycleState(\n state: EditorSceneStaticShadowBakeLifecycleState | null | undefined,\n enabled: boolean,\n): EditorSceneStaticShadowBakeLifecycleState {\n if (!enabled) {\n return {\n status: 'disabled',\n chunkCount: 0,\n };\n }\n return state ?? {\n status: 'missing',\n chunkCount: 0,\n };\n}\n\nfunction hideDisabledShadowAuthoringSystems(\n panel: EditorSceneRenderingPanelState,\n): EditorSceneRenderingPanelState {\n if (EDITOR_SHADOW_STATIC_AUTHORING_ENABLED) return panel;\n return {\n ...panel,\n sections: panel.sections.map(section => ({\n ...section,\n systems: section.systems.filter(system => system.id !== 'static-projected-shadow'),\n })),\n };\n}\n\nfunction formatStaticShadowBakeLifecycleStatus(\n state: EditorSceneStaticShadowBakeLifecycleState,\n language: EditorSceneRenderingPanelLanguage,\n): { summary: string; status: string; progress?: EditorSceneRenderingProgress } {\n const chunkCount = Math.max(0, Math.trunc(state.chunkCount ?? 0));\n const chunkText = language === 'zh'\n ? `${chunkCount} 个分块`\n : `${chunkCount} chunk${chunkCount === 1 ? '' : 's'}`;\n if (state.status === 'baking') {\n const progress = state.progress ?? {\n label: language === 'zh' ? '正在烘焙静态阴影' : 'Baking static shadows',\n indeterminate: true,\n };\n return {\n summary: language === 'zh' ? '正在烘焙' : 'Baking',\n status: language === 'zh'\n ? formatChineseStaticShadowBakingStatus(state)\n : state.reason ?? 'Baking static shadow artifact.',\n progress: {\n ...progress,\n label: language === 'zh' ? formatChineseStaticShadowProgressLabel(state) : progress.label,\n },\n };\n }\n if (state.status === 'disabled') {\n const fallback = 'Static Baked Shadow is disabled.';\n return {\n summary: language === 'zh' ? '已禁用' : 'Disabled',\n status: resolveLocalizedStaticShadowStatusReason(\n state.reason,\n fallback,\n '静态烘焙阴影已禁用。',\n language,\n ),\n };\n }\n if (state.status === 'missing') {\n const fallback = 'No static shadow bake artifact is available.';\n return {\n summary: language === 'zh' ? '缺少烘焙' : 'Missing bake',\n status: resolveLocalizedStaticShadowStatusReason(\n state.reason,\n fallback,\n '当前没有可用的静态阴影烘焙数据。',\n language,\n ),\n };\n }\n if (state.status === 'preview-unsaved') {\n const fallback = 'Static shadow preview has not been saved yet.';\n return {\n summary: language === 'zh' ? `预览未保存 · ${chunkText}` : `Preview unsaved · ${chunkText}`,\n status: resolveLocalizedStaticShadowStatusReason(\n state.reason,\n fallback,\n '静态阴影预览尚未保存。',\n language,\n ),\n };\n }\n if (state.status === 'out-of-date') {\n const fallback = 'Static shadow bake is out of date.';\n return {\n summary: language === 'zh' ? `已过期 · ${chunkText}` : `Out of date · ${chunkText}`,\n status: resolveLocalizedStaticShadowStatusReason(\n state.reason,\n fallback,\n '静态阴影烘焙已过期。',\n language,\n ),\n };\n }\n if (state.status === 'invalid') {\n const fallback = 'Static shadow bake artifact is invalid.';\n return {\n summary: language === 'zh' ? '烘焙无效' : 'Invalid bake',\n status: resolveLocalizedStaticShadowStatusReason(\n state.reason,\n fallback,\n '静态阴影烘焙数据无效。',\n language,\n ),\n };\n }\n const fallback = 'Static shadow bake artifact is up to date.';\n if (chunkCount === 0) {\n return {\n summary: language === 'zh' ? '无静态投射物' : 'No static casters',\n status: resolveLocalizedStaticShadowStatusReason(\n state.reason,\n fallback,\n '没有物体被显式设置为静态烘焙阴影。',\n language,\n ),\n };\n }\n return {\n summary: language === 'zh' ? `最新 · ${chunkText}` : `Up to date · ${chunkText}`,\n status: resolveLocalizedStaticShadowStatusReason(\n state.reason,\n fallback,\n '静态阴影烘焙数据已是最新。',\n language,\n ),\n };\n}\n\nfunction resolveLocalizedStaticShadowStatusReason(\n reason: string | null | undefined,\n englishFallback: string,\n localizedFallback: string,\n language: EditorSceneRenderingPanelLanguage,\n): string {\n if (language !== 'zh') return reason ?? englishFallback;\n return !reason || reason === englishFallback ? localizedFallback : reason;\n}\n\nfunction formatChineseStaticShadowBakingStatus(state: EditorSceneStaticShadowBakeLifecycleState): string {\n const stats = state.stats ?? null;\n const phase = stats?.phase;\n const attempted = stats?.attemptedChunkCount ?? 0;\n const completed = stats?.chunkCount ?? 0;\n const atlasPages = stats?.pageCount ?? stats?.textureCount ?? 0;\n const encodedPages = stats?.textureCount ?? 0;\n if (phase === 'collect') {\n if ((stats?.sourceRootCount ?? 0) > 0) return `已收集 ${stats?.sourceRootCount ?? 0} 个静态投射物,正在准备空间分块。`;\n return '正在收集静态阴影投射物。';\n }\n if (phase === 'sdf') {\n if (attempted > 0) return `正在生成静态阴影 SDF ${Math.min(completed + 1, attempted)} / ${attempted}。`;\n return '正在生成静态阴影 SDF。';\n }\n if (phase === 'pack') {\n return `正在将 ${completed} 个静态阴影分块打包到 ${atlasPages} 张 Atlas。`;\n }\n if (phase === 'encode') {\n return `正在编码静态阴影 Atlas ${Math.min(encodedPages + 1, atlasPages || encodedPages + 1)} / ${atlasPages || encodedPages + 1}。`;\n }\n if (phase === 'complete') return '正在写入静态阴影烘焙数据。';\n if (attempted > 0) return `正在烘焙静态阴影分块 ${Math.min(completed + 1, attempted)} / ${attempted}。`;\n if ((stats?.sourceRootCount ?? 0) > 0) return `已收集 ${stats?.sourceRootCount ?? 0} 个静态投射物,正在准备分块。`;\n return '正在收集静态阴影投射物。';\n}\n\nfunction formatChineseStaticShadowProgressLabel(state: EditorSceneStaticShadowBakeLifecycleState): string {\n const stats = state.stats ?? null;\n const phase = stats?.phase;\n const attempted = stats?.attemptedChunkCount ?? 0;\n const completed = stats?.chunkCount ?? 0;\n if (phase === 'collect') return '收集静态投射物';\n if (phase === 'pack') return '打包静态阴影 Atlas';\n if (phase === 'encode') {\n const atlasPages = stats?.pageCount ?? stats?.textureCount ?? 0;\n const encodedPages = stats?.textureCount ?? 0;\n return `静态阴影 Atlas ${Math.min(encodedPages, atlasPages)} / ${atlasPages}`;\n }\n return attempted > 0\n ? `静态阴影烘焙 ${Math.min(completed, attempted)} / ${attempted}`\n : '正在烘焙静态阴影';\n}\n\nfunction createStaticShadowBakeDetails(\n state: EditorSceneStaticShadowBakeLifecycleState,\n language: EditorSceneRenderingPanelLanguage,\n): EditorSceneRenderingSystemDetail[] {\n const stats = state.stats ?? null;\n const details: EditorSceneRenderingSystemDetail[] = [];\n const add = (labelEn: string, labelZh: string, value: unknown, tone?: EditorSceneRenderingSystemDetail['tone']): void => {\n if (value == null || value === '') return;\n details.push({\n label: language === 'zh' ? labelZh : labelEn,\n value: String(value),\n ...(tone ? { tone } : {}),\n });\n };\n const chunkCount = stats?.chunkCount ?? state.chunkCount;\n const performance = calculateStaticShadowPerformanceDetails(stats, chunkCount);\n add('Static casters', '静态投射物', formatOptionalCount(stats?.sourceRootCount));\n add('Bake meshes', '参与 Mesh', formatOptionalCount(stats?.sourceMeshCount));\n add('Chunks', '分块', formatOptionalCount(chunkCount), chunkCount === 0 ? 'warning' : undefined);\n add('Atlas pages', 'Atlas 页', formatOptionalCount(stats?.pageCount ?? stats?.textureCount ?? chunkCount));\n add('Texture memory', '贴图显存', performance.textureMemoryText, performance.textureMemoryTone);\n add('Texture pixels', '贴图像素', performance.atlasPixelsText);\n add('Atlas occupancy', 'Atlas 利用率', performance.atlasOccupancyText, performance.atlasOccupancyTone);\n add('Atlas used', 'Atlas 已用', performance.atlasUsedPixelsText);\n add('Atlas allocated', 'Atlas 分配', performance.atlasAllocatedPixelsText);\n add('Runtime draws', '运行时 Draw', performance.drawCallsText);\n add('Shadow mesh', '阴影 Mesh', performance.meshText);\n add('Triangles', '三角形', performance.triangleText);\n add('Vertices', '顶点', performance.vertexText);\n add('Effective texels / m', '实际每米像素', formatOptionalNumber(stats?.effectiveTexelsPerMeter ?? stats?.texelsPerMeter));\n if (\n stats?.effectiveTexelsPerMeter != null\n && stats?.texelsPerMeter != null\n && Math.abs(stats.effectiveTexelsPerMeter - stats.texelsPerMeter) > 0.001\n ) {\n add('Target texels / m', '目标每米像素', formatOptionalNumber(stats.texelsPerMeter), 'warning');\n }\n add('Atlas size', 'Atlas 尺寸', stats?.atlasSize ? `${stats.atlasSize}px` : null);\n add('Page budget', '页预算', formatOptionalCount(stats?.maxAtlasPages));\n add('SDF radius', 'SDF 半径', stats?.sdfRadiusPx != null ? `${stats.sdfRadiusPx}px` : null);\n add('Spatial chunk', '空间分块', stats?.spatialChunkSize ? formatMeters(stats.spatialChunkSize) : null);\n if (\n stats?.effectiveSpatialChunkSize != null\n && stats?.spatialChunkSize != null\n && Math.abs(stats.effectiveSpatialChunkSize - stats.spatialChunkSize) > 0.001\n ) {\n add('Effective chunk', '实际分块', formatMeters(stats.effectiveSpatialChunkSize), 'warning');\n }\n add('Target chunks', '目标分块', formatOptionalCount(stats?.targetChunkCount));\n add('Baked chunks', '重烘分块', formatOptionalCount(stats?.bakedChunkCount));\n add('Reused chunks', '复用分块', formatOptionalCount(stats?.reusedChunkCount), stats?.reusedChunkCount ? 'success' : undefined);\n add('Resolution', '贴图尺寸', stats?.resolution ? `${stats.resolution}px` : null);\n add('Chunk size', '分块尺寸', stats?.chunkSize ? formatMeters(stats.chunkSize) : null);\n add('Duration', '耗时', formatDurationMs(stats?.durationMs, language));\n if (state.status === 'baking') {\n add('Current chunk', '当前分块', stats?.currentChunkId);\n const attempted = stats?.attemptedChunkCount;\n const completed = stats?.chunkCount;\n if (stats?.phase) add('Stage', '阶段', formatStaticShadowBakePhase(stats.phase, language));\n if (attempted != null && completed != null) {\n add('Progress', '进度', language === 'zh' ? `${completed} / ${attempted} 个分块` : `${completed} / ${attempted} chunks`);\n }\n } else {\n add('Skipped chunks', '跳过分块', formatOptionalCount(stats?.skippedChunkCount), stats?.skippedChunkCount ? 'warning' : undefined);\n }\n return details;\n}\n\nfunction calculateStaticShadowPerformanceDetails(\n stats: EditorSceneStaticShadowBakeLifecycleState['stats'],\n fallbackChunkCount: number | undefined,\n): {\n textureMemoryText: string | null;\n textureMemoryTone?: EditorSceneRenderingSystemDetail['tone'];\n atlasPixelsText: string | null;\n atlasUsedPixelsText: string | null;\n atlasAllocatedPixelsText: string | null;\n atlasOccupancyText: string | null;\n atlasOccupancyTone?: EditorSceneRenderingSystemDetail['tone'];\n drawCallsText: string | null;\n meshText: string | null;\n triangleText: string | null;\n vertexText: string | null;\n} {\n if (!stats) {\n return {\n textureMemoryText: null,\n atlasPixelsText: null,\n atlasUsedPixelsText: null,\n atlasAllocatedPixelsText: null,\n atlasOccupancyText: null,\n drawCallsText: null,\n meshText: null,\n triangleText: null,\n vertexText: null,\n };\n }\n const chunkCount = Math.max(0, Math.trunc(stats.chunkCount ?? fallbackChunkCount ?? 0));\n const isAtlas = stats.pageCount != null || stats.atlasSize != null || stats.effectiveTexelsPerMeter != null;\n const textureCount = Math.max(0, Math.trunc(\n isAtlas\n ? stats.pageCount ?? stats.textureCount ?? 0\n : stats.textureCount ?? chunkCount,\n ));\n const textureSize = isAtlas ? stats.atlasSize : stats.resolution;\n const fallbackTextureBytes = textureCount > 0 && textureSize != null && Number.isFinite(textureSize) && textureSize > 0\n ? textureCount * textureSize * textureSize * 4\n : null;\n const allocatedPixels = isAtlas\n ? stats.atlasAllocatedPixels ?? (fallbackTextureBytes != null ? fallbackTextureBytes / 4 : null)\n : (fallbackTextureBytes != null ? fallbackTextureBytes / 4 : null);\n const usedPixels = isAtlas ? stats.atlasUsedPixels ?? null : null;\n const textureBytes = allocatedPixels != null ? allocatedPixels * 4 : null;\n const occupancy = isAtlas\n ? stats.atlasOccupancy ?? (\n allocatedPixels != null && allocatedPixels > 0 && usedPixels != null\n ? usedPixels / allocatedPixels\n : null\n )\n : null;\n const drawCalls = textureCount > 0 ? textureCount : null;\n const renderMeshes = isAtlas ? drawCalls : chunkCount || null;\n const triangles = chunkCount > 0 ? chunkCount * 2 : null;\n const vertices = chunkCount > 0 ? chunkCount * 4 : null;\n return {\n textureMemoryText: formatBytes(textureBytes),\n textureMemoryTone: textureBytes != null && textureBytes >= 256 * 1024 * 1024 ? 'warning' : undefined,\n atlasPixelsText: formatPixelCount(allocatedPixels),\n atlasUsedPixelsText: formatPixelCount(usedPixels),\n atlasAllocatedPixelsText: formatPixelCount(allocatedPixels),\n atlasOccupancyText: formatPercentage(occupancy),\n atlasOccupancyTone: occupancy != null && occupancy < 0.35 ? 'warning' : undefined,\n drawCallsText: formatOptionalCount(drawCalls),\n meshText: formatOptionalCount(renderMeshes),\n triangleText: formatOptionalCount(triangles),\n vertexText: formatOptionalCount(vertices),\n };\n}\n\nfunction formatStaticShadowBakePhase(phase: string, language: EditorSceneRenderingPanelLanguage): string {\n if (language !== 'zh') return phase;\n switch (phase) {\n case 'collect': return '收集';\n case 'reuse': return '复用已有分块';\n case 'chunk': return '烘焙分块';\n case 'sdf': return '生成 SDF';\n case 'pack': return '打包 Atlas';\n case 'encode': return '编码 Atlas';\n case 'complete': return '写入结果';\n default: return phase;\n }\n}\n\nfunction formatOptionalCount(value: number | null | undefined): string | null {\n if (value == null || !Number.isFinite(value)) return null;\n return String(Math.max(0, Math.trunc(value)));\n}\n\nfunction formatOptionalNumber(value: number | null | undefined): string | null {\n if (value == null || !Number.isFinite(value)) return null;\n return Number.isInteger(value) ? String(value) : value.toFixed(2).replace(/\\.?0+$/, '');\n}\n\nfunction formatPixelCount(value: number | null | undefined): string | null {\n if (value == null || !Number.isFinite(value)) return null;\n const pixels = Math.max(0, value);\n if (pixels >= 1_000_000) return `${formatOptionalNumber(pixels / 1_000_000)} MP`;\n if (pixels >= 1_000) return `${formatOptionalNumber(pixels / 1_000)} KP`;\n return formatOptionalCount(pixels);\n}\n\nfunction formatPercentage(value: number | null | undefined): string | null {\n if (value == null || !Number.isFinite(value)) return null;\n return `${formatOptionalNumber(Math.max(0, Math.min(1, value)) * 100)}%`;\n}\n\nfunction formatBytes(value: number | null | undefined): string | null {\n if (value == null || !Number.isFinite(value)) return null;\n const bytes = Math.max(0, value);\n if (bytes >= 1024 * 1024 * 1024) return `${formatOptionalNumber(bytes / (1024 * 1024 * 1024))} GiB`;\n if (bytes >= 1024 * 1024) return `${formatOptionalNumber(bytes / (1024 * 1024))} MiB`;\n if (bytes >= 1024) return `${formatOptionalNumber(bytes / 1024)} KiB`;\n return `${formatOptionalCount(bytes)} B`;\n}\n\nfunction formatMeters(value: number): string {\n const text = Number.isInteger(value) ? String(value) : value.toFixed(2).replace(/\\.?0+$/, '');\n return `${text} m`;\n}\n\nfunction formatDurationMs(value: number | null | undefined, language: EditorSceneRenderingPanelLanguage): string | null {\n if (value == null || !Number.isFinite(value)) return null;\n const duration = Math.max(0, value);\n if (duration < 1000) return `${Math.round(duration)} ms`;\n const seconds = duration / 1000;\n const text = seconds < 10 ? seconds.toFixed(1) : String(Math.round(seconds));\n return language === 'zh' ? `${text} 秒` : `${text}s`;\n}\n\nfunction createRenderingGroupsSection(\n slots: readonly EditorSceneRenderingGroupSlot[],\n): EditorSceneRenderingPanelState['sections'][number] {\n return {\n id: 'rendering-groups',\n title: 'Rendering Groups / Order Presets',\n summary: 'Named Babylon rendering groups and alphaIndex presets used by object Inspector dropdowns.',\n layout: 'list',\n systems: slots.map((slot) => ({\n id: `rendering-group-${slot.renderingGroupId}`,\n label: slot.name,\n kind: 'rendering-group',\n active: true,\n summary: `Babylon group ${slot.renderingGroupId}`,\n actions: [{\n id: 'rendering-alpha-preset.add',\n label: 'Add Order Preset',\n icon: 'plus',\n tooltip: 'Add a named alphaIndex preset for this rendering group.',\n params: { renderingGroupId: slot.renderingGroupId },\n }],\n properties: [\n createReadonlyRenderingProperty(\n `renderingGroups.slots.${slot.renderingGroupId}.renderingGroupId`,\n 'Group ID',\n slot.renderingGroupId,\n ),\n {\n path: `renderingGroups.slots.${slot.renderingGroupId}.name`,\n label: 'Group Name',\n valueType: 'string',\n control: 'string',\n value: slot.name,\n tooltip: 'Display name for this fixed Babylon rendering group id.',\n commitMode: 'blur',\n },\n ...slot.alphaIndexPresets.flatMap((preset, index): EditorSceneRenderingProperty[] => [\n {\n path: `renderingGroups.slots.${slot.renderingGroupId}.alphaIndexPresets.${index}.name`,\n label: `Preset ${index + 1} Name`,\n valueType: 'string',\n control: 'string',\n value: preset.name,\n tooltip: 'User-facing name shown in object Inspector dropdowns.',\n commitMode: 'blur',\n actions: [{\n id: 'rendering-alpha-preset.delete',\n label: 'Delete',\n icon: 'trash',\n tooltip: 'Delete this alphaIndex preset. Existing objects keep their numeric alphaIndex.',\n params: { renderingGroupId: slot.renderingGroupId, presetIndex: index },\n }],\n },\n {\n path: `renderingGroups.slots.${slot.renderingGroupId}.alphaIndexPresets.${index}.alphaIndex`,\n label: `Preset ${index + 1} Value`,\n valueType: 'number',\n control: 'number',\n value: preset.alphaIndex,\n step: 1,\n tooltip: 'Babylon alphaIndex value stored on objects that use this preset.',\n commitMode: 'blur',\n },\n ]),\n ],\n })),\n };\n}\n\nfunction createReadonlyRenderingProperty(\n path: string,\n label: string,\n value: unknown,\n): EditorSceneRenderingProperty {\n return {\n path,\n label,\n valueType: typeof value === 'boolean' ? 'boolean' : typeof value === 'number' ? 'number' : 'string',\n control: 'readonly',\n value,\n readOnly: true,\n };\n}\n\nfunction createEnvironmentTexturePickerControlOptions(input: {\n textureAssets?: readonly EditorSceneRenderingTextureAsset[];\n currentTextureAssetId: string;\n fallbackUrl: string;\n language: EditorSceneRenderingPanelLanguage;\n}): Record<string, unknown> {\n const text = input.language === 'zh'\n ? {\n pickerTitle: '选择 IBL 贴图',\n replace: '替换',\n none: '无',\n noneMeta: '未设置环境贴图',\n }\n : {\n pickerTitle: 'Select IBL Texture',\n replace: 'Replace',\n none: 'None',\n noneMeta: 'No environment texture',\n };\n const currentTexture = input.textureAssets?.find(texture => texture.id === input.currentTextureAssetId) ?? null;\n const environmentTextures = (input.textureAssets ?? []).filter(isEditorSceneEnvironmentTextureAsset);\n const currentLabel = currentTexture?.label\n ?? (input.currentTextureAssetId || input.fallbackUrl || text.none);\n const currentMeta = currentTexture?.meta\n ?? (input.currentTextureAssetId || input.fallbackUrl || text.noneMeta);\n return {\n pickerKind: 'texture',\n pickerTitle: text.pickerTitle,\n actionLabel: text.replace,\n placeholder: text.none,\n currentLabel,\n currentMeta,\n currentPreview: currentTexture ? createRenderingTextureAssetPreview(currentTexture) : undefined,\n candidates: [\n {\n label: text.none,\n value: '',\n meta: text.noneMeta,\n },\n ...environmentTextures.map(texture => ({\n label: texture.label,\n value: texture.id,\n meta: texture.meta ?? texture.id,\n kind: 'texture' as const,\n preview: createRenderingTextureAssetPreview(texture),\n })),\n ],\n };\n}\n\nfunction createShadowDefaultModeOptions(language: EditorSceneRenderingPanelLanguage): readonly { label: string; value: string }[] {\n return language === 'zh'\n ? [\n { label: '无阴影', value: 'none' },\n { label: 'Blob 阴影', value: 'blob' },\n ...(EDITOR_SHADOW_STATIC_AUTHORING_ENABLED\n ? [{ label: '静态烘焙阴影', value: 'static' }]\n : []),\n { label: '主平面阴影', value: 'planar' },\n ]\n : [\n { label: 'None', value: 'none' },\n { label: 'Blob', value: 'blob' },\n ...(EDITOR_SHADOW_STATIC_AUTHORING_ENABLED\n ? [{ label: 'Static Baked', value: 'static' }]\n : []),\n { label: 'Planar', value: 'planar' },\n ];\n}\n\nfunction isEditorSceneEnvironmentTextureAsset(texture: EditorSceneRenderingTextureAsset): boolean {\n if (texture.capabilities?.environmentTexture === true) return true;\n if (texture.capabilities?.environmentTexture === false) return false;\n if (texture.usage === 'environment') return true;\n return isEnvironmentTextureUrl(texture.url);\n}\n\nfunction isEnvironmentTextureUrl(url: string): boolean {\n return /\\.(env|hdr|dds|ktx|ktx2)(?:[?#].*)?$/i.test(url);\n}\n\nfunction createRenderingTextureAssetPreview(texture: EditorSceneRenderingTextureAsset): Record<string, unknown> {\n return {\n kind: 'image',\n url: texture.url,\n alt: texture.label,\n fit: 'contain',\n };\n}\n\ntype RenderingLocalizedPropertyText = {\n label?: string;\n tooltip?: string;\n placeholder?: string;\n readonlyValue?: Record<string, string>;\n};\n\ntype RenderingPanelText = {\n title: string;\n summary: string;\n dirtyStatus: string;\n revert: string;\n revertDirty: string;\n revertClean: string;\n bakeStatic: string;\n bakeStaticReady: string;\n bakeStaticDisabled: string;\n bakeStaticRunning: string;\n sections: Record<string, { title?: string; summary?: string }>;\n groups: Record<string, { label?: string; summary?: string }>;\n systems: Record<string, { label?: string; summary?: string; disabled?: string; compatibility?: string }>;\n properties: Record<string, RenderingLocalizedPropertyText>;\n};\n\nconst RENDERING_PANEL_TEXT: Record<EditorSceneRenderingPanelLanguage, RenderingPanelText> = {\n en: {\n title: 'Rendering',\n summary: 'Project-level rendering settings shared by editor preview and runtime.',\n dirtyStatus: 'Rendering changes are not saved yet.',\n revert: 'Revert',\n revertDirty: 'Revert rendering settings to the last saved rendering settings.',\n revertClean: 'Rendering settings already match the last saved rendering settings.',\n bakeStatic: 'Bake Static Shadows',\n bakeStaticReady: 'Bake static shadow chunks for objects authored as Static Baked Shadow.',\n bakeStaticDisabled: 'Enable Static Baked Shadow before baking.',\n bakeStaticRunning: 'Static shadow bake is already running.',\n sections: {\n 'rendering-groups': {\n title: 'Rendering Groups / Order Presets',\n summary: 'Named Babylon rendering groups and alphaIndex presets used by object Inspector dropdowns.',\n },\n environment: {\n title: 'Environment / IBL',\n summary: 'World environment texture and reflection lighting shared by editor preview and runtime.',\n },\n 'post-process': {\n title: 'Post Process Volume',\n summary: 'Global Babylon Default post-process profile shared by editor preview and runtime.',\n },\n shadows: {\n title: 'Shadows',\n summary: 'Global shadow systems for editor preview and runtime.',\n },\n },\n groups: {\n 'shadow-group-moving-object': {\n label: 'Moving Object Shadows',\n summary: 'Blob: lightweight for moving objects and project-default fallback.',\n },\n 'shadow-group-static-scene': {\n label: 'Static Scene Shadows',\n summary: 'Consumes baked artifacts; update during authoring/build, runtime only displays results.',\n },\n 'shadow-group-directional-planar': {\n label: 'Directional Planar Shadows',\n summary: 'Real-time planar projection following the directional light.',\n },\n 'shadow-group-compatibility': {\n label: 'Advanced Shadows',\n summary: 'CSM read-only runtime status.',\n },\n },\n systems: {\n 'environment-global': {\n label: 'Environment Texture',\n },\n 'post-process-global': {\n label: 'Global',\n summary: 'Babylon Default',\n },\n 'planar-main': {\n label: 'Planar Main',\n summary: 'Follow Directional Light',\n },\n 'blob-shadow': {\n label: 'Blob Shadow',\n summary: 'Default object shadow',\n },\n 'static-projected-shadow': {\n label: 'Static Baked Shadow',\n summary: 'Baked object shape',\n },\n 'csm-shadow': {\n label: 'CSM',\n disabled: 'Disabled',\n compatibility: 'Compatibility path',\n },\n },\n properties: {\n 'globalVolume.environment.texture.textureAssetId': {\n label: 'IBL Texture',\n tooltip: 'Select a project texture asset for Babylon scene.environmentTexture. Prefer prefiltered .env environment textures.',\n },\n 'globalVolume.environment.iblIntensity': {\n label: 'IBL Intensity',\n tooltip: 'Environment reflection intensity for PBR materials.',\n },\n 'globalVolume.environment.rotationY': {\n label: 'IBL Rotation',\n tooltip: 'Y-axis rotation applied to the environment texture.',\n },\n 'shadows.defaultMode': {\n label: 'Default Mode',\n tooltip: 'Default shadow mode for GameObjects that use the project default.',\n },\n 'shadows.blob.enabled': {\n label: 'Enabled',\n tooltip: 'Enable the shared blob shadow system.',\n },\n 'shadows.blob.appearance.color': {\n label: 'Color',\n tooltip: 'Blob shadow RGB color. Opacity is edited separately.',\n },\n 'shadows.blob.appearance.color.a': {\n label: 'Opacity',\n tooltip: 'Blob shadow opacity, clamped between 0 and 1.',\n },\n 'shadows.blob.appearance.edgeSoftness': {\n label: 'Soft Edge',\n tooltip: 'Blob shadow soft edge start. Higher values keep the center denser before fading out.',\n },\n 'shadows.blob.plane.height': {\n label: 'Height',\n tooltip: 'Ground plane height used by blob shadows.',\n },\n 'shadows.blob.plane.yOffset': {\n label: 'Y Offset',\n tooltip: 'Vertical offset above the blob shadow plane to reduce z-fighting.',\n },\n 'shadows.blob.size.sizeMultiplier': {\n label: 'Size Multiplier',\n tooltip: 'Scale blob shadow size from each caster bounds.',\n },\n 'shadows.blob.size.minSize': {\n label: 'Min Size',\n tooltip: 'Minimum blob shadow size for tiny objects.',\n },\n 'shadows.blob.size.maxSize': {\n label: 'Max Size',\n tooltip: 'Maximum blob shadow size for large objects.',\n },\n 'shadows.staticProjected.enabled': {\n label: 'Enabled',\n tooltip: 'Enable the shared static projected shadow system.',\n },\n 'shadows.staticProjected.appearance.color': {\n label: 'Color',\n tooltip: 'Static shadow RGB color. Opacity is edited separately.',\n },\n 'shadows.staticProjected.appearance.color.a': {\n label: 'Opacity',\n tooltip: 'Static shadow opacity, clamped between 0 and 1.',\n },\n 'shadows.staticProjected.plane.height': {\n label: 'Height',\n tooltip: 'Ground plane height used by static projected shadows.',\n },\n 'shadows.staticProjected.plane.yOffset': {\n label: 'Y Offset',\n tooltip: 'Vertical offset above the static shadow plane to reduce z-fighting.',\n },\n 'shadows.staticProjected.bake.padding': {\n label: 'Padding',\n tooltip: 'Extra projected bounds padding before baking the static shadow.',\n },\n 'shadows.staticProjected.bake.blur': {\n label: 'Blur',\n tooltip: 'Reserved blur radius for static shadow bake softness.',\n },\n 'shadows.staticProjected.bake.texelsPerMeter': {\n label: 'Texels per Meter',\n tooltip: 'Target SDF atlas texel density for baked static shadows.',\n },\n 'shadows.staticProjected.bake.atlasSize': {\n label: 'Atlas Size',\n tooltip: 'Maximum width and height for each static shadow atlas page.',\n },\n 'shadows.staticProjected.bake.maxAtlasPages': {\n label: 'Page Budget',\n tooltip: 'Maximum atlas pages before bake lowers the effective texel density.',\n },\n 'shadows.staticProjected.bake.sdfRadiusPx': {\n label: 'SDF Radius',\n tooltip: 'Signed-distance radius in pixels used for crisp controllable edges.',\n },\n 'shadows.staticProjected.bake.spatialChunkSize': {\n label: 'Spatial Chunk Size',\n tooltip: 'World size of each spatial bake chunk before atlas packing.',\n },\n 'shadows.staticProjected.bake.targetChunkCount': {\n label: 'Target Chunks',\n tooltip: 'Soft chunk-count budget. Large scenes automatically enlarge spatial chunks to stay near this target.',\n },\n },\n },\n zh: {\n title: '渲染',\n summary: '项目级渲染设置。编辑器预览和运行时共用同一套渲染管线。',\n dirtyStatus: '渲染设置尚未保存。',\n revert: '还原',\n revertDirty: '还原到上一次保存的渲染设置。',\n revertClean: '当前渲染设置已经和上一次保存状态一致。',\n bakeStatic: '烘焙静态阴影',\n bakeStaticReady: '为标记为静态烘焙阴影的物体生成分块阴影。',\n bakeStaticDisabled: '请先启用静态烘焙阴影。',\n bakeStaticRunning: '静态阴影正在烘焙中。',\n sections: {\n 'rendering-groups': {\n title: '渲染分组 / 顺序预设',\n summary: '项目级 Babylon rendering group 名称和 alphaIndex 预设,用于物体 Inspector 下拉选择。',\n },\n environment: {\n title: '环境 / IBL',\n summary: '世界环境贴图与 PBR 环境反射,编辑器预览和运行时共用。',\n },\n 'post-process': {\n title: '后处理 Volume',\n summary: '全局 Babylon Default 后处理参数,编辑器预览和运行时共用。',\n },\n shadows: {\n title: '阴影',\n summary: '项目级阴影系统,编辑器预览和运行时共用。',\n },\n },\n groups: {\n 'shadow-group-moving-object': {\n label: '移动物体阴影',\n summary: 'Blob:低成本,适合移动物体,也可作为项目默认阴影。',\n },\n 'shadow-group-static-scene': {\n label: '静态场景阴影',\n summary: '只显示已烘焙 artifact;编辑器/构建期更新,运行时消费结果。',\n },\n 'shadow-group-directional-planar': {\n label: '主平面实时阴影',\n summary: '跟随直射光动态投影,适合需要方向感的物体。',\n },\n 'shadow-group-compatibility': {\n label: '兼容阴影',\n summary: '旧 ShadowGenerator / CSM 只读兼容路径。',\n },\n },\n systems: {\n 'environment-global': {\n label: '环境贴图',\n },\n 'post-process-global': {\n label: '全局',\n summary: 'Babylon Default',\n },\n 'planar-main': {\n label: '主平面阴影',\n summary: '跟随直射光',\n },\n 'blob-shadow': {\n label: 'Blob 阴影',\n summary: '默认物体阴影',\n },\n 'static-projected-shadow': {\n label: '静态烘焙阴影',\n summary: '烘焙物体轮廓',\n },\n 'csm-shadow': {\n label: '级联阴影',\n disabled: '已禁用',\n compatibility: '兼容路径',\n },\n },\n properties: {\n 'globalVolume.enabled': {\n label: '启用',\n tooltip: '启用项目共用的默认后处理管线。关闭后会销毁运行时和编辑器预览中的 DefaultRenderingPipeline。',\n },\n 'globalVolume.hdr': {\n label: 'HDR',\n tooltip: '使用 HDR 渲染目标。通常建议开启,以保留高亮、Bloom 和 ToneMapping 的动态范围。',\n },\n 'globalVolume.environment.texture.textureAssetId': {\n label: 'IBL 贴图',\n tooltip: '从项目贴图资产中选择 Babylon scene.environmentTexture。建议使用预过滤的 .env 环境贴图。',\n },\n 'globalVolume.environment.iblIntensity': {\n label: 'IBL 强度',\n tooltip: 'PBR 材质的环境反射强度。需要先配置 IBL 贴图才会有明显效果。',\n },\n 'globalVolume.environment.rotationY': {\n label: 'IBL 旋转',\n tooltip: '环境贴图绕 Y 轴旋转,用于调整反射方向。',\n },\n 'globalVolume.imageProcessing.exposure': {\n label: '曝光',\n tooltip: '图像处理曝光倍率。1 表示保持原始亮度;数值越高画面越亮。',\n },\n 'globalVolume.imageProcessing.contrast': {\n label: '对比度',\n tooltip: '图像处理对比度倍率。1 表示默认对比;提高会增强明暗差异。',\n },\n 'globalVolume.toneMapping.enabled': {\n label: 'ToneMapping',\n tooltip: '启用色调映射,把 HDR 颜色压缩到屏幕可显示范围。',\n },\n 'globalVolume.toneMapping.type': {\n label: 'Tone 类型',\n tooltip: 'ToneMapping 曲线类型。ACES 更接近影视感;Standard 更直接;KHR PBR Neutral 更适合 PBR 中性预览。',\n },\n 'globalVolume.antialiasing.samples': {\n label: 'MSAA 采样',\n tooltip: '默认后处理管线的 MSAA 采样数。数值越高边缘越平滑,但性能成本也更高。',\n },\n 'globalVolume.postProcessing.bloom.enabled': {\n label: 'Bloom',\n tooltip: '启用泛光效果,让高亮区域向外扩散发光。',\n },\n 'globalVolume.postProcessing.bloom.threshold': {\n label: 'Bloom 阈值',\n tooltip: '参与 Bloom 的亮度阈值。数值越低,更多区域会发光。',\n },\n 'globalVolume.postProcessing.bloom.weight': {\n label: 'Bloom 强度',\n tooltip: 'Bloom 对最终画面的贡献权重。',\n },\n 'globalVolume.postProcessing.bloom.kernel': {\n label: 'Bloom 核大小',\n tooltip: 'Bloom 模糊核大小。数值越高,光晕扩散范围越大。',\n },\n 'globalVolume.postProcessing.bloom.scale': {\n label: 'Bloom 缩放',\n tooltip: 'Bloom 渲染缩放比例。较低数值更省性能,较高数值细节更稳定。',\n },\n 'shadows.defaultMode': {\n label: '默认模式',\n tooltip: '使用项目默认阴影的 GameObject 会采用这个模式。',\n },\n 'shadows.blob.enabled': {\n label: '启用',\n tooltip: '启用共用的 Blob 阴影系统。',\n },\n 'shadows.blob.appearance.color': {\n label: '颜色',\n tooltip: 'Blob 阴影颜色。透明度单独编辑。',\n },\n 'shadows.blob.appearance.color.a': {\n label: '不透明度',\n tooltip: 'Blob 阴影不透明度,范围 0 到 1。',\n },\n 'shadows.blob.appearance.edgeSoftness': {\n label: '柔边',\n tooltip: 'Blob 阴影柔边起点。数值越高,中心区域越实,边缘再逐渐淡出。',\n },\n 'shadows.blob.plane.height': {\n label: '高度',\n tooltip: 'Blob 阴影所在的地面高度。',\n },\n 'shadows.blob.plane.yOffset': {\n label: 'Y 偏移',\n tooltip: 'Blob 阴影相对地面的垂直偏移,用于避免 z-fighting。',\n },\n 'shadows.blob.size.sizeMultiplier': {\n label: '尺寸倍率',\n tooltip: '根据投射物包围盒计算 Blob 阴影尺寸时使用的倍率。',\n },\n 'shadows.blob.size.minSize': {\n label: '最小尺寸',\n tooltip: '很小物体使用的最小 Blob 阴影尺寸。',\n },\n 'shadows.blob.size.maxSize': {\n label: '最大尺寸',\n tooltip: '大型物体使用的最大 Blob 阴影尺寸。',\n },\n 'shadows.staticProjected.enabled': {\n label: '启用',\n tooltip: '启用共用的静态烘焙阴影系统。',\n },\n 'shadows.staticProjected.appearance.color': {\n label: '颜色',\n tooltip: '静态烘焙阴影颜色。透明度单独编辑。',\n },\n 'shadows.staticProjected.appearance.color.a': {\n label: '不透明度',\n tooltip: '静态烘焙阴影不透明度,范围 0 到 1。',\n },\n 'shadows.staticProjected.plane.height': {\n label: '高度',\n tooltip: '静态烘焙阴影所在的地面高度。',\n },\n 'shadows.staticProjected.plane.yOffset': {\n label: 'Y 偏移',\n tooltip: '静态烘焙阴影相对地面的垂直偏移,用于避免 z-fighting。',\n },\n 'shadows.staticProjected.bake.padding': {\n label: '留白',\n tooltip: '烘焙静态阴影前给投影范围增加的留白。',\n },\n 'shadows.staticProjected.bake.blur': {\n label: '模糊',\n tooltip: '静态阴影烘焙柔化预留半径。',\n },\n 'shadows.staticProjected.bake.texelsPerMeter': {\n label: '每米像素',\n tooltip: '静态阴影 SDF atlas 的目标像素密度。',\n },\n 'shadows.staticProjected.bake.atlasSize': {\n label: 'Atlas 尺寸',\n tooltip: '每张静态阴影 atlas 页的最大宽高。',\n },\n 'shadows.staticProjected.bake.maxAtlasPages': {\n label: '页预算',\n tooltip: '超过该 atlas 页数时,烘焙会降低实际每米像素以保护运行时成本。',\n },\n 'shadows.staticProjected.bake.sdfRadiusPx': {\n label: 'SDF 半径',\n tooltip: '用于重建清晰可控边缘的有符号距离半径,单位像素。',\n },\n 'shadows.staticProjected.bake.spatialChunkSize': {\n label: '空间分块尺寸',\n tooltip: '进入 atlas packing 前,每个空间烘焙分块覆盖的世界尺寸。',\n },\n 'shadows.staticProjected.bake.targetChunkCount': {\n label: '目标分块数',\n tooltip: '分块数量软预算。大场景会自动放大空间分块,尽量接近该数量。',\n },\n 'shadows.planar.enabled': {\n label: '启用',\n tooltip: '启用共用的平面阴影系统。运行时和编辑器预览会使用同一套参数。',\n },\n 'shadows.planar.appearance.color': {\n label: '颜色',\n tooltip: '平面阴影颜色。透明度单独编辑。',\n },\n 'shadows.planar.appearance.color.a': {\n label: '不透明度',\n tooltip: '平面阴影不透明度,范围 0 到 1。',\n },\n 'shadows.planar.plane.heightMode': {\n label: '高度来源',\n tooltip: '平面阴影接收高度。Auto 会优先从匹配的接收物体计算。',\n readonlyValue: {\n 'Auto from Receivers': '自动从接收物体计算',\n 'Fixed Height': '固定高度',\n },\n },\n 'shadows.planar.plane.height': {\n label: '备用高度',\n tooltip: '没有可用接收物体时使用的备用平面高度。',\n },\n 'shadows.planar.plane.bias': {\n label: '偏移',\n tooltip: '投影偏移量,用来避免阴影和接收平面出现闪烁或重叠伪影。',\n },\n 'shadows.planar.projection.footprintScale': {\n label: '投影缩放',\n tooltip: '围绕投射物中心缩放阴影轮廓。降低数值可减少硬边几何投影伪影。',\n },\n 'shadows.planar.stencil.enabled': {\n label: 'Stencil',\n tooltip: '使用模板缓冲,让阴影只绘制在匹配的接收物体上。',\n },\n 'shadows.planar.casters.excludePatterns': {\n label: '排除投射物',\n placeholder: '每行一个匹配规则',\n tooltip: '名称匹配这些规则的 Mesh 不会投射平面阴影。',\n },\n 'shadows.planar.casters.rootBoundaryPatterns': {\n label: '投射根节点',\n placeholder: '每行一个匹配规则',\n tooltip: '投射物自动检测的可选根节点边界规则。',\n },\n 'shadows.planar.receivers.patterns': {\n label: '接收物体',\n placeholder: '每行一个匹配规则',\n tooltip: '名称匹配这些规则的 Mesh 可以接收平面阴影。',\n },\n 'shadows.planar.direction': {\n label: '方向',\n tooltip: '阴影方向来自受保护的直射光。',\n readonlyValue: {\n 'Follow Directional Light': '跟随直射光',\n },\n },\n 'shadows.enabled': {\n label: '启用',\n },\n 'shadows.settings.mapSize': {\n label: '贴图尺寸',\n },\n 'shadows.settings.darkness': {\n label: '暗度',\n },\n 'shadows.useCsm': {\n label: '启用',\n },\n 'shadows.csm.numCascades': {\n label: '级联数量',\n },\n 'shadows.csm.lambda': {\n label: 'Lambda',\n },\n },\n },\n};\n\nfunction localizeRenderingPanelState(\n panel: EditorSceneRenderingPanelState,\n language: EditorSceneRenderingPanelLanguage,\n dirty: boolean,\n): EditorSceneRenderingPanelState {\n const text = RENDERING_PANEL_TEXT[language] ?? RENDERING_PANEL_TEXT.en;\n panel.title = text.title;\n panel.summary = text.summary;\n if (panel.status === RENDERING_PANEL_TEXT.en.dirtyStatus) panel.status = text.dirtyStatus;\n for (const action of panel.actions ?? []) {\n localizeRenderingAction(action, text, dirty);\n }\n for (const section of panel.sections) {\n const sectionText = text.sections[section.id];\n if (sectionText?.title) section.title = sectionText.title;\n if (sectionText?.summary) section.summary = sectionText.summary;\n for (const system of section.systems) {\n const systemText = text.systems[system.id];\n if (system.group) {\n const groupText = text.groups[system.group.id];\n if (groupText?.label) system.group.label = groupText.label;\n if (groupText?.summary) system.group.summary = groupText.summary;\n }\n if (systemText?.label) system.label = systemText.label;\n if (systemText?.summary && !(system.id === 'static-projected-shadow' && system.status)) {\n system.summary = systemText.summary;\n }\n if (language === 'zh' && system.id === 'environment-global' && system.summary === 'No IBL texture') {\n system.summary = '未设置 IBL 贴图';\n }\n if (systemText?.disabled && system.summary === RENDERING_PANEL_TEXT.en.systems[system.id]?.disabled) system.summary = systemText.disabled;\n if (systemText?.compatibility && system.summary === RENDERING_PANEL_TEXT.en.systems[system.id]?.compatibility) system.summary = systemText.compatibility;\n for (const action of system.actions ?? []) localizeRenderingAction(action, text, dirty);\n for (const property of system.properties) localizeRenderingProperty(property, text);\n }\n }\n return panel;\n}\n\nfunction localizeRenderingAction(\n action: NonNullable<EditorSceneRenderingPanelState['actions']>[number],\n text: RenderingPanelText,\n dirty: boolean,\n): void {\n if (action.id === 'revert-rendering') {\n action.label = text.revert;\n action.tooltip = dirty ? text.revertDirty : text.revertClean;\n }\n if (action.id === 'bake-static-shadows') {\n action.label = text.bakeStatic;\n action.tooltip = action.disabled\n ? action.tooltip === RENDERING_PANEL_TEXT.en.bakeStaticRunning\n ? text.bakeStaticRunning\n : text.bakeStaticDisabled\n : text.bakeStaticReady;\n }\n}\n\nfunction localizeRenderingProperty(\n property: EditorSceneRenderingProperty,\n text: RenderingPanelText,\n): void {\n const propertyText = text.properties[property.path];\n if (!propertyText) return;\n if (propertyText.label) property.label = propertyText.label;\n if (propertyText.tooltip) property.tooltip = propertyText.tooltip;\n if (propertyText.placeholder) property.placeholder = propertyText.placeholder;\n if (propertyText.readonlyValue && typeof property.value === 'string') {\n property.value = propertyText.readonlyValue[property.value] ?? property.value;\n }\n}\n"]}
1
+ {"version":3,"file":"panel.js","sourceRoot":"","sources":["../../src/rendering-profile/panel.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n EDITOR_SHADOW_STATIC_AUTHORING_ENABLED,\n} from '@fps-games/playable-rendering';\nimport type {\n EditorSceneRenderingPanelLanguage,\n EditorSceneRenderingPanelOptions,\n EditorSceneRenderingPanelState,\n EditorSceneRenderingPanelStateInput,\n EditorSceneRenderingProperty,\n EditorSceneRenderingProfile,\n EditorSceneRenderingGroupSlot,\n EditorSceneRenderingProgress,\n EditorSceneRenderingSystemDetail,\n EditorSceneStaticShadowBakeLifecycleState,\n EditorSceneRenderingTextureAsset,\n} from './types';\n\nconst SHADOW_RENDERING_GROUP_BLOB = {\n id: 'shadow-group-moving-object',\n label: 'Moving Object Shadows',\n summary: 'Blob: lightweight for moving objects and project-default fallback.',\n};\n\nconst SHADOW_RENDERING_GROUP_STATIC = {\n id: 'shadow-group-static-scene',\n label: 'Static Scene Shadows',\n summary: 'Consumes baked artifacts; update during authoring/build, runtime only displays results.',\n};\n\nconst SHADOW_RENDERING_GROUP_PLANAR = {\n id: 'shadow-group-directional-planar',\n label: 'Directional Planar Shadows',\n summary: 'Real-time planar projection following the directional light.',\n};\n\nconst SHADOW_RENDERING_GROUP_REALTIME = {\n id: 'shadow-group-realtime-map',\n label: 'Realtime Shadow Maps',\n summary: 'One scene-level quality profile owns map resolution, filtering, and bias.',\n};\n\nconst SHADOW_RENDERING_GROUP_COMPAT = {\n id: 'shadow-group-compatibility',\n label: 'Advanced Shadows',\n summary: 'CSM read-only runtime status.',\n};\n\nexport function createEditorSceneRenderingPanelState(\n profile: EditorSceneRenderingProfile,\n state: EditorSceneRenderingPanelStateInput = {},\n options: EditorSceneRenderingPanelOptions = {},\n): EditorSceneRenderingPanelState {\n const blob = profile.shadows.blob;\n const staticProjected = profile.shadows.staticProjected;\n const planar = profile.shadows.planar;\n const environment = profile.environment;\n const postProcess = profile.postProcess;\n const dirty = state.dirty === true;\n const lastError = state.lastError ?? null;\n const language = options.language ?? 'en';\n const staticShadowBake = resolveStaticShadowBakeLifecycleState(state.staticShadowBake, staticProjected.enabled);\n const staticShadowStatus = formatStaticShadowBakeLifecycleStatus(staticShadowBake, language);\n const staticShadowBakeInProgress = staticShadowBake.status === 'baking';\n const panel: EditorSceneRenderingPanelState = {\n title: 'Rendering',\n summary: 'Project-level rendering settings shared by editor preview and runtime.',\n dirty,\n status: lastError ?? (dirty ? 'Rendering changes are not saved yet.' : undefined),\n statusTone: lastError ? 'error' : dirty ? 'warning' : undefined,\n actions: [{\n id: 'revert-rendering',\n label: 'Revert',\n icon: 'undo',\n disabled: !dirty,\n tooltip: dirty\n ? 'Revert rendering settings to the last saved rendering settings.'\n : 'Rendering settings already match the last saved rendering settings.',\n }],\n sections: [createRenderingGroupsSection(profile.renderingGroups.slots), {\n id: 'environment',\n title: 'Environment / IBL',\n summary: 'World environment texture and reflection lighting shared by editor preview and runtime.',\n systems: [\n {\n id: 'environment-global',\n label: 'Environment Texture',\n kind: 'environment',\n active: !!environment.texture,\n summary: environment.texture?.textureAssetId ?? environment.texture?.url ?? 'No IBL texture',\n properties: [\n {\n path: 'globalVolume.environment.texture.textureAssetId',\n label: 'IBL Texture',\n valueType: 'asset',\n control: 'asset-picker-card',\n value: environment.texture?.textureAssetId ?? '',\n tooltip: 'Select a project texture asset for Babylon scene.environmentTexture. Prefer prefiltered .env environment textures.',\n commitMode: 'immediate',\n controlOptions: createEnvironmentTexturePickerControlOptions({\n textureAssets: options.textureAssets,\n currentTextureAssetId: environment.texture?.textureAssetId ?? '',\n fallbackUrl: environment.texture?.url ?? '',\n language: options.language ?? 'en',\n }),\n },\n {\n path: 'globalVolume.environment.iblIntensity',\n label: 'IBL Intensity',\n valueType: 'number',\n control: 'number',\n value: environment.iblIntensity,\n min: 0,\n step: 0.05,\n tooltip: 'Environment reflection intensity for PBR materials.',\n commitMode: 'live',\n },\n {\n path: 'globalVolume.environment.rotationY',\n label: 'IBL Rotation',\n valueType: 'number',\n control: 'number',\n value: environment.rotationY,\n step: 0.01,\n tooltip: 'Y-axis rotation applied to the environment texture.',\n commitMode: 'live',\n },\n ],\n },\n ],\n }, {\n id: 'post-process',\n title: 'Post Process Volume',\n summary: 'Global Babylon Default post-process profile shared by editor preview and runtime.',\n systems: [\n {\n id: 'post-process-global',\n label: 'Global',\n kind: 'custom',\n active: postProcess.enabled,\n summary: 'Babylon Default',\n properties: [\n {\n path: 'globalVolume.enabled',\n label: 'Enabled',\n valueType: 'boolean',\n control: 'boolean',\n value: postProcess.enabled,\n tooltip: 'Enable the shared post-process pipeline.',\n commitMode: 'immediate',\n },\n {\n path: 'globalVolume.hdr',\n label: 'HDR',\n valueType: 'boolean',\n control: 'boolean',\n value: postProcess.hdr,\n tooltip: 'Use HDR render targets for the default post-process pipeline.',\n commitMode: 'immediate',\n },\n {\n path: 'globalVolume.imageProcessing.exposure',\n label: 'Exposure',\n valueType: 'number',\n control: 'number',\n value: postProcess.imageProcessing.exposure,\n min: 0,\n step: 0.01,\n tooltip: 'Image processing exposure multiplier.',\n commitMode: 'live',\n },\n {\n path: 'globalVolume.imageProcessing.contrast',\n label: 'Contrast',\n valueType: 'number',\n control: 'number',\n value: postProcess.imageProcessing.contrast,\n min: 0,\n step: 0.01,\n tooltip: 'Image processing contrast multiplier.',\n commitMode: 'live',\n },\n {\n path: 'globalVolume.toneMapping.enabled',\n label: 'ToneMapping',\n valueType: 'boolean',\n control: 'boolean',\n value: postProcess.toneMapping.enabled,\n tooltip: 'Enable tone mapping in the default post-process pipeline.',\n commitMode: 'immediate',\n },\n {\n path: 'globalVolume.toneMapping.type',\n label: 'Tone Type',\n valueType: 'enum',\n control: 'enum',\n value: postProcess.toneMapping.type,\n options: [\n { label: 'ACES', value: 'aces' },\n { label: 'Standard', value: 'standard' },\n { label: 'KHR PBR Neutral', value: 'khr-pbr-neutral' },\n ],\n tooltip: 'Tone mapping curve used by the default post-process pipeline.',\n commitMode: 'immediate',\n },\n {\n path: 'globalVolume.antialiasing.samples',\n label: 'MSAA Samples',\n valueType: 'enum',\n control: 'enum',\n value: postProcess.antialiasing.samples,\n options: [\n { label: '1', value: 1 },\n { label: '2', value: 2 },\n { label: '4', value: 4 },\n { label: '8', value: 8 },\n ],\n tooltip: 'MSAA sample count for the default post-process pipeline.',\n commitMode: 'immediate',\n },\n {\n path: 'globalVolume.postProcessing.bloom.enabled',\n label: 'Bloom',\n valueType: 'boolean',\n control: 'boolean',\n value: postProcess.bloom.enabled,\n tooltip: 'Enable bloom in the shared default post-process pipeline.',\n commitMode: 'immediate',\n },\n {\n path: 'globalVolume.postProcessing.bloom.threshold',\n label: 'Bloom Threshold',\n valueType: 'number',\n control: 'number',\n value: postProcess.bloom.threshold,\n min: 0,\n step: 0.01,\n tooltip: 'Brightness threshold before pixels contribute to bloom.',\n commitMode: 'live',\n },\n {\n path: 'globalVolume.postProcessing.bloom.weight',\n label: 'Bloom Weight',\n valueType: 'number',\n control: 'number',\n value: postProcess.bloom.weight,\n min: 0,\n step: 0.01,\n tooltip: 'Bloom contribution weight.',\n commitMode: 'live',\n },\n {\n path: 'globalVolume.postProcessing.bloom.kernel',\n label: 'Bloom Kernel',\n valueType: 'number',\n control: 'number',\n value: postProcess.bloom.kernel,\n min: 0,\n step: 1,\n tooltip: 'Bloom blur kernel size.',\n commitMode: 'live',\n },\n {\n path: 'globalVolume.postProcessing.bloom.scale',\n label: 'Bloom Scale',\n valueType: 'number',\n control: 'number',\n value: postProcess.bloom.scale,\n min: 0.01,\n step: 0.01,\n tooltip: 'Bloom render scale.',\n commitMode: 'live',\n },\n ],\n },\n ],\n }, {\n id: 'shadows',\n title: 'Shadows',\n summary: 'Global shadow systems for editor preview and runtime.',\n layout: 'list',\n systemsCollapsible: true,\n systems: [\n ...(state.shadowMapExperiment ? [{\n id: 'shadow-map-experiment',\n label: 'Realtime Shadow Map',\n kind: 'custom' as const,\n group: { ...SHADOW_RENDERING_GROUP_REALTIME },\n active: state.shadowMapExperiment.enabled,\n summary: formatShadowMapExperimentSummary(state.shadowMapExperiment, language),\n properties: [\n {\n path: 'shadowMapExperiment.qualityProfile',\n label: 'Quality Profile',\n valueType: 'enum' as const,\n control: 'enum' as const,\n value: state.shadowMapExperiment.qualityProfileId ?? '',\n options: state.shadowMapExperiment.qualityProfileIds.map(profileId => ({\n value: profileId,\n label: formatShadowMapExperimentQualityProfileLabel(profileId, language),\n })),\n disabled: !state.shadowMapExperiment.configured\n || state.shadowMapExperiment.qualityProfileIds.length === 0,\n disabledReason: state.shadowMapExperiment.configured\n ? undefined\n : language === 'zh'\n ? '当前项目未配置实时阴影贴图。'\n : 'Shadow Map Experiment is not configured for this project.',\n tooltip: 'Scene-level quality owner shared by editor preview and runtime. Object Inspector does not override map resolution or filtering.',\n commitMode: 'immediate' as const,\n },\n createReadonlyRenderingProperty(\n 'shadowMapExperiment.maps.staticResolution',\n 'Static Map',\n formatShadowMapResolution(state.shadowMapExperiment.maps?.staticResolution),\n ),\n createReadonlyRenderingProperty(\n 'shadowMapExperiment.maps.dynamicResolution',\n 'Dynamic Map',\n formatShadowMapResolution(state.shadowMapExperiment.maps?.dynamicResolution),\n ),\n createReadonlyRenderingProperty(\n 'shadowMapExperiment.maps.compositeResolution',\n 'Composite Map',\n formatShadowMapResolution(state.shadowMapExperiment.maps?.compositeResolution),\n ),\n createReadonlyRenderingProperty(\n 'shadowMapExperiment.filter',\n 'Filter',\n state.shadowMapExperiment.filter ?? '—',\n ),\n createReadonlyRenderingProperty(\n 'shadowMapExperiment.darkness',\n 'Darkness',\n state.shadowMapExperiment.darkness ?? '—',\n ),\n createReadonlyRenderingProperty(\n 'shadowMapExperiment.bias',\n 'Bias',\n state.shadowMapExperiment.bias ?? '—',\n ),\n createReadonlyRenderingProperty(\n 'shadowMapExperiment.normalBias',\n 'Normal Bias',\n state.shadowMapExperiment.normalBias ?? '—',\n ),\n ],\n }] : []),\n {\n id: 'blob-shadow',\n label: 'Blob Shadow',\n kind: 'blob-shadow',\n group: { ...SHADOW_RENDERING_GROUP_BLOB },\n active: blob.enabled,\n summary: 'Default object shadow',\n properties: [\n {\n path: 'shadows.defaultMode',\n label: 'Default Mode',\n valueType: 'enum',\n control: 'enum',\n value: profile.shadows.defaultMode,\n options: createShadowDefaultModeOptions(options.language ?? 'en'),\n tooltip: 'Default shadow mode for GameObjects that use the project default.',\n commitMode: 'immediate',\n },\n {\n path: 'shadows.blob.enabled',\n label: 'Enabled',\n valueType: 'boolean',\n control: 'boolean',\n value: blob.enabled,\n tooltip: 'Enable the shared blob shadow system.',\n commitMode: 'immediate',\n },\n {\n path: 'shadows.blob.appearance.color',\n label: 'Color',\n valueType: 'color',\n control: 'color',\n value: blob.appearance.color,\n tooltip: 'Blob shadow RGB color. Opacity is edited separately.',\n commitMode: 'immediate',\n },\n {\n path: 'shadows.blob.appearance.color.a',\n label: 'Opacity',\n valueType: 'number',\n control: 'number',\n value: blob.appearance.color.a,\n min: 0,\n max: 1,\n step: 0.01,\n tooltip: 'Blob shadow opacity, clamped between 0 and 1.',\n commitMode: 'live',\n },\n {\n path: 'shadows.blob.appearance.edgeSoftness',\n label: 'Soft Edge',\n valueType: 'number',\n control: 'number',\n value: blob.appearance.edgeSoftness,\n min: 0,\n max: 0.98,\n step: 0.01,\n tooltip: 'Blob shadow soft edge start. Higher values keep the center denser before fading out.',\n commitMode: 'live',\n },\n {\n path: 'shadows.blob.plane.height',\n label: 'Height',\n valueType: 'number',\n control: 'number',\n value: blob.plane.height,\n step: 0.01,\n unit: 'm',\n tooltip: 'Ground plane height used by blob shadows.',\n commitMode: 'live',\n },\n {\n path: 'shadows.blob.plane.yOffset',\n label: 'Y Offset',\n valueType: 'number',\n control: 'number',\n value: blob.plane.yOffset,\n min: 0,\n step: 0.01,\n unit: 'm',\n tooltip: 'Vertical offset above the blob shadow plane to reduce z-fighting.',\n commitMode: 'live',\n },\n {\n path: 'shadows.blob.size.sizeMultiplier',\n label: 'Size Multiplier',\n valueType: 'number',\n control: 'number',\n value: blob.size.sizeMultiplier,\n min: 0,\n step: 0.01,\n tooltip: 'Scale blob shadow size from each caster bounds.',\n commitMode: 'live',\n },\n {\n path: 'shadows.blob.size.minSize',\n label: 'Min Size',\n valueType: 'number',\n control: 'number',\n value: blob.size.minSize,\n min: 0,\n step: 0.01,\n unit: 'm',\n tooltip: 'Minimum blob shadow size for tiny objects.',\n commitMode: 'live',\n },\n {\n path: 'shadows.blob.size.maxSize',\n label: 'Max Size',\n valueType: 'number',\n control: 'number',\n value: blob.size.maxSize,\n min: 0.01,\n step: 0.01,\n unit: 'm',\n tooltip: 'Maximum blob shadow size for large objects.',\n commitMode: 'live',\n },\n ],\n },\n {\n id: 'static-projected-shadow',\n label: 'Static Baked Shadow',\n kind: 'static-projected-shadow',\n group: { ...SHADOW_RENDERING_GROUP_STATIC },\n active: staticProjected.enabled,\n summary: staticShadowStatus.summary,\n status: staticShadowStatus.status,\n details: createStaticShadowBakeDetails(staticShadowBake, language),\n progress: staticShadowStatus.progress,\n actions: [{\n id: 'bake-static-shadows',\n label: 'Bake Static Shadows',\n icon: 'save',\n disabled: !staticProjected.enabled || staticShadowBakeInProgress,\n tooltip: staticShadowBakeInProgress\n ? 'Static shadow bake is already running.'\n : staticProjected.enabled\n ? 'Bake static shadow chunks for objects authored as Static Baked Shadow.'\n : 'Enable Static Baked Shadow before baking.',\n }],\n properties: [\n {\n path: 'shadows.staticProjected.enabled',\n label: 'Enabled',\n valueType: 'boolean',\n control: 'boolean',\n value: staticProjected.enabled,\n tooltip: 'Enable the shared static projected shadow system.',\n commitMode: 'immediate',\n },\n {\n path: 'shadows.staticProjected.appearance.color',\n label: 'Color',\n valueType: 'color',\n control: 'color',\n value: staticProjected.appearance.color,\n tooltip: 'Static shadow RGB color. Opacity is edited separately.',\n commitMode: 'immediate',\n },\n {\n path: 'shadows.staticProjected.appearance.color.a',\n label: 'Opacity',\n valueType: 'number',\n control: 'number',\n value: staticProjected.appearance.color.a,\n min: 0,\n max: 1,\n step: 0.01,\n tooltip: 'Static shadow opacity, clamped between 0 and 1.',\n commitMode: 'live',\n },\n {\n path: 'shadows.staticProjected.plane.height',\n label: 'Height',\n valueType: 'number',\n control: 'number',\n value: staticProjected.plane.height,\n step: 0.01,\n unit: 'm',\n tooltip: 'Ground plane height used by static projected shadows.',\n commitMode: 'live',\n },\n {\n path: 'shadows.staticProjected.plane.yOffset',\n label: 'Y Offset',\n valueType: 'number',\n control: 'number',\n value: staticProjected.plane.yOffset,\n min: 0,\n step: 0.01,\n unit: 'm',\n tooltip: 'Vertical offset above the static shadow plane to reduce z-fighting.',\n commitMode: 'live',\n },\n {\n path: 'shadows.staticProjected.bake.texelsPerMeter',\n label: 'Texels per Meter',\n valueType: 'number',\n control: 'number',\n value: staticProjected.bake.texelsPerMeter,\n min: 1,\n step: 1,\n tooltip: 'Target SDF atlas texel density for baked static shadows.',\n commitMode: 'blur',\n },\n {\n path: 'shadows.staticProjected.bake.atlasSize',\n label: 'Atlas Size',\n valueType: 'number',\n control: 'number',\n value: staticProjected.bake.atlasSize,\n min: 16,\n step: 1,\n tooltip: 'Maximum width and height for each static shadow atlas page.',\n commitMode: 'blur',\n },\n {\n path: 'shadows.staticProjected.bake.maxAtlasPages',\n label: 'Page Budget',\n valueType: 'number',\n control: 'number',\n value: staticProjected.bake.maxAtlasPages,\n min: 1,\n step: 1,\n tooltip: 'Maximum atlas pages allowed before bake lowers the effective texel density.',\n commitMode: 'blur',\n },\n {\n path: 'shadows.staticProjected.bake.sdfRadiusPx',\n label: 'SDF Radius',\n valueType: 'number',\n control: 'number',\n value: staticProjected.bake.sdfRadiusPx,\n min: 0,\n step: 1,\n tooltip: 'Signed-distance radius in pixels used to preserve crisp controllable edges.',\n commitMode: 'blur',\n },\n {\n path: 'shadows.staticProjected.bake.padding',\n label: 'Padding',\n valueType: 'number',\n control: 'number',\n value: staticProjected.bake.padding,\n min: 0,\n step: 0.01,\n tooltip: 'Extra projected bounds padding before baking the static shadow.',\n commitMode: 'live',\n },\n {\n path: 'shadows.staticProjected.bake.blur',\n label: 'Blur',\n valueType: 'number',\n control: 'number',\n value: staticProjected.bake.blur,\n min: 0,\n step: 0.5,\n tooltip: 'Reserved blur radius for static shadow bake softness.',\n commitMode: 'live',\n },\n {\n path: 'shadows.staticProjected.bake.spatialChunkSize',\n label: 'Spatial Chunk Size',\n valueType: 'number',\n control: 'number',\n value: staticProjected.bake.spatialChunkSize,\n min: 0.01,\n step: 0.01,\n unit: 'm',\n tooltip: 'World size of each spatial bake chunk before atlas packing.',\n commitMode: 'live',\n },\n {\n path: 'shadows.staticProjected.bake.targetChunkCount',\n label: 'Target Chunks',\n valueType: 'number',\n control: 'number',\n value: staticProjected.bake.targetChunkCount,\n min: 1,\n step: 1,\n tooltip: 'Soft chunk-count budget. Large scenes automatically enlarge spatial chunks to stay near this target.',\n commitMode: 'blur',\n },\n ],\n },\n {\n id: 'planar-main',\n label: 'Planar Main',\n kind: 'planar-shadow',\n group: { ...SHADOW_RENDERING_GROUP_PLANAR },\n active: planar.enabled,\n summary: 'Follow Directional Light',\n properties: [\n {\n path: 'shadows.planar.enabled',\n label: 'Enabled',\n valueType: 'boolean',\n control: 'boolean',\n value: planar.enabled,\n tooltip: 'Enable the shared planar shadow system.',\n commitMode: 'immediate',\n },\n {\n path: 'shadows.planar.appearance.color',\n label: 'Color',\n valueType: 'color',\n control: 'color',\n value: planar.appearance.color,\n tooltip: 'Planar shadow RGB color. Opacity is edited separately.',\n commitMode: 'immediate',\n },\n {\n path: 'shadows.planar.appearance.color.a',\n label: 'Opacity',\n valueType: 'number',\n control: 'number',\n value: planar.appearance.color.a,\n min: 0,\n max: 1,\n step: 0.01,\n tooltip: 'Planar shadow opacity, clamped between 0 and 1.',\n commitMode: 'live',\n },\n {\n path: 'shadows.planar.plane.heightMode',\n label: 'Height Source',\n valueType: 'string',\n control: 'readonly',\n value: planar.plane.heightMode === 'receiver' ? 'Auto from Receivers' : 'Fixed Height',\n readOnly: true,\n tooltip: 'Planar shadow receiver height is resolved from matched receiver meshes when available.',\n },\n {\n path: 'shadows.planar.plane.height',\n label: 'Fallback Height',\n valueType: 'number',\n control: 'number',\n value: planar.plane.height,\n step: 0.01,\n unit: 'm',\n tooltip: 'Fallback receiver plane height, used only when no receiver mesh can be resolved.',\n commitMode: 'live',\n },\n {\n path: 'shadows.planar.plane.bias',\n label: 'Bias',\n valueType: 'number',\n control: 'number',\n value: planar.plane.bias,\n min: 0,\n step: 0.01,\n tooltip: 'Projection bias used to keep the planar shadow stable.',\n commitMode: 'live',\n },\n {\n path: 'shadows.planar.projection.footprintScale',\n label: 'Footprint Scale',\n valueType: 'number',\n control: 'number',\n value: planar.projection.footprintScale,\n min: 0,\n max: 2,\n step: 0.01,\n tooltip: 'Scale the projected footprint around the caster center; lower values reduce hard-edged mesh projection artifacts.',\n commitMode: 'live',\n },\n {\n path: 'shadows.planar.stencil.enabled',\n label: 'Stencil',\n valueType: 'boolean',\n control: 'boolean',\n value: planar.stencil.enabled,\n tooltip: 'Use stencil routing so shadows affect only receivers.',\n commitMode: 'immediate',\n },\n {\n path: 'shadows.planar.casters.excludePatterns',\n label: 'Caster Excludes',\n valueType: 'string-list',\n control: 'string-list',\n value: planar.casters.excludePatterns,\n placeholder: 'One pattern per line',\n tooltip: 'Meshes matching these patterns will not cast planar shadows.',\n commitMode: 'blur',\n },\n {\n path: 'shadows.planar.casters.rootBoundaryPatterns',\n label: 'Caster Roots',\n valueType: 'string-list',\n control: 'string-list',\n value: planar.casters.rootBoundaryPatterns,\n placeholder: 'One pattern per line',\n tooltip: 'Optional root boundary patterns for caster auto-detection.',\n commitMode: 'blur',\n },\n {\n path: 'shadows.planar.receivers.patterns',\n label: 'Receivers',\n valueType: 'string-list',\n control: 'string-list',\n value: planar.receivers.patterns,\n placeholder: 'One pattern per line',\n tooltip: 'Meshes matching these patterns can receive planar shadows.',\n commitMode: 'blur',\n },\n {\n path: 'shadows.planar.direction',\n label: 'Direction',\n valueType: 'string',\n control: 'readonly',\n value: 'Follow Directional Light',\n readOnly: true,\n tooltip: 'Shadow direction is derived from the protected Directional Light.',\n },\n ],\n },\n {\n id: 'csm-shadow',\n label: 'CSM',\n kind: 'csm-shadow',\n group: { ...SHADOW_RENDERING_GROUP_COMPAT },\n active: profile.shadows.enabled && profile.shadows.useCsm && !planar.enabled,\n readOnly: true,\n summary: profile.shadows.useCsm ? 'Compatibility path' : 'Disabled',\n properties: [\n createReadonlyRenderingProperty('shadows.useCsm', 'Enabled', profile.shadows.useCsm),\n createReadonlyRenderingProperty('shadows.csm.numCascades', 'Cascades', profile.shadows.csm.numCascades),\n createReadonlyRenderingProperty('shadows.csm.lambda', 'Lambda', profile.shadows.csm.lambda),\n ],\n },\n ],\n }],\n };\n return localizeRenderingPanelState(\n hideDisabledShadowAuthoringSystems(panel),\n language,\n dirty,\n );\n}\n\nfunction resolveStaticShadowBakeLifecycleState(\n state: EditorSceneStaticShadowBakeLifecycleState | null | undefined,\n enabled: boolean,\n): EditorSceneStaticShadowBakeLifecycleState {\n if (!enabled) {\n return {\n status: 'disabled',\n chunkCount: 0,\n };\n }\n return state ?? {\n status: 'missing',\n chunkCount: 0,\n };\n}\n\nfunction hideDisabledShadowAuthoringSystems(\n panel: EditorSceneRenderingPanelState,\n): EditorSceneRenderingPanelState {\n if (EDITOR_SHADOW_STATIC_AUTHORING_ENABLED) return panel;\n return {\n ...panel,\n sections: panel.sections.map(section => ({\n ...section,\n systems: section.systems.filter(system => system.id !== 'static-projected-shadow'),\n })),\n };\n}\n\nfunction formatStaticShadowBakeLifecycleStatus(\n state: EditorSceneStaticShadowBakeLifecycleState,\n language: EditorSceneRenderingPanelLanguage,\n): { summary: string; status: string; progress?: EditorSceneRenderingProgress } {\n const chunkCount = Math.max(0, Math.trunc(state.chunkCount ?? 0));\n const chunkText = language === 'zh'\n ? `${chunkCount} 个分块`\n : `${chunkCount} chunk${chunkCount === 1 ? '' : 's'}`;\n if (state.status === 'baking') {\n const progress = state.progress ?? {\n label: language === 'zh' ? '正在烘焙静态阴影' : 'Baking static shadows',\n indeterminate: true,\n };\n return {\n summary: language === 'zh' ? '正在烘焙' : 'Baking',\n status: language === 'zh'\n ? formatChineseStaticShadowBakingStatus(state)\n : state.reason ?? 'Baking static shadow artifact.',\n progress: {\n ...progress,\n label: language === 'zh' ? formatChineseStaticShadowProgressLabel(state) : progress.label,\n },\n };\n }\n if (state.status === 'disabled') {\n const fallback = 'Static Baked Shadow is disabled.';\n return {\n summary: language === 'zh' ? '已禁用' : 'Disabled',\n status: resolveLocalizedStaticShadowStatusReason(\n state.reason,\n fallback,\n '静态烘焙阴影已禁用。',\n language,\n ),\n };\n }\n if (state.status === 'missing') {\n const fallback = 'No static shadow bake artifact is available.';\n return {\n summary: language === 'zh' ? '缺少烘焙' : 'Missing bake',\n status: resolveLocalizedStaticShadowStatusReason(\n state.reason,\n fallback,\n '当前没有可用的静态阴影烘焙数据。',\n language,\n ),\n };\n }\n if (state.status === 'preview-unsaved') {\n const fallback = 'Static shadow preview has not been saved yet.';\n return {\n summary: language === 'zh' ? `预览未保存 · ${chunkText}` : `Preview unsaved · ${chunkText}`,\n status: resolveLocalizedStaticShadowStatusReason(\n state.reason,\n fallback,\n '静态阴影预览尚未保存。',\n language,\n ),\n };\n }\n if (state.status === 'out-of-date') {\n const fallback = 'Static shadow bake is out of date.';\n return {\n summary: language === 'zh' ? `已过期 · ${chunkText}` : `Out of date · ${chunkText}`,\n status: resolveLocalizedStaticShadowStatusReason(\n state.reason,\n fallback,\n '静态阴影烘焙已过期。',\n language,\n ),\n };\n }\n if (state.status === 'invalid') {\n const fallback = 'Static shadow bake artifact is invalid.';\n return {\n summary: language === 'zh' ? '烘焙无效' : 'Invalid bake',\n status: resolveLocalizedStaticShadowStatusReason(\n state.reason,\n fallback,\n '静态阴影烘焙数据无效。',\n language,\n ),\n };\n }\n const fallback = 'Static shadow bake artifact is up to date.';\n if (chunkCount === 0) {\n return {\n summary: language === 'zh' ? '无静态投射物' : 'No static casters',\n status: resolveLocalizedStaticShadowStatusReason(\n state.reason,\n fallback,\n '没有物体被显式设置为静态烘焙阴影。',\n language,\n ),\n };\n }\n return {\n summary: language === 'zh' ? `最新 · ${chunkText}` : `Up to date · ${chunkText}`,\n status: resolveLocalizedStaticShadowStatusReason(\n state.reason,\n fallback,\n '静态阴影烘焙数据已是最新。',\n language,\n ),\n };\n}\n\nfunction resolveLocalizedStaticShadowStatusReason(\n reason: string | null | undefined,\n englishFallback: string,\n localizedFallback: string,\n language: EditorSceneRenderingPanelLanguage,\n): string {\n if (language !== 'zh') return reason ?? englishFallback;\n return !reason || reason === englishFallback ? localizedFallback : reason;\n}\n\nfunction formatChineseStaticShadowBakingStatus(state: EditorSceneStaticShadowBakeLifecycleState): string {\n const stats = state.stats ?? null;\n const phase = stats?.phase;\n const attempted = stats?.attemptedChunkCount ?? 0;\n const completed = stats?.chunkCount ?? 0;\n const atlasPages = stats?.pageCount ?? stats?.textureCount ?? 0;\n const encodedPages = stats?.textureCount ?? 0;\n if (phase === 'collect') {\n if ((stats?.sourceRootCount ?? 0) > 0) return `已收集 ${stats?.sourceRootCount ?? 0} 个静态投射物,正在准备空间分块。`;\n return '正在收集静态阴影投射物。';\n }\n if (phase === 'sdf') {\n if (attempted > 0) return `正在生成静态阴影 SDF ${Math.min(completed + 1, attempted)} / ${attempted}。`;\n return '正在生成静态阴影 SDF。';\n }\n if (phase === 'pack') {\n return `正在将 ${completed} 个静态阴影分块打包到 ${atlasPages} 张 Atlas。`;\n }\n if (phase === 'encode') {\n return `正在编码静态阴影 Atlas ${Math.min(encodedPages + 1, atlasPages || encodedPages + 1)} / ${atlasPages || encodedPages + 1}。`;\n }\n if (phase === 'complete') return '正在写入静态阴影烘焙数据。';\n if (attempted > 0) return `正在烘焙静态阴影分块 ${Math.min(completed + 1, attempted)} / ${attempted}。`;\n if ((stats?.sourceRootCount ?? 0) > 0) return `已收集 ${stats?.sourceRootCount ?? 0} 个静态投射物,正在准备分块。`;\n return '正在收集静态阴影投射物。';\n}\n\nfunction formatChineseStaticShadowProgressLabel(state: EditorSceneStaticShadowBakeLifecycleState): string {\n const stats = state.stats ?? null;\n const phase = stats?.phase;\n const attempted = stats?.attemptedChunkCount ?? 0;\n const completed = stats?.chunkCount ?? 0;\n if (phase === 'collect') return '收集静态投射物';\n if (phase === 'pack') return '打包静态阴影 Atlas';\n if (phase === 'encode') {\n const atlasPages = stats?.pageCount ?? stats?.textureCount ?? 0;\n const encodedPages = stats?.textureCount ?? 0;\n return `静态阴影 Atlas ${Math.min(encodedPages, atlasPages)} / ${atlasPages}`;\n }\n return attempted > 0\n ? `静态阴影烘焙 ${Math.min(completed, attempted)} / ${attempted}`\n : '正在烘焙静态阴影';\n}\n\nfunction createStaticShadowBakeDetails(\n state: EditorSceneStaticShadowBakeLifecycleState,\n language: EditorSceneRenderingPanelLanguage,\n): EditorSceneRenderingSystemDetail[] {\n const stats = state.stats ?? null;\n const details: EditorSceneRenderingSystemDetail[] = [];\n const add = (labelEn: string, labelZh: string, value: unknown, tone?: EditorSceneRenderingSystemDetail['tone']): void => {\n if (value == null || value === '') return;\n details.push({\n label: language === 'zh' ? labelZh : labelEn,\n value: String(value),\n ...(tone ? { tone } : {}),\n });\n };\n const chunkCount = stats?.chunkCount ?? state.chunkCount;\n const performance = calculateStaticShadowPerformanceDetails(stats, chunkCount);\n add('Static casters', '静态投射物', formatOptionalCount(stats?.sourceRootCount));\n add('Bake meshes', '参与 Mesh', formatOptionalCount(stats?.sourceMeshCount));\n add('Chunks', '分块', formatOptionalCount(chunkCount), chunkCount === 0 ? 'warning' : undefined);\n add('Atlas pages', 'Atlas 页', formatOptionalCount(stats?.pageCount ?? stats?.textureCount ?? chunkCount));\n add('Texture memory', '贴图显存', performance.textureMemoryText, performance.textureMemoryTone);\n add('Texture pixels', '贴图像素', performance.atlasPixelsText);\n add('Atlas occupancy', 'Atlas 利用率', performance.atlasOccupancyText, performance.atlasOccupancyTone);\n add('Atlas used', 'Atlas 已用', performance.atlasUsedPixelsText);\n add('Atlas allocated', 'Atlas 分配', performance.atlasAllocatedPixelsText);\n add('Runtime draws', '运行时 Draw', performance.drawCallsText);\n add('Shadow mesh', '阴影 Mesh', performance.meshText);\n add('Triangles', '三角形', performance.triangleText);\n add('Vertices', '顶点', performance.vertexText);\n add('Effective texels / m', '实际每米像素', formatOptionalNumber(stats?.effectiveTexelsPerMeter ?? stats?.texelsPerMeter));\n if (\n stats?.effectiveTexelsPerMeter != null\n && stats?.texelsPerMeter != null\n && Math.abs(stats.effectiveTexelsPerMeter - stats.texelsPerMeter) > 0.001\n ) {\n add('Target texels / m', '目标每米像素', formatOptionalNumber(stats.texelsPerMeter), 'warning');\n }\n add('Atlas size', 'Atlas 尺寸', stats?.atlasSize ? `${stats.atlasSize}px` : null);\n add('Page budget', '页预算', formatOptionalCount(stats?.maxAtlasPages));\n add('SDF radius', 'SDF 半径', stats?.sdfRadiusPx != null ? `${stats.sdfRadiusPx}px` : null);\n add('Spatial chunk', '空间分块', stats?.spatialChunkSize ? formatMeters(stats.spatialChunkSize) : null);\n if (\n stats?.effectiveSpatialChunkSize != null\n && stats?.spatialChunkSize != null\n && Math.abs(stats.effectiveSpatialChunkSize - stats.spatialChunkSize) > 0.001\n ) {\n add('Effective chunk', '实际分块', formatMeters(stats.effectiveSpatialChunkSize), 'warning');\n }\n add('Target chunks', '目标分块', formatOptionalCount(stats?.targetChunkCount));\n add('Baked chunks', '重烘分块', formatOptionalCount(stats?.bakedChunkCount));\n add('Reused chunks', '复用分块', formatOptionalCount(stats?.reusedChunkCount), stats?.reusedChunkCount ? 'success' : undefined);\n add('Resolution', '贴图尺寸', stats?.resolution ? `${stats.resolution}px` : null);\n add('Chunk size', '分块尺寸', stats?.chunkSize ? formatMeters(stats.chunkSize) : null);\n add('Duration', '耗时', formatDurationMs(stats?.durationMs, language));\n if (state.status === 'baking') {\n add('Current chunk', '当前分块', stats?.currentChunkId);\n const attempted = stats?.attemptedChunkCount;\n const completed = stats?.chunkCount;\n if (stats?.phase) add('Stage', '阶段', formatStaticShadowBakePhase(stats.phase, language));\n if (attempted != null && completed != null) {\n add('Progress', '进度', language === 'zh' ? `${completed} / ${attempted} 个分块` : `${completed} / ${attempted} chunks`);\n }\n } else {\n add('Skipped chunks', '跳过分块', formatOptionalCount(stats?.skippedChunkCount), stats?.skippedChunkCount ? 'warning' : undefined);\n }\n return details;\n}\n\nfunction calculateStaticShadowPerformanceDetails(\n stats: EditorSceneStaticShadowBakeLifecycleState['stats'],\n fallbackChunkCount: number | undefined,\n): {\n textureMemoryText: string | null;\n textureMemoryTone?: EditorSceneRenderingSystemDetail['tone'];\n atlasPixelsText: string | null;\n atlasUsedPixelsText: string | null;\n atlasAllocatedPixelsText: string | null;\n atlasOccupancyText: string | null;\n atlasOccupancyTone?: EditorSceneRenderingSystemDetail['tone'];\n drawCallsText: string | null;\n meshText: string | null;\n triangleText: string | null;\n vertexText: string | null;\n} {\n if (!stats) {\n return {\n textureMemoryText: null,\n atlasPixelsText: null,\n atlasUsedPixelsText: null,\n atlasAllocatedPixelsText: null,\n atlasOccupancyText: null,\n drawCallsText: null,\n meshText: null,\n triangleText: null,\n vertexText: null,\n };\n }\n const chunkCount = Math.max(0, Math.trunc(stats.chunkCount ?? fallbackChunkCount ?? 0));\n const isAtlas = stats.pageCount != null || stats.atlasSize != null || stats.effectiveTexelsPerMeter != null;\n const textureCount = Math.max(0, Math.trunc(\n isAtlas\n ? stats.pageCount ?? stats.textureCount ?? 0\n : stats.textureCount ?? chunkCount,\n ));\n const textureSize = isAtlas ? stats.atlasSize : stats.resolution;\n const fallbackTextureBytes = textureCount > 0 && textureSize != null && Number.isFinite(textureSize) && textureSize > 0\n ? textureCount * textureSize * textureSize * 4\n : null;\n const allocatedPixels = isAtlas\n ? stats.atlasAllocatedPixels ?? (fallbackTextureBytes != null ? fallbackTextureBytes / 4 : null)\n : (fallbackTextureBytes != null ? fallbackTextureBytes / 4 : null);\n const usedPixels = isAtlas ? stats.atlasUsedPixels ?? null : null;\n const textureBytes = allocatedPixels != null ? allocatedPixels * 4 : null;\n const occupancy = isAtlas\n ? stats.atlasOccupancy ?? (\n allocatedPixels != null && allocatedPixels > 0 && usedPixels != null\n ? usedPixels / allocatedPixels\n : null\n )\n : null;\n const drawCalls = textureCount > 0 ? textureCount : null;\n const renderMeshes = isAtlas ? drawCalls : chunkCount || null;\n const triangles = chunkCount > 0 ? chunkCount * 2 : null;\n const vertices = chunkCount > 0 ? chunkCount * 4 : null;\n return {\n textureMemoryText: formatBytes(textureBytes),\n textureMemoryTone: textureBytes != null && textureBytes >= 256 * 1024 * 1024 ? 'warning' : undefined,\n atlasPixelsText: formatPixelCount(allocatedPixels),\n atlasUsedPixelsText: formatPixelCount(usedPixels),\n atlasAllocatedPixelsText: formatPixelCount(allocatedPixels),\n atlasOccupancyText: formatPercentage(occupancy),\n atlasOccupancyTone: occupancy != null && occupancy < 0.35 ? 'warning' : undefined,\n drawCallsText: formatOptionalCount(drawCalls),\n meshText: formatOptionalCount(renderMeshes),\n triangleText: formatOptionalCount(triangles),\n vertexText: formatOptionalCount(vertices),\n };\n}\n\nfunction formatStaticShadowBakePhase(phase: string, language: EditorSceneRenderingPanelLanguage): string {\n if (language !== 'zh') return phase;\n switch (phase) {\n case 'collect': return '收集';\n case 'reuse': return '复用已有分块';\n case 'chunk': return '烘焙分块';\n case 'sdf': return '生成 SDF';\n case 'pack': return '打包 Atlas';\n case 'encode': return '编码 Atlas';\n case 'complete': return '写入结果';\n default: return phase;\n }\n}\n\nfunction formatOptionalCount(value: number | null | undefined): string | null {\n if (value == null || !Number.isFinite(value)) return null;\n return String(Math.max(0, Math.trunc(value)));\n}\n\nfunction formatOptionalNumber(value: number | null | undefined): string | null {\n if (value == null || !Number.isFinite(value)) return null;\n return Number.isInteger(value) ? String(value) : value.toFixed(2).replace(/\\.?0+$/, '');\n}\n\nfunction formatPixelCount(value: number | null | undefined): string | null {\n if (value == null || !Number.isFinite(value)) return null;\n const pixels = Math.max(0, value);\n if (pixels >= 1_000_000) return `${formatOptionalNumber(pixels / 1_000_000)} MP`;\n if (pixels >= 1_000) return `${formatOptionalNumber(pixels / 1_000)} KP`;\n return formatOptionalCount(pixels);\n}\n\nfunction formatPercentage(value: number | null | undefined): string | null {\n if (value == null || !Number.isFinite(value)) return null;\n return `${formatOptionalNumber(Math.max(0, Math.min(1, value)) * 100)}%`;\n}\n\nfunction formatBytes(value: number | null | undefined): string | null {\n if (value == null || !Number.isFinite(value)) return null;\n const bytes = Math.max(0, value);\n if (bytes >= 1024 * 1024 * 1024) return `${formatOptionalNumber(bytes / (1024 * 1024 * 1024))} GiB`;\n if (bytes >= 1024 * 1024) return `${formatOptionalNumber(bytes / (1024 * 1024))} MiB`;\n if (bytes >= 1024) return `${formatOptionalNumber(bytes / 1024)} KiB`;\n return `${formatOptionalCount(bytes)} B`;\n}\n\nfunction formatMeters(value: number): string {\n const text = Number.isInteger(value) ? String(value) : value.toFixed(2).replace(/\\.?0+$/, '');\n return `${text} m`;\n}\n\nfunction formatDurationMs(value: number | null | undefined, language: EditorSceneRenderingPanelLanguage): string | null {\n if (value == null || !Number.isFinite(value)) return null;\n const duration = Math.max(0, value);\n if (duration < 1000) return `${Math.round(duration)} ms`;\n const seconds = duration / 1000;\n const text = seconds < 10 ? seconds.toFixed(1) : String(Math.round(seconds));\n return language === 'zh' ? `${text} 秒` : `${text}s`;\n}\n\nfunction formatShadowMapExperimentSummary(\n state: NonNullable<EditorSceneRenderingPanelStateInput['shadowMapExperiment']>,\n language: EditorSceneRenderingPanelLanguage,\n): string {\n if (!state.configured) return language === 'zh' ? '未配置' : 'Not configured';\n if (!state.enabled) return language === 'zh' ? '已关闭' : 'Disabled';\n const resolution = state.maps?.compositeResolution;\n const profileLabel = state.qualityProfileId\n ? formatShadowMapExperimentQualityProfileLabel(state.qualityProfileId, language)\n : language === 'zh' ? '默认' : 'Default';\n return [profileLabel, resolution ? `${resolution}px` : null, state.filter]\n .filter((value): value is string => typeof value === 'string' && value.length > 0)\n .join(' · ');\n}\n\nfunction formatShadowMapExperimentQualityProfileLabel(\n profileId: string,\n language: EditorSceneRenderingPanelLanguage,\n): string {\n const normalized = profileId.trim().toLowerCase();\n if (language === 'zh') {\n if (normalized === 'balanced') return '平衡';\n if (normalized === 'high') return '高质量';\n if (normalized === 'ultra') return '超高质量';\n if (normalized === 'performance' || normalized === 'low') return '高性能';\n }\n if (normalized === 'balanced') return 'Balanced';\n if (normalized === 'high') return 'High';\n if (normalized === 'ultra') return 'Ultra';\n if (normalized === 'performance' || normalized === 'low') return 'Performance';\n return profileId;\n}\n\nfunction formatShadowMapResolution(value: number | null | undefined): string {\n return value != null && Number.isFinite(value) ? `${Math.max(0, Math.trunc(value))} px` : '—';\n}\n\nfunction createRenderingGroupsSection(\n slots: readonly EditorSceneRenderingGroupSlot[],\n): EditorSceneRenderingPanelState['sections'][number] {\n return {\n id: 'rendering-groups',\n title: 'Rendering Groups / Order Presets',\n summary: 'Named Babylon rendering groups and alphaIndex presets used by object Inspector dropdowns.',\n layout: 'list',\n systems: slots.map((slot) => ({\n id: `rendering-group-${slot.renderingGroupId}`,\n label: slot.name,\n kind: 'rendering-group',\n active: true,\n summary: `Babylon group ${slot.renderingGroupId}`,\n actions: [{\n id: 'rendering-alpha-preset.add',\n label: 'Add Order Preset',\n icon: 'plus',\n tooltip: 'Add a named alphaIndex preset for this rendering group.',\n params: { renderingGroupId: slot.renderingGroupId },\n }],\n properties: [\n createReadonlyRenderingProperty(\n `renderingGroups.slots.${slot.renderingGroupId}.renderingGroupId`,\n 'Group ID',\n slot.renderingGroupId,\n ),\n {\n path: `renderingGroups.slots.${slot.renderingGroupId}.name`,\n label: 'Group Name',\n valueType: 'string',\n control: 'string',\n value: slot.name,\n tooltip: 'Display name for this fixed Babylon rendering group id.',\n commitMode: 'blur',\n },\n ...slot.alphaIndexPresets.flatMap((preset, index): EditorSceneRenderingProperty[] => [\n {\n path: `renderingGroups.slots.${slot.renderingGroupId}.alphaIndexPresets.${index}.name`,\n label: `Preset ${index + 1} Name`,\n valueType: 'string',\n control: 'string',\n value: preset.name,\n tooltip: 'User-facing name shown in object Inspector dropdowns.',\n commitMode: 'blur',\n actions: [{\n id: 'rendering-alpha-preset.delete',\n label: 'Delete',\n icon: 'trash',\n tooltip: 'Delete this alphaIndex preset. Existing objects keep their numeric alphaIndex.',\n params: { renderingGroupId: slot.renderingGroupId, presetIndex: index },\n }],\n },\n {\n path: `renderingGroups.slots.${slot.renderingGroupId}.alphaIndexPresets.${index}.alphaIndex`,\n label: `Preset ${index + 1} Value`,\n valueType: 'number',\n control: 'number',\n value: preset.alphaIndex,\n step: 1,\n tooltip: 'Babylon alphaIndex value stored on objects that use this preset.',\n commitMode: 'blur',\n },\n ]),\n ],\n })),\n };\n}\n\nfunction createReadonlyRenderingProperty(\n path: string,\n label: string,\n value: unknown,\n): EditorSceneRenderingProperty {\n return {\n path,\n label,\n valueType: typeof value === 'boolean' ? 'boolean' : typeof value === 'number' ? 'number' : 'string',\n control: 'readonly',\n value,\n readOnly: true,\n };\n}\n\nfunction createEnvironmentTexturePickerControlOptions(input: {\n textureAssets?: readonly EditorSceneRenderingTextureAsset[];\n currentTextureAssetId: string;\n fallbackUrl: string;\n language: EditorSceneRenderingPanelLanguage;\n}): Record<string, unknown> {\n const text = input.language === 'zh'\n ? {\n pickerTitle: '选择 IBL 贴图',\n replace: '替换',\n none: '无',\n noneMeta: '未设置环境贴图',\n }\n : {\n pickerTitle: 'Select IBL Texture',\n replace: 'Replace',\n none: 'None',\n noneMeta: 'No environment texture',\n };\n const currentTexture = input.textureAssets?.find(texture => texture.id === input.currentTextureAssetId) ?? null;\n const environmentTextures = (input.textureAssets ?? []).filter(isEditorSceneEnvironmentTextureAsset);\n const currentLabel = currentTexture?.label\n ?? (input.currentTextureAssetId || input.fallbackUrl || text.none);\n const currentMeta = currentTexture?.meta\n ?? (input.currentTextureAssetId || input.fallbackUrl || text.noneMeta);\n return {\n pickerKind: 'texture',\n pickerTitle: text.pickerTitle,\n actionLabel: text.replace,\n placeholder: text.none,\n currentLabel,\n currentMeta,\n currentPreview: currentTexture ? createRenderingTextureAssetPreview(currentTexture) : undefined,\n candidates: [\n {\n label: text.none,\n value: '',\n meta: text.noneMeta,\n },\n ...environmentTextures.map(texture => ({\n label: texture.label,\n value: texture.id,\n meta: texture.meta ?? texture.id,\n kind: 'texture' as const,\n preview: createRenderingTextureAssetPreview(texture),\n })),\n ],\n };\n}\n\nfunction createShadowDefaultModeOptions(language: EditorSceneRenderingPanelLanguage): readonly { label: string; value: string }[] {\n return language === 'zh'\n ? [\n { label: '无阴影', value: 'none' },\n { label: 'Blob 阴影', value: 'blob' },\n ...(EDITOR_SHADOW_STATIC_AUTHORING_ENABLED\n ? [{ label: '静态烘焙阴影', value: 'static' }]\n : []),\n { label: '主平面阴影', value: 'planar' },\n ]\n : [\n { label: 'None', value: 'none' },\n { label: 'Blob', value: 'blob' },\n ...(EDITOR_SHADOW_STATIC_AUTHORING_ENABLED\n ? [{ label: 'Static Baked', value: 'static' }]\n : []),\n { label: 'Planar', value: 'planar' },\n ];\n}\n\nfunction isEditorSceneEnvironmentTextureAsset(texture: EditorSceneRenderingTextureAsset): boolean {\n if (texture.capabilities?.environmentTexture === true) return true;\n if (texture.capabilities?.environmentTexture === false) return false;\n if (texture.usage === 'environment') return true;\n return isEnvironmentTextureUrl(texture.url);\n}\n\nfunction isEnvironmentTextureUrl(url: string): boolean {\n return /\\.(env|hdr|dds|ktx|ktx2)(?:[?#].*)?$/i.test(url);\n}\n\nfunction createRenderingTextureAssetPreview(texture: EditorSceneRenderingTextureAsset): Record<string, unknown> {\n return {\n kind: 'image',\n url: texture.url,\n alt: texture.label,\n fit: 'contain',\n };\n}\n\ntype RenderingLocalizedPropertyText = {\n label?: string;\n tooltip?: string;\n placeholder?: string;\n readonlyValue?: Record<string, string>;\n};\n\ntype RenderingPanelText = {\n title: string;\n summary: string;\n dirtyStatus: string;\n revert: string;\n revertDirty: string;\n revertClean: string;\n bakeStatic: string;\n bakeStaticReady: string;\n bakeStaticDisabled: string;\n bakeStaticRunning: string;\n sections: Record<string, { title?: string; summary?: string }>;\n groups: Record<string, { label?: string; summary?: string }>;\n systems: Record<string, { label?: string; summary?: string; disabled?: string; compatibility?: string }>;\n properties: Record<string, RenderingLocalizedPropertyText>;\n};\n\nconst RENDERING_PANEL_TEXT: Record<EditorSceneRenderingPanelLanguage, RenderingPanelText> = {\n en: {\n title: 'Rendering',\n summary: 'Project-level rendering settings shared by editor preview and runtime.',\n dirtyStatus: 'Rendering changes are not saved yet.',\n revert: 'Revert',\n revertDirty: 'Revert rendering settings to the last saved rendering settings.',\n revertClean: 'Rendering settings already match the last saved rendering settings.',\n bakeStatic: 'Bake Static Shadows',\n bakeStaticReady: 'Bake static shadow chunks for objects authored as Static Baked Shadow.',\n bakeStaticDisabled: 'Enable Static Baked Shadow before baking.',\n bakeStaticRunning: 'Static shadow bake is already running.',\n sections: {\n 'rendering-groups': {\n title: 'Rendering Groups / Order Presets',\n summary: 'Named Babylon rendering groups and alphaIndex presets used by object Inspector dropdowns.',\n },\n environment: {\n title: 'Environment / IBL',\n summary: 'World environment texture and reflection lighting shared by editor preview and runtime.',\n },\n 'post-process': {\n title: 'Post Process Volume',\n summary: 'Global Babylon Default post-process profile shared by editor preview and runtime.',\n },\n shadows: {\n title: 'Shadows',\n summary: 'Global shadow systems for editor preview and runtime.',\n },\n },\n groups: {\n 'shadow-group-moving-object': {\n label: 'Moving Object Shadows',\n summary: 'Blob: lightweight for moving objects and project-default fallback.',\n },\n 'shadow-group-static-scene': {\n label: 'Static Scene Shadows',\n summary: 'Consumes baked artifacts; update during authoring/build, runtime only displays results.',\n },\n 'shadow-group-directional-planar': {\n label: 'Directional Planar Shadows',\n summary: 'Real-time planar projection following the directional light.',\n },\n 'shadow-group-realtime-map': {\n label: 'Realtime Shadow Maps',\n summary: 'One scene-level quality profile owns map resolution, filtering, and bias.',\n },\n 'shadow-group-compatibility': {\n label: 'Advanced Shadows',\n summary: 'CSM read-only runtime status.',\n },\n },\n systems: {\n 'environment-global': {\n label: 'Environment Texture',\n },\n 'post-process-global': {\n label: 'Global',\n summary: 'Babylon Default',\n },\n 'planar-main': {\n label: 'Planar Main',\n summary: 'Follow Directional Light',\n },\n 'shadow-map-experiment': {\n label: 'Realtime Shadow Map',\n },\n 'blob-shadow': {\n label: 'Blob Shadow',\n summary: 'Default object shadow',\n },\n 'static-projected-shadow': {\n label: 'Static Baked Shadow',\n summary: 'Baked object shape',\n },\n 'csm-shadow': {\n label: 'CSM',\n disabled: 'Disabled',\n compatibility: 'Compatibility path',\n },\n },\n properties: {\n 'shadowMapExperiment.qualityProfile': {\n label: 'Quality Profile',\n tooltip: 'Scene-level quality owner shared by editor preview and runtime. Object Inspector does not override map resolution or filtering.',\n },\n 'shadowMapExperiment.maps.staticResolution': {\n label: 'Static Map',\n },\n 'shadowMapExperiment.maps.dynamicResolution': {\n label: 'Dynamic Map',\n },\n 'shadowMapExperiment.maps.compositeResolution': {\n label: 'Composite Map',\n },\n 'shadowMapExperiment.filter': {\n label: 'Filter',\n },\n 'shadowMapExperiment.darkness': {\n label: 'Darkness',\n },\n 'shadowMapExperiment.bias': {\n label: 'Bias',\n },\n 'shadowMapExperiment.normalBias': {\n label: 'Normal Bias',\n },\n 'globalVolume.environment.texture.textureAssetId': {\n label: 'IBL Texture',\n tooltip: 'Select a project texture asset for Babylon scene.environmentTexture. Prefer prefiltered .env environment textures.',\n },\n 'globalVolume.environment.iblIntensity': {\n label: 'IBL Intensity',\n tooltip: 'Environment reflection intensity for PBR materials.',\n },\n 'globalVolume.environment.rotationY': {\n label: 'IBL Rotation',\n tooltip: 'Y-axis rotation applied to the environment texture.',\n },\n 'shadows.defaultMode': {\n label: 'Default Mode',\n tooltip: 'Default shadow mode for GameObjects that use the project default.',\n },\n 'shadows.blob.enabled': {\n label: 'Enabled',\n tooltip: 'Enable the shared blob shadow system.',\n },\n 'shadows.blob.appearance.color': {\n label: 'Color',\n tooltip: 'Blob shadow RGB color. Opacity is edited separately.',\n },\n 'shadows.blob.appearance.color.a': {\n label: 'Opacity',\n tooltip: 'Blob shadow opacity, clamped between 0 and 1.',\n },\n 'shadows.blob.appearance.edgeSoftness': {\n label: 'Soft Edge',\n tooltip: 'Blob shadow soft edge start. Higher values keep the center denser before fading out.',\n },\n 'shadows.blob.plane.height': {\n label: 'Height',\n tooltip: 'Ground plane height used by blob shadows.',\n },\n 'shadows.blob.plane.yOffset': {\n label: 'Y Offset',\n tooltip: 'Vertical offset above the blob shadow plane to reduce z-fighting.',\n },\n 'shadows.blob.size.sizeMultiplier': {\n label: 'Size Multiplier',\n tooltip: 'Scale blob shadow size from each caster bounds.',\n },\n 'shadows.blob.size.minSize': {\n label: 'Min Size',\n tooltip: 'Minimum blob shadow size for tiny objects.',\n },\n 'shadows.blob.size.maxSize': {\n label: 'Max Size',\n tooltip: 'Maximum blob shadow size for large objects.',\n },\n 'shadows.staticProjected.enabled': {\n label: 'Enabled',\n tooltip: 'Enable the shared static projected shadow system.',\n },\n 'shadows.staticProjected.appearance.color': {\n label: 'Color',\n tooltip: 'Static shadow RGB color. Opacity is edited separately.',\n },\n 'shadows.staticProjected.appearance.color.a': {\n label: 'Opacity',\n tooltip: 'Static shadow opacity, clamped between 0 and 1.',\n },\n 'shadows.staticProjected.plane.height': {\n label: 'Height',\n tooltip: 'Ground plane height used by static projected shadows.',\n },\n 'shadows.staticProjected.plane.yOffset': {\n label: 'Y Offset',\n tooltip: 'Vertical offset above the static shadow plane to reduce z-fighting.',\n },\n 'shadows.staticProjected.bake.padding': {\n label: 'Padding',\n tooltip: 'Extra projected bounds padding before baking the static shadow.',\n },\n 'shadows.staticProjected.bake.blur': {\n label: 'Blur',\n tooltip: 'Reserved blur radius for static shadow bake softness.',\n },\n 'shadows.staticProjected.bake.texelsPerMeter': {\n label: 'Texels per Meter',\n tooltip: 'Target SDF atlas texel density for baked static shadows.',\n },\n 'shadows.staticProjected.bake.atlasSize': {\n label: 'Atlas Size',\n tooltip: 'Maximum width and height for each static shadow atlas page.',\n },\n 'shadows.staticProjected.bake.maxAtlasPages': {\n label: 'Page Budget',\n tooltip: 'Maximum atlas pages before bake lowers the effective texel density.',\n },\n 'shadows.staticProjected.bake.sdfRadiusPx': {\n label: 'SDF Radius',\n tooltip: 'Signed-distance radius in pixels used for crisp controllable edges.',\n },\n 'shadows.staticProjected.bake.spatialChunkSize': {\n label: 'Spatial Chunk Size',\n tooltip: 'World size of each spatial bake chunk before atlas packing.',\n },\n 'shadows.staticProjected.bake.targetChunkCount': {\n label: 'Target Chunks',\n tooltip: 'Soft chunk-count budget. Large scenes automatically enlarge spatial chunks to stay near this target.',\n },\n },\n },\n zh: {\n title: '渲染',\n summary: '项目级渲染设置。编辑器预览和运行时共用同一套渲染管线。',\n dirtyStatus: '渲染设置尚未保存。',\n revert: '还原',\n revertDirty: '还原到上一次保存的渲染设置。',\n revertClean: '当前渲染设置已经和上一次保存状态一致。',\n bakeStatic: '烘焙静态阴影',\n bakeStaticReady: '为标记为静态烘焙阴影的物体生成分块阴影。',\n bakeStaticDisabled: '请先启用静态烘焙阴影。',\n bakeStaticRunning: '静态阴影正在烘焙中。',\n sections: {\n 'rendering-groups': {\n title: '渲染分组 / 顺序预设',\n summary: '项目级 Babylon rendering group 名称和 alphaIndex 预设,用于物体 Inspector 下拉选择。',\n },\n environment: {\n title: '环境 / IBL',\n summary: '世界环境贴图与 PBR 环境反射,编辑器预览和运行时共用。',\n },\n 'post-process': {\n title: '后处理 Volume',\n summary: '全局 Babylon Default 后处理参数,编辑器预览和运行时共用。',\n },\n shadows: {\n title: '阴影',\n summary: '项目级阴影系统,编辑器预览和运行时共用。',\n },\n },\n groups: {\n 'shadow-group-moving-object': {\n label: '移动物体阴影',\n summary: 'Blob:低成本,适合移动物体,也可作为项目默认阴影。',\n },\n 'shadow-group-static-scene': {\n label: '静态场景阴影',\n summary: '只显示已烘焙 artifact;编辑器/构建期更新,运行时消费结果。',\n },\n 'shadow-group-directional-planar': {\n label: '主平面实时阴影',\n summary: '跟随直射光动态投影,适合需要方向感的物体。',\n },\n 'shadow-group-realtime-map': {\n label: '实时阴影贴图',\n summary: '由唯一的场景级质量档统一决定分辨率、过滤和偏移。',\n },\n 'shadow-group-compatibility': {\n label: '兼容阴影',\n summary: '旧 ShadowGenerator / CSM 只读兼容路径。',\n },\n },\n systems: {\n 'environment-global': {\n label: '环境贴图',\n },\n 'post-process-global': {\n label: '全局',\n summary: 'Babylon Default',\n },\n 'planar-main': {\n label: '主平面阴影',\n summary: '跟随直射光',\n },\n 'shadow-map-experiment': {\n label: '实时阴影贴图',\n },\n 'blob-shadow': {\n label: 'Blob 阴影',\n summary: '默认物体阴影',\n },\n 'static-projected-shadow': {\n label: '静态烘焙阴影',\n summary: '烘焙物体轮廓',\n },\n 'csm-shadow': {\n label: '级联阴影',\n disabled: '已禁用',\n compatibility: '兼容路径',\n },\n },\n properties: {\n 'shadowMapExperiment.qualityProfile': {\n label: '质量档',\n tooltip: '场景级质量档是编辑器预览和运行时共享的唯一质量来源;物体检查器不会覆盖贴图分辨率或过滤方式。',\n },\n 'shadowMapExperiment.maps.staticResolution': {\n label: '静态贴图',\n },\n 'shadowMapExperiment.maps.dynamicResolution': {\n label: '动态贴图',\n },\n 'shadowMapExperiment.maps.compositeResolution': {\n label: '合成贴图',\n },\n 'shadowMapExperiment.filter': {\n label: '过滤',\n },\n 'shadowMapExperiment.darkness': {\n label: '阴影强度',\n },\n 'shadowMapExperiment.bias': {\n label: '偏移',\n },\n 'shadowMapExperiment.normalBias': {\n label: '法线偏移',\n },\n 'globalVolume.enabled': {\n label: '启用',\n tooltip: '启用项目共用的默认后处理管线。关闭后会销毁运行时和编辑器预览中的 DefaultRenderingPipeline。',\n },\n 'globalVolume.hdr': {\n label: 'HDR',\n tooltip: '使用 HDR 渲染目标。通常建议开启,以保留高亮、Bloom 和 ToneMapping 的动态范围。',\n },\n 'globalVolume.environment.texture.textureAssetId': {\n label: 'IBL 贴图',\n tooltip: '从项目贴图资产中选择 Babylon scene.environmentTexture。建议使用预过滤的 .env 环境贴图。',\n },\n 'globalVolume.environment.iblIntensity': {\n label: 'IBL 强度',\n tooltip: 'PBR 材质的环境反射强度。需要先配置 IBL 贴图才会有明显效果。',\n },\n 'globalVolume.environment.rotationY': {\n label: 'IBL 旋转',\n tooltip: '环境贴图绕 Y 轴旋转,用于调整反射方向。',\n },\n 'globalVolume.imageProcessing.exposure': {\n label: '曝光',\n tooltip: '图像处理曝光倍率。1 表示保持原始亮度;数值越高画面越亮。',\n },\n 'globalVolume.imageProcessing.contrast': {\n label: '对比度',\n tooltip: '图像处理对比度倍率。1 表示默认对比;提高会增强明暗差异。',\n },\n 'globalVolume.toneMapping.enabled': {\n label: 'ToneMapping',\n tooltip: '启用色调映射,把 HDR 颜色压缩到屏幕可显示范围。',\n },\n 'globalVolume.toneMapping.type': {\n label: 'Tone 类型',\n tooltip: 'ToneMapping 曲线类型。ACES 更接近影视感;Standard 更直接;KHR PBR Neutral 更适合 PBR 中性预览。',\n },\n 'globalVolume.antialiasing.samples': {\n label: 'MSAA 采样',\n tooltip: '默认后处理管线的 MSAA 采样数。数值越高边缘越平滑,但性能成本也更高。',\n },\n 'globalVolume.postProcessing.bloom.enabled': {\n label: 'Bloom',\n tooltip: '启用泛光效果,让高亮区域向外扩散发光。',\n },\n 'globalVolume.postProcessing.bloom.threshold': {\n label: 'Bloom 阈值',\n tooltip: '参与 Bloom 的亮度阈值。数值越低,更多区域会发光。',\n },\n 'globalVolume.postProcessing.bloom.weight': {\n label: 'Bloom 强度',\n tooltip: 'Bloom 对最终画面的贡献权重。',\n },\n 'globalVolume.postProcessing.bloom.kernel': {\n label: 'Bloom 核大小',\n tooltip: 'Bloom 模糊核大小。数值越高,光晕扩散范围越大。',\n },\n 'globalVolume.postProcessing.bloom.scale': {\n label: 'Bloom 缩放',\n tooltip: 'Bloom 渲染缩放比例。较低数值更省性能,较高数值细节更稳定。',\n },\n 'shadows.defaultMode': {\n label: '默认模式',\n tooltip: '使用项目默认阴影的 GameObject 会采用这个模式。',\n },\n 'shadows.blob.enabled': {\n label: '启用',\n tooltip: '启用共用的 Blob 阴影系统。',\n },\n 'shadows.blob.appearance.color': {\n label: '颜色',\n tooltip: 'Blob 阴影颜色。透明度单独编辑。',\n },\n 'shadows.blob.appearance.color.a': {\n label: '不透明度',\n tooltip: 'Blob 阴影不透明度,范围 0 到 1。',\n },\n 'shadows.blob.appearance.edgeSoftness': {\n label: '柔边',\n tooltip: 'Blob 阴影柔边起点。数值越高,中心区域越实,边缘再逐渐淡出。',\n },\n 'shadows.blob.plane.height': {\n label: '高度',\n tooltip: 'Blob 阴影所在的地面高度。',\n },\n 'shadows.blob.plane.yOffset': {\n label: 'Y 偏移',\n tooltip: 'Blob 阴影相对地面的垂直偏移,用于避免 z-fighting。',\n },\n 'shadows.blob.size.sizeMultiplier': {\n label: '尺寸倍率',\n tooltip: '根据投射物包围盒计算 Blob 阴影尺寸时使用的倍率。',\n },\n 'shadows.blob.size.minSize': {\n label: '最小尺寸',\n tooltip: '很小物体使用的最小 Blob 阴影尺寸。',\n },\n 'shadows.blob.size.maxSize': {\n label: '最大尺寸',\n tooltip: '大型物体使用的最大 Blob 阴影尺寸。',\n },\n 'shadows.staticProjected.enabled': {\n label: '启用',\n tooltip: '启用共用的静态烘焙阴影系统。',\n },\n 'shadows.staticProjected.appearance.color': {\n label: '颜色',\n tooltip: '静态烘焙阴影颜色。透明度单独编辑。',\n },\n 'shadows.staticProjected.appearance.color.a': {\n label: '不透明度',\n tooltip: '静态烘焙阴影不透明度,范围 0 到 1。',\n },\n 'shadows.staticProjected.plane.height': {\n label: '高度',\n tooltip: '静态烘焙阴影所在的地面高度。',\n },\n 'shadows.staticProjected.plane.yOffset': {\n label: 'Y 偏移',\n tooltip: '静态烘焙阴影相对地面的垂直偏移,用于避免 z-fighting。',\n },\n 'shadows.staticProjected.bake.padding': {\n label: '留白',\n tooltip: '烘焙静态阴影前给投影范围增加的留白。',\n },\n 'shadows.staticProjected.bake.blur': {\n label: '模糊',\n tooltip: '静态阴影烘焙柔化预留半径。',\n },\n 'shadows.staticProjected.bake.texelsPerMeter': {\n label: '每米像素',\n tooltip: '静态阴影 SDF atlas 的目标像素密度。',\n },\n 'shadows.staticProjected.bake.atlasSize': {\n label: 'Atlas 尺寸',\n tooltip: '每张静态阴影 atlas 页的最大宽高。',\n },\n 'shadows.staticProjected.bake.maxAtlasPages': {\n label: '页预算',\n tooltip: '超过该 atlas 页数时,烘焙会降低实际每米像素以保护运行时成本。',\n },\n 'shadows.staticProjected.bake.sdfRadiusPx': {\n label: 'SDF 半径',\n tooltip: '用于重建清晰可控边缘的有符号距离半径,单位像素。',\n },\n 'shadows.staticProjected.bake.spatialChunkSize': {\n label: '空间分块尺寸',\n tooltip: '进入 atlas packing 前,每个空间烘焙分块覆盖的世界尺寸。',\n },\n 'shadows.staticProjected.bake.targetChunkCount': {\n label: '目标分块数',\n tooltip: '分块数量软预算。大场景会自动放大空间分块,尽量接近该数量。',\n },\n 'shadows.planar.enabled': {\n label: '启用',\n tooltip: '启用共用的平面阴影系统。运行时和编辑器预览会使用同一套参数。',\n },\n 'shadows.planar.appearance.color': {\n label: '颜色',\n tooltip: '平面阴影颜色。透明度单独编辑。',\n },\n 'shadows.planar.appearance.color.a': {\n label: '不透明度',\n tooltip: '平面阴影不透明度,范围 0 到 1。',\n },\n 'shadows.planar.plane.heightMode': {\n label: '高度来源',\n tooltip: '平面阴影接收高度。Auto 会优先从匹配的接收物体计算。',\n readonlyValue: {\n 'Auto from Receivers': '自动从接收物体计算',\n 'Fixed Height': '固定高度',\n },\n },\n 'shadows.planar.plane.height': {\n label: '备用高度',\n tooltip: '没有可用接收物体时使用的备用平面高度。',\n },\n 'shadows.planar.plane.bias': {\n label: '偏移',\n tooltip: '投影偏移量,用来避免阴影和接收平面出现闪烁或重叠伪影。',\n },\n 'shadows.planar.projection.footprintScale': {\n label: '投影缩放',\n tooltip: '围绕投射物中心缩放阴影轮廓。降低数值可减少硬边几何投影伪影。',\n },\n 'shadows.planar.stencil.enabled': {\n label: 'Stencil',\n tooltip: '使用模板缓冲,让阴影只绘制在匹配的接收物体上。',\n },\n 'shadows.planar.casters.excludePatterns': {\n label: '排除投射物',\n placeholder: '每行一个匹配规则',\n tooltip: '名称匹配这些规则的 Mesh 不会投射平面阴影。',\n },\n 'shadows.planar.casters.rootBoundaryPatterns': {\n label: '投射根节点',\n placeholder: '每行一个匹配规则',\n tooltip: '投射物自动检测的可选根节点边界规则。',\n },\n 'shadows.planar.receivers.patterns': {\n label: '接收物体',\n placeholder: '每行一个匹配规则',\n tooltip: '名称匹配这些规则的 Mesh 可以接收平面阴影。',\n },\n 'shadows.planar.direction': {\n label: '方向',\n tooltip: '阴影方向来自受保护的直射光。',\n readonlyValue: {\n 'Follow Directional Light': '跟随直射光',\n },\n },\n 'shadows.enabled': {\n label: '启用',\n },\n 'shadows.settings.mapSize': {\n label: '贴图尺寸',\n },\n 'shadows.settings.darkness': {\n label: '暗度',\n },\n 'shadows.useCsm': {\n label: '启用',\n },\n 'shadows.csm.numCascades': {\n label: '级联数量',\n },\n 'shadows.csm.lambda': {\n label: 'Lambda',\n },\n },\n },\n};\n\nfunction localizeRenderingPanelState(\n panel: EditorSceneRenderingPanelState,\n language: EditorSceneRenderingPanelLanguage,\n dirty: boolean,\n): EditorSceneRenderingPanelState {\n const text = RENDERING_PANEL_TEXT[language] ?? RENDERING_PANEL_TEXT.en;\n panel.title = text.title;\n panel.summary = text.summary;\n if (panel.status === RENDERING_PANEL_TEXT.en.dirtyStatus) panel.status = text.dirtyStatus;\n for (const action of panel.actions ?? []) {\n localizeRenderingAction(action, text, dirty);\n }\n for (const section of panel.sections) {\n const sectionText = text.sections[section.id];\n if (sectionText?.title) section.title = sectionText.title;\n if (sectionText?.summary) section.summary = sectionText.summary;\n for (const system of section.systems) {\n const systemText = text.systems[system.id];\n if (system.group) {\n const groupText = text.groups[system.group.id];\n if (groupText?.label) system.group.label = groupText.label;\n if (groupText?.summary) system.group.summary = groupText.summary;\n }\n if (systemText?.label) system.label = systemText.label;\n if (systemText?.summary && !(system.id === 'static-projected-shadow' && system.status)) {\n system.summary = systemText.summary;\n }\n if (language === 'zh' && system.id === 'environment-global' && system.summary === 'No IBL texture') {\n system.summary = '未设置 IBL 贴图';\n }\n if (systemText?.disabled && system.summary === RENDERING_PANEL_TEXT.en.systems[system.id]?.disabled) system.summary = systemText.disabled;\n if (systemText?.compatibility && system.summary === RENDERING_PANEL_TEXT.en.systems[system.id]?.compatibility) system.summary = systemText.compatibility;\n for (const action of system.actions ?? []) localizeRenderingAction(action, text, dirty);\n for (const property of system.properties) localizeRenderingProperty(property, text);\n }\n }\n return panel;\n}\n\nfunction localizeRenderingAction(\n action: NonNullable<EditorSceneRenderingPanelState['actions']>[number],\n text: RenderingPanelText,\n dirty: boolean,\n): void {\n if (action.id === 'revert-rendering') {\n action.label = text.revert;\n action.tooltip = dirty ? text.revertDirty : text.revertClean;\n }\n if (action.id === 'bake-static-shadows') {\n action.label = text.bakeStatic;\n action.tooltip = action.disabled\n ? action.tooltip === RENDERING_PANEL_TEXT.en.bakeStaticRunning\n ? text.bakeStaticRunning\n : text.bakeStaticDisabled\n : text.bakeStaticReady;\n }\n}\n\nfunction localizeRenderingProperty(\n property: EditorSceneRenderingProperty,\n text: RenderingPanelText,\n): void {\n const propertyText = text.properties[property.path];\n if (!propertyText) return;\n if (propertyText.label) property.label = propertyText.label;\n if (propertyText.tooltip) property.tooltip = propertyText.tooltip;\n if (propertyText.placeholder) property.placeholder = propertyText.placeholder;\n if (propertyText.readonlyValue && typeof property.value === 'string') {\n property.value = propertyText.readonlyValue[property.value] ?? property.value;\n }\n}\n"]}