@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,6 +1,6 @@
1
1
  import { composeEditorTransformMatrix, editorTransformMatricesAlmostEqual, getTopLevelSceneGraphNodeIds, isEditorTransformTrsSnapshot, readEditorTransformPosition, resolveEditorTransformPreserveWorldPolicy, toEditorLocalTransformFromWorld, validateSceneGraphGroupSelection, validateSceneGraphMove, } from '@fps-games/editor-core';
2
2
  import { findEditorSceneTransform, } from '../document/index.js';
3
- import { isEditorSceneCameraGameObject, canEditorSceneGameObjectHaveChildren, } from './classification.js';
3
+ import { isEditorSceneCameraGameObject, canEditorSceneGameObjectHaveChildren, isEditorSceneProtectedSystemGameObject, } from './classification.js';
4
4
  import { createUniqueEditorSceneGameObjectDisplayName, createUniqueEditorSceneGameObjectId as createUniqueEditorSceneId, createEditorSceneGameObjectGuid, isEditorSceneRootGameObject, isEditorSceneRootGameObjectId, } from './identity.js';
5
5
  import { collectEditorSceneSubtreeIds, collectEditorSceneSubtreeIdList, getEditorSceneHierarchyItems, } from './hierarchy.js';
6
6
  import { createEditorSceneGameObjectMap, findEditorSceneGameObject, getEditorSceneGameObjectWorldTransform, readEditorSceneGameObjectLocalTransform, resolveEditorSceneRootContainerId, toEditorSceneTransformComponent, toEditorScenePreserveWorldLocalTransformForParent, tryCreateEditorSceneTransformSnapshot, } from './transform.js';
@@ -332,14 +332,28 @@ export function createEditorSceneGroupSelectionPatch(document, intent, options =
332
332
  };
333
333
  }
