@vyr/cli 0.0.12 → 0.0.13

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 (509) hide show
  1. package/.entry/app.js +362 -362
  2. package/build/index.html +1 -1
  3. package/build/js/{index.b67bf9b8.js → index.e0eed6ab.js} +1 -1
  4. package/build/js/{preview.ad0b8290.js → preview.ff6115f6.js} +1 -1
  5. package/build/login.html +1 -1
  6. package/build/preview.html +1 -1
  7. package/output/auto-provider-plugin/index.js +38 -0
  8. package/output/auto-provider-plugin/loader.js +53 -0
  9. package/output/auto-provider-plugin/package.json +1 -0
  10. package/output/builtin/build/common/example.d.ts +5 -0
  11. package/output/builtin/build/common/index.d.ts +3 -0
  12. package/output/builtin/build/common/provider.d.ts +5 -0
  13. package/output/builtin/build/common/save.d.ts +4 -0
  14. package/output/builtin/build/component/CodeEditor.vue.d.ts +11 -0
  15. package/output/builtin/build/component/ColorItem.vue.d.ts +27 -0
  16. package/output/builtin/build/component/DatasetItem.vue.d.ts +14 -0
  17. package/output/builtin/build/component/Directory.vue.d.ts +33 -0
  18. package/output/builtin/build/component/ErrorComponent.vue.d.ts +13 -0
  19. package/output/builtin/build/component/Graph.vue.d.ts +20 -0
  20. package/output/builtin/build/component/InputItem.vue.d.ts +19 -0
  21. package/output/builtin/build/component/InteractionItem.vue.d.ts +19 -0
  22. package/output/builtin/build/component/LoadingComponent.vue.d.ts +13 -0
  23. package/output/builtin/build/component/RuleItem.vue.d.ts +12 -0
  24. package/output/builtin/build/component/Timeline.vue.d.ts +7 -0
  25. package/output/builtin/build/component/VariableItem.vue.d.ts +14 -0
  26. package/output/builtin/build/component/WindowSetting.vue.d.ts +3 -0
  27. package/output/builtin/build/component/index.d.ts +14 -0
  28. package/output/builtin/build/fragment/AnimationUnitFragment.vue.d.ts +6 -0
  29. package/output/builtin/build/fragment/BaseFragment.vue.d.ts +6 -0
  30. package/output/builtin/build/fragment/DatasetFragment.vue.d.ts +3 -0
  31. package/output/builtin/build/fragment/DatasetInspectorFragment.vue.d.ts +13 -0
  32. package/output/builtin/build/fragment/DynamicFragment.vue.d.ts +3 -0
  33. package/output/builtin/build/fragment/HTMLFragment.vue.d.ts +16 -0
  34. package/output/builtin/build/fragment/InteractionInspectorFragment.vue.d.ts +21 -0
  35. package/output/builtin/build/fragment/PrefabFragment.vue.d.ts +3 -0
  36. package/output/builtin/build/fragment/PrefabInstanceFragment.vue.d.ts +3 -0
  37. package/output/builtin/build/fragment/SchedulerFragment.vue.d.ts +3 -0
  38. package/output/builtin/build/fragment/StyleFragment.vue.d.ts +8 -0
  39. package/output/builtin/build/index.d.ts +10 -0
  40. package/output/builtin/build/locale/Language.d.ts +3 -0
  41. package/output/builtin/build/locale/LanguageProvider.d.ts +326 -0
  42. package/output/builtin/build/locale/index.d.ts +2 -0
  43. package/output/builtin/build/option/Animation.d.ts +25 -0
  44. package/output/builtin/build/option/Color.d.ts +5 -0
  45. package/output/builtin/build/option/Dynamic.d.ts +5 -0
  46. package/output/builtin/build/option/HTML.d.ts +41 -0
  47. package/output/builtin/build/option/Net.d.ts +6 -0
  48. package/output/builtin/build/option/Preset.d.ts +8 -0
  49. package/output/builtin/build/option/Style.d.ts +76 -0
  50. package/output/builtin/build/option/Variable.d.ts +5 -0
  51. package/output/builtin/build/option/index.d.ts +17 -0
  52. package/output/builtin/build/preset/dataset.d.ts +8 -0
  53. package/output/builtin/build/preset/graphics.d.ts +8 -0
  54. package/output/builtin/build/preset/index.d.ts +3 -0
  55. package/output/builtin/build/preset/scheduler.d.ts +8 -0
  56. package/output/builtin/build/service/footer/action/AddDirAction.d.ts +10 -0
  57. package/output/builtin/build/service/footer/action/AddMoreAction.d.ts +26 -0
  58. package/output/builtin/build/service/footer/action/BackupAction.d.ts +10 -0
  59. package/output/builtin/build/service/footer/action/ControllerAction.d.ts +39 -0
  60. package/output/builtin/build/service/footer/action/CopyAction.d.ts +13 -0
  61. package/output/builtin/build/service/footer/action/CutAction.d.ts +13 -0
  62. package/output/builtin/build/service/footer/action/DeleteAction.d.ts +14 -0
  63. package/output/builtin/build/service/footer/action/EditFileAction.d.ts +15 -0
  64. package/output/builtin/build/service/footer/action/RenameAction.d.ts +13 -0
  65. package/output/builtin/build/service/footer/action/SelectAllAction.d.ts +14 -0
  66. package/output/builtin/build/service/footer/action/StickupAction.d.ts +16 -0
  67. package/output/builtin/build/service/footer/action/index.d.ts +11 -0
  68. package/output/builtin/build/service/footer/draggable/Draggable.d.ts +10 -0
  69. package/output/builtin/build/service/footer/draggable/index.d.ts +1 -0
  70. package/output/builtin/build/service/footer/index.d.ts +2 -0
  71. package/output/builtin/build/service/global/action/FooterAction.d.ts +18 -0
  72. package/output/builtin/build/service/global/action/RedoAction.d.ts +9 -0
  73. package/output/builtin/build/service/global/action/SidebarAction.d.ts +14 -0
  74. package/output/builtin/build/service/global/action/UndoAction.d.ts +9 -0
  75. package/output/builtin/build/service/global/action/index.d.ts +4 -0
  76. package/output/builtin/build/service/global/index.d.ts +2 -0
  77. package/output/builtin/build/service/global/scripts/index.d.ts +3 -0
  78. package/output/builtin/build/service/header/action/ExportProjectAction.d.ts +9 -0
  79. package/output/builtin/build/service/header/action/ExportSceneAction.d.ts +9 -0
  80. package/output/builtin/build/service/header/action/PreviewSceneAction.d.ts +14 -0
  81. package/output/builtin/build/service/header/action/index.d.ts +3 -0
  82. package/output/builtin/build/service/header/index.d.ts +1 -0
  83. package/output/builtin/build/service/index.d.ts +6 -0
  84. package/output/builtin/build/service/inspector/AnimationUnitViewer.vue.d.ts +7 -0
  85. package/output/builtin/build/service/inspector/DatasetInspector.vue.d.ts +7 -0
  86. package/output/builtin/build/service/inspector/DatasetViewer.vue.d.ts +7 -0
  87. package/output/builtin/build/service/inspector/DivViewer.vue.d.ts +7 -0
  88. package/output/builtin/build/service/inspector/DynamicViewer.vue.d.ts +7 -0
  89. package/output/builtin/build/service/inspector/InteractionInspector.vue.d.ts +7 -0
  90. package/output/builtin/build/service/inspector/PrefabInstanceViewer.vue.d.ts +7 -0
  91. package/output/builtin/build/service/inspector/PrefabViewer.vue.d.ts +7 -0
  92. package/output/builtin/build/service/inspector/ServiceSchedulerViewer.vue.d.ts +7 -0
  93. package/output/builtin/build/service/inspector/ServiceViewer.vue.d.ts +7 -0
  94. package/output/builtin/build/service/inspector/StyleViewer.vue.d.ts +7 -0
  95. package/output/builtin/build/service/inspector/asset/AssetInspector.vue.d.ts +3 -0
  96. package/output/builtin/build/service/inspector/draggable/Draggable.d.ts +10 -0
  97. package/output/builtin/build/service/inspector/draggable/index.d.ts +1 -0
  98. package/output/builtin/build/service/inspector/index.d.ts +1 -0
  99. package/output/builtin/build/service/inspector/scene/SceneInspector.vue.d.ts +3 -0
  100. package/output/builtin/build/service/sidebar/asset/Asset.vue.d.ts +3 -0
  101. package/output/builtin/build/service/sidebar/asset/AssetItem.vue.d.ts +18 -0
  102. package/output/builtin/build/service/sidebar/asset/AssetNavigator.d.ts +28 -0
  103. package/output/builtin/build/service/sidebar/asset/action/AddNodeAction.d.ts +54 -0
  104. package/output/builtin/build/service/sidebar/asset/action/ControllerAction.d.ts +36 -0
  105. package/output/builtin/build/service/sidebar/asset/action/CopyAction.d.ts +14 -0
  106. package/output/builtin/build/service/sidebar/asset/action/CutAction.d.ts +14 -0
  107. package/output/builtin/build/service/sidebar/asset/action/DeleteAction.d.ts +15 -0
  108. package/output/builtin/build/service/sidebar/asset/action/RenameAction.d.ts +14 -0
  109. package/output/builtin/build/service/sidebar/asset/action/SaveAction.d.ts +14 -0
  110. package/output/builtin/build/service/sidebar/asset/action/StickupAction.d.ts +15 -0
  111. package/output/builtin/build/service/sidebar/asset/action/index.d.ts +8 -0
  112. package/output/builtin/build/service/sidebar/asset/draggable/Draggable.d.ts +14 -0
  113. package/output/builtin/build/service/sidebar/asset/draggable/index.d.ts +1 -0
  114. package/output/builtin/build/service/sidebar/asset/index.d.ts +3 -0
  115. package/output/builtin/build/service/sidebar/index.d.ts +2 -0
  116. package/output/builtin/build/service/sidebar/scene/Scene.vue.d.ts +3 -0
  117. package/output/builtin/build/service/sidebar/scene/SceneItem.vue.d.ts +18 -0
  118. package/output/builtin/build/service/sidebar/scene/SceneNavigator.d.ts +36 -0
  119. package/output/builtin/build/service/sidebar/scene/action/AddNodeAction.d.ts +54 -0
  120. package/output/builtin/build/service/sidebar/scene/action/AddServiceAction.d.ts +54 -0
  121. package/output/builtin/build/service/sidebar/scene/action/ControllerAction.d.ts +39 -0
  122. package/output/builtin/build/service/sidebar/scene/action/CopyAction.d.ts +14 -0
  123. package/output/builtin/build/service/sidebar/scene/action/CutAction.d.ts +14 -0
  124. package/output/builtin/build/service/sidebar/scene/action/DeleteAction.d.ts +15 -0
  125. package/output/builtin/build/service/sidebar/scene/action/RenameAction.d.ts +14 -0
  126. package/output/builtin/build/service/sidebar/scene/action/SaveAction.d.ts +14 -0
  127. package/output/builtin/build/service/sidebar/scene/action/StickupAction.d.ts +15 -0
  128. package/output/builtin/build/service/sidebar/scene/action/index.d.ts +9 -0
  129. package/output/builtin/build/service/sidebar/scene/draggable/Draggable.d.ts +14 -0
  130. package/output/builtin/build/service/sidebar/scene/draggable/index.d.ts +1 -0
  131. package/output/builtin/build/service/sidebar/scene/index.d.ts +3 -0
  132. package/output/builtin/build/singleton/index.d.ts +1 -0
  133. package/output/builtin/build/singleton/rightMenu.d.ts +10 -0
  134. package/output/builtin/package.json +16 -0
  135. package/output/builtin/src/shims-vue.d.ts +10 -0
  136. package/output/class-wrapper-plugin/index.js +42 -0
  137. package/output/class-wrapper-plugin/loaders/descriptor.js +89 -0
  138. package/output/class-wrapper-plugin/loaders/dynamic-interpreter.js +54 -0
  139. package/output/class-wrapper-plugin/loaders/index.js +30 -0
  140. package/output/class-wrapper-plugin/loaders/input-system.js +31 -0
  141. package/output/class-wrapper-plugin/loaders/object-pool.js +79 -0
  142. package/output/class-wrapper-plugin/package.json +1 -0
  143. package/output/class-wrapper-plugin/utils.js +79 -0
  144. package/output/declare/package.json +1 -0
  145. package/output/declare/src/Config.ts +19 -0
  146. package/output/declare/src/Draggable.ts +10 -0
  147. package/output/declare/src/Extension.ts +12 -0
  148. package/output/declare/src/index.ts +3 -0
  149. package/output/declare/tsconfig.json +31 -0
  150. package/output/design/package.json +14 -0
  151. package/output/design/src/components/Button.vue +64 -0
  152. package/output/design/src/components/Card.vue +203 -0
  153. package/output/design/src/components/Cascader.vue +171 -0
  154. package/output/design/src/components/Checked.vue +124 -0
  155. package/output/design/src/components/CheckedGroup.vue +51 -0
  156. package/output/design/src/components/Col.vue +52 -0
  157. package/output/design/src/components/ColorPicker.vue +331 -0
  158. package/output/design/src/components/Confirm.vue +86 -0
  159. package/output/design/src/components/Dialog.vue +220 -0
  160. package/output/design/src/components/Divider.vue +40 -0
  161. package/output/design/src/components/Draggable.vue +50 -0
  162. package/output/design/src/components/Dropdown.vue +175 -0
  163. package/output/design/src/components/DynamicDialog.vue +113 -0
  164. package/output/design/src/components/DynamicLayouter.vue +235 -0
  165. package/output/design/src/components/Form.vue +88 -0
  166. package/output/design/src/components/Input.vue +254 -0
  167. package/output/design/src/components/InputNumber.vue +96 -0
  168. package/output/design/src/components/Label.vue +116 -0
  169. package/output/design/src/components/Loading.vue +196 -0
  170. package/output/design/src/components/Mask.vue +47 -0
  171. package/output/design/src/components/Notify.vue +130 -0
  172. package/output/design/src/components/Option.vue +159 -0
  173. package/output/design/src/components/Options.vue +202 -0
  174. package/output/design/src/components/Popover.vue +271 -0
  175. package/output/design/src/components/Provider.vue +12 -0
  176. package/output/design/src/components/RightMenu.vue +127 -0
  177. package/output/design/src/components/Row.vue +50 -0
  178. package/output/design/src/components/Scroll.vue +99 -0
  179. package/output/design/src/components/Select.vue +223 -0
  180. package/output/design/src/components/Slot.vue +23 -0
  181. package/output/design/src/components/SubTree.vue +262 -0
  182. package/output/design/src/components/Tree.vue +129 -0
  183. package/output/design/src/components/common/DraggableController.ts +113 -0
  184. package/output/design/src/components/common/ResizeListener.ts +49 -0
  185. package/output/design/src/components/composables/useDefaultProps.ts +179 -0
  186. package/output/design/src/components/composables/useDraggable.ts +65 -0
  187. package/output/design/src/components/composables/useGetter.ts +15 -0
  188. package/output/design/src/components/composables/useMarginStyle.ts +45 -0
  189. package/output/design/src/components/composables/usePopover.ts +33 -0
  190. package/output/design/src/components/composables/useProvider.ts +186 -0
  191. package/output/design/src/components/composables/useScroll.ts +46 -0
  192. package/output/design/src/components/composables/useSearch.ts +95 -0
  193. package/output/design/src/components/composables/useTimer.ts +5 -0
  194. package/output/design/src/components/index.ts +1 -0
  195. package/output/design/src/components/singleton/confirm.ts +25 -0
  196. package/output/design/src/components/singleton/dialog.ts +25 -0
  197. package/output/design/src/components/singleton/index.ts +5 -0
  198. package/output/design/src/components/singleton/loading.ts +36 -0
  199. package/output/design/src/components/singleton/notify.ts +36 -0
  200. package/output/design/src/components/types/index.ts +82 -0
  201. package/output/design/src/components/utils/Cascader.ts +52 -0
  202. package/output/design/src/components/utils/Confirm.ts +41 -0
  203. package/output/design/src/components/utils/Dialog.ts +38 -0
  204. package/output/design/src/components/utils/DynamicDialog.ts +41 -0
  205. package/output/design/src/components/utils/DynamicLayouter.ts +5 -0
  206. package/output/design/src/components/utils/FloatLayer.ts +40 -0
  207. package/output/design/src/components/utils/InputNumber.ts +3 -0
  208. package/output/design/src/components/utils/Notify.ts +25 -0
  209. package/output/design/src/components/utils/Popover.ts +58 -0
  210. package/output/design/src/components/utils/RightMenu.ts +21 -0
  211. package/output/design/src/components/utils/Scroll.ts +4 -0
  212. package/output/design/src/components/utils/Slot.ts +73 -0
  213. package/output/design/src/components/utils/index.ts +12 -0
  214. package/output/design/src/font/demo.css +539 -0
  215. package/output/design/src/font/demo_index.html +1292 -0
  216. package/output/design/src/font/iconfont.css +207 -0
  217. package/output/design/src/font/iconfont.js +1 -0
  218. package/output/design/src/font/iconfont.json +345 -0
  219. package/output/design/src/font/iconfont.ttf +0 -0
  220. package/output/design/src/font/iconfont.woff +0 -0
  221. package/output/design/src/font/iconfont.woff2 +0 -0
  222. package/output/design/src/index.ts +68 -0
  223. package/output/design/src/locale/Language.ts +10 -0
  224. package/output/design/src/locale/LanguageProvider.ts +38 -0
  225. package/output/design/src/locale/index.ts +2 -0
  226. package/output/design/src/theme/global.less +91 -0
  227. package/output/design/src/theme/index.ts +155 -0
  228. package/output/design/src/tool/ArrayUtils.ts +38 -0
  229. package/output/design/src/tool/Color.ts +7 -0
  230. package/output/design/src/tool/Draggable.ts +36 -0
  231. package/output/design/src/tool/Listener.ts +59 -0
  232. package/output/design/src/tool/index.ts +4 -0
  233. package/output/design/tsconfig.json +37 -0
  234. package/output/engine/package.json +1 -0
  235. package/output/engine/src/ArrayUtils.ts +65 -0
  236. package/output/engine/src/AsyncTask.ts +72 -0
  237. package/output/engine/src/Category.ts +119 -0
  238. package/output/engine/src/Color.ts +111 -0
  239. package/output/engine/src/Engine.ts +115 -0
  240. package/output/engine/src/Generate.ts +40 -0
  241. package/output/engine/src/InputSystem.ts +108 -0
  242. package/output/engine/src/Listener.ts +59 -0
  243. package/output/engine/src/ObjectPool.ts +84 -0
  244. package/output/engine/src/ObjectUtils.ts +49 -0
  245. package/output/engine/src/Serialization.ts +49 -0
  246. package/output/engine/src/Traverser.ts +39 -0
  247. package/output/engine/src/actor/Actor.ts +28 -0
  248. package/output/engine/src/actor/AnimationUnitActor.ts +289 -0
  249. package/output/engine/src/actor/DivActor.ts +70 -0
  250. package/output/engine/src/actor/FragmentActor.ts +56 -0
  251. package/output/engine/src/actor/HTMActor.ts +169 -0
  252. package/output/engine/src/actor/HTMServiceActor.ts +57 -0
  253. package/output/engine/src/actor/HTMTransformControllerActor.ts +409 -0
  254. package/output/engine/src/actor/StyleActor.ts +96 -0
  255. package/output/engine/src/actor/index.ts +8 -0
  256. package/output/engine/src/asset/Asset.ts +282 -0
  257. package/output/engine/src/asset/AssetGraph.ts +246 -0
  258. package/output/engine/src/asset/index.ts +2 -0
  259. package/output/engine/src/descriptor/AnimationUnitDescriptor.ts +65 -0
  260. package/output/engine/src/descriptor/CameraDescriptor.ts +12 -0
  261. package/output/engine/src/descriptor/ControllerDescriptor.ts +16 -0
  262. package/output/engine/src/descriptor/DatasetDescriptor.ts +90 -0
  263. package/output/engine/src/descriptor/Descriptor.ts +388 -0
  264. package/output/engine/src/descriptor/DivDescriptor.ts +18 -0
  265. package/output/engine/src/descriptor/DynamicDescriptor.ts +27 -0
  266. package/output/engine/src/descriptor/HTMLDescriptor.ts +87 -0
  267. package/output/engine/src/descriptor/HTMLServiceDescriptor.ts +19 -0
  268. package/output/engine/src/descriptor/HTMLTransformControllerDescriptor.ts +34 -0
  269. package/output/engine/src/descriptor/NodeDescriptor.ts +32 -0
  270. package/output/engine/src/descriptor/PrefabDescriptor.ts +53 -0
  271. package/output/engine/src/descriptor/PrefabInstanceDescriptor.ts +32 -0
  272. package/output/engine/src/descriptor/ServiceDescriptor.ts +32 -0
  273. package/output/engine/src/descriptor/ServiceSchedulerDescriptor.ts +32 -0
  274. package/output/engine/src/descriptor/StyleDescriptor.ts +213 -0
  275. package/output/engine/src/descriptor/index.ts +16 -0
  276. package/output/engine/src/graphics/Collection.ts +25 -0
  277. package/output/engine/src/graphics/Compilation.ts +74 -0
  278. package/output/engine/src/graphics/Graphics.ts +487 -0
  279. package/output/engine/src/graphics/Observer.ts +36 -0
  280. package/output/engine/src/graphics/Unit.ts +83 -0
  281. package/output/engine/src/graphics/VariableProxy.ts +92 -0
  282. package/output/engine/src/graphics/index.ts +5 -0
  283. package/output/engine/src/index.ts +27 -0
  284. package/output/engine/src/interaction/InteractionDescriptor.ts +96 -0
  285. package/output/engine/src/interaction/InteractionExecutor.ts +84 -0
  286. package/output/engine/src/interaction/Scriptable.ts +40 -0
  287. package/output/engine/src/interaction/index.ts +3 -0
  288. package/output/engine/src/interpreter/AnimationUnitInterpreter.ts +53 -0
  289. package/output/engine/src/interpreter/DatasetInterpreter.ts +11 -0
  290. package/output/engine/src/interpreter/DivInterpreter.ts +44 -0
  291. package/output/engine/src/interpreter/DynamicInterpreter.ts +207 -0
  292. package/output/engine/src/interpreter/FragmentInterpreter.ts +34 -0
  293. package/output/engine/src/interpreter/HTMLServiceInterpreter.ts +47 -0
  294. package/output/engine/src/interpreter/HTMLTransformControllerInterpreter.ts +40 -0
  295. package/output/engine/src/interpreter/Interpreter.ts +69 -0
  296. package/output/engine/src/interpreter/PrefaInterpreter.ts +11 -0
  297. package/output/engine/src/interpreter/PrefabInstanceInterpreter.ts +12 -0
  298. package/output/engine/src/interpreter/ServiceInterpreter.ts +24 -0
  299. package/output/engine/src/interpreter/ServiceSchedulerInterpreter.ts +42 -0
  300. package/output/engine/src/interpreter/StyleInterpreter.ts +66 -0
  301. package/output/engine/src/interpreter/index.ts +13 -0
  302. package/output/engine/src/locale/Language.ts +10 -0
  303. package/output/engine/src/locale/LanguageProvider.ts +52 -0
  304. package/output/engine/src/locale/index.ts +2 -0
  305. package/output/engine/src/math/Euler.ts +303 -0
  306. package/output/engine/src/math/Matrix4.ts +1123 -0
  307. package/output/engine/src/math/Quaternion.ts +737 -0
  308. package/output/engine/src/math/Vector2.ts +680 -0
  309. package/output/engine/src/math/Vector3.ts +1062 -0
  310. package/output/engine/src/math/index.ts +5 -0
  311. package/output/engine/src/math/utils.ts +17 -0
  312. package/output/engine/src/preset/execute/dataset/compile.ts +99 -0
  313. package/output/engine/src/preset/execute/dataset/index.ts +2 -0
  314. package/output/engine/src/preset/execute/dataset/update.ts +51 -0
  315. package/output/engine/src/preset/execute/graphics/index.ts +1 -0
  316. package/output/engine/src/preset/execute/graphics/invoke.ts +48 -0
  317. package/output/engine/src/preset/execute/index.ts +4 -0
  318. package/output/engine/src/preset/execute/net/http.ts +95 -0
  319. package/output/engine/src/preset/execute/net/index.ts +1 -0
  320. package/output/engine/src/preset/execute/scheduler/index.ts +1 -0
  321. package/output/engine/src/preset/execute/scheduler/switch.ts +46 -0
  322. package/output/engine/src/preset/index.ts +7 -0
  323. package/output/engine/src/preset/interaction/dataset/compile.ts +27 -0
  324. package/output/engine/src/preset/interaction/dataset/index.ts +1 -0
  325. package/output/engine/src/preset/interaction/graphics/index.ts +1 -0
  326. package/output/engine/src/preset/interaction/graphics/invoke.ts +27 -0
  327. package/output/engine/src/preset/interaction/index.ts +3 -0
  328. package/output/engine/src/preset/interaction/scheduler/index.ts +1 -0
  329. package/output/engine/src/preset/interaction/scheduler/switch.ts +27 -0
  330. package/output/engine/src/setup/index.ts +17 -0
  331. package/output/engine/src/utils/AssetProvider.ts +73 -0
  332. package/output/engine/src/utils/constants.ts +10 -0
  333. package/output/engine/src/utils/index.ts +2 -0
  334. package/output/engine/tsconfig.json +31 -0
  335. package/output/locale/build/index.d.ts +18 -0
  336. package/output/locale/build/index.js +71 -0
  337. package/output/locale/package.json +1 -0
  338. package/output/locale/src/index.ts +79 -0
  339. package/output/locale/tsconfig.json +29 -0
  340. package/output/remote/package.json +1 -0
  341. package/output/remote/src/Bridge.ts +133 -0
  342. package/output/remote/src/ChangeScriptable.ts +22 -0
  343. package/output/remote/src/Collection.ts +36 -0
  344. package/output/remote/src/RemoteExecutor.ts +519 -0
  345. package/output/remote/src/RemoteInvoker.ts +72 -0
  346. package/output/remote/src/RemoteProcess.ts +87 -0
  347. package/output/remote/src/index.ts +7 -0
  348. package/output/remote/src/job/IJob.ts +6 -0
  349. package/output/remote/src/job/Job.ts +16 -0
  350. package/output/remote/src/job/asset/add.ts +23 -0
  351. package/output/remote/src/job/asset/dragdrap.ts +24 -0
  352. package/output/remote/src/job/asset/index.ts +6 -0
  353. package/output/remote/src/job/asset/load.ts +20 -0
  354. package/output/remote/src/job/asset/remove.ts +20 -0
  355. package/output/remote/src/job/asset/unload.ts +18 -0
  356. package/output/remote/src/job/asset/update.ts +22 -0
  357. package/output/remote/src/job/bridge/connection.ts +18 -0
  358. package/output/remote/src/job/bridge/disconnect.ts +29 -0
  359. package/output/remote/src/job/bridge/index.ts +2 -0
  360. package/output/remote/src/job/index.ts +1 -0
  361. package/output/remote/src/job/invoke/alert.ts +20 -0
  362. package/output/remote/src/job/invoke/animation.ts +45 -0
  363. package/output/remote/src/job/invoke/event.ts +40 -0
  364. package/output/remote/src/job/invoke/index.ts +8 -0
  365. package/output/remote/src/job/invoke/orbit.ts +20 -0
  366. package/output/remote/src/job/invoke/pick.ts +15 -0
  367. package/output/remote/src/job/invoke/properties.ts +43 -0
  368. package/output/remote/src/job/invoke/screenshot.ts +35 -0
  369. package/output/remote/src/job/invoke/transform.ts +36 -0
  370. package/output/remote/src/job/scene/add.ts +22 -0
  371. package/output/remote/src/job/scene/dragdrap.ts +23 -0
  372. package/output/remote/src/job/scene/index.ts +6 -0
  373. package/output/remote/src/job/scene/load.ts +19 -0
  374. package/output/remote/src/job/scene/remove.ts +19 -0
  375. package/output/remote/src/job/scene/unload.ts +17 -0
  376. package/output/remote/src/job/scene/update.ts +20 -0
  377. package/output/remote/src/locale/Language.ts +10 -0
  378. package/output/remote/src/locale/LanguageProvider.ts +15 -0
  379. package/output/remote/src/locale/index.ts +2 -0
  380. package/output/remote/src/utils/index.ts +85 -0
  381. package/output/remote/src/utils/screenshot.ts +20 -0
  382. package/output/remote/tsconfig.json +31 -0
  383. package/output/rollup-config-plugin/index.js +46 -0
  384. package/output/rollup-config-plugin/package.json +8 -0
  385. package/output/runtime/build/Action.d.ts +42 -0
  386. package/output/runtime/build/DataService.d.ts +22 -0
  387. package/output/runtime/build/DraggableService.d.ts +37 -0
  388. package/output/runtime/build/InspectorService.d.ts +18 -0
  389. package/output/runtime/build/PresetService.d.ts +32 -0
  390. package/output/runtime/build/RemoteService.d.ts +12 -0
  391. package/output/runtime/build/Runtime.d.ts +8 -0
  392. package/output/runtime/build/ShortcutkeyService.d.ts +23 -0
  393. package/output/runtime/build/data/body.d.ts +13 -0
  394. package/output/runtime/build/data/footer.d.ts +42 -0
  395. package/output/runtime/build/data/global.d.ts +15 -0
  396. package/output/runtime/build/data/header.d.ts +11 -0
  397. package/output/runtime/build/data/inspector.d.ts +10 -0
  398. package/output/runtime/build/data/sidebar.d.ts +11 -0
  399. package/output/runtime/build/data/status.d.ts +17 -0
  400. package/output/runtime/build/index.d.ts +10 -0
  401. package/output/runtime/build/locale/Language.d.ts +3 -0
  402. package/output/runtime/build/locale/LanguageProvider.d.ts +31 -0
  403. package/output/runtime/build/locale/index.d.ts +2 -0
  404. package/output/runtime/build/navigator/SidebarNavigator.d.ts +52 -0
  405. package/output/runtime/build/navigator/index.d.ts +1 -0
  406. package/output/runtime/package.json +16 -0
  407. package/output/service/package.json +1 -0
  408. package/output/service/src/Service.ts +44 -0
  409. package/output/service/src/index.ts +2 -0
  410. package/output/service/src/locale/Language.ts +10 -0
  411. package/output/service/src/locale/LanguageProvider.ts +15 -0
  412. package/output/service/src/locale/index.ts +2 -0
  413. package/output/service/tsconfig.json +31 -0
  414. package/output/service-asset/package.json +1 -0
  415. package/output/service-asset/src/AssetMethodProvider.ts +132 -0
  416. package/output/service-asset/src/AssetService.ts +102 -0
  417. package/output/service-asset/src/index.ts +2 -0
  418. package/output/service-asset/src/locale/Language.ts +10 -0
  419. package/output/service-asset/src/locale/LanguageProvider.ts +15 -0
  420. package/output/service-asset/src/locale/index.ts +2 -0
  421. package/output/service-asset/tsconfig.json +31 -0
  422. package/output/service-graph/package.json +1 -0
  423. package/output/service-graph/src/GraphDrawer.ts +309 -0
  424. package/output/service-graph/src/GraphService.ts +181 -0
  425. package/output/service-graph/src/asset/font/demo.css +539 -0
  426. package/output/service-graph/src/asset/font/demo_index.html +326 -0
  427. package/output/service-graph/src/asset/font/iconfont.css +39 -0
  428. package/output/service-graph/src/asset/font/iconfont.js +1 -0
  429. package/output/service-graph/src/asset/font/iconfont.json +51 -0
  430. package/output/service-graph/src/asset/font/iconfont.ttf +0 -0
  431. package/output/service-graph/src/asset/font/iconfont.woff +0 -0
  432. package/output/service-graph/src/asset/font/iconfont.woff2 +0 -0
  433. package/output/service-graph/src/asset/less/index.less +108 -0
  434. package/output/service-graph/src/common/InteractionUnit.ts +65 -0
  435. package/output/service-graph/src/common/Unit.ts +172 -0
  436. package/output/service-graph/src/index.ts +7 -0
  437. package/output/service-graph/src/locale/Language.ts +10 -0
  438. package/output/service-graph/src/locale/LanguageProvider.ts +16 -0
  439. package/output/service-graph/src/locale/index.ts +2 -0
  440. package/output/service-graph/tsconfig.json +34 -0
  441. package/output/service-rpc/package.json +1 -0
  442. package/output/service-rpc/src/IMessage.ts +14 -0
  443. package/output/service-rpc/src/Message.ts +17 -0
  444. package/output/service-rpc/src/Operation.ts +113 -0
  445. package/output/service-rpc/src/RpcService.ts +122 -0
  446. package/output/service-rpc/src/Scheme.ts +20 -0
  447. package/output/service-rpc/src/UseRecord.ts +50 -0
  448. package/output/service-rpc/src/User.ts +21 -0
  449. package/output/service-rpc/src/VirtualNode.ts +107 -0
  450. package/output/service-rpc/src/asset/add.ts +35 -0
  451. package/output/service-rpc/src/asset/close.ts +35 -0
  452. package/output/service-rpc/src/asset/copy.ts +23 -0
  453. package/output/service-rpc/src/asset/create.ts +39 -0
  454. package/output/service-rpc/src/asset/cut.ts +23 -0
  455. package/output/service-rpc/src/asset/delete.ts +28 -0
  456. package/output/service-rpc/src/asset/dragdrap.ts +36 -0
  457. package/output/service-rpc/src/asset/index.ts +13 -0
  458. package/output/service-rpc/src/asset/initialize.ts +24 -0
  459. package/output/service-rpc/src/asset/open.ts +35 -0
  460. package/output/service-rpc/src/asset/remove.ts +29 -0
  461. package/output/service-rpc/src/asset/rename.ts +21 -0
  462. package/output/service-rpc/src/asset/select.ts +19 -0
  463. package/output/service-rpc/src/asset/update.ts +39 -0
  464. package/output/service-rpc/src/dep/add.ts +22 -0
  465. package/output/service-rpc/src/dep/create.ts +23 -0
  466. package/output/service-rpc/src/dep/delete.ts +23 -0
  467. package/output/service-rpc/src/dep/index.ts +5 -0
  468. package/output/service-rpc/src/dep/remove.ts +23 -0
  469. package/output/service-rpc/src/dep/update.ts +22 -0
  470. package/output/service-rpc/src/index.ts +14 -0
  471. package/output/service-rpc/src/locale/Language.ts +10 -0
  472. package/output/service-rpc/src/locale/LanguageProvider.ts +15 -0
  473. package/output/service-rpc/src/locale/index.ts +2 -0
  474. package/output/service-rpc/src/rpc/confirm.ts +32 -0
  475. package/output/service-rpc/src/rpc/connection.ts +20 -0
  476. package/output/service-rpc/src/rpc/disconnect.ts +20 -0
  477. package/output/service-rpc/src/rpc/getUser.ts +37 -0
  478. package/output/service-rpc/src/rpc/index.ts +9 -0
  479. package/output/service-rpc/src/rpc/login.ts +35 -0
  480. package/output/service-rpc/src/rpc/logout.ts +20 -0
  481. package/output/service-rpc/src/rpc/redo.ts +18 -0
  482. package/output/service-rpc/src/rpc/undo.ts +18 -0
  483. package/output/service-rpc/src/scene/add.ts +35 -0
  484. package/output/service-rpc/src/scene/create.ts +28 -0
  485. package/output/service-rpc/src/scene/delete.ts +27 -0
  486. package/output/service-rpc/src/scene/download.ts +20 -0
  487. package/output/service-rpc/src/scene/dragdrap.ts +36 -0
  488. package/output/service-rpc/src/scene/index.ts +10 -0
  489. package/output/service-rpc/src/scene/initialize.ts +36 -0
  490. package/output/service-rpc/src/scene/record.ts +22 -0
  491. package/output/service-rpc/src/scene/remove.ts +28 -0
  492. package/output/service-rpc/src/scene/switch.ts +37 -0
  493. package/output/service-rpc/src/scene/update.ts +34 -0
  494. package/output/service-rpc/src/sidebar/index.ts +1 -0
  495. package/output/service-rpc/src/sidebar/switch.ts +35 -0
  496. package/output/service-rpc/tsconfig.json +31 -0
  497. package/output/service-scene/package.json +1 -0
  498. package/output/service-scene/src/SceneMethodProvider.ts +129 -0
  499. package/output/service-scene/src/SceneService.ts +78 -0
  500. package/output/service-scene/src/index.ts +2 -0
  501. package/output/service-scene/src/locale/Language.ts +10 -0
  502. package/output/service-scene/src/locale/LanguageProvider.ts +15 -0
  503. package/output/service-scene/src/locale/index.ts +2 -0
  504. package/output/service-scene/tsconfig.json +31 -0
  505. package/output/var-rename-plugin/index.js +74 -0
  506. package/output/var-rename-plugin/package.json +1 -0
  507. package/package.json +1 -1
  508. /package/build/js/{1111.d7fb9219.js → 1111.1f95eaf7.js} +0 -0
  509. /package/build/js/{chunk-vendors.fea3dfe0.js → chunk-vendors.f015a48a.js} +0 -0