334
334
  export function createEditorSceneDuplicateSelectionPatch(input) {
335
+ const isProtectedDuplicateSource = input.isProtectedDuplicateSource ?? defaultEditorSceneProtectedDuplicateSource;
336
+ const hierarchy = getEditorSceneHierarchyItems(input.document);
337
+ const rootSourceIdSet = new Set(getTopLevelSceneGraphNodeIds(hierarchy, input.targetIds)
338
+ .filter((targetId) => {
339
+ const source = findEditorSceneGameObject(input.document, targetId);
340
+ return !!source
341
+ && !isEditorSceneRootGameObject(source)
342
+ && !isProtectedDuplicateSource(source, input.document)
343
+ && !hasProtectedEditorSceneDuplicateAncestor(input.document, source.id, isProtectedDuplicateSource);
344
+ }));
345
+ const rootSourceIds = createEditorSceneHierarchyDocumentOrder(input.document)
346
+ .filter((id) => rootSourceIdSet.has(id));
347
+ if (rootSourceIds.length === 0)
348
+ return null;
349
+ const expandedIds = collectEditorSceneSubtreeIds(input.document, rootSourceIds);
335
350
  const idMap = new Map();
336
351
  const usedIds = new Set(input.document.scene.gameObjects.map((gameObject) => gameObject.id));
337
352
  const nameMap = new Map();
338
353
  const usedNames = getEditorSceneGameObjectDisplayNames(input.document);
339
- for (const targetId of input.targetIds) {
354
+ const sourceIds = collectEditorSceneDuplicateSourceIds(input.document, rootSourceIds, expandedIds, isProtectedDuplicateSource);
355
+ for (const targetId of sourceIds) {
340
356
  const source = findEditorSceneGameObject(input.document, targetId);
341
- if (!source || isEditorSceneRootGameObject(source) || isEditorSceneCameraGameObject(source))
342
- continue;
343
357
  const duplicateName = createUniqueEditorSceneGameObjectDisplayName(usedNames, source.name, {
344
358
  alwaysAppendSuffix: true,
345
359
  fallbackName: source.id,
@@ -350,7 +364,7 @@ export function createEditorSceneDuplicateSelectionPatch(input) {
350
364
  idMap.set(source.id, duplicateId);
351
365
  nameMap.set(source.id, duplicateName);
352
366
  }
353
- const gameObjects = input.targetIds
367
+ const gameObjects = sourceIds
354
368
  .map((targetId) => findEditorSceneGameObject(input.document, targetId))
355
369
  .filter((source) => !!source && idMap.has(source.id))
356
370
  .map((source) => {
@@ -366,20 +380,142 @@ export function createEditorSceneDuplicateSelectionPatch(input) {
366
380
  if (gameObjects.length === 0)
367
381
  return null;
368
382
  const createdIds = gameObjects.map((gameObject) => gameObject.id);
369
- const activeId = input.activeId && idMap.has(input.activeId)
370
- ? idMap.get(input.activeId)
371
- : createdIds[createdIds.length - 1] ?? null;
383
+ const selectedIds = rootSourceIds.map(id => idMap.get(id)).filter((id) => !!id);
384
+ const activeSourceId = resolveEditorSceneDuplicateActiveSourceId(input.document, rootSourceIds, input.activeId);
385
+ const activeId = activeSourceId && idMap.has(activeSourceId)
386
+ ? idMap.get(activeSourceId)
387
+ : selectedIds[selectedIds.length - 1] ?? createdIds[createdIds.length - 1] ?? null;
372
388
  return {
373
389
  label: `Duplicate ${createdIds.length} object${createdIds.length === 1 ? '' : 's'}`,
374
390
  patch: {
375
391
  kind: 'game-object.duplicate-selection',
376
392
  gameObjects,
393
+ order: createEditorSceneDuplicateSelectionOrder(input.document, rootSourceIds, idMap),
377
394
  },
378
395
  createdIds,
396
+ selectedIds,
379
397
  activeId,
380
398
  changedIds: createdIds,
381
399
  };
382
400
  }
401
+ function defaultEditorSceneProtectedDuplicateSource(gameObject) {
402
+ return isEditorSceneProtectedSystemGameObject(gameObject);
403
+ }
404
+ function resolveEditorSceneDuplicateActiveSourceId(document, rootSourceIds, activeId) {
405
+ if (activeId && rootSourceIds.includes(activeId))
406
+ return activeId;
407
+ if (activeId) {
408
+ for (const rootSourceId of rootSourceIds) {
409
+ if (collectEditorSceneSubtreeIds(document, [rootSourceId]).has(activeId))
410
+ return rootSourceId;
411
+ }
412
+ }
413
+ return rootSourceIds[rootSourceIds.length - 1] ?? null;
414
+ }
415
+ function hasProtectedEditorSceneDuplicateAncestor(document, sourceId, isProtectedDuplicateSource) {
416
+ const byId = new Map(document.scene.gameObjects.map((gameObject) => [gameObject.id, gameObject]));
417
+ const visited = new Set();
418
+ let current = byId.get(sourceId);
419
+ while (current?.parentId) {
420
+ if (visited.has(current.parentId))
421
+ return true;
422
+ visited.add(current.parentId);
423
+ const parent = byId.get(current.parentId);
424
+ if (!parent)
425
+ return false;
426
+ if (isProtectedDuplicateSource(parent, document))
427
+ return true;
428
+ current = parent;
429
+ }
430
+ return false;
431
+ }
432
+ function collectEditorSceneDuplicateSourceIds(document, rootSourceIds, expandedIds, isProtectedDuplicateSource) {
433
+ const hierarchyOrder = createEditorSceneHierarchyDocumentOrder(document);
434
+ const orderIndex = new Map(hierarchyOrder.map((id, index) => [id, index]));
435
+ const byId = new Map(document.scene.gameObjects.map((gameObject) => [gameObject.id, gameObject]));
436
+ const childrenByParentId = new Map();
437
+ for (const gameObject of document.scene.gameObjects) {
438
+ const parentId = gameObject.parentId && byId.has(gameObject.parentId)
439
+ ? gameObject.parentId
440
+ : null;
441
+ const children = childrenByParentId.get(parentId) ?? [];
442
+ children.push(gameObject.id);
443
+ childrenByParentId.set(parentId, children);
444
+ }
445
+ for (const children of childrenByParentId.values()) {
446
+ children.sort((left, right) => (orderIndex.get(left) ?? Number.MAX_SAFE_INTEGER) - (orderIndex.get(right) ?? Number.MAX_SAFE_INTEGER));
447
+ }
448
+ const sourceIds = [];
449
+ const visited = new Set();
450
+ const appendSubtree = (sourceId) => {
451
+ if (visited.has(sourceId) || !expandedIds.has(sourceId))
452
+ return;
453
+ visited.add(sourceId);
454
+ const source = findEditorSceneGameObject(document, sourceId);
455
+ if (!source || isEditorSceneRootGameObject(source) || isProtectedDuplicateSource(source, document))
456
+ return;
457
+ sourceIds.push(source.id);
458
+ for (const childId of childrenByParentId.get(source.id) ?? [])
459
+ appendSubtree(childId);
460
+ };
461
+ for (const rootSourceId of rootSourceIds)
462
+ appendSubtree(rootSourceId);
463
+ return sourceIds;
464
+ }
465
+ function createEditorSceneDuplicateSelectionOrder(document, rootSourceIds, idMap) {
466
+ const currentOrder = createEditorSceneHierarchyDocumentOrder(document);
467
+ const duplicateBlocksByLastSourceId = new Map();
468
+ for (const rootSourceId of rootSourceIds) {
469
+ const subtreeIds = collectEditorSceneSubtreeIds(document, [rootSourceId]);
470
+ const sourceBlockIds = currentOrder.filter((id) => subtreeIds.has(id));
471
+ const duplicateBlockIds = sourceBlockIds
472
+ .map((id) => idMap.get(id))
473
+ .filter((id) => !!id);
474
+ const lastSourceId = sourceBlockIds[sourceBlockIds.length - 1];
475
+ if (lastSourceId && duplicateBlockIds.length > 0) {
476
+ duplicateBlocksByLastSourceId.set(lastSourceId, duplicateBlockIds);
477
+ }
478
+ }
479
+ const order = [];
480
+ for (const id of currentOrder) {
481
+ order.push(id);
482
+ const duplicateBlockIds = duplicateBlocksByLastSourceId.get(id);
483
+ if (duplicateBlockIds)
484
+ order.push(...duplicateBlockIds);
485
+ }
486
+ return order;
487
+ }
488
+ function createEditorSceneHierarchyDocumentOrder(document) {
489
+ const gameObjects = document.scene.gameObjects;
490
+ const byId = new Map(gameObjects.map((gameObject) => [gameObject.id, gameObject]));
491
+ const childrenByParentId = new Map();
492
+ for (const gameObject of gameObjects) {
493
+ const parentId = gameObject.parentId && byId.has(gameObject.parentId)
494
+ ? gameObject.parentId
495
+ : null;
496
+ const children = childrenByParentId.get(parentId) ?? [];
497
+ children.push(gameObject.id);
498
+ childrenByParentId.set(parentId, children);
499
+ }
500
+ const order = [];
501
+ const visited = new Set();
502
+ const visit = (id) => {
503
+ if (visited.has(id) || !byId.has(id))
504
+ return;
505
+ visited.add(id);
506
+ order.push(id);
507
+ for (const childId of childrenByParentId.get(id) ?? [])
508
+ visit(childId);
509
+ };
510
+ const rootId = resolveEditorSceneRootContainerId(document);
511
+ if (rootId)
512
+ visit(rootId);
513
+ for (const rootChildId of childrenByParentId.get(null) ?? [])
514
+ visit(rootChildId);
515
+ for (const gameObject of gameObjects)
516
+ visit(gameObject.id);
517
+ return order;
518
+ }
383
519
  function resolveCreateGroupParentId(document, intent) {
384
520
  if (intent.parentId) {
385
521
  const parent = findEditorSceneGameObject(document, intent.parentId);
@@ -1 +1 @@
1
- {"version":3,"file":"patches.js","sourceRoot":"","sources":["../../src/session/patches.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n composeEditorTransformMatrix,\n editorTransformMatricesAlmostEqual,\n getTopLevelSceneGraphNodeIds,\n isEditorTransformTrsSnapshot,\n readEditorTransformPosition,\n resolveEditorTransformPreserveWorldPolicy,\n toEditorLocalTransformFromWorld,\n validateSceneGraphGroupSelection,\n validateSceneGraphMove,\n type EditorTransformSnapshot,\n type EditorTransformPreserveWorldPolicyInput,\n type SceneGraphCreateGroupIntent,\n type SceneGraphCreatePrimitiveIntent,\n type SceneGraphDeleteIntent,\n type SceneGraphDropIntent,\n type SceneGraphGroupSelectionIntent,\n type SceneGraphMoveIntent,\n type SceneGraphPrimitiveShape,\n type SceneGraphRenameIntent,\n type SceneGraphValidationResult,\n} from '@fps-games/editor-core';\nimport {\n findEditorSceneTransform,\n type EditorSceneDocument,\n type EditorSceneGameObject,\n type EditorSceneVec3,\n} from '../document/index';\nimport {\n isEditorSceneCameraGameObject,\n canEditorSceneGameObjectHaveChildren,\n} from './classification';\nimport {\n createUniqueEditorSceneGameObjectDisplayName,\n createUniqueEditorSceneGameObjectId as createUniqueEditorSceneId,\n createEditorSceneGameObjectGuid,\n isEditorSceneRootGameObject,\n isEditorSceneRootGameObjectId,\n} from './identity';\nimport {\n collectEditorSceneSubtreeIds,\n collectEditorSceneSubtreeIdList,\n getEditorSceneHierarchyItems,\n} from './hierarchy';\nimport {\n createEditorSceneGameObjectMap,\n findEditorSceneGameObject,\n getEditorSceneGameObjectWorldTransform,\n readEditorSceneGameObjectLocalTransform,\n resolveEditorSceneRootContainerId,\n toEditorSceneTransformComponent,\n toEditorScenePreserveWorldLocalTransformForParent,\n tryCreateEditorSceneTransformSnapshot,\n} from './transform';\n\nexport type EditorSceneHierarchyPatch<TGameObject extends EditorSceneGameObject = EditorSceneGameObject> =\n | {\n kind: 'game-object.rename';\n targetId: string;\n name: string;\n }\n | {\n kind: 'game-object.create-group';\n gameObject: TGameObject;\n }\n | {\n kind: 'game-object.create-primitive';\n gameObject: TGameObject;\n }\n | {\n kind: 'game-object.delete-subtree';\n targetIds: string[];\n }\n | {\n kind: 'game-object.reparent';\n targetId: string;\n parentId?: string;\n transform?: EditorTransformSnapshot;\n }\n | {\n kind: 'game-object.hierarchy-move';\n moves: Array<{\n targetId: string;\n parentId?: string;\n transform: EditorTransformSnapshot;\n }>;\n order: string[];\n }\n | {\n kind: 'game-object.group-selection';\n gameObject: TGameObject;\n childIds: string[];\n childTransforms: Record<string, EditorTransformSnapshot>;\n order: string[];\n }\n | {\n kind: 'game-object.duplicate-selection';\n gameObjects: TGameObject[];\n };\n\ntype EditorSceneHierarchyMovePatchEntry = {\n targetId: string;\n parentId?: string;\n transform: EditorTransformSnapshot;\n};\n\nexport interface EditorSceneHierarchyMoveTransformResolverInput<TGameObject extends EditorSceneGameObject = EditorSceneGameObject> {\n document: EditorSceneDocument<TGameObject>;\n intent: SceneGraphMoveIntent;\n gameObject: TGameObject;\n parentId: string | undefined;\n worldTransform: EditorTransformSnapshot;\n}\n\nexport type EditorSceneHierarchyMoveTransformResolver<TGameObject extends EditorSceneGameObject = EditorSceneGameObject> = (\n input: EditorSceneHierarchyMoveTransformResolverInput<TGameObject>,\n) => EditorTransformSnapshot | null | undefined;\n\nexport interface EditorSceneHierarchyMoveOptions<TGameObject extends EditorSceneGameObject = EditorSceneGameObject> {\n resolveLocalTransform?: EditorSceneHierarchyMoveTransformResolver<TGameObject>;\n preserveWorldPolicy?: EditorTransformPreserveWorldPolicyInput;\n}\n\nexport function createEditorSceneRenamePatch(\n document: EditorSceneDocument,\n intent: SceneGraphRenameIntent,\n): { patch: EditorSceneHierarchyPatch; label: string; changedId: string } | null {\n const name = intent.name.trim();\n if (!name) return null;\n const gameObject = findEditorSceneGameObject(document, intent.id);\n if (!gameObject || gameObject.name === name) return null;\n return {\n label: `Rename ${gameObject.name ?? gameObject.id} to ${name}`,\n patch: {\n kind: 'game-object.rename',\n targetId: intent.id,\n name,\n },\n changedId: intent.id,\n };\n}\n\nexport function createEditorSceneCreateGroupPatch(\n document: EditorSceneDocument,\n intent: SceneGraphCreateGroupIntent,\n): { patch: EditorSceneHierarchyPatch; label: string; createdId: string; changedIds: string[] } | null {\n const parentId = resolveCreateGroupParentId(document, intent);\n if (parentId === null) return null;\n const name = createUniqueEditorSceneGameObjectDisplayName(\n getEditorSceneGameObjectDisplayNames(document),\n intent.name,\n { fallbackName: 'Empty' },\n );\n const id = createUniqueEditorSceneId(document.scene.gameObjects.map((gameObject) => gameObject.id), name);\n const gameObject: EditorSceneGameObject = {\n id,\n guid: createEditorSceneGameObjectGuid(),\n name,\n kind: 'transform',\n transformType: 'plain',\n ...(parentId ? { parentId } : {}),\n active: true,\n components: [\n {\n type: 'Transform',\n position: { x: 0, y: 0, z: 0 },\n rotation: { x: 0, y: 0, z: 0 },\n scale: { x: 1, y: 1, z: 1 },\n },\n ],\n };\n return {\n label: `Create empty ${name}`,\n patch: {\n kind: 'game-object.create-group',\n gameObject,\n },\n createdId: id,\n changedIds: [id],\n };\n}\n\nexport function createEditorSceneCreatePrimitivePatch(\n document: EditorSceneDocument,\n intent: SceneGraphCreatePrimitiveIntent,\n): { patch: EditorSceneHierarchyPatch; label: string; createdId: string; changedIds: string[] } | null {\n const shape = normalizeEditorScenePrimitiveShape(intent.shape);\n if (!shape) return null;\n const parentId = resolveCreatePrimitiveParentId(document, intent);\n if (parentId === null) return null;\n const name = createUniqueEditorSceneGameObjectDisplayName(\n getEditorSceneGameObjectDisplayNames(document),\n intent.name,\n { fallbackName: getEditorScenePrimitiveDisplayName(shape) },\n );\n const id = createUniqueEditorSceneId(document.scene.gameObjects.map((gameObject) => gameObject.id), name);\n const localTransform = createDefaultEditorScenePrimitiveTransform(shape);\n const gameObject: EditorSceneGameObject = {\n id,\n guid: createEditorSceneGameObjectGuid(),\n name,\n kind: 'primitive',\n ...(parentId ? { parentId } : {}),\n active: true,\n primitive: { shape },\n components: [\n toEditorSceneTransformComponent(localTransform),\n ],\n };\n return {\n label: `Create ${name}`,\n patch: {\n kind: 'game-object.create-primitive',\n gameObject,\n },\n createdId: id,\n changedIds: [id],\n };\n}\n\nexport function createEditorSceneDeleteSubtreePatch(\n document: EditorSceneDocument,\n intent: SceneGraphDeleteIntent,\n): { patch: EditorSceneHierarchyPatch; label: string; deletedIds: string[]; fallbackSelectionId: string | null } | null {\n if (intent.ids.some(isEditorSceneRootGameObjectId)) return null;\n const deletedIds = collectEditorSceneSubtreeIdList(document, intent.ids);\n if (deletedIds.length === 0) return null;\n if (document.scene.gameObjects.some((gameObject) => deletedIds.includes(gameObject.id) && isEditorSceneCameraGameObject(gameObject))) {\n return null;\n }\n const fallbackSelectionId = resolveDeleteFallbackSelectionId(document, deletedIds, intent.activeId ?? null);\n return {\n label: `Delete ${deletedIds.length} GameObject${deletedIds.length === 1 ? '' : 's'}`,\n patch: {\n kind: 'game-object.delete-subtree',\n targetIds: intent.ids,\n },\n deletedIds,\n fallbackSelectionId,\n };\n}\n\nexport function validateEditorSceneReparent(\n document: EditorSceneDocument,\n intent: SceneGraphDropIntent,\n options: EditorTransformPreserveWorldPolicyInput = {},\n): SceneGraphValidationResult {\n if (intent.placement !== 'inside') return { ok: false, reason: 'Only inside reparent is supported.' };\n const dragged = findEditorSceneGameObject(document, intent.draggedId);\n const target = findEditorSceneGameObject(document, intent.targetId);\n if (!dragged) return { ok: false, reason: `GameObject not found: ${intent.draggedId}` };\n if (isEditorSceneRootGameObject(dragged)) return { ok: false, reason: 'Root GameObject cannot be reparented.' };\n if (!target) return { ok: false, reason: `Parent GameObject not found: ${intent.targetId}` };\n if (!findEditorSceneTransform(dragged)) return { ok: false, reason: `${intent.draggedId} has no Transform to preserve.` };\n if (!canEditorSceneGameObjectHaveChildren(target)) return { ok: false, reason: `${intent.targetId} cannot have children.` };\n if (dragged.id === target.id) return { ok: false, reason: 'GameObject cannot be parented to itself.' };\n if (isEditorSceneAncestor(document, dragged.id, target.id)) {\n return { ok: false, reason: 'GameObject cannot be parented to its descendant.' };\n }\n if (intent.preserveWorldTransform !== false && !computeLocalTransformForParent(document, dragged.id, target.id, undefined, { preserveWorldPolicy: options })) {\n return { ok: false, reason: 'Cannot preserve world transform under the target parent.' };\n }\n return { ok: true };\n}\n\nexport function createEditorSceneReparentPatch(\n document: EditorSceneDocument,\n intent: SceneGraphDropIntent,\n options: EditorTransformPreserveWorldPolicyInput = {},\n): { patch: EditorSceneHierarchyPatch; label: string; changedIds: string[] } | null {\n const validation = validateEditorSceneReparent(document, intent, options);\n if (!validation.ok) return null;\n const target = findEditorSceneGameObject(document, intent.draggedId);\n if (!target || !findEditorSceneTransform(target)) return null;\n const parentId = intent.targetId;\n const transform = intent.preserveWorldTransform === false\n ? readEditorSceneGameObjectLocalTransform(target)\n : computeLocalTransformForParent(document, target.id, parentId, undefined, { preserveWorldPolicy: options });\n if (!transform) return null;\n if (target.parentId === parentId && editorSceneTransformsEqual(readEditorSceneGameObjectLocalTransform(target), transform)) return null;\n return {\n label: `Reparent ${target.name ?? target.id}`,\n patch: {\n kind: 'game-object.reparent',\n targetId: target.id,\n parentId,\n transform,\n },\n changedIds: [target.id],\n };\n}\n\nexport function validateEditorSceneHierarchyMove<TGameObject extends EditorSceneGameObject = EditorSceneGameObject>(\n document: EditorSceneDocument<TGameObject>,\n intent: SceneGraphMoveIntent,\n options: EditorSceneHierarchyMoveOptions<TGameObject> = {},\n): SceneGraphValidationResult {\n const hierarchy = getEditorSceneHierarchyItems(document);\n const validation = validateSceneGraphMove(hierarchy, intent);\n if (!validation.ok) return validation;\n const ids = getTopLevelSceneGraphNodeIds(hierarchy, intent.ids);\n if (ids.some(isEditorSceneRootGameObjectId)) return { ok: false, reason: 'Root GameObject cannot be moved.' };\n const parentId = resolveEditorSceneMoveParentId(document, intent);\n if (parentId && !isEditorSceneContainer(document, parentId)) {\n return { ok: false, reason: `${parentId} cannot have children.` };\n }\n if (intent.preserveWorldTransform !== false) {\n for (const id of ids) {\n const gameObject = findEditorSceneGameObject(document, id);\n if (!gameObject) return { ok: false, reason: `GameObject not found: ${id}` };\n if (!findEditorSceneTransform(gameObject)) return { ok: false, reason: `${id} has no Transform to preserve.` };\n if (!computeLocalTransformForParent(document, id, parentId, intent, options)) {\n return { ok: false, reason: 'Cannot preserve world transform under the target parent.' };\n }\n }\n }\n return { ok: true };\n}\n\nexport function createEditorSceneHierarchyMovePatch<TGameObject extends EditorSceneGameObject = EditorSceneGameObject>(\n document: EditorSceneDocument<TGameObject>,\n intent: SceneGraphMoveIntent,\n options: EditorSceneHierarchyMoveOptions<TGameObject> = {},\n): { patch: EditorSceneHierarchyPatch; label: string; changedIds: string[] } | null {\n const validation = validateEditorSceneHierarchyMove(document, intent, options);\n if (!validation.ok) return null;\n const hierarchy = getEditorSceneHierarchyItems(document);\n const ids = getTopLevelSceneGraphNodeIds(hierarchy, intent.ids);\n const parentId = resolveEditorSceneMoveParentId(document, intent);\n const moves = ids\n .map<EditorSceneHierarchyMovePatchEntry | null>((id: string) => {\n const gameObject = findEditorSceneGameObject(document, id);\n if (!gameObject || !findEditorSceneTransform(gameObject)) return null;\n const transform = intent.preserveWorldTransform === false\n ? readEditorSceneGameObjectLocalTransform(gameObject)\n : computeLocalTransformForParent(document, id, parentId, intent, options);\n const canonicalTransform = transform ? tryCreateEditorSceneTransformSnapshot(transform) : null;\n if (!canonicalTransform) return null;\n return parentId\n ? { targetId: id, parentId, transform: canonicalTransform }\n : { targetId: id, transform: canonicalTransform };\n })\n .filter((move: EditorSceneHierarchyMovePatchEntry | null): move is EditorSceneHierarchyMovePatchEntry => !!move);\n if (moves.length !== ids.length) return null;\n const order = createEditorSceneMoveOrder(document, ids, intent);\n const currentOrder = document.scene.gameObjects.map((gameObject) => gameObject.id);\n const moved = moves.some((move: EditorSceneHierarchyMovePatchEntry) => {\n const gameObject = findEditorSceneGameObject(document, move.targetId);\n return !gameObject\n || gameObject.parentId !== move.parentId\n || !editorSceneTransformsEqual(readEditorSceneGameObjectLocalTransform(gameObject), move.transform);\n });\n if (!moved && arraysEqual(currentOrder, order)) return null;\n return {\n label: `Move ${ids.length} GameObject${ids.length === 1 ? '' : 's'}`,\n patch: {\n kind: 'game-object.hierarchy-move',\n moves,\n order,\n },\n changedIds: ids,\n };\n}\n\nexport function validateEditorSceneGroupSelection(\n document: EditorSceneDocument,\n intent: SceneGraphGroupSelectionIntent,\n options: EditorTransformPreserveWorldPolicyInput = {},\n): SceneGraphValidationResult {\n const hierarchy = getEditorSceneHierarchyItems(document);\n const validation = validateSceneGraphGroupSelection(hierarchy, intent);\n if (!validation.ok) return validation;\n const ids = getTopLevelSceneGraphNodeIds(hierarchy, intent.ids);\n if (ids.some(isEditorSceneRootGameObjectId)) return { ok: false, reason: 'Root GameObject cannot be grouped.' };\n const parentId = resolveEditorSceneGroupSelectionParentId(document, intent.parentId ?? null);\n if (parentId && !isEditorSceneContainer(document, parentId)) {\n return { ok: false, reason: `${parentId} cannot have children.` };\n }\n if (intent.preserveWorldTransform !== false) {\n const center = computeEditorSceneSelectionWorldCenter(document, ids);\n const groupWorld = center\n ? {\n position: center,\n rotation: { x: 0, y: 0, z: 0 },\n scale: { x: 1, y: 1, z: 1 },\n }\n : null;\n if (!groupWorld || !toEditorScenePreserveWorldLocalTransformForParent(document, parentId, groupWorld, options)) {\n return { ok: false, reason: 'Cannot preserve world transform under the target parent.' };\n }\n for (const id of ids) {\n const gameObject = findEditorSceneGameObject(document, id);\n if (!gameObject) return { ok: false, reason: `GameObject not found: ${id}` };\n if (!findEditorSceneTransform(gameObject)) return { ok: false, reason: `${id} has no Transform to preserve.` };\n const childWorld = getEditorSceneGameObjectWorldTransform(document, id);\n if (!childWorld || !toEditorLocalTransformFromParentWorld(groupWorld, childWorld, options)) {\n return { ok: false, reason: 'Cannot preserve world transform under the target parent.' };\n }\n }\n }\n return { ok: true };\n}\n\nexport function createEditorSceneGroupSelectionPatch(\n document: EditorSceneDocument,\n intent: SceneGraphGroupSelectionIntent,\n options: EditorTransformPreserveWorldPolicyInput = {},\n): { patch: EditorSceneHierarchyPatch; label: string; createdId: string; changedIds: string[] } | null {\n const validation = validateEditorSceneGroupSelection(document, intent, options);\n if (!validation.ok) return null;\n const hierarchy = getEditorSceneHierarchyItems(document);\n const ids = getTopLevelSceneGraphNodeIds(hierarchy, intent.ids);\n if (ids.length === 0) return null;\n const parentId = resolveEditorSceneGroupSelectionParentId(document, intent.parentId ?? null);\n const center = computeEditorSceneSelectionWorldCenter(document, ids);\n if (!center) return null;\n const groupWorld = {\n position: center,\n rotation: { x: 0, y: 0, z: 0 },\n scale: { x: 1, y: 1, z: 1 },\n };\n const groupLocal = toEditorScenePreserveWorldLocalTransformForParent(document, parentId, groupWorld, options);\n if (!groupLocal) return null;\n const name = createUniqueEditorSceneGameObjectDisplayName(\n getEditorSceneGameObjectDisplayNames(document),\n intent.name,\n { fallbackName: 'Parent' },\n );\n const id = createUniqueEditorSceneId(document.scene.gameObjects.map((gameObject) => gameObject.id), name);\n const gameObject: EditorSceneGameObject = {\n id,\n guid: createEditorSceneGameObjectGuid(),\n name,\n kind: 'transform',\n transformType: 'plain',\n ...(parentId ? { parentId } : {}),\n active: true,\n components: [\n toEditorSceneTransformComponent(groupLocal),\n ],\n };\n const childTransforms: Record<string, EditorTransformSnapshot> = {};\n for (const childId of ids) {\n const child = findEditorSceneGameObject(document, childId);\n if (!child) return null;\n if (intent.preserveWorldTransform === false) {\n childTransforms[childId] = readEditorSceneGameObjectLocalTransform(child);\n continue;\n }\n const childWorld = getEditorSceneGameObjectWorldTransform(document, childId);\n if (!childWorld) return null;\n const childLocal = toEditorLocalTransformFromParentWorld(groupWorld, childWorld, options);\n if (!childLocal) return null;\n childTransforms[childId] = childLocal;\n }\n const order = createEditorSceneGroupSelectionOrder(document, id, ids, intent.insertBeforeId ?? null);\n return {\n label: `Create Parent for ${ids.length} GameObject${ids.length === 1 ? '' : 's'}`,\n patch: {\n kind: 'game-object.group-selection',\n gameObject,\n childIds: ids,\n childTransforms,\n order,\n },\n createdId: id,\n changedIds: [id, ...ids],\n };\n}\n\nexport function createEditorSceneDuplicateSelectionPatch(input: {\n document: EditorSceneDocument;\n targetIds: string[];\n activeId: string | null;\n}): { patch: EditorSceneHierarchyPatch; label: string; createdIds: string[]; activeId: string | null; changedIds: string[] } | null {\n const idMap = new Map<string, string>();\n const usedIds = new Set(input.document.scene.gameObjects.map((gameObject) => gameObject.id));\n const nameMap = new Map<string, string>();\n const usedNames = getEditorSceneGameObjectDisplayNames(input.document);\n for (const targetId of input.targetIds) {\n const source = findEditorSceneGameObject(input.document, targetId);\n if (!source || isEditorSceneRootGameObject(source) || isEditorSceneCameraGameObject(source)) continue;\n const duplicateName = createUniqueEditorSceneGameObjectDisplayName(\n usedNames,\n source.name,\n {\n alwaysAppendSuffix: true,\n fallbackName: source.id,\n },\n );\n usedNames.push(duplicateName);\n const duplicateId = createUniqueEditorSceneId([...usedIds], duplicateName);\n usedIds.add(duplicateId);\n idMap.set(source.id, duplicateId);\n nameMap.set(source.id, duplicateName);\n }\n const gameObjects = input.targetIds\n .map((targetId) => findEditorSceneGameObject(input.document, targetId))\n .filter((source): source is EditorSceneGameObject => !!source && idMap.has(source.id))\n .map((source) => {\n const duplicate = structuredClone(source);\n duplicate.id = idMap.get(source.id)!;\n duplicate.guid = createEditorSceneGameObjectGuid();\n duplicate.name = nameMap.get(source.id)!;\n if (duplicate.parentId && idMap.has(duplicate.parentId)) {\n duplicate.parentId = idMap.get(duplicate.parentId)!;\n }\n return duplicate;\n });\n if (gameObjects.length === 0) return null;\n const createdIds = gameObjects.map((gameObject) => gameObject.id);\n const activeId = input.activeId && idMap.has(input.activeId)\n ? idMap.get(input.activeId)!\n : createdIds[createdIds.length - 1] ?? null;\n return {\n label: `Duplicate ${createdIds.length} object${createdIds.length === 1 ? '' : 's'}`,\n patch: {\n kind: 'game-object.duplicate-selection',\n gameObjects,\n },\n createdIds,\n activeId,\n changedIds: createdIds,\n };\n}\n\nfunction resolveCreateGroupParentId(\n document: EditorSceneDocument,\n intent: SceneGraphCreateGroupIntent,\n): string | null | undefined {\n if (intent.parentId) {\n const parent = findEditorSceneGameObject(document, intent.parentId);\n return parent && canEditorSceneGameObjectHaveChildren(parent) ? parent.id : null;\n }\n const active = intent.activeId ? findEditorSceneGameObject(document, intent.activeId) : null;\n if (active && canEditorSceneGameObjectHaveChildren(active)) return active.id;\n if (active?.parentId) {\n const activeParent = findEditorSceneGameObject(document, active.parentId);\n if (activeParent && canEditorSceneGameObjectHaveChildren(activeParent)) return activeParent.id;\n }\n return resolveEditorSceneRootContainerId(document);\n}\n\nfunction resolveCreatePrimitiveParentId(\n document: EditorSceneDocument,\n intent: SceneGraphCreatePrimitiveIntent,\n): string | null | undefined {\n if (intent.parentId === null) return resolveEditorSceneRootContainerId(document);\n return resolveCreateGroupParentId(document, intent);\n}\n\nfunction resolveEditorSceneMoveParentId(document: EditorSceneDocument, intent: SceneGraphMoveIntent): string | undefined {\n if (intent.placement === 'root') return resolveEditorSceneRootContainerId(document);\n if (intent.placement === 'inside' && intent.targetId) return intent.targetId;\n const target = intent.targetId ? findEditorSceneGameObject(document, intent.targetId) : null;\n return intent.parentId ?? target?.parentId ?? resolveEditorSceneRootContainerId(document);\n}\n\nfunction resolveEditorSceneGroupSelectionParentId(document: EditorSceneDocument, parentId: string | null): string | undefined {\n return parentId && isEditorSceneContainer(document, parentId) ? parentId : resolveEditorSceneRootContainerId(document);\n}\n\nfunction isEditorSceneContainer(document: EditorSceneDocument, gameObjectId: string): boolean {\n const gameObject = findEditorSceneGameObject(document, gameObjectId);\n return !!gameObject && canEditorSceneGameObjectHaveChildren(gameObject);\n}\n\nfunction computeLocalTransformForParent<TGameObject extends EditorSceneGameObject = EditorSceneGameObject>(\n document: EditorSceneDocument<TGameObject>,\n gameObjectId: string,\n parentId: string | undefined,\n intent?: SceneGraphMoveIntent,\n options: EditorSceneHierarchyMoveOptions<TGameObject> = {},\n): EditorTransformSnapshot | null {\n const world = getEditorSceneGameObjectWorldTransform(document, gameObjectId);\n if (!world) return null;\n const gameObject = findEditorSceneGameObject(document, gameObjectId) as TGameObject | null;\n if (!gameObject) return null;\n const resolved = intent\n ? options.resolveLocalTransform?.({\n document,\n intent,\n gameObject,\n parentId,\n worldTransform: world,\n })\n : null;\n if (resolved) return tryCreateEditorSceneTransformSnapshot(resolved);\n const local = toEditorScenePreserveWorldLocalTransformForParent(document, parentId, world, options.preserveWorldPolicy);\n return local ? tryCreateEditorSceneTransformSnapshot(local) : null;\n}\n\nfunction toEditorLocalTransformFromParentWorld(\n parentWorld: EditorTransformSnapshot,\n world: EditorTransformSnapshot,\n options: EditorTransformPreserveWorldPolicyInput = {},\n): EditorTransformSnapshot | null {\n const policy = resolveEditorTransformPreserveWorldPolicy(options);\n const local = toEditorLocalTransformFromWorld(parentWorld, world, { allowMatrixFallback: policy.allowMatrixFallback });\n return local ? tryCreateEditorSceneTransformSnapshot(local) : null;\n}\n\nfunction createEditorSceneMoveOrder(\n document: EditorSceneDocument,\n ids: readonly string[],\n intent: SceneGraphMoveIntent,\n): string[] {\n const blockIds = collectOrderedEditorSceneSubtreeBlockIds(document, ids);\n const blockSet = new Set(blockIds);\n const remaining = document.scene.gameObjects\n .map((gameObject) => gameObject.id)\n .filter((id) => !blockSet.has(id));\n const index = resolveEditorSceneInsertIndex(document, remaining, {\n placement: intent.placement,\n targetId: intent.targetId ?? null,\n beforeId: intent.beforeId ?? null,\n afterId: intent.afterId ?? null,\n parentId: resolveEditorSceneMoveParentId(document, intent),\n });\n return insertEditorSceneIdsAt(remaining, blockIds, index);\n}\n\nfunction createEditorSceneGroupSelectionOrder(\n document: EditorSceneDocument,\n groupId: string,\n ids: readonly string[],\n insertBeforeId: string | null,\n): string[] {\n const blockIds = collectOrderedEditorSceneSubtreeBlockIds(document, ids);\n const blockSet = new Set(blockIds);\n const currentOrder = document.scene.gameObjects.map((gameObject) => gameObject.id);\n const remaining = currentOrder.filter((id) => !blockSet.has(id));\n const firstSelectedIndex = Math.min(...ids.map((id) => currentOrder.indexOf(id)).filter((index) => index >= 0));\n const fallbackIndex = Number.isFinite(firstSelectedIndex)\n ? remaining.filter((id) => currentOrder.indexOf(id) < firstSelectedIndex).length\n : remaining.length;\n const index = insertBeforeId\n ? Math.max(0, remaining.indexOf(insertBeforeId))\n : fallbackIndex;\n return insertEditorSceneIdsAt(remaining, [groupId, ...blockIds], index);\n}\n\nfunction collectOrderedEditorSceneSubtreeBlockIds(document: EditorSceneDocument, rootIds: readonly string[]): string[] {\n const subtreeIds = collectEditorSceneSubtreeIds(document, [...rootIds]);\n return document.scene.gameObjects\n .map((gameObject) => gameObject.id)\n .filter((id) => subtreeIds.has(id));\n}\n\nfunction resolveEditorSceneInsertIndex(\n document: EditorSceneDocument,\n remaining: readonly string[],\n input: {\n placement: SceneGraphMoveIntent['placement'];\n targetId: string | null;\n beforeId: string | null;\n afterId: string | null;\n parentId?: string;\n },\n): number {\n if (input.beforeId) return boundedInsertIndex(remaining.indexOf(input.beforeId), remaining.length);\n if (input.afterId) return indexAfterEditorSceneSubtree(document, remaining, input.afterId);\n if (input.placement === 'before' && input.targetId) return boundedInsertIndex(remaining.indexOf(input.targetId), remaining.length);\n if (input.placement === 'after' && input.targetId) return indexAfterEditorSceneSubtree(document, remaining, input.targetId);\n if (input.placement === 'inside' && input.targetId) return indexAfterEditorSceneSubtree(document, remaining, input.targetId);\n if (input.placement === 'root') return remaining.length;\n if (input.parentId) return indexAfterEditorSceneSubtree(document, remaining, input.parentId);\n return remaining.length;\n}\n\nfunction indexAfterEditorSceneSubtree(document: EditorSceneDocument, remaining: readonly string[], anchorId: string): number {\n const subtreeIds = collectEditorSceneSubtreeIds(document, [anchorId]);\n let index = remaining.indexOf(anchorId);\n if (index < 0) return remaining.length;\n for (let cursor = index + 1; cursor < remaining.length; cursor += 1) {\n if (!subtreeIds.has(remaining[cursor]!)) break;\n index = cursor;\n }\n return index + 1;\n}\n\nfunction insertEditorSceneIdsAt(base: readonly string[], ids: readonly string[], index: number): string[] {\n const safeIndex = Math.max(0, Math.min(index, base.length));\n return [\n ...base.slice(0, safeIndex),\n ...ids,\n ...base.slice(safeIndex),\n ];\n}\n\nfunction boundedInsertIndex(index: number, fallback: number): number {\n return index >= 0 ? index : fallback;\n}\n\nfunction computeEditorSceneSelectionWorldCenter(\n document: EditorSceneDocument,\n ids: readonly string[],\n): EditorSceneVec3 | null {\n const worlds = ids\n .map((id) => getEditorSceneGameObjectWorldTransform(document, id))\n .filter((transform): transform is EditorTransformSnapshot => !!transform);\n if (worlds.length === 0) return null;\n const positions: EditorSceneVec3[] = worlds.map(readEditorTransformPosition);\n return {\n x: positions.reduce((sum: number, position: EditorSceneVec3) => sum + position.x, 0) / positions.length,\n y: positions.reduce((sum: number, position: EditorSceneVec3) => sum + position.y, 0) / positions.length,\n z: positions.reduce((sum: number, position: EditorSceneVec3) => sum + position.z, 0) / positions.length,\n };\n}\n\nfunction resolveDeleteFallbackSelectionId(\n document: EditorSceneDocument,\n deletedIds: string[],\n activeId: string | null,\n): string | null {\n const deleted = new Set(deletedIds);\n const active = activeId ? findEditorSceneGameObject(document, activeId) : null;\n if (active?.parentId && !deleted.has(active.parentId) && findEditorSceneGameObject(document, active.parentId)) {\n return active.parentId;\n }\n const remaining = document.scene.gameObjects.filter((gameObject) => !deleted.has(gameObject.id));\n return remaining[remaining.length - 1]?.id ?? null;\n}\n\nfunction isEditorSceneAncestor(document: EditorSceneDocument, ancestorId: string, descendantId: string): boolean {\n const byId = createEditorSceneGameObjectMap(document);\n const seen = new Set<string>();\n let cursor = byId.get(descendantId);\n while (cursor?.parentId && !seen.has(cursor.parentId)) {\n if (cursor.parentId === ancestorId) return true;\n seen.add(cursor.parentId);\n cursor = byId.get(cursor.parentId);\n }\n return false;\n}\n\nfunction normalizeEditorScenePrimitiveShape(shape: unknown): SceneGraphPrimitiveShape | null {\n return shape === 'cube' || shape === 'sphere' || shape === 'plane' || shape === 'capsule'\n ? shape\n : null;\n}\n\nfunction getEditorScenePrimitiveDisplayName(shape: SceneGraphPrimitiveShape): string {\n return shape[0]!.toUpperCase() + shape.slice(1);\n}\n\nfunction createDefaultEditorScenePrimitiveTransform(_shape: SceneGraphPrimitiveShape): EditorTransformSnapshot {\n return {\n position: { x: 0, y: 0, z: 0 },\n rotation: { x: 0, y: 0, z: 0 },\n scale: { x: 1, y: 1, z: 1 },\n };\n}\n\nfunction getEditorSceneGameObjectDisplayNames(document: EditorSceneDocument): string[] {\n return document.scene.gameObjects.map((gameObject) => gameObject.name ?? gameObject.id);\n}\n\nfunction editorSceneTransformsEqual(left: EditorTransformSnapshot, right: EditorTransformSnapshot): boolean {\n if (!isEditorTransformTrsSnapshot(left) || !isEditorTransformTrsSnapshot(right)) {\n return editorTransformMatricesAlmostEqual(composeEditorTransformMatrix(left), composeEditorTransformMatrix(right));\n }\n return editorSceneVec3Equal(left.position, right.position)\n && editorSceneVec3Equal(left.rotation, right.rotation)\n && editorSceneVec3Equal(left.scale, right.scale);\n}\n\nfunction editorSceneVec3Equal(left: EditorSceneVec3, right: EditorSceneVec3): boolean {\n return Math.abs(left.x - right.x) < 0.000001\n && Math.abs(left.y - right.y) < 0.000001\n && Math.abs(left.z - right.z) < 0.000001;\n}\n\nfunction arraysEqual(left: readonly string[], right: readonly string[]): boolean {\n return left.length === right.length && left.every((value, index) => value === right[index]);\n}\n"]}
1
+ {"version":3,"file":"patches.js","sourceRoot":"","sources":["../../src/session/patches.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n composeEditorTransformMatrix,\n editorTransformMatricesAlmostEqual,\n getTopLevelSceneGraphNodeIds,\n isEditorTransformTrsSnapshot,\n readEditorTransformPosition,\n resolveEditorTransformPreserveWorldPolicy,\n toEditorLocalTransformFromWorld,\n validateSceneGraphGroupSelection,\n validateSceneGraphMove,\n type EditorTransformSnapshot,\n type EditorTransformPreserveWorldPolicyInput,\n type SceneGraphCreateGroupIntent,\n type SceneGraphCreatePrimitiveIntent,\n type SceneGraphDeleteIntent,\n type SceneGraphDropIntent,\n type SceneGraphGroupSelectionIntent,\n type SceneGraphMoveIntent,\n type SceneGraphPrimitiveShape,\n type SceneGraphRenameIntent,\n type SceneGraphValidationResult,\n} from '@fps-games/editor-core';\nimport {\n findEditorSceneTransform,\n type EditorSceneDocument,\n type EditorSceneGameObject,\n type EditorSceneVec3,\n} from '../document/index';\nimport {\n isEditorSceneCameraGameObject,\n canEditorSceneGameObjectHaveChildren,\n isEditorSceneProtectedSystemGameObject,\n} from './classification';\nimport {\n createUniqueEditorSceneGameObjectDisplayName,\n createUniqueEditorSceneGameObjectId as createUniqueEditorSceneId,\n createEditorSceneGameObjectGuid,\n isEditorSceneRootGameObject,\n isEditorSceneRootGameObjectId,\n} from './identity';\nimport {\n collectEditorSceneSubtreeIds,\n collectEditorSceneSubtreeIdList,\n getEditorSceneHierarchyItems,\n} from './hierarchy';\nimport {\n createEditorSceneGameObjectMap,\n findEditorSceneGameObject,\n getEditorSceneGameObjectWorldTransform,\n readEditorSceneGameObjectLocalTransform,\n resolveEditorSceneRootContainerId,\n toEditorSceneTransformComponent,\n toEditorScenePreserveWorldLocalTransformForParent,\n tryCreateEditorSceneTransformSnapshot,\n} from './transform';\n\nexport type EditorSceneHierarchyPatch<TGameObject extends EditorSceneGameObject = EditorSceneGameObject> =\n | {\n kind: 'game-object.rename';\n targetId: string;\n name: string;\n }\n | {\n kind: 'game-object.create-group';\n gameObject: TGameObject;\n }\n | {\n kind: 'game-object.create-primitive';\n gameObject: TGameObject;\n }\n | {\n kind: 'game-object.delete-subtree';\n targetIds: string[];\n }\n | {\n kind: 'game-object.reparent';\n targetId: string;\n parentId?: string;\n transform?: EditorTransformSnapshot;\n }\n | {\n kind: 'game-object.hierarchy-move';\n moves: Array<{\n targetId: string;\n parentId?: string;\n transform: EditorTransformSnapshot;\n }>;\n order: string[];\n }\n | {\n kind: 'game-object.group-selection';\n gameObject: TGameObject;\n childIds: string[];\n childTransforms: Record<string, EditorTransformSnapshot>;\n order: string[];\n }\n | {\n kind: 'game-object.duplicate-selection';\n gameObjects: TGameObject[];\n order?: string[];\n };\n\ntype EditorSceneHierarchyMovePatchEntry = {\n targetId: string;\n parentId?: string;\n transform: EditorTransformSnapshot;\n};\n\ntype EditorSceneDuplicateProtectionPredicate = (\n gameObject: EditorSceneGameObject,\n document: EditorSceneDocument,\n) => boolean;\n\nexport interface EditorSceneHierarchyMoveTransformResolverInput<TGameObject extends EditorSceneGameObject = EditorSceneGameObject> {\n document: EditorSceneDocument<TGameObject>;\n intent: SceneGraphMoveIntent;\n gameObject: TGameObject;\n parentId: string | undefined;\n worldTransform: EditorTransformSnapshot;\n}\n\nexport type EditorSceneHierarchyMoveTransformResolver<TGameObject extends EditorSceneGameObject = EditorSceneGameObject> = (\n input: EditorSceneHierarchyMoveTransformResolverInput<TGameObject>,\n) => EditorTransformSnapshot | null | undefined;\n\nexport interface EditorSceneHierarchyMoveOptions<TGameObject extends EditorSceneGameObject = EditorSceneGameObject> {\n resolveLocalTransform?: EditorSceneHierarchyMoveTransformResolver<TGameObject>;\n preserveWorldPolicy?: EditorTransformPreserveWorldPolicyInput;\n}\n\nexport function createEditorSceneRenamePatch(\n document: EditorSceneDocument,\n intent: SceneGraphRenameIntent,\n): { patch: EditorSceneHierarchyPatch; label: string; changedId: string } | null {\n const name = intent.name.trim();\n if (!name) return null;\n const gameObject = findEditorSceneGameObject(document, intent.id);\n if (!gameObject || gameObject.name === name) return null;\n return {\n label: `Rename ${gameObject.name ?? gameObject.id} to ${name}`,\n patch: {\n kind: 'game-object.rename',\n targetId: intent.id,\n name,\n },\n changedId: intent.id,\n };\n}\n\nexport function createEditorSceneCreateGroupPatch(\n document: EditorSceneDocument,\n intent: SceneGraphCreateGroupIntent,\n): { patch: EditorSceneHierarchyPatch; label: string; createdId: string; changedIds: string[] } | null {\n const parentId = resolveCreateGroupParentId(document, intent);\n if (parentId === null) return null;\n const name = createUniqueEditorSceneGameObjectDisplayName(\n getEditorSceneGameObjectDisplayNames(document),\n intent.name,\n { fallbackName: 'Empty' },\n );\n const id = createUniqueEditorSceneId(document.scene.gameObjects.map((gameObject) => gameObject.id), name);\n const gameObject: EditorSceneGameObject = {\n id,\n guid: createEditorSceneGameObjectGuid(),\n name,\n kind: 'transform',\n transformType: 'plain',\n ...(parentId ? { parentId } : {}),\n active: true,\n components: [\n {\n type: 'Transform',\n position: { x: 0, y: 0, z: 0 },\n rotation: { x: 0, y: 0, z: 0 },\n scale: { x: 1, y: 1, z: 1 },\n },\n ],\n };\n return {\n label: `Create empty ${name}`,\n patch: {\n kind: 'game-object.create-group',\n gameObject,\n },\n createdId: id,\n changedIds: [id],\n };\n}\n\nexport function createEditorSceneCreatePrimitivePatch(\n document: EditorSceneDocument,\n intent: SceneGraphCreatePrimitiveIntent,\n): { patch: EditorSceneHierarchyPatch; label: string; createdId: string; changedIds: string[] } | null {\n const shape = normalizeEditorScenePrimitiveShape(intent.shape);\n if (!shape) return null;\n const parentId = resolveCreatePrimitiveParentId(document, intent);\n if (parentId === null) return null;\n const name = createUniqueEditorSceneGameObjectDisplayName(\n getEditorSceneGameObjectDisplayNames(document),\n intent.name,\n { fallbackName: getEditorScenePrimitiveDisplayName(shape) },\n );\n const id = createUniqueEditorSceneId(document.scene.gameObjects.map((gameObject) => gameObject.id), name);\n const localTransform = createDefaultEditorScenePrimitiveTransform(shape);\n const gameObject: EditorSceneGameObject = {\n id,\n guid: createEditorSceneGameObjectGuid(),\n name,\n kind: 'primitive',\n ...(parentId ? { parentId } : {}),\n active: true,\n primitive: { shape },\n components: [\n toEditorSceneTransformComponent(localTransform),\n ],\n };\n return {\n label: `Create ${name}`,\n patch: {\n kind: 'game-object.create-primitive',\n gameObject,\n },\n createdId: id,\n changedIds: [id],\n };\n}\n\nexport function createEditorSceneDeleteSubtreePatch(\n document: EditorSceneDocument,\n intent: SceneGraphDeleteIntent,\n): { patch: EditorSceneHierarchyPatch; label: string; deletedIds: string[]; fallbackSelectionId: string | null } | null {\n if (intent.ids.some(isEditorSceneRootGameObjectId)) return null;\n const deletedIds = collectEditorSceneSubtreeIdList(document, intent.ids);\n if (deletedIds.length === 0) return null;\n if (document.scene.gameObjects.some((gameObject) => deletedIds.includes(gameObject.id) && isEditorSceneCameraGameObject(gameObject))) {\n return null;\n }\n const fallbackSelectionId = resolveDeleteFallbackSelectionId(document, deletedIds, intent.activeId ?? null);\n return {\n label: `Delete ${deletedIds.length} GameObject${deletedIds.length === 1 ? '' : 's'}`,\n patch: {\n kind: 'game-object.delete-subtree',\n targetIds: intent.ids,\n },\n deletedIds,\n fallbackSelectionId,\n };\n}\n\nexport function validateEditorSceneReparent(\n document: EditorSceneDocument,\n intent: SceneGraphDropIntent,\n options: EditorTransformPreserveWorldPolicyInput = {},\n): SceneGraphValidationResult {\n if (intent.placement !== 'inside') return { ok: false, reason: 'Only inside reparent is supported.' };\n const dragged = findEditorSceneGameObject(document, intent.draggedId);\n const target = findEditorSceneGameObject(document, intent.targetId);\n if (!dragged) return { ok: false, reason: `GameObject not found: ${intent.draggedId}` };\n if (isEditorSceneRootGameObject(dragged)) return { ok: false, reason: 'Root GameObject cannot be reparented.' };\n if (!target) return { ok: false, reason: `Parent GameObject not found: ${intent.targetId}` };\n if (!findEditorSceneTransform(dragged)) return { ok: false, reason: `${intent.draggedId} has no Transform to preserve.` };\n if (!canEditorSceneGameObjectHaveChildren(target)) return { ok: false, reason: `${intent.targetId} cannot have children.` };\n if (dragged.id === target.id) return { ok: false, reason: 'GameObject cannot be parented to itself.' };\n if (isEditorSceneAncestor(document, dragged.id, target.id)) {\n return { ok: false, reason: 'GameObject cannot be parented to its descendant.' };\n }\n if (intent.preserveWorldTransform !== false && !computeLocalTransformForParent(document, dragged.id, target.id, undefined, { preserveWorldPolicy: options })) {\n return { ok: false, reason: 'Cannot preserve world transform under the target parent.' };\n }\n return { ok: true };\n}\n\nexport function createEditorSceneReparentPatch(\n document: EditorSceneDocument,\n intent: SceneGraphDropIntent,\n options: EditorTransformPreserveWorldPolicyInput = {},\n): { patch: EditorSceneHierarchyPatch; label: string; changedIds: string[] } | null {\n const validation = validateEditorSceneReparent(document, intent, options);\n if (!validation.ok) return null;\n const target = findEditorSceneGameObject(document, intent.draggedId);\n if (!target || !findEditorSceneTransform(target)) return null;\n const parentId = intent.targetId;\n const transform = intent.preserveWorldTransform === false\n ? readEditorSceneGameObjectLocalTransform(target)\n : computeLocalTransformForParent(document, target.id, parentId, undefined, { preserveWorldPolicy: options });\n if (!transform) return null;\n if (target.parentId === parentId && editorSceneTransformsEqual(readEditorSceneGameObjectLocalTransform(target), transform)) return null;\n return {\n label: `Reparent ${target.name ?? target.id}`,\n patch: {\n kind: 'game-object.reparent',\n targetId: target.id,\n parentId,\n transform,\n },\n changedIds: [target.id],\n };\n}\n\nexport function validateEditorSceneHierarchyMove<TGameObject extends EditorSceneGameObject = EditorSceneGameObject>(\n document: EditorSceneDocument<TGameObject>,\n intent: SceneGraphMoveIntent,\n options: EditorSceneHierarchyMoveOptions<TGameObject> = {},\n): SceneGraphValidationResult {\n const hierarchy = getEditorSceneHierarchyItems(document);\n const validation = validateSceneGraphMove(hierarchy, intent);\n if (!validation.ok) return validation;\n const ids = getTopLevelSceneGraphNodeIds(hierarchy, intent.ids);\n if (ids.some(isEditorSceneRootGameObjectId)) return { ok: false, reason: 'Root GameObject cannot be moved.' };\n const parentId = resolveEditorSceneMoveParentId(document, intent);\n if (parentId && !isEditorSceneContainer(document, parentId)) {\n return { ok: false, reason: `${parentId} cannot have children.` };\n }\n if (intent.preserveWorldTransform !== false) {\n for (const id of ids) {\n const gameObject = findEditorSceneGameObject(document, id);\n if (!gameObject) return { ok: false, reason: `GameObject not found: ${id}` };\n if (!findEditorSceneTransform(gameObject)) return { ok: false, reason: `${id} has no Transform to preserve.` };\n if (!computeLocalTransformForParent(document, id, parentId, intent, options)) {\n return { ok: false, reason: 'Cannot preserve world transform under the target parent.' };\n }\n }\n }\n return { ok: true };\n}\n\nexport function createEditorSceneHierarchyMovePatch<TGameObject extends EditorSceneGameObject = EditorSceneGameObject>(\n document: EditorSceneDocument<TGameObject>,\n intent: SceneGraphMoveIntent,\n options: EditorSceneHierarchyMoveOptions<TGameObject> = {},\n): { patch: EditorSceneHierarchyPatch; label: string; changedIds: string[] } | null {\n const validation = validateEditorSceneHierarchyMove(document, intent, options);\n if (!validation.ok) return null;\n const hierarchy = getEditorSceneHierarchyItems(document);\n const ids = getTopLevelSceneGraphNodeIds(hierarchy, intent.ids);\n const parentId = resolveEditorSceneMoveParentId(document, intent);\n const moves = ids\n .map<EditorSceneHierarchyMovePatchEntry | null>((id: string) => {\n const gameObject = findEditorSceneGameObject(document, id);\n if (!gameObject || !findEditorSceneTransform(gameObject)) return null;\n const transform = intent.preserveWorldTransform === false\n ? readEditorSceneGameObjectLocalTransform(gameObject)\n : computeLocalTransformForParent(document, id, parentId, intent, options);\n const canonicalTransform = transform ? tryCreateEditorSceneTransformSnapshot(transform) : null;\n if (!canonicalTransform) return null;\n return parentId\n ? { targetId: id, parentId, transform: canonicalTransform }\n : { targetId: id, transform: canonicalTransform };\n })\n .filter((move: EditorSceneHierarchyMovePatchEntry | null): move is EditorSceneHierarchyMovePatchEntry => !!move);\n if (moves.length !== ids.length) return null;\n const order = createEditorSceneMoveOrder(document, ids, intent);\n const currentOrder = document.scene.gameObjects.map((gameObject) => gameObject.id);\n const moved = moves.some((move: EditorSceneHierarchyMovePatchEntry) => {\n const gameObject = findEditorSceneGameObject(document, move.targetId);\n return !gameObject\n || gameObject.parentId !== move.parentId\n || !editorSceneTransformsEqual(readEditorSceneGameObjectLocalTransform(gameObject), move.transform);\n });\n if (!moved && arraysEqual(currentOrder, order)) return null;\n return {\n label: `Move ${ids.length} GameObject${ids.length === 1 ? '' : 's'}`,\n patch: {\n kind: 'game-object.hierarchy-move',\n moves,\n order,\n },\n changedIds: ids,\n };\n}\n\nexport function validateEditorSceneGroupSelection(\n document: EditorSceneDocument,\n intent: SceneGraphGroupSelectionIntent,\n options: EditorTransformPreserveWorldPolicyInput = {},\n): SceneGraphValidationResult {\n const hierarchy = getEditorSceneHierarchyItems(document);\n const validation = validateSceneGraphGroupSelection(hierarchy, intent);\n if (!validation.ok) return validation;\n const ids = getTopLevelSceneGraphNodeIds(hierarchy, intent.ids);\n if (ids.some(isEditorSceneRootGameObjectId)) return { ok: false, reason: 'Root GameObject cannot be grouped.' };\n const parentId = resolveEditorSceneGroupSelectionParentId(document, intent.parentId ?? null);\n if (parentId && !isEditorSceneContainer(document, parentId)) {\n return { ok: false, reason: `${parentId} cannot have children.` };\n }\n if (intent.preserveWorldTransform !== false) {\n const center = computeEditorSceneSelectionWorldCenter(document, ids);\n const groupWorld = center\n ? {\n position: center,\n rotation: { x: 0, y: 0, z: 0 },\n scale: { x: 1, y: 1, z: 1 },\n }\n : null;\n if (!groupWorld || !toEditorScenePreserveWorldLocalTransformForParent(document, parentId, groupWorld, options)) {\n return { ok: false, reason: 'Cannot preserve world transform under the target parent.' };\n }\n for (const id of ids) {\n const gameObject = findEditorSceneGameObject(document, id);\n if (!gameObject) return { ok: false, reason: `GameObject not found: ${id}` };\n if (!findEditorSceneTransform(gameObject)) return { ok: false, reason: `${id} has no Transform to preserve.` };\n const childWorld = getEditorSceneGameObjectWorldTransform(document, id);\n if (!childWorld || !toEditorLocalTransformFromParentWorld(groupWorld, childWorld, options)) {\n return { ok: false, reason: 'Cannot preserve world transform under the target parent.' };\n }\n }\n }\n return { ok: true };\n}\n\nexport function createEditorSceneGroupSelectionPatch(\n document: EditorSceneDocument,\n intent: SceneGraphGroupSelectionIntent,\n options: EditorTransformPreserveWorldPolicyInput = {},\n): { patch: EditorSceneHierarchyPatch; label: string; createdId: string; changedIds: string[] } | null {\n const validation = validateEditorSceneGroupSelection(document, intent, options);\n if (!validation.ok) return null;\n const hierarchy = getEditorSceneHierarchyItems(document);\n const ids = getTopLevelSceneGraphNodeIds(hierarchy, intent.ids);\n if (ids.length === 0) return null;\n const parentId = resolveEditorSceneGroupSelectionParentId(document, intent.parentId ?? null);\n const center = computeEditorSceneSelectionWorldCenter(document, ids);\n if (!center) return null;\n const groupWorld = {\n position: center,\n rotation: { x: 0, y: 0, z: 0 },\n scale: { x: 1, y: 1, z: 1 },\n };\n const groupLocal = toEditorScenePreserveWorldLocalTransformForParent(document, parentId, groupWorld, options);\n if (!groupLocal) return null;\n const name = createUniqueEditorSceneGameObjectDisplayName(\n getEditorSceneGameObjectDisplayNames(document),\n intent.name,\n { fallbackName: 'Parent' },\n );\n const id = createUniqueEditorSceneId(document.scene.gameObjects.map((gameObject) => gameObject.id), name);\n const gameObject: EditorSceneGameObject = {\n id,\n guid: createEditorSceneGameObjectGuid(),\n name,\n kind: 'transform',\n transformType: 'plain',\n ...(parentId ? { parentId } : {}),\n active: true,\n components: [\n toEditorSceneTransformComponent(groupLocal),\n ],\n };\n const childTransforms: Record<string, EditorTransformSnapshot> = {};\n for (const childId of ids) {\n const child = findEditorSceneGameObject(document, childId);\n if (!child) return null;\n if (intent.preserveWorldTransform === false) {\n childTransforms[childId] = readEditorSceneGameObjectLocalTransform(child);\n continue;\n }\n const childWorld = getEditorSceneGameObjectWorldTransform(document, childId);\n if (!childWorld) return null;\n const childLocal = toEditorLocalTransformFromParentWorld(groupWorld, childWorld, options);\n if (!childLocal) return null;\n childTransforms[childId] = childLocal;\n }\n const order = createEditorSceneGroupSelectionOrder(document, id, ids, intent.insertBeforeId ?? null);\n return {\n label: `Create Parent for ${ids.length} GameObject${ids.length === 1 ? '' : 's'}`,\n patch: {\n kind: 'game-object.group-selection',\n gameObject,\n childIds: ids,\n childTransforms,\n order,\n },\n createdId: id,\n changedIds: [id, ...ids],\n };\n}\n\nexport function createEditorSceneDuplicateSelectionPatch(input: {\n document: EditorSceneDocument;\n targetIds: string[];\n activeId: string | null;\n isProtectedDuplicateSource?: EditorSceneDuplicateProtectionPredicate;\n}): {\n patch: EditorSceneHierarchyPatch;\n label: string;\n createdIds: string[];\n selectedIds: string[];\n activeId: string | null;\n changedIds: string[];\n} | null {\n const isProtectedDuplicateSource = input.isProtectedDuplicateSource ?? defaultEditorSceneProtectedDuplicateSource;\n const hierarchy = getEditorSceneHierarchyItems(input.document);\n const rootSourceIdSet = new Set(getTopLevelSceneGraphNodeIds(hierarchy, input.targetIds)\n .filter((targetId) => {\n const source = findEditorSceneGameObject(input.document, targetId);\n return !!source\n && !isEditorSceneRootGameObject(source)\n && !isProtectedDuplicateSource(source, input.document)\n && !hasProtectedEditorSceneDuplicateAncestor(input.document, source.id, isProtectedDuplicateSource);\n }));\n const rootSourceIds = createEditorSceneHierarchyDocumentOrder(input.document)\n .filter((id) => rootSourceIdSet.has(id));\n if (rootSourceIds.length === 0) return null;\n const expandedIds = collectEditorSceneSubtreeIds(input.document, rootSourceIds);\n const idMap = new Map<string, string>();\n const usedIds = new Set(input.document.scene.gameObjects.map((gameObject) => gameObject.id));\n const nameMap = new Map<string, string>();\n const usedNames = getEditorSceneGameObjectDisplayNames(input.document);\n const sourceIds = collectEditorSceneDuplicateSourceIds(\n input.document,\n rootSourceIds,\n expandedIds,\n isProtectedDuplicateSource,\n );\n for (const targetId of sourceIds) {\n const source = findEditorSceneGameObject(input.document, targetId)!;\n const duplicateName = createUniqueEditorSceneGameObjectDisplayName(\n usedNames,\n source.name,\n {\n alwaysAppendSuffix: true,\n fallbackName: source.id,\n },\n );\n usedNames.push(duplicateName);\n const duplicateId = createUniqueEditorSceneId([...usedIds], duplicateName);\n usedIds.add(duplicateId);\n idMap.set(source.id, duplicateId);\n nameMap.set(source.id, duplicateName);\n }\n const gameObjects = sourceIds\n .map((targetId) => findEditorSceneGameObject(input.document, targetId))\n .filter((source): source is EditorSceneGameObject => !!source && idMap.has(source.id))\n .map((source) => {\n const duplicate = structuredClone(source);\n duplicate.id = idMap.get(source.id)!;\n duplicate.guid = createEditorSceneGameObjectGuid();\n duplicate.name = nameMap.get(source.id)!;\n if (duplicate.parentId && idMap.has(duplicate.parentId)) {\n duplicate.parentId = idMap.get(duplicate.parentId)!;\n }\n return duplicate;\n });\n if (gameObjects.length === 0) return null;\n const createdIds = gameObjects.map((gameObject) => gameObject.id);\n const selectedIds = rootSourceIds.map(id => idMap.get(id)).filter((id): id is string => !!id);\n const activeSourceId = resolveEditorSceneDuplicateActiveSourceId(input.document, rootSourceIds, input.activeId);\n const activeId = activeSourceId && idMap.has(activeSourceId)\n ? idMap.get(activeSourceId)!\n : selectedIds[selectedIds.length - 1] ?? createdIds[createdIds.length - 1] ?? null;\n return {\n label: `Duplicate ${createdIds.length} object${createdIds.length === 1 ? '' : 's'}`,\n patch: {\n kind: 'game-object.duplicate-selection',\n gameObjects,\n order: createEditorSceneDuplicateSelectionOrder(input.document, rootSourceIds, idMap),\n },\n createdIds,\n selectedIds,\n activeId,\n changedIds: createdIds,\n };\n}\n\nfunction defaultEditorSceneProtectedDuplicateSource(\n gameObject: EditorSceneGameObject,\n): boolean {\n return isEditorSceneProtectedSystemGameObject(gameObject);\n}\n\nfunction resolveEditorSceneDuplicateActiveSourceId(\n document: EditorSceneDocument,\n rootSourceIds: readonly string[],\n activeId: string | null,\n): string | null {\n if (activeId && rootSourceIds.includes(activeId)) return activeId;\n if (activeId) {\n for (const rootSourceId of rootSourceIds) {\n if (collectEditorSceneSubtreeIds(document, [rootSourceId]).has(activeId)) return rootSourceId;\n }\n }\n return rootSourceIds[rootSourceIds.length - 1] ?? null;\n}\n\nfunction hasProtectedEditorSceneDuplicateAncestor(\n document: EditorSceneDocument,\n sourceId: string,\n isProtectedDuplicateSource: EditorSceneDuplicateProtectionPredicate,\n): boolean {\n const byId = new Map(document.scene.gameObjects.map((gameObject) => [gameObject.id, gameObject]));\n const visited = new Set<string>();\n let current = byId.get(sourceId);\n while (current?.parentId) {\n if (visited.has(current.parentId)) return true;\n visited.add(current.parentId);\n const parent = byId.get(current.parentId);\n if (!parent) return false;\n if (isProtectedDuplicateSource(parent, document)) return true;\n current = parent;\n }\n return false;\n}\n\nfunction collectEditorSceneDuplicateSourceIds(\n document: EditorSceneDocument,\n rootSourceIds: readonly string[],\n expandedIds: ReadonlySet<string>,\n isProtectedDuplicateSource: EditorSceneDuplicateProtectionPredicate,\n): string[] {\n const hierarchyOrder = createEditorSceneHierarchyDocumentOrder(document);\n const orderIndex = new Map(hierarchyOrder.map((id, index) => [id, index]));\n const byId = new Map(document.scene.gameObjects.map((gameObject) => [gameObject.id, gameObject]));\n const childrenByParentId = new Map<string | null, string[]>();\n for (const gameObject of document.scene.gameObjects) {\n const parentId = gameObject.parentId && byId.has(gameObject.parentId)\n ? gameObject.parentId\n : null;\n const children = childrenByParentId.get(parentId) ?? [];\n children.push(gameObject.id);\n childrenByParentId.set(parentId, children);\n }\n for (const children of childrenByParentId.values()) {\n children.sort((left, right) => (orderIndex.get(left) ?? Number.MAX_SAFE_INTEGER) - (orderIndex.get(right) ?? Number.MAX_SAFE_INTEGER));\n }\n const sourceIds: string[] = [];\n const visited = new Set<string>();\n const appendSubtree = (sourceId: string) => {\n if (visited.has(sourceId) || !expandedIds.has(sourceId)) return;\n visited.add(sourceId);\n const source = findEditorSceneGameObject(document, sourceId);\n if (!source || isEditorSceneRootGameObject(source) || isProtectedDuplicateSource(source, document)) return;\n sourceIds.push(source.id);\n for (const childId of childrenByParentId.get(source.id) ?? []) appendSubtree(childId);\n };\n for (const rootSourceId of rootSourceIds) appendSubtree(rootSourceId);\n return sourceIds;\n}\n\nfunction createEditorSceneDuplicateSelectionOrder(\n document: EditorSceneDocument,\n rootSourceIds: readonly string[],\n idMap: ReadonlyMap<string, string>,\n): string[] {\n const currentOrder = createEditorSceneHierarchyDocumentOrder(document);\n const duplicateBlocksByLastSourceId = new Map<string, string[]>();\n for (const rootSourceId of rootSourceIds) {\n const subtreeIds = collectEditorSceneSubtreeIds(document, [rootSourceId]);\n const sourceBlockIds = currentOrder.filter((id) => subtreeIds.has(id));\n const duplicateBlockIds = sourceBlockIds\n .map((id) => idMap.get(id))\n .filter((id): id is string => !!id);\n const lastSourceId = sourceBlockIds[sourceBlockIds.length - 1];\n if (lastSourceId && duplicateBlockIds.length > 0) {\n duplicateBlocksByLastSourceId.set(lastSourceId, duplicateBlockIds);\n }\n }\n const order: string[] = [];\n for (const id of currentOrder) {\n order.push(id);\n const duplicateBlockIds = duplicateBlocksByLastSourceId.get(id);\n if (duplicateBlockIds) order.push(...duplicateBlockIds);\n }\n return order;\n}\n\nfunction createEditorSceneHierarchyDocumentOrder(document: EditorSceneDocument): string[] {\n const gameObjects = document.scene.gameObjects;\n const byId = new Map(gameObjects.map((gameObject) => [gameObject.id, gameObject]));\n const childrenByParentId = new Map<string | null, string[]>();\n for (const gameObject of gameObjects) {\n const parentId = gameObject.parentId && byId.has(gameObject.parentId)\n ? gameObject.parentId\n : null;\n const children = childrenByParentId.get(parentId) ?? [];\n children.push(gameObject.id);\n childrenByParentId.set(parentId, children);\n }\n const order: string[] = [];\n const visited = new Set<string>();\n const visit = (id: string) => {\n if (visited.has(id) || !byId.has(id)) return;\n visited.add(id);\n order.push(id);\n for (const childId of childrenByParentId.get(id) ?? []) visit(childId);\n };\n const rootId = resolveEditorSceneRootContainerId(document);\n if (rootId) visit(rootId);\n for (const rootChildId of childrenByParentId.get(null) ?? []) visit(rootChildId);\n for (const gameObject of gameObjects) visit(gameObject.id);\n return order;\n}\n\nfunction resolveCreateGroupParentId(\n document: EditorSceneDocument,\n intent: SceneGraphCreateGroupIntent,\n): string | null | undefined {\n if (intent.parentId) {\n const parent = findEditorSceneGameObject(document, intent.parentId);\n return parent && canEditorSceneGameObjectHaveChildren(parent) ? parent.id : null;\n }\n const active = intent.activeId ? findEditorSceneGameObject(document, intent.activeId) : null;\n if (active && canEditorSceneGameObjectHaveChildren(active)) return active.id;\n if (active?.parentId) {\n const activeParent = findEditorSceneGameObject(document, active.parentId);\n if (activeParent && canEditorSceneGameObjectHaveChildren(activeParent)) return activeParent.id;\n }\n return resolveEditorSceneRootContainerId(document);\n}\n\nfunction resolveCreatePrimitiveParentId(\n document: EditorSceneDocument,\n intent: SceneGraphCreatePrimitiveIntent,\n): string | null | undefined {\n if (intent.parentId === null) return resolveEditorSceneRootContainerId(document);\n return resolveCreateGroupParentId(document, intent);\n}\n\nfunction resolveEditorSceneMoveParentId(document: EditorSceneDocument, intent: SceneGraphMoveIntent): string | undefined {\n if (intent.placement === 'root') return resolveEditorSceneRootContainerId(document);\n if (intent.placement === 'inside' && intent.targetId) return intent.targetId;\n const target = intent.targetId ? findEditorSceneGameObject(document, intent.targetId) : null;\n return intent.parentId ?? target?.parentId ?? resolveEditorSceneRootContainerId(document);\n}\n\nfunction resolveEditorSceneGroupSelectionParentId(document: EditorSceneDocument, parentId: string | null): string | undefined {\n return parentId && isEditorSceneContainer(document, parentId) ? parentId : resolveEditorSceneRootContainerId(document);\n}\n\nfunction isEditorSceneContainer(document: EditorSceneDocument, gameObjectId: string): boolean {\n const gameObject = findEditorSceneGameObject(document, gameObjectId);\n return !!gameObject && canEditorSceneGameObjectHaveChildren(gameObject);\n}\n\nfunction computeLocalTransformForParent<TGameObject extends EditorSceneGameObject = EditorSceneGameObject>(\n document: EditorSceneDocument<TGameObject>,\n gameObjectId: string,\n parentId: string | undefined,\n intent?: SceneGraphMoveIntent,\n options: EditorSceneHierarchyMoveOptions<TGameObject> = {},\n): EditorTransformSnapshot | null {\n const world = getEditorSceneGameObjectWorldTransform(document, gameObjectId);\n if (!world) return null;\n const gameObject = findEditorSceneGameObject(document, gameObjectId) as TGameObject | null;\n if (!gameObject) return null;\n const resolved = intent\n ? options.resolveLocalTransform?.({\n document,\n intent,\n gameObject,\n parentId,\n worldTransform: world,\n })\n : null;\n if (resolved) return tryCreateEditorSceneTransformSnapshot(resolved);\n const local = toEditorScenePreserveWorldLocalTransformForParent(document, parentId, world, options.preserveWorldPolicy);\n return local ? tryCreateEditorSceneTransformSnapshot(local) : null;\n}\n\nfunction toEditorLocalTransformFromParentWorld(\n parentWorld: EditorTransformSnapshot,\n world: EditorTransformSnapshot,\n options: EditorTransformPreserveWorldPolicyInput = {},\n): EditorTransformSnapshot | null {\n const policy = resolveEditorTransformPreserveWorldPolicy(options);\n const local = toEditorLocalTransformFromWorld(parentWorld, world, { allowMatrixFallback: policy.allowMatrixFallback });\n return local ? tryCreateEditorSceneTransformSnapshot(local) : null;\n}\n\nfunction createEditorSceneMoveOrder(\n document: EditorSceneDocument,\n ids: readonly string[],\n intent: SceneGraphMoveIntent,\n): string[] {\n const blockIds = collectOrderedEditorSceneSubtreeBlockIds(document, ids);\n const blockSet = new Set(blockIds);\n const remaining = document.scene.gameObjects\n .map((gameObject) => gameObject.id)\n .filter((id) => !blockSet.has(id));\n const index = resolveEditorSceneInsertIndex(document, remaining, {\n placement: intent.placement,\n targetId: intent.targetId ?? null,\n beforeId: intent.beforeId ?? null,\n afterId: intent.afterId ?? null,\n parentId: resolveEditorSceneMoveParentId(document, intent),\n });\n return insertEditorSceneIdsAt(remaining, blockIds, index);\n}\n\nfunction createEditorSceneGroupSelectionOrder(\n document: EditorSceneDocument,\n groupId: string,\n ids: readonly string[],\n insertBeforeId: string | null,\n): string[] {\n const blockIds = collectOrderedEditorSceneSubtreeBlockIds(document, ids);\n const blockSet = new Set(blockIds);\n const currentOrder = document.scene.gameObjects.map((gameObject) => gameObject.id);\n const remaining = currentOrder.filter((id) => !blockSet.has(id));\n const firstSelectedIndex = Math.min(...ids.map((id) => currentOrder.indexOf(id)).filter((index) => index >= 0));\n const fallbackIndex = Number.isFinite(firstSelectedIndex)\n ? remaining.filter((id) => currentOrder.indexOf(id) < firstSelectedIndex).length\n : remaining.length;\n const index = insertBeforeId\n ? Math.max(0, remaining.indexOf(insertBeforeId))\n : fallbackIndex;\n return insertEditorSceneIdsAt(remaining, [groupId, ...blockIds], index);\n}\n\nfunction collectOrderedEditorSceneSubtreeBlockIds(document: EditorSceneDocument, rootIds: readonly string[]): string[] {\n const subtreeIds = collectEditorSceneSubtreeIds(document, [...rootIds]);\n return document.scene.gameObjects\n .map((gameObject) => gameObject.id)\n .filter((id) => subtreeIds.has(id));\n}\n\nfunction resolveEditorSceneInsertIndex(\n document: EditorSceneDocument,\n remaining: readonly string[],\n input: {\n placement: SceneGraphMoveIntent['placement'];\n targetId: string | null;\n beforeId: string | null;\n afterId: string | null;\n parentId?: string;\n },\n): number {\n if (input.beforeId) return boundedInsertIndex(remaining.indexOf(input.beforeId), remaining.length);\n if (input.afterId) return indexAfterEditorSceneSubtree(document, remaining, input.afterId);\n if (input.placement === 'before' && input.targetId) return boundedInsertIndex(remaining.indexOf(input.targetId), remaining.length);\n if (input.placement === 'after' && input.targetId) return indexAfterEditorSceneSubtree(document, remaining, input.targetId);\n if (input.placement === 'inside' && input.targetId) return indexAfterEditorSceneSubtree(document, remaining, input.targetId);\n if (input.placement === 'root') return remaining.length;\n if (input.parentId) return indexAfterEditorSceneSubtree(document, remaining, input.parentId);\n return remaining.length;\n}\n\nfunction indexAfterEditorSceneSubtree(document: EditorSceneDocument, remaining: readonly string[], anchorId: string): number {\n const subtreeIds = collectEditorSceneSubtreeIds(document, [anchorId]);\n let index = remaining.indexOf(anchorId);\n if (index < 0) return remaining.length;\n for (let cursor = index + 1; cursor < remaining.length; cursor += 1) {\n if (!subtreeIds.has(remaining[cursor]!)) break;\n index = cursor;\n }\n return index + 1;\n}\n\nfunction insertEditorSceneIdsAt(base: readonly string[], ids: readonly string[], index: number): string[] {\n const safeIndex = Math.max(0, Math.min(index, base.length));\n return [\n ...base.slice(0, safeIndex),\n ...ids,\n ...base.slice(safeIndex),\n ];\n}\n\nfunction boundedInsertIndex(index: number, fallback: number): number {\n return index >= 0 ? index : fallback;\n}\n\nfunction computeEditorSceneSelectionWorldCenter(\n document: EditorSceneDocument,\n ids: readonly string[],\n): EditorSceneVec3 | null {\n const worlds = ids\n .map((id) => getEditorSceneGameObjectWorldTransform(document, id))\n .filter((transform): transform is EditorTransformSnapshot => !!transform);\n if (worlds.length === 0) return null;\n const positions: EditorSceneVec3[] = worlds.map(readEditorTransformPosition);\n return {\n x: positions.reduce((sum: number, position: EditorSceneVec3) => sum + position.x, 0) / positions.length,\n y: positions.reduce((sum: number, position: EditorSceneVec3) => sum + position.y, 0) / positions.length,\n z: positions.reduce((sum: number, position: EditorSceneVec3) => sum + position.z, 0) / positions.length,\n };\n}\n\nfunction resolveDeleteFallbackSelectionId(\n document: EditorSceneDocument,\n deletedIds: string[],\n activeId: string | null,\n): string | null {\n const deleted = new Set(deletedIds);\n const active = activeId ? findEditorSceneGameObject(document, activeId) : null;\n if (active?.parentId && !deleted.has(active.parentId) && findEditorSceneGameObject(document, active.parentId)) {\n return active.parentId;\n }\n const remaining = document.scene.gameObjects.filter((gameObject) => !deleted.has(gameObject.id));\n return remaining[remaining.length - 1]?.id ?? null;\n}\n\nfunction isEditorSceneAncestor(document: EditorSceneDocument, ancestorId: string, descendantId: string): boolean {\n const byId = createEditorSceneGameObjectMap(document);\n const seen = new Set<string>();\n let cursor = byId.get(descendantId);\n while (cursor?.parentId && !seen.has(cursor.parentId)) {\n if (cursor.parentId === ancestorId) return true;\n seen.add(cursor.parentId);\n cursor = byId.get(cursor.parentId);\n }\n return false;\n}\n\nfunction normalizeEditorScenePrimitiveShape(shape: unknown): SceneGraphPrimitiveShape | null {\n return shape === 'cube' || shape === 'sphere' || shape === 'plane' || shape === 'capsule'\n ? shape\n : null;\n}\n\nfunction getEditorScenePrimitiveDisplayName(shape: SceneGraphPrimitiveShape): string {\n return shape[0]!.toUpperCase() + shape.slice(1);\n}\n\nfunction createDefaultEditorScenePrimitiveTransform(_shape: SceneGraphPrimitiveShape): EditorTransformSnapshot {\n return {\n position: { x: 0, y: 0, z: 0 },\n rotation: { x: 0, y: 0, z: 0 },\n scale: { x: 1, y: 1, z: 1 },\n };\n}\n\nfunction getEditorSceneGameObjectDisplayNames(document: EditorSceneDocument): string[] {\n return document.scene.gameObjects.map((gameObject) => gameObject.name ?? gameObject.id);\n}\n\nfunction editorSceneTransformsEqual(left: EditorTransformSnapshot, right: EditorTransformSnapshot): boolean {\n if (!isEditorTransformTrsSnapshot(left) || !isEditorTransformTrsSnapshot(right)) {\n return editorTransformMatricesAlmostEqual(composeEditorTransformMatrix(left), composeEditorTransformMatrix(right));\n }\n return editorSceneVec3Equal(left.position, right.position)\n && editorSceneVec3Equal(left.rotation, right.rotation)\n && editorSceneVec3Equal(left.scale, right.scale);\n}\n\nfunction editorSceneVec3Equal(left: EditorSceneVec3, right: EditorSceneVec3): boolean {\n return Math.abs(left.x - right.x) < 0.000001\n && Math.abs(left.y - right.y) < 0.000001\n && Math.abs(left.z - right.z) < 0.000001;\n}\n\nfunction arraysEqual(left: readonly string[], right: readonly string[]): boolean {\n return left.length === right.length && left.every((value, index) => value === right[index]);\n}\n"]}
@@ -35,7 +35,7 @@ export interface PlayableEditorSceneReducerCoreServices<TDocument extends Editor
35
35
  addMaterialAssetAndBind: (document: TDocument, targetId: string, bindingPath: string, materialAsset: unknown) => TDocument;
36
36
  addPrefabAsset: (document: TDocument, prefabAsset: unknown, sourceAsset?: unknown) => TDocument;
37
37
  patchPrefabAssetField: (document: TDocument, assetId: string, path: string, value: unknown) => TDocument;
38
- replacePrefabAsset: (document: TDocument, assetId: string, prefabAsset: unknown) => TDocument;
38
+ replacePrefabAsset: (document: TDocument, assetId: string, prefabAsset: unknown, sourceAsset?: unknown) => TDocument;
39
39
  addMaterialAssetAndBindPrefabOverride: (document: TDocument, assetId: string, bindingPath: string, materialAsset: unknown) => TDocument;
40
40
  patchGameObjectField: (document: TDocument, targetId: string, path: string, value: unknown) => TDocument;
41
41
  patchGameObjectsField: (document: TDocument, targetIds: readonly string[], path: string, value: unknown) => TDocument;
@@ -1 +1 @@
1
- {"version":3,"file":"reducer-core.d.ts","sourceRoot":"","sources":["../../src/session/reducer-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reducer-core.d.ts","sourceRoot":"","sources":["../../src/session/reducer-core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EACvB,yBAAyB,EAC1B,MAAM,wBAAwB,CAAC;AAIhC,OAAO,EAML,KAAK,+BAA+B,EACrC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,mBAAmB,CAAC;AAK3B,OAAO,KAAK,EACV,sCAAsC,EACvC,MAAM,8BAA8B,CAAC;AAEtC,MAAM,WAAW,wCAAwC;IACvD,oBAAoB,EAAE,MAAM,MAAM,CAAC;IACnC,cAAc,EAAE,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC;CACjF;AAED,MAAM,WAAW,+CAA+C,CAC9D,WAAW,SAAS,qBAAqB,GAAG,qBAAqB;IAEjE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,wBAAwB,EAAE,MAAM,CAAC;IACjC,uBAAuB,EAAE,MAAM,CAAC;IAChC,mCAAmC,EAAE,CAAC,UAAU,EAAE,WAAW,KAAK,WAAW,CAAC;IAC9E,2BAA2B,EAAE,CAAC,UAAU,EAAE,WAAW,KAAK,WAAW,CAAC;IACtE,yBAAyB,EAAE,CAAC,UAAU,EAAE,WAAW,KAAK,WAAW,CAAC;IACpE,iCAAiC,EAAE,CAAC,UAAU,EAAE,WAAW,KAAK,WAAW,CAAC;IAC5E,6BAA6B,EAAE,CAC7B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,QAAQ,EAAE,wCAAwC,KAC/C,WAAW,CAAC;IACjB,uCAAuC,EAAE,CACvC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,QAAQ,EAAE,wCAAwC,KAC/C,WAAW,CAAC;IACjB,+BAA+B,EAAE,CAC/B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,QAAQ,EAAE,wCAAwC,KAC/C,WAAW,CAAC;IACjB,mBAAmB,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,KAAK,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC9E,8BAA8B,EAAE,CAC9B,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAC1C,IAAI,EAAE,MAAM,KACT,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC3B,6BAA6B,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,KAAK,OAAO,CAAC;IACvF,kBAAkB,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,WAAW,CAAC,OAAO,CAAC,CAAC;CAC3E;AAED,MAAM,WAAW,sCAAsC,CACrD,SAAS,SAAS,mBAAmB,GAAG,mBAAmB,EAC3D,WAAW,SAAS,qBAAqB,GAAG,qBAAqB,EACjE,eAAe,SAAS,MAAM,GAAG,MAAM;IAEvC,cAAc,EAAE,+CAA+C,CAAC,WAAW,CAAC,CAAC;IAC7E,8BAA8B,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,SAAS,CAAC;IACnE,uBAAuB,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,SAAS,CAAC;IAC5D,qBAAqB,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,SAAS,CAAC;IAC1D,6BAA6B,EAAE,CAC7B,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,KACzC,SAAS,CAAC;IAEf,uBAAuB,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,SAAS,CAAC;IACnH,gBAAgB,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,KAAK,SAAS,CAAC;IAC7E,mBAAmB,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,KAAK,SAAS,CAAC;IACjF,uBAAuB,EAAE,CACvB,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,OAAO,KACnB,SAAS,CAAC;IACf,cAAc,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK,SAAS,CAAC;IAChG,qBAAqB,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,SAAS,CAAC;IACzG,kBAAkB,EAAE,CAClB,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,OAAO,EACpB,WAAW,CAAC,EAAE,OAAO,KAClB,SAAS,CAAC;IACf,qCAAqC,EAAE,CACrC,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,OAAO,KACnB,SAAS,CAAC;IACf,oBAAoB,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,SAAS,CAAC;IACzG,qBAAqB,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,SAAS,CAAC;IACtH,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE;QAC7B,QAAQ,EAAE,SAAS,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/B,OAAO,EAAE,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;KAC9C,KAAK,SAAS,GAAG,IAAI,CAAC;IACvB,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACnD,sBAAsB,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,KAAK,SAAS,CAAC;IAC7E,2BAA2B,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAEvD,+BAA+B,EAAE,sCAAsC,CAAC,SAAS,CAAC,CAAC;IACnF,oBAAoB,EAAE,MAAM,MAAM,CAAC;IACnC,qBAAqB,EAAE,CAAC,KAAK,EAAE;QAC7B,QAAQ,EAAE,SAAS,CAAC;QACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;QACpC,cAAc,EAAE,uBAAuB,CAAC;KACzC,KAAK,uBAAuB,GAAG,IAAI,CAAC;IACrC,2BAA2B,EAAE,CAAC,UAAU,EAAE,WAAW,KAAK,OAAO,CAAC;IAClE,sBAAsB,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,MAAM,GAAG,SAAS,CAAC;IACpE,cAAc,EAAE,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC;IAChF,2BAA2B,EAAE,CAC3B,cAAc,EAAE,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC,CAAC,KAC9D,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACvD,qCAAqC,EAAE,CACrC,QAAQ,EAAE,SAAS,EACnB,WAAW,EAAE,WAAW,EAAE,KACvB;QAAE,WAAW,EAAE,WAAW,EAAE,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACtD,8BAA8B,EAAE,CAC9B,QAAQ,EAAE,SAAS,EACnB,cAAc,EAAE,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC,CAAC,EACjE,WAAW,EAAE,WAAW,EAAE,KACvB;QACH,cAAc,EAAE,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAClE,WAAW,EAAE,WAAW,EAAE,CAAC;QAC3B,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IAEF,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IAC/D,aAAa,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,yBAAyB,CAAC;IACzH,uBAAuB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,eAAe,GAAG,IAAI,CAAC;IACpE,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,MAAM,CAAC;IAC5D,wBAAwB,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IACpF,yBAAyB,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IACrF,yBAAyB,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IAC/F,cAAc,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,KAAK,WAAW,GAAG,IAAI,CAAC;IAClF,kBAAkB,EAAE,CAAC,UAAU,EAAE,WAAW,KAAK,OAAO,CAAC;IACzD,iBAAiB,EAAE,CAAC,UAAU,EAAE,WAAW,KAAK,OAAO,CAAC;IACxD,SAAS,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;CAChE;AAED,MAAM,MAAM,2CAA2C,CACrD,SAAS,SAAS,mBAAmB,GAAG,mBAAmB,EAC3D,WAAW,SAAS,qBAAqB,GAAG,qBAAqB,IAC/D,IAAI,CACN,sCAAsC,CAAC,SAAS,EAAE,WAAW,CAAC,EAC9D,gBAAgB,GAAG,oBAAoB,GAAG,mBAAmB,GAAG,6BAA6B,GAAG,WAAW,GAAG,gBAAgB,CAC/H,CAAC;AAEF,MAAM,MAAM,wCAAwC,CAClD,SAAS,SAAS,mBAAmB,GAAG,mBAAmB,EAC3D,WAAW,SAAS,qBAAqB,GAAG,qBAAqB,EACjE,eAAe,SAAS,MAAM,GAAG,MAAM,IACrC,2CAA2C,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,IAAI,CAC5E,sCAAsC,CAAC,SAAS,EAAE,WAAW,EAAE,eAAe,CAAC,EAC7E,qBAAqB,GACrB,eAAe,GACf,yBAAyB,GACzB,uBAAuB,GACvB,0BAA0B,GAC1B,2BAA2B,GAC3B,2BAA2B,CAC9B,CAAC;AAEF,wBAAgB,gDAAgD,CAC9D,SAAS,SAAS,mBAAmB,EACrC,WAAW,SAAS,qBAAqB,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,EACrF,eAAe,SAAS,MAAM,GAAG,MAAM,EAEvC,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,sCAAsC,CAAC,SAAS,EAAE,WAAW,EAAE,eAAe,CAAC,GACxF,SAAS,CA0FX;AAED,wBAAgB,qCAAqC,CACnD,SAAS,SAAS,mBAAmB,EACrC,WAAW,SAAS,qBAAqB,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,EACrF,eAAe,SAAS,MAAM,GAAG,MAAM,EAEvC,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,EAC5C,QAAQ,EAAE,sCAAsC,CAAC,SAAS,EAAE,WAAW,EAAE,eAAe,CAAC,GACxF,SAAS,CASX;AAED,wBAAgB,6CAA6C,CAC3D,SAAS,SAAS,mBAAmB,EACrC,WAAW,SAAS,qBAAqB,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,EACrF,eAAe,SAAS,MAAM,GAAG,MAAM,EAEvC,QAAQ,EAAE,wCAAwC,CAAC,SAAS,EAAE,WAAW,EAAE,eAAe,CAAC,GAC1F,+BAA+B,CAAC,SAAS,EAAE,WAAW,CAAC,CAsBzD;AAED,wBAAgB,kDAAkD,CAChE,SAAS,SAAS,mBAAmB,EACrC,WAAW,SAAS,qBAAqB,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,EAErF,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,IAAI,CAAC,sCAAsC,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,CAAC,GAClH,SAAS,CAgBX;AAED,wBAAgB,4CAA4C,CAC1D,SAAS,SAAS,mBAAmB,EACrC,WAAW,SAAS,qBAAqB,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,EAErF,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,2CAA2C,CAAC,SAAS,EAAE,WAAW,CAAC,GAC5E,OAAO,CAiCT"}
@@ -1,5 +1,6 @@
1
1
  import { patchEditorSceneDirectionalLightOrientationAngles, } from '../lighting-debug/index.js';
2
2
  import { applyEditorSceneJsonFieldPatch, migrateEditorSceneDocumentRenderingAlphaIndex, reduceEditorSceneDocumentMutation, } from '../mutation/index.js';
3
+ import { assertEditorShadowMapExperimentSettings, } from '@fps-games/playable-rendering';
3
4
  export function ensurePlayableEditorSceneEnvironmentDefaultsCore(document, services) {
4
5
  const documentWithGuids = services.ensureGameObjectGuids(document);
5
6
  const rootId = services.resolveRootContainerId(documentWithGuids);
@@ -165,6 +166,34 @@ export function isBlockedPlayableEditorSceneSystemFieldPatch(document, targetId,
165
166
  function reducePlayableEditorSceneDocumentUnchecked(document, command, services) {
166
167
  const patch = command.type === 'document.replace' ? null : command.patch;
167
168
  if (patch) {
169
+ if (patch.kind === 'scene.shadow-map-experiment.profiles') {
170
+ const settings = { ...(document.scene.shadowMapExperiment ?? {}) };
171
+ if (Object.prototype.hasOwnProperty.call(patch, 'qualityProfile')) {
172
+ if (typeof patch.qualityProfile === 'string')
173
+ settings.qualityProfile = patch.qualityProfile;
174
+ else
175
+ delete settings.qualityProfile;
176
+ }
177
+ if (Object.prototype.hasOwnProperty.call(patch, 'behaviorProfile')) {
178
+ if (typeof patch.behaviorProfile === 'string')
179
+ settings.behaviorProfile = patch.behaviorProfile;
180
+ else
181
+ delete settings.behaviorProfile;
182
+ }
183
+ try {
184
+ if (Object.keys(settings).length > 0)
185
+ assertEditorShadowMapExperimentSettings(settings);
186
+ }
187
+ catch {
188
+ return document;
189
+ }
190
+ const scene = { ...document.scene };
191
+ if (Object.keys(settings).length > 0)
192
+ scene.shadowMapExperiment = settings;
193
+ else
194
+ delete scene.shadowMapExperiment;
195
+ return { ...document, scene };
196
+ }
168
197
  if (patch.kind === 'scene.material-asset.field') {
169
198
  return services.patchMaterialAssetField(document, patch.materialAssetId, patch.path, patch.value);
170
199
  }
@@ -185,7 +214,7 @@ function reducePlayableEditorSceneDocumentUnchecked(document, command, services)
185
214
  return services.patchPrefabAssetField(document, patch.assetId, patch.path, patch.value);
186
215
  }
187
216
  if (patch.kind === 'scene.prefab-asset.replace') {
188
- return services.replacePrefabAsset(document, patch.assetId, patch.prefabAsset);
217
+ return services.replacePrefabAsset(document, patch.assetId, patch.prefabAsset, patch.sourceAsset);
189
218
  }
190
219
  if (patch.kind === 'scene.prefab-material-asset.duplicate-and-bind') {
191
220
  return services.addMaterialAssetAndBindPrefabOverride(document, patch.assetId, patch.bindingPath, patch.materialAsset);