@@ -0,0 +1,282 @@
1
+ import { language } from "../locale"
2
+ import { Category } from "../Category"
3
+ import { AsyncTask } from "../AsyncTask"
4
+ import { DatasetDescriptor, Descriptor, ServiceSchedulerDescriptor } from "../descriptor"
5
+ import { InteractionDescriptor, Scriptable, ScriptableArgs } from "../interaction"
6
+ import { AssetGraph } from "./AssetGraph"
7
+ import { Engine } from "../Engine"
8
+
9
+ type JsonAsset = { [k: string]: any }
10
+ type RawAsset = HTMLImageElement | ImageBitmap | HTMLAudioElement | AudioBuffer | HTMLVideoElement | string | JsonAsset
11
+ type StaticFactory = (url: string, forced?: boolean) => Promise<any>
12
+ type DescriptorProvider = () => Promise<Descriptor>
13
+ type ScriptableProvider = () => Promise<{ default: typeof Scriptable<ScriptableArgs<any, any, any>> }>
14
+ type AssetProperty = { url: string }
15
+ type AssetPropertyCollection<T extends AssetProperty = AssetProperty> = T[]
16
+
17
+ const privateState = {
18
+ requestpPrefix: ['http://', 'https://'],
19
+ assetCache: new Map<string, RawAsset | Descriptor>(),
20
+ idToUrlCache: new Map<string, string>(),
21
+ providerCollection: new Map<string, DescriptorProvider | ScriptableProvider>(),
22
+ assetFactoryCollection: new Map<string, StaticFactory>(),
23
+ taskCollection: new Map<string, AsyncTask>(),
24
+ activeAssets: [] as string[],
25
+ parseStatus(url: string) {
26
+ const urlClips = url.split('/')
27
+ const name = urlClips[urlClips.length - 1]
28
+ if (name === undefined) return null
29
+
30
+ return Category.parseName(name.split('?')[0])
31
+ },
32
+ baseUrl: null as unknown as string,
33
+ }
34
+
35
+ class Asset {
36
+ static get baseUrl() {
37
+ if (privateState.baseUrl === null) {
38
+ try {
39
+ privateState.baseUrl = location.origin
40
+ } catch (error) {
41
+ privateState.baseUrl = ''
42
+ }
43
+ }
44
+ return privateState.baseUrl
45
+ }
46
+ static set baseUrl(value: string) {
47
+ privateState.baseUrl = value
48
+ }
49
+ static graph = new AssetGraph()
50
+
51
+ static fetch(url: string, params?: any) {
52
+ return new Promise<Response>(async (resolve, reject) => {
53
+ const res = await fetch(url, params)
54
+ res.ok ? resolve(res) : reject(url)
55
+ })
56
+ }
57
+
58
+ static dumpCache() {
59
+ return [...privateState.assetCache.entries()]
60
+ }
61
+
62
+ static createVirtualUrl(fileName: string) {
63
+ return `/virtual:/${fileName}`
64
+ }
65
+
66
+ static provider(url: string, provider: DescriptorProvider | ScriptableProvider) {
67
+ privateState.providerCollection.set(url, provider)
68
+ }
69
+
70
+ static hasProvider(url: string) {
71
+ return privateState.providerCollection.has(url)
72
+ }
73
+
74
+ /**注册资产的生成器 */
75
+ static register(category: string, factory: StaticFactory) {
76
+ privateState.assetFactoryCollection.set(category, factory)
77
+ }
78
+
79
+ static joinUrl(url: string) {
80
+ for (const pre of privateState.requestpPrefix) {
81
+ if (url.indexOf(pre) > -1) return url
82
+ }
83
+ return `${Asset.baseUrl}${url}`
84
+ }
85
+
86
+ /**加载指定的资产文件
87
+ *
88
+ * 场景资产会自动根据`manifest`文件加载场景初始化时所需的所有资产,除此之外的其他资产仅加载它本身。
89
+ *
90
+ */
91
+ static load<U extends keyof SnowAssets>(url: U, forced?: boolean): Promise<void[]>
92
+ static load(url: string, forced?: boolean): Promise<void[]>
93
+ static async load(url: string | string[], forced = false) {
94
+ const urls = Array.isArray(url) ? url : [url]
95
+
96
+ const tasks: Promise<void>[] = []
97
+
98
+ for (const assetUrl of urls) {
99
+ if (!assetUrl) continue
100
+
101
+ const cacheAsset = this.get(assetUrl)
102
+ if (forced === false && cacheAsset !== null) continue
103
+
104
+ const factoryingTask = privateState.taskCollection.get(assetUrl)
105
+ if (factoryingTask) {
106
+ tasks.push(factoryingTask.done())
107
+ continue
108
+ }
109
+
110
+ const status = privateState.parseStatus(assetUrl)
111
+ if (status === null) continue
112
+
113
+ let factory = privateState.assetFactoryCollection.get(status.category)
114
+ if (factory === undefined) throw language.get('asset.load.fail', { category: status.category })
115
+
116
+ const task = new AsyncTask(async () => {
117
+ const asset = await factory(assetUrl, forced)
118
+ this.set(assetUrl, asset)
119
+ })
120
+ privateState.taskCollection.set(assetUrl, task)
121
+
122
+ tasks.push(task.run())
123
+
124
+ try {
125
+ await task.done()
126
+ } catch (error) {
127
+ console.log(error)
128
+ } finally {
129
+ privateState.taskCollection.delete(assetUrl)
130
+ }
131
+ }
132
+
133
+ return Promise.all(tasks)
134
+ }
135
+
136
+ static unload<U extends keyof SnowAssets>(url: U): void
137
+ static unload(url: string): void
138
+ static unload(url: string) {
139
+ const asset = this.get(url)
140
+ if (asset === null) return
141
+ privateState.assetCache.delete(url)
142
+ }
143
+
144
+ /**等待当前的资产文件加载完毕 */
145
+ static readly() {
146
+ const tasks = privateState.taskCollection.values()
147
+ const waits = []
148
+ for (const task of tasks) {
149
+ waits.push(task.done())
150
+ }
151
+ return Promise.all(waits)
152
+ }
153
+
154
+ static get<U extends keyof SnowAssets>(url: U): SnowAssets[U]
155
+ static get<T extends SnowAssets[keyof SnowAssets] = SnowAssets[keyof SnowAssets]>(url: keyof SnowAssets): T
156
+ static get<T extends RawAsset | InteractionDescriptor | Descriptor | null = Descriptor | null>(url: string): T
157
+ static get<T extends RawAsset | InteractionDescriptor | Descriptor | null = Descriptor | null>(url: string) {
158
+ return (privateState.assetCache.get(url) ?? null) as T
159
+ }
160
+
161
+ static set(url: string, asset: RawAsset | Descriptor) {
162
+ if (privateState.assetCache.has(url)) console.log(url, language.get('asset.already.exists'))
163
+ privateState.assetCache.set(url, asset)
164
+ if (asset instanceof Descriptor) {
165
+ privateState.idToUrlCache.set(asset.uuid, url)
166
+ this.graph.create(url)
167
+ }
168
+ }
169
+
170
+ static getTask(url: string) {
171
+ return privateState.taskCollection.get(url) ?? null
172
+ }
173
+
174
+ static getUrlByUuid(uuid: string) {
175
+ return privateState.idToUrlCache.get(uuid) ?? ''
176
+ }
177
+
178
+ static activate(...urls: string[]) {
179
+ privateState.activeAssets.push(...urls)
180
+ }
181
+
182
+ static free() {
183
+ privateState.activeAssets.length = 0
184
+ }
185
+
186
+ static async compileDataset(url: string, engine: Engine) {
187
+ const descriptor = this.get<ServiceSchedulerDescriptor>(url)
188
+ const graphics = engine.ensureGraphicsExists(url, descriptor)
189
+ const dependencide = Asset.graph.getDependencide(url)
190
+
191
+ const queue: Promise<void>[] = []
192
+ for (const dataset of dependencide.dataset) {
193
+ const trigger = Asset.get<Descriptor>(dataset)
194
+ queue.push(graphics.invoke('compile', trigger))
195
+ }
196
+
197
+ await Promise.all(queue)
198
+ }
199
+
200
+ static async loadAll(url: string, forced = false, record: string[] = []) {
201
+ await Asset.load(url, forced)
202
+ Asset.graph.create(url)
203
+
204
+ record.push(url)
205
+ const dependencide = Asset.graph.getDependencide(url)
206
+
207
+ const tasks: Promise<void>[] = []
208
+ for (const dep of dependencide.all) {
209
+ if (record.includes(dep)) continue
210
+ const subForced = Asset.get(dep) ? false : true
211
+ tasks.push(this.loadAll(dep, subForced, record))
212
+ }
213
+
214
+ await Promise.all(tasks)
215
+ }
216
+ }
217
+
218
+ export { Asset, JsonAsset, RawAsset, DescriptorProvider, ScriptableProvider, AssetProperty, AssetPropertyCollection, privateState }
219
+
220
+ const getAssetByProvider = async (url: string) => {
221
+ const scriptableProvider = privateState.providerCollection.get(url)
222
+ if (scriptableProvider === undefined) return null
223
+ return await scriptableProvider() as unknown as any
224
+ }
225
+
226
+ const factoryDescriptor = async (url: string) => {
227
+ const preset = await getAssetByProvider(url)
228
+ if (preset !== null) return preset
229
+ const res = await Asset.fetch(Asset.joinUrl(url))
230
+ const text = await res.text()
231
+ const asset = Descriptor.create(Descriptor.deserialization(text))
232
+ return asset
233
+ }
234
+ Asset.register(Category.style, factoryDescriptor)
235
+ Asset.register(Category.material, factoryDescriptor)
236
+ Asset.register(Category.geometry, factoryDescriptor)
237
+ Asset.register(Category.texture, factoryDescriptor)
238
+ Asset.register(Category.prefab, factoryDescriptor)
239
+ Asset.register(Category.interaction, factoryDescriptor)
240
+ Asset.register(Category.scene, factoryDescriptor)
241
+
242
+ const factoryDataset = async (url: string) => {
243
+ const asset = await factoryDescriptor(url) as DatasetDescriptor
244
+ // if (asset.auto) await asset.fetch()
245
+
246
+ return asset
247
+ }
248
+ Asset.register(Category.dataset, factoryDataset)
249
+
250
+ const factoryJson = async (url: string) => {
251
+ const res = await Asset.fetch(Asset.joinUrl(url))
252
+ const text = await res.text()
253
+ return Descriptor.deserialization(text)
254
+ }
255
+ Asset.register(Category.json, factoryJson)
256
+
257
+ const factoryScript = (url: string) => {
258
+ return new Promise(async (resolve, reject) => {
259
+ try {
260
+ const module = await getAssetByProvider(url)
261
+ if (module === null) return reject(language.get('asset.provider.notFound', { url }))
262
+
263
+ /**
264
+ * Class constructor { ClassName } cannot be invoked without 'new'
265
+ *
266
+ * 将代码的编译目标(webpack、ts、vite等配置文件)调整为es6
267
+ */
268
+ const scriptable = new module.default(url)
269
+ await scriptable.ready()
270
+ resolve(scriptable)
271
+ } catch (error) {
272
+ reject(error)
273
+ }
274
+ })
275
+ }
276
+ Asset.register(Category.ts, factoryScript)
277
+
278
+ const factoryOther = async (url: string) => {
279
+ const res = await Asset.fetch(Asset.joinUrl(url))
280
+ return await res.arrayBuffer()
281
+ }
282
+ Asset.register(Category.other, factoryOther)
@@ -0,0 +1,246 @@
1
+ import { Asset } from "./Asset"
2
+ import { Category } from "../Category"
3
+ import { ArrayUtils } from "../ArrayUtils"
4
+ import { ObjectPool } from "../ObjectPool";
5
+ import { Descriptor } from "../descriptor";
6
+
7
+ interface Edge {
8
+ key: string
9
+ asset: string
10
+ category: string
11
+ }
12
+
13
+ interface Port {
14
+ descriptor: string
15
+ edges: Edge[]
16
+ }
17
+
18
+ interface Cell {
19
+ url: string
20
+ uuid: string
21
+ ports: Port[]
22
+ }
23
+
24
+ interface UrlCell {
25
+ url: string
26
+ cells: Cell[]
27
+ }
28
+
29
+ type Provider<T extends Descriptor = Descriptor> = (descriptor: T, port: Port) => void
30
+
31
+ const privateState = {
32
+ providerCollection: new Map<string, Provider>(),
33
+ }
34
+
35
+ class Dependencide {
36
+ all: string[] = []
37
+ descriptor: string[] = []
38
+ interaction: string[] = []
39
+ prefab: string[] = []
40
+ dataset: string[] = []
41
+ style: string[] = []
42
+ texture: string[] = []
43
+ material: string[] = []
44
+ geometry: string[] = []
45
+
46
+ add(type: keyof Dependencide, url: string) {
47
+ const collection = this[type] as string[]
48
+ if (collection === undefined) return console.warn(type, url)
49
+ collection.push(url)
50
+ this.descriptor.push(url)
51
+ }
52
+
53
+ forEachForGraphics(cb: (url: string) => void) {
54
+ //Graphics遍历资产时,跳过 interaction prefab
55
+ for (const url of this.dataset) cb(url)
56
+ for (const url of this.style) cb(url)
57
+ for (const url of this.texture) cb(url)
58
+ for (const url of this.material) cb(url)
59
+ for (const url of this.geometry) cb(url)
60
+ }
61
+
62
+ clear() {
63
+ this.all.length = 0
64
+ this.descriptor.length = 0
65
+ this.prefab.length = 0
66
+ this.dataset.length = 0
67
+ this.style.length = 0
68
+ this.interaction.length = 0
69
+ this.texture.length = 0
70
+ this.material.length = 0
71
+ this.geometry.length = 0
72
+ }
73
+ }
74
+
75
+ /**资产关系图,表示资产和资产之间的依赖关系 */
76
+ class AssetGraph {
77
+
78
+ private static build(descriptor: Descriptor, port: Port) {
79
+ let Prototype = descriptor.constructor as typeof Descriptor
80
+ while (Prototype.prototype instanceof ObjectPool) {
81
+ const provider = privateState.providerCollection.get(Prototype.type)
82
+ Prototype = Object.getPrototypeOf(Prototype)
83
+ if (provider === undefined) continue
84
+ provider(descriptor, port)
85
+ }
86
+ }
87
+
88
+ static register<T extends Descriptor = Descriptor>(type: string, provider: Provider<T>) {
89
+ privateState.providerCollection.set(type, provider as Provider)
90
+ }
91
+
92
+ static get(descriptor: Descriptor, ports: Port[] = []) {
93
+
94
+ const port: Port = { descriptor: descriptor.uuid, edges: [] }
95
+ this.build(descriptor, port)
96
+ if (port.edges.length > 0) ports.push(port)
97
+
98
+ return ports
99
+ }
100
+
101
+ /**依赖项集合 */
102
+ private _dependencideCollection = new Map<string, Cell>()
103
+ /**依赖者集合 */
104
+ private _dependentCollection = new Map<string, Cell[]>()
105
+
106
+ protected getDescriptor(url: string) {
107
+ return Asset.get<Descriptor | null>(url)
108
+ }
109
+
110
+ protected compiler(url: string) {
111
+ const cell: Cell = { url, uuid: '', ports: [] }
112
+ const descriptor = this.getDescriptor(url)
113
+ if (descriptor instanceof Descriptor) {
114
+ cell.uuid = descriptor.uuid
115
+ this.build(descriptor, cell.ports)
116
+ }
117
+ return cell
118
+ }
119
+
120
+ protected setCell(asset: string, cell: Cell) {
121
+ let collection = this._dependentCollection.get(asset)
122
+ if (collection === undefined) {
123
+ collection = [cell]
124
+ this._dependentCollection.set(asset, collection)
125
+ } else {
126
+ ArrayUtils.insert(collection, cell)
127
+ }
128
+ }
129
+
130
+ protected deleteCell(asset: string, cell: Cell) {
131
+ let collection = this._dependentCollection.get(asset)
132
+ if (collection === undefined) return
133
+ ArrayUtils.remove(collection, cell)
134
+ }
135
+
136
+ protected collection(asset: string, dependencide: Dependencide, isDescriptor: boolean, category: keyof Dependencide) {
137
+ const index = dependencide.all.indexOf(asset)
138
+ if (index > -1) return
139
+ dependencide.all.push(asset)
140
+ if (isDescriptor) dependencide.add(category, asset)
141
+ this.getDependencide(asset, dependencide)
142
+ }
143
+
144
+ get(url: string) {
145
+ return this._dependencideCollection.get(url) ?? null
146
+ }
147
+
148
+ /**创建资产的依赖关系图 */
149
+ create(url: string) {
150
+ this.delete(url)
151
+
152
+ const cell = this.compiler(url)
153
+ this._dependencideCollection.set(url, cell)
154
+
155
+ for (const port of cell.ports) {
156
+ for (const edge of port.edges) {
157
+ this.setCell(edge.asset, cell)
158
+ }
159
+ }
160
+ }
161
+
162
+ build(descriptor: Descriptor, ports: Port[] = []) {
163
+ descriptor.traverse(sub => { AssetGraph.get(sub, ports) })
164
+ return ports
165
+ }
166
+
167
+ /**更新资产的依赖关系图 */
168
+ update(url: string) {
169
+ this.delete(url)
170
+ this.create(url)
171
+ }
172
+
173
+ /**将资产从依赖关系图中删除 */
174
+ delete(url: string) {
175
+ const cell = this._dependencideCollection.get(url)
176
+ if (cell === undefined) return
177
+ this._dependencideCollection.delete(url)
178
+
179
+ for (const port of cell.ports) {
180
+ for (const edge of port.edges) {
181
+ this.deleteCell(edge.asset, cell)
182
+ }
183
+ }
184
+ }
185
+
186
+ /**获取Ports所依赖的全部资产
187
+ * - 0 获取所有资产
188
+ * - 1 仅获取描述器资产
189
+ */
190
+ getDependencidesByPorts(ports: Port[], dependencide = new Dependencide()) {
191
+ if (ports.length === 0) return dependencide
192
+ for (const port of ports) {
193
+ for (const edge of port.edges) {
194
+ const isDescriptor = Category.isDescriptor(edge.category, 'category')
195
+ this.collection(edge.asset, dependencide, isDescriptor, edge.category as keyof Dependencide)
196
+ }
197
+ }
198
+ return dependencide
199
+ }
200
+
201
+ /**获取指定资产所依赖的全部资产
202
+ * - 0 获取所有资产
203
+ * - 1 仅获取描述器资产
204
+ */
205
+ getDependencide(url: string, dependencide = new Dependencide()) {
206
+ const cell = this._dependencideCollection.get(url)
207
+ if (cell === undefined) return dependencide
208
+ this.getDependencidesByPorts(cell.ports, dependencide)
209
+ return dependencide
210
+ }
211
+
212
+ /**获取指定资产的所有依赖者 */
213
+ getDependents(url: string) {
214
+ return this._dependentCollection.get(url) ?? []
215
+ }
216
+
217
+ getUrlCells(urls: string[], urlCells: UrlCell[] = []) {
218
+ for (const url of urls) {
219
+ const cells = this.getDependents(url)
220
+ if (cells.length > 0) urlCells.push({ url, cells })
221
+ }
222
+ return urlCells
223
+ }
224
+
225
+ forEdge(cell: Cell, cb: (port: Port, edge: Edge) => void) {
226
+ for (const port of cell.ports) {
227
+ for (const edge of port.edges) cb(port, edge)
228
+ }
229
+ }
230
+
231
+ hasAssetReference(port: Port, url: string) {
232
+ for (const edge of port.edges) {
233
+ if (Array.isArray(edge.asset)) {
234
+ for (const asset of edge.asset) {
235
+ if (asset === url) return true
236
+ }
237
+ } else {
238
+ if (edge.asset === url) return true
239
+ }
240
+ }
241
+
242
+ return false
243
+ }
244
+ }
245
+
246
+ export { Edge, Port, Cell, UrlCell, Dependencide, AssetGraph }
@@ -0,0 +1,2 @@
1
+ export * from './Asset'
2
+ export * from './AssetGraph'
@@ -0,0 +1,65 @@
1
+ import { DeserializationObject } from "../Serialization"
2
+ import { Descriptor } from "./Descriptor"
3
+
4
+ interface FrameData {
5
+ type: string
6
+ startValue: Array<string | number | boolean> | number | string
7
+ endValue: Array<string | number | boolean> | number | string
8
+ }
9
+
10
+ interface NumberFrameData extends FrameData {
11
+ type: 'number' | 'boolean'
12
+ startValue: number
13
+ endValue: number
14
+ }
15
+
16
+ interface VectorFrameData extends FrameData {
17
+ type: 'vector2' | 'vector3' | 'euler'
18
+ startValue: number[]
19
+ endValue: number[]
20
+ }
21
+
22
+ interface ColorFrameData extends FrameData {
23
+ type: 'color'
24
+ startValue: string
25
+ endValue: string
26
+ }
27
+
28
+ type AnimationFrameData = NumberFrameData | VectorFrameData | ColorFrameData
29
+
30
+ class AnimationUnitDescriptor extends Descriptor {
31
+ static type = 'AnimationUnit'
32
+
33
+ play: boolean
34
+ duration: number
35
+ /**循环次数 */
36
+ count: number
37
+ /**循环模式
38
+ *
39
+ * - 1 顺序循环
40
+ * - 2 往返循环
41
+ */
42
+ mode: number
43
+ startTime: number
44
+ path: string
45
+ frameData: AnimationFrameData
46
+
47
+ constructor(descriptor: Partial<DeserializationObject<AnimationUnitDescriptor>> = {}) {
48
+ super(descriptor)
49
+ this.play = descriptor.play ?? false
50
+ this.duration = descriptor.duration ?? 0
51
+ this.count = descriptor.count ?? Infinity
52
+ this.mode = descriptor.mode ?? 1
53
+ this.startTime = descriptor.startTime ?? 0
54
+ this.path = descriptor.path ?? ''
55
+ this.frameData = descriptor.frameData ? Descriptor.deepClone<AnimationFrameData>(descriptor.frameData) : { type: 'vector2', startValue: [], endValue: [] } as VectorFrameData
56
+ }
57
+ }
58
+ Descriptor.register(AnimationUnitDescriptor)
59
+
60
+ export {
61
+ NumberFrameData,
62
+ VectorFrameData,
63
+ AnimationFrameData,
64
+ AnimationUnitDescriptor
65
+ }
@@ -0,0 +1,12 @@
1
+ import { DeserializationObject } from "../Serialization"
2
+ import { NodeDescriptor } from "./NodeDescriptor"
3
+
4
+ class CameraDescriptor extends NodeDescriptor {
5
+ static type = 'Camera'
6
+
7
+ constructor(descriptor: Partial<DeserializationObject<CameraDescriptor>> = {}) {
8
+ super(descriptor)
9
+ }
10
+ }
11
+
12
+ export { CameraDescriptor }
@@ -0,0 +1,16 @@
1
+ import { DeserializationObject } from "../Serialization"
2
+ import { Descriptor } from "./Descriptor"
3
+
4
+ class ControllerDescriptor extends Descriptor {
5
+ static type = 'Controller'
6
+
7
+ /**控制器是否响应用户的操作 */
8
+ enabled: boolean
9
+
10
+ constructor(descriptor: Partial<DeserializationObject<ControllerDescriptor>> = {}) {
11
+ super(descriptor)
12
+ this.enabled = descriptor.enabled ?? false
13
+ }
14
+ }
15
+
16
+ export { ControllerDescriptor }