@nice2dev/game-engine 0.1.0 → 1.0.3

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 (294) hide show
  1. package/CHANGELOG.md +193 -1
  2. package/dist/cjs/ai/BehaviorTree.js +1215 -0
  3. package/dist/cjs/ai/BehaviorTree.js.map +1 -0
  4. package/dist/cjs/ai/StateMachine.js +783 -0
  5. package/dist/cjs/ai/StateMachine.js.map +1 -0
  6. package/dist/cjs/audio/AudioBridge.js +454 -0
  7. package/dist/cjs/audio/AudioBridge.js.map +1 -0
  8. package/dist/cjs/devtools/GameplayAnalytics.js +651 -0
  9. package/dist/cjs/devtools/GameplayAnalytics.js.map +1 -0
  10. package/dist/cjs/dialogue/DialogueSystem.js +1023 -0
  11. package/dist/cjs/dialogue/DialogueSystem.js.map +1 -0
  12. package/dist/cjs/editor/NiceGameEditor.js +569 -71
  13. package/dist/cjs/editor/NiceGameEditor.js.map +1 -1
  14. package/dist/cjs/editor/ShaderGraph.js +1616 -0
  15. package/dist/cjs/editor/ShaderGraph.js.map +1 -0
  16. package/dist/cjs/editor/TimelineEditor.js +819 -0
  17. package/dist/cjs/editor/TimelineEditor.js.map +1 -0
  18. package/dist/cjs/engine/SaveSystemV2.js +494 -0
  19. package/dist/cjs/engine/SaveSystemV2.js.map +1 -0
  20. package/dist/cjs/export/GodotExporter.js +1102 -0
  21. package/dist/cjs/export/GodotExporter.js.map +1 -0
  22. package/dist/cjs/export/PlatformExporter.js +236 -0
  23. package/dist/cjs/export/PlatformExporter.js.map +1 -0
  24. package/dist/cjs/export/ThreeJSExporter.js +1116 -0
  25. package/dist/cjs/export/ThreeJSExporter.js.map +1 -0
  26. package/dist/cjs/export/UnityExporter.js +1193 -0
  27. package/dist/cjs/export/UnityExporter.js.map +1 -0
  28. package/dist/cjs/export/WebExporter.js +1036 -0
  29. package/dist/cjs/export/WebExporter.js.map +1 -0
  30. package/dist/cjs/export/index.js +58 -0
  31. package/dist/cjs/export/index.js.map +1 -0
  32. package/dist/cjs/i18n/useTranslation.js +11 -11
  33. package/dist/cjs/import/AsepriteImporter.js +761 -0
  34. package/dist/cjs/import/AsepriteImporter.js.map +1 -0
  35. package/dist/cjs/import/DragonBonesImporter.js +499 -0
  36. package/dist/cjs/import/DragonBonesImporter.js.map +1 -0
  37. package/dist/cjs/import/GameMakerImporter.js +559 -0
  38. package/dist/cjs/import/GameMakerImporter.js.map +1 -0
  39. package/dist/cjs/import/GodotSceneImporter.js +824 -0
  40. package/dist/cjs/import/GodotSceneImporter.js.map +1 -0
  41. package/dist/cjs/import/LDtkImporter.js +481 -0
  42. package/dist/cjs/import/LDtkImporter.js.map +1 -0
  43. package/dist/cjs/import/Live2DImporter.js +553 -0
  44. package/dist/cjs/import/Live2DImporter.js.map +1 -0
  45. package/dist/cjs/import/NdgFormat.js +499 -0
  46. package/dist/cjs/import/NdgFormat.js.map +1 -0
  47. package/dist/cjs/import/OgmoImporter.js +529 -0
  48. package/dist/cjs/import/OgmoImporter.js.map +1 -0
  49. package/dist/cjs/import/RPGMakerImporter.js +520 -0
  50. package/dist/cjs/import/RPGMakerImporter.js.map +1 -0
  51. package/dist/cjs/import/SceneImporter.js +449 -0
  52. package/dist/cjs/import/SceneImporter.js.map +1 -0
  53. package/dist/cjs/import/SpineImporter.js +583 -0
  54. package/dist/cjs/import/SpineImporter.js.map +1 -0
  55. package/dist/cjs/import/SpriterImporter.js +652 -0
  56. package/dist/cjs/import/SpriterImporter.js.map +1 -0
  57. package/dist/cjs/import/TiledMapImporter.js +859 -0
  58. package/dist/cjs/import/TiledMapImporter.js.map +1 -0
  59. package/dist/cjs/import/UnitySceneImporter.js +732 -0
  60. package/dist/cjs/import/UnitySceneImporter.js.map +1 -0
  61. package/dist/cjs/import/index.js +305 -0
  62. package/dist/cjs/import/index.js.map +1 -0
  63. package/dist/cjs/index.js +291 -1
  64. package/dist/cjs/index.js.map +1 -1
  65. package/dist/cjs/input/GamepadNavigation.js +21 -21
  66. package/dist/cjs/input/useGamepads.js +6 -6
  67. package/dist/cjs/integration/IconSprite.js +281 -0
  68. package/dist/cjs/integration/IconSprite.js.map +1 -0
  69. package/dist/cjs/inventory/InventorySystem.js +930 -0
  70. package/dist/cjs/inventory/InventorySystem.js.map +1 -0
  71. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AbortController.js.map +1 -1
  72. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js.map +1 -1
  73. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js.map +1 -1
  74. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js.map +1 -1
  75. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Errors.js.map +1 -1
  76. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js.map +1 -1
  77. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js.map +1 -1
  78. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js.map +1 -1
  79. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpClient.js.map +1 -1
  80. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js.map +1 -1
  81. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnection.js.map +1 -1
  82. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js.map +1 -1
  83. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js.map +1 -1
  84. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ILogger.js.map +1 -1
  85. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ITransport.js.map +1 -1
  86. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js.map +1 -1
  87. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Loggers.js.map +1 -1
  88. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js.map +1 -1
  89. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js.map +1 -1
  90. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js.map +1 -1
  91. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Subject.js.map +1 -1
  92. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js.map +1 -1
  93. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Utils.js.map +1 -1
  94. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js.map +1 -1
  95. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js.map +1 -1
  96. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/pkg-version.js.map +1 -1
  97. package/dist/cjs/quest/QuestSystem.js +924 -0
  98. package/dist/cjs/quest/QuestSystem.js.map +1 -0
  99. package/dist/cjs/rendering/WebGPURenderPipeline.js +658 -0
  100. package/dist/cjs/rendering/WebGPURenderPipeline.js.map +1 -0
  101. package/dist/cjs/scripting/GraphToAST.js +567 -0
  102. package/dist/cjs/scripting/GraphToAST.js.map +1 -0
  103. package/dist/cjs/scripting/LanguageExporter.js +321 -0
  104. package/dist/cjs/scripting/LanguageExporter.js.map +1 -0
  105. package/dist/cjs/scripting/ScriptAST.js +67 -0
  106. package/dist/cjs/scripting/ScriptAST.js.map +1 -0
  107. package/dist/cjs/scripting/VisualScripting2.js +1140 -0
  108. package/dist/cjs/scripting/VisualScripting2.js.map +1 -0
  109. package/dist/cjs/scripting/exporters/CSharpExporter.js +503 -0
  110. package/dist/cjs/scripting/exporters/CSharpExporter.js.map +1 -0
  111. package/dist/cjs/scripting/exporters/GDScriptExporter.js +452 -0
  112. package/dist/cjs/scripting/exporters/GDScriptExporter.js.map +1 -0
  113. package/dist/cjs/scripting/exporters/LuaExporter.js +457 -0
  114. package/dist/cjs/scripting/exporters/LuaExporter.js.map +1 -0
  115. package/dist/cjs/scripting/exporters/PythonExporter.js +565 -0
  116. package/dist/cjs/scripting/exporters/PythonExporter.js.map +1 -0
  117. package/dist/cjs/scripting/exporters/RustExporter.js +525 -0
  118. package/dist/cjs/scripting/exporters/RustExporter.js.map +1 -0
  119. package/dist/cjs/scripting/exporters/TypeScriptExporter.js +570 -0
  120. package/dist/cjs/scripting/exporters/TypeScriptExporter.js.map +1 -0
  121. package/dist/cjs/systems/ParticleSystem2.js +1478 -0
  122. package/dist/cjs/systems/ParticleSystem2.js.map +1 -0
  123. package/dist/cjs/xr/ARVR.js.map +1 -1
  124. package/dist/esm/ai/BehaviorTree.js +1186 -0
  125. package/dist/esm/ai/BehaviorTree.js.map +1 -0
  126. package/dist/esm/ai/StateMachine.js +767 -0
  127. package/dist/esm/ai/StateMachine.js.map +1 -0
  128. package/dist/esm/audio/AudioBridge.js +446 -0
  129. package/dist/esm/audio/AudioBridge.js.map +1 -0
  130. package/dist/esm/devtools/GameplayAnalytics.js +639 -0
  131. package/dist/esm/devtools/GameplayAnalytics.js.map +1 -0
  132. package/dist/esm/dialogue/DialogueSystem.js +1008 -0
  133. package/dist/esm/dialogue/DialogueSystem.js.map +1 -0
  134. package/dist/esm/editor/NiceGameEditor.js +556 -58
  135. package/dist/esm/editor/NiceGameEditor.js.map +1 -1
  136. package/dist/esm/editor/ShaderGraph.js +1606 -0
  137. package/dist/esm/editor/ShaderGraph.js.map +1 -0
  138. package/dist/esm/editor/TimelineEditor.js +800 -0
  139. package/dist/esm/editor/TimelineEditor.js.map +1 -0
  140. package/dist/esm/engine/SaveSystemV2.js +487 -0
  141. package/dist/esm/engine/SaveSystemV2.js.map +1 -0
  142. package/dist/esm/export/GodotExporter.js +1100 -0
  143. package/dist/esm/export/GodotExporter.js.map +1 -0
  144. package/dist/esm/export/PlatformExporter.js +230 -0
  145. package/dist/esm/export/PlatformExporter.js.map +1 -0
  146. package/dist/esm/export/ThreeJSExporter.js +1114 -0
  147. package/dist/esm/export/ThreeJSExporter.js.map +1 -0
  148. package/dist/esm/export/UnityExporter.js +1191 -0
  149. package/dist/esm/export/UnityExporter.js.map +1 -0
  150. package/dist/esm/export/WebExporter.js +1033 -0
  151. package/dist/esm/export/WebExporter.js.map +1 -0
  152. package/dist/esm/export/index.js +44 -0
  153. package/dist/esm/export/index.js.map +1 -0
  154. package/dist/esm/import/AsepriteImporter.js +759 -0
  155. package/dist/esm/import/AsepriteImporter.js.map +1 -0
  156. package/dist/esm/import/DragonBonesImporter.js +496 -0
  157. package/dist/esm/import/DragonBonesImporter.js.map +1 -0
  158. package/dist/esm/import/GameMakerImporter.js +556 -0
  159. package/dist/esm/import/GameMakerImporter.js.map +1 -0
  160. package/dist/esm/import/GodotSceneImporter.js +822 -0
  161. package/dist/esm/import/GodotSceneImporter.js.map +1 -0
  162. package/dist/esm/import/LDtkImporter.js +479 -0
  163. package/dist/esm/import/LDtkImporter.js.map +1 -0
  164. package/dist/esm/import/Live2DImporter.js +550 -0
  165. package/dist/esm/import/Live2DImporter.js.map +1 -0
  166. package/dist/esm/import/NdgFormat.js +490 -0
  167. package/dist/esm/import/NdgFormat.js.map +1 -0
  168. package/dist/esm/import/OgmoImporter.js +526 -0
  169. package/dist/esm/import/OgmoImporter.js.map +1 -0
  170. package/dist/esm/import/RPGMakerImporter.js +517 -0
  171. package/dist/esm/import/RPGMakerImporter.js.map +1 -0
  172. package/dist/esm/import/SceneImporter.js +441 -0
  173. package/dist/esm/import/SceneImporter.js.map +1 -0
  174. package/dist/esm/import/SpineImporter.js +580 -0
  175. package/dist/esm/import/SpineImporter.js.map +1 -0
  176. package/dist/esm/import/SpriterImporter.js +649 -0
  177. package/dist/esm/import/SpriterImporter.js.map +1 -0
  178. package/dist/esm/import/TiledMapImporter.js +857 -0
  179. package/dist/esm/import/TiledMapImporter.js.map +1 -0
  180. package/dist/esm/import/UnitySceneImporter.js +730 -0
  181. package/dist/esm/import/UnitySceneImporter.js.map +1 -0
  182. package/dist/esm/import/index.js +279 -0
  183. package/dist/esm/import/index.js.map +1 -0
  184. package/dist/esm/index.js +47 -3
  185. package/dist/esm/index.js.map +1 -1
  186. package/dist/esm/integration/IconSprite.js +266 -0
  187. package/dist/esm/integration/IconSprite.js.map +1 -0
  188. package/dist/esm/inventory/InventorySystem.js +924 -0
  189. package/dist/esm/inventory/InventorySystem.js.map +1 -0
  190. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AbortController.js.map +1 -1
  191. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js.map +1 -1
  192. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js.map +1 -1
  193. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js.map +1 -1
  194. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Errors.js.map +1 -1
  195. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js.map +1 -1
  196. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js.map +1 -1
  197. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js.map +1 -1
  198. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpClient.js.map +1 -1
  199. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js.map +1 -1
  200. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnection.js.map +1 -1
  201. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js.map +1 -1
  202. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js.map +1 -1
  203. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ILogger.js.map +1 -1
  204. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ITransport.js.map +1 -1
  205. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js.map +1 -1
  206. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Loggers.js.map +1 -1
  207. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js.map +1 -1
  208. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js.map +1 -1
  209. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js.map +1 -1
  210. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Subject.js.map +1 -1
  211. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js.map +1 -1
  212. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Utils.js.map +1 -1
  213. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js.map +1 -1
  214. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js.map +1 -1
  215. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/pkg-version.js.map +1 -1
  216. package/dist/esm/quest/QuestSystem.js +916 -0
  217. package/dist/esm/quest/QuestSystem.js.map +1 -0
  218. package/dist/esm/rendering/WebGPURenderPipeline.js +642 -0
  219. package/dist/esm/rendering/WebGPURenderPipeline.js.map +1 -0
  220. package/dist/esm/scripting/GraphToAST.js +564 -0
  221. package/dist/esm/scripting/GraphToAST.js.map +1 -0
  222. package/dist/esm/scripting/LanguageExporter.js +311 -0
  223. package/dist/esm/scripting/LanguageExporter.js.map +1 -0
  224. package/dist/esm/scripting/ScriptAST.js +52 -0
  225. package/dist/esm/scripting/ScriptAST.js.map +1 -0
  226. package/dist/esm/scripting/VisualScripting2.js +1130 -0
  227. package/dist/esm/scripting/VisualScripting2.js.map +1 -0
  228. package/dist/esm/scripting/exporters/CSharpExporter.js +501 -0
  229. package/dist/esm/scripting/exporters/CSharpExporter.js.map +1 -0
  230. package/dist/esm/scripting/exporters/GDScriptExporter.js +450 -0
  231. package/dist/esm/scripting/exporters/GDScriptExporter.js.map +1 -0
  232. package/dist/esm/scripting/exporters/LuaExporter.js +455 -0
  233. package/dist/esm/scripting/exporters/LuaExporter.js.map +1 -0
  234. package/dist/esm/scripting/exporters/PythonExporter.js +563 -0
  235. package/dist/esm/scripting/exporters/PythonExporter.js.map +1 -0
  236. package/dist/esm/scripting/exporters/RustExporter.js +523 -0
  237. package/dist/esm/scripting/exporters/RustExporter.js.map +1 -0
  238. package/dist/esm/scripting/exporters/TypeScriptExporter.js +568 -0
  239. package/dist/esm/scripting/exporters/TypeScriptExporter.js.map +1 -0
  240. package/dist/esm/systems/ParticleSystem2.js +1471 -0
  241. package/dist/esm/systems/ParticleSystem2.js.map +1 -0
  242. package/dist/esm/xr/ARVR.js.map +1 -1
  243. package/dist/types/__tests__/setup.d.ts +1 -1
  244. package/dist/types/ai/BehaviorTree.d.ts +375 -0
  245. package/dist/types/ai/StateMachine.d.ts +296 -0
  246. package/dist/types/audio/AudioBridge.d.ts +199 -0
  247. package/dist/types/devtools/GameplayAnalytics.d.ts +279 -0
  248. package/dist/types/dialogue/DialogueSystem.d.ts +326 -0
  249. package/dist/types/dialogue/index.d.ts +2 -0
  250. package/dist/types/editor/NiceGameEditor.d.ts +12 -1
  251. package/dist/types/editor/ShaderGraph.d.ts +207 -0
  252. package/dist/types/editor/TimelineEditor.d.ts +393 -0
  253. package/dist/types/engine/SaveSystemV2.d.ts +155 -0
  254. package/dist/types/export/GodotExporter.d.ts +56 -0
  255. package/dist/types/export/PlatformExporter.d.ts +201 -0
  256. package/dist/types/export/ThreeJSExporter.d.ts +40 -0
  257. package/dist/types/export/UnityExporter.d.ts +69 -0
  258. package/dist/types/export/WebExporter.d.ts +58 -0
  259. package/dist/types/export/index.d.ts +19 -0
  260. package/dist/types/import/AsepriteImporter.d.ts +46 -0
  261. package/dist/types/import/DragonBonesImporter.d.ts +331 -0
  262. package/dist/types/import/GameMakerImporter.d.ts +375 -0
  263. package/dist/types/import/GodotSceneImporter.d.ts +34 -0
  264. package/dist/types/import/LDtkImporter.d.ts +177 -0
  265. package/dist/types/import/Live2DImporter.d.ts +237 -0
  266. package/dist/types/import/NdgFormat.d.ts +387 -0
  267. package/dist/types/import/OgmoImporter.d.ts +237 -0
  268. package/dist/types/import/RPGMakerImporter.d.ts +186 -0
  269. package/dist/types/import/SceneImporter.d.ts +276 -0
  270. package/dist/types/import/SpineImporter.d.ts +372 -0
  271. package/dist/types/import/SpriterImporter.d.ts +230 -0
  272. package/dist/types/import/TiledMapImporter.d.ts +57 -0
  273. package/dist/types/import/UnitySceneImporter.d.ts +87 -0
  274. package/dist/types/import/index.d.ts +59 -0
  275. package/dist/types/index.d.ts +46 -18
  276. package/dist/types/integration/IconSprite.d.ts +196 -0
  277. package/dist/types/inventory/InventorySystem.d.ts +336 -0
  278. package/dist/types/performance/WebGPUCompute.d.ts +0 -10
  279. package/dist/types/quest/QuestSystem.d.ts +287 -0
  280. package/dist/types/rendering/WebGPURenderPipeline.d.ts +255 -0
  281. package/dist/types/scripting/GraphToAST.d.ts +55 -0
  282. package/dist/types/scripting/LanguageExporter.d.ts +136 -0
  283. package/dist/types/scripting/ScriptAST.d.ts +312 -0
  284. package/dist/types/scripting/VisualScripting2.d.ts +353 -0
  285. package/dist/types/scripting/exporters/CSharpExporter.d.ts +44 -0
  286. package/dist/types/scripting/exporters/GDScriptExporter.d.ts +46 -0
  287. package/dist/types/scripting/exporters/LuaExporter.d.ts +46 -0
  288. package/dist/types/scripting/exporters/PythonExporter.d.ts +49 -0
  289. package/dist/types/scripting/exporters/RustExporter.d.ts +46 -0
  290. package/dist/types/scripting/exporters/TypeScriptExporter.d.ts +48 -0
  291. package/dist/types/scripting/exporters/index.d.ts +8 -0
  292. package/dist/types/scripting/index.d.ts +11 -0
  293. package/dist/types/systems/ParticleSystem2.d.ts +646 -0
  294. package/package.json +7 -1
@@ -0,0 +1,331 @@
1
+ /**
2
+ * @file DragonBonesImporter.ts
3
+ * @description DragonBones Skeletal Animation Importer
4
+ * PRO-1.3: Scene Format Interoperability
5
+ *
6
+ * DragonBones is a free, open-source 2D skeletal animation tool.
7
+ *
8
+ * File Types:
9
+ * - *_ske.json - Skeleton data
10
+ * - *_tex.json - Texture atlas data
11
+ * - *_tex.png - Texture image
12
+ */
13
+ import { SceneImporter, ImportOptions, ImportResult, ParsedScene, ImportError } from './SceneImporter';
14
+ /** DragonBones Skeleton Data */
15
+ export interface DBSkeletonData {
16
+ frameRate: number;
17
+ name: string;
18
+ version: string;
19
+ compatibleVersion?: string;
20
+ armature: DBArmature[];
21
+ }
22
+ /** DragonBones Armature */
23
+ export interface DBArmature {
24
+ name: string;
25
+ type?: 'Armature' | 'Stage' | 'MovieClip';
26
+ frameRate?: number;
27
+ aabb: DBAABB;
28
+ bone: DBBone[];
29
+ slot: DBSlot[];
30
+ skin: DBSkin[];
31
+ ik?: DBIKConstraint[];
32
+ path?: DBPathConstraint[];
33
+ animation: DBAnimation[];
34
+ defaultActions?: DBAction[];
35
+ canvas?: DBCanvas;
36
+ }
37
+ /** DragonBones AABB */
38
+ export interface DBAABB {
39
+ x: number;
40
+ y: number;
41
+ width: number;
42
+ height: number;
43
+ }
44
+ /** DragonBones Bone */
45
+ export interface DBBone {
46
+ name: string;
47
+ parent?: string;
48
+ length?: number;
49
+ transform?: DBTransform;
50
+ inheritTranslation?: boolean;
51
+ inheritRotation?: boolean;
52
+ inheritScale?: boolean;
53
+ inheritReflection?: boolean;
54
+ }
55
+ /** DragonBones Transform */
56
+ export interface DBTransform {
57
+ x?: number;
58
+ y?: number;
59
+ skX?: number;
60
+ skY?: number;
61
+ scX?: number;
62
+ scY?: number;
63
+ }
64
+ /** DragonBones Slot */
65
+ export interface DBSlot {
66
+ name: string;
67
+ parent: string;
68
+ displayIndex?: number;
69
+ color?: DBColor;
70
+ blendMode?: 'normal' | 'add' | 'alpha' | 'darken' | 'difference' | 'erase' | 'hardlight' | 'invert' | 'layer' | 'lighten' | 'multiply' | 'overlay' | 'screen' | 'subtract';
71
+ }
72
+ /** DragonBones Color */
73
+ export interface DBColor {
74
+ aM?: number;
75
+ rM?: number;
76
+ gM?: number;
77
+ bM?: number;
78
+ aO?: number;
79
+ rO?: number;
80
+ gO?: number;
81
+ bO?: number;
82
+ }
83
+ /** DragonBones Skin */
84
+ export interface DBSkin {
85
+ name: string;
86
+ slot: DBSkinSlot[];
87
+ }
88
+ /** DragonBones Skin Slot */
89
+ export interface DBSkinSlot {
90
+ name: string;
91
+ display: DBDisplay[];
92
+ }
93
+ /** DragonBones Display */
94
+ export type DBDisplay = DBImageDisplay | DBMeshDisplay | DBArmatureDisplay | DBBoundingBoxDisplay | DBPathDisplay;
95
+ export interface DBDisplayBase {
96
+ name: string;
97
+ type?: 'image' | 'mesh' | 'armature' | 'boundingBox' | 'path';
98
+ transform?: DBTransform;
99
+ }
100
+ export interface DBImageDisplay extends DBDisplayBase {
101
+ type?: 'image';
102
+ path?: string;
103
+ pivot?: {
104
+ x: number;
105
+ y: number;
106
+ };
107
+ }
108
+ export interface DBMeshDisplay extends DBDisplayBase {
109
+ type: 'mesh';
110
+ path?: string;
111
+ width: number;
112
+ height: number;
113
+ vertices: number[];
114
+ uvs: number[];
115
+ triangles: number[];
116
+ weights?: number[];
117
+ slotPose?: number[];
118
+ bonePose?: number[];
119
+ edges?: number[];
120
+ userEdges?: number[];
121
+ }
122
+ export interface DBArmatureDisplay extends DBDisplayBase {
123
+ type: 'armature';
124
+ path?: string;
125
+ inheritAnimation?: boolean;
126
+ actions?: DBAction[];
127
+ }
128
+ export interface DBBoundingBoxDisplay extends DBDisplayBase {
129
+ type: 'boundingBox';
130
+ subType?: 'rectangle' | 'ellipse' | 'polygon';
131
+ width?: number;
132
+ height?: number;
133
+ vertices?: number[];
134
+ color?: number;
135
+ }
136
+ export interface DBPathDisplay extends DBDisplayBase {
137
+ type: 'path';
138
+ closed?: boolean;
139
+ constantSpeed?: boolean;
140
+ vertices: number[];
141
+ lengths?: number[];
142
+ }
143
+ /** DragonBones IK Constraint */
144
+ export interface DBIKConstraint {
145
+ name: string;
146
+ bone: string;
147
+ target: string;
148
+ chain?: number;
149
+ bendPositive?: boolean;
150
+ weight?: number;
151
+ }
152
+ /** DragonBones Path Constraint */
153
+ export interface DBPathConstraint {
154
+ name: string;
155
+ bones: string[];
156
+ target: string;
157
+ positionMode?: 'fixed' | 'percent';
158
+ spacingMode?: 'fixed' | 'percent' | 'length';
159
+ rotateMode?: 'tangent' | 'chain' | 'chainScale';
160
+ position?: number;
161
+ spacing?: number;
162
+ rotateMix?: number;
163
+ translateMix?: number;
164
+ }
165
+ /** DragonBones Animation */
166
+ export interface DBAnimation {
167
+ name: string;
168
+ duration: number;
169
+ playTimes?: number;
170
+ fadeInTime?: number;
171
+ frame?: DBMainFrame[];
172
+ bone?: DBBoneTimeline[];
173
+ slot?: DBSlotTimeline[];
174
+ ffd?: DBFFDTimeline[];
175
+ ik?: DBIKTimeline[];
176
+ zOrder?: DBZOrderFrame[];
177
+ }
178
+ /** DragonBones Main Frame (events) */
179
+ export interface DBMainFrame {
180
+ duration: number;
181
+ event?: string;
182
+ events?: DBEvent[];
183
+ actions?: DBAction[];
184
+ sound?: string;
185
+ }
186
+ export interface DBEvent {
187
+ name: string;
188
+ bone?: string;
189
+ ints?: number[];
190
+ floats?: number[];
191
+ strings?: string[];
192
+ }
193
+ export interface DBAction {
194
+ type: 'play' | 'frame' | 'sound';
195
+ name?: string;
196
+ }
197
+ /** DragonBones Bone Timeline */
198
+ export interface DBBoneTimeline {
199
+ name: string;
200
+ translateFrame?: DBTranslateFrame[];
201
+ rotateFrame?: DBRotateFrame[];
202
+ scaleFrame?: DBScaleFrame[];
203
+ frame?: DBBoneFrame[];
204
+ }
205
+ export interface DBTranslateFrame {
206
+ duration?: number;
207
+ tweenEasing?: number | null;
208
+ curve?: number[];
209
+ x?: number;
210
+ y?: number;
211
+ }
212
+ export interface DBRotateFrame {
213
+ duration?: number;
214
+ tweenEasing?: number | null;
215
+ curve?: number[];
216
+ rotate?: number;
217
+ skew?: number;
218
+ }
219
+ export interface DBScaleFrame {
220
+ duration?: number;
221
+ tweenEasing?: number | null;
222
+ curve?: number[];
223
+ x?: number;
224
+ y?: number;
225
+ }
226
+ export interface DBBoneFrame {
227
+ duration?: number;
228
+ tweenEasing?: number | null;
229
+ curve?: number[];
230
+ transform?: DBTransform;
231
+ }
232
+ /** DragonBones Slot Timeline */
233
+ export interface DBSlotTimeline {
234
+ name: string;
235
+ displayFrame?: DBDisplayFrame[];
236
+ colorFrame?: DBColorFrame[];
237
+ frame?: DBSlotFrame[];
238
+ }
239
+ export interface DBDisplayFrame {
240
+ duration?: number;
241
+ value?: number;
242
+ actions?: DBAction[];
243
+ }
244
+ export interface DBColorFrame {
245
+ duration?: number;
246
+ tweenEasing?: number | null;
247
+ curve?: number[];
248
+ value?: DBColor;
249
+ }
250
+ export interface DBSlotFrame {
251
+ duration?: number;
252
+ tweenEasing?: number | null;
253
+ displayIndex?: number;
254
+ color?: DBColor;
255
+ actions?: DBAction[];
256
+ }
257
+ /** DragonBones FFD Timeline (mesh deformation) */
258
+ export interface DBFFDTimeline {
259
+ name: string;
260
+ skin: string;
261
+ slot: string;
262
+ frame: DBFFDFrame[];
263
+ }
264
+ export interface DBFFDFrame {
265
+ duration?: number;
266
+ tweenEasing?: number | null;
267
+ curve?: number[];
268
+ offset?: number;
269
+ vertices?: number[];
270
+ }
271
+ /** DragonBones IK Timeline */
272
+ export interface DBIKTimeline {
273
+ name: string;
274
+ frame: DBIKFrame[];
275
+ }
276
+ export interface DBIKFrame {
277
+ duration?: number;
278
+ tweenEasing?: number | null;
279
+ curve?: number[];
280
+ bendPositive?: boolean;
281
+ weight?: number;
282
+ }
283
+ /** DragonBones Z-Order Frame */
284
+ export interface DBZOrderFrame {
285
+ duration?: number;
286
+ zOrder?: number[];
287
+ }
288
+ /** DragonBones Canvas */
289
+ export interface DBCanvas {
290
+ x?: number;
291
+ y?: number;
292
+ width: number;
293
+ height: number;
294
+ color?: number;
295
+ }
296
+ /** DragonBones Texture Atlas Data */
297
+ export interface DBTextureAtlas {
298
+ name: string;
299
+ imagePath: string;
300
+ width: number;
301
+ height: number;
302
+ SubTexture: DBSubTexture[];
303
+ }
304
+ export interface DBSubTexture {
305
+ name: string;
306
+ x: number;
307
+ y: number;
308
+ width: number;
309
+ height: number;
310
+ frameX?: number;
311
+ frameY?: number;
312
+ frameWidth?: number;
313
+ frameHeight?: number;
314
+ }
315
+ export declare class DragonBonesImporter extends SceneImporter {
316
+ private textureAtlas;
317
+ constructor();
318
+ canHandle(filePath: string): boolean;
319
+ import(options: ImportOptions): Promise<ImportResult>;
320
+ parseFile(content: string | ArrayBuffer, filePath: string): Promise<ParsedScene | null>;
321
+ validate(sourcePath: string): Promise<ImportError[]>;
322
+ private convertArmatureToScene;
323
+ private convertArmatureToParsed;
324
+ private createBoneHierarchy;
325
+ private addSlotToEntity;
326
+ private findBoneEntity;
327
+ private convertAnimation;
328
+ private convertColor;
329
+ private readFile;
330
+ }
331
+ export declare function createDragonBonesImporter(): DragonBonesImporter;
@@ -0,0 +1,375 @@
1
+ /**
2
+ * @file GameMakerImporter.ts
3
+ * @description GameMaker Studio 2 Room Importer
4
+ * PRO-1.3: Scene Format Interoperability
5
+ *
6
+ * Supports GameMaker Studio 2 .yy format (JSON-based).
7
+ *
8
+ * File Types:
9
+ * - *.yy - Room, object, sprite, script files
10
+ * - *.yyp - Project file
11
+ */
12
+ import { SceneImporter, ImportOptions, ImportResult, ParsedScene, ImportError } from './SceneImporter';
13
+ /** GameMaker Resource Reference */
14
+ export interface GMResourceRef {
15
+ name: string;
16
+ path: string;
17
+ }
18
+ /** GameMaker Resource ID */
19
+ export interface GMId {
20
+ name: string;
21
+ path: string;
22
+ }
23
+ /** GameMaker Color Format */
24
+ export type GMColor = number;
25
+ /** GameMaker Room */
26
+ export interface GMRoom {
27
+ resourceType: 'GMRoom';
28
+ resourceVersion: string;
29
+ name: string;
30
+ roomSettings: GMRoomSettings;
31
+ viewSettings: GMViewSettings;
32
+ physicsSettings: GMPhysicsSettings;
33
+ parent: GMResourceRef;
34
+ layers: GMLayerInstance[];
35
+ instanceCreationOrder: GMResourceRef[];
36
+ creationCodeFile: string;
37
+ inheritCode: boolean;
38
+ inheritCreationOrder: boolean;
39
+ inheritLayers: boolean;
40
+ isDnd: boolean;
41
+ volume: number;
42
+ inheritRoomSettings?: boolean;
43
+ inheritViewSettings?: boolean;
44
+ inheritPhysicsSettings?: boolean;
45
+ tags?: string[];
46
+ }
47
+ /** GameMaker Room Settings */
48
+ export interface GMRoomSettings {
49
+ Width: number;
50
+ Height: number;
51
+ inheritRoomSettings: boolean;
52
+ persistent: boolean;
53
+ }
54
+ /** GameMaker View Settings */
55
+ export interface GMViewSettings {
56
+ inheritViewSettings: boolean;
57
+ enableViews: boolean;
58
+ clearViewBackground: boolean;
59
+ clearDisplayBuffer: boolean;
60
+ }
61
+ /** GameMaker Physics Settings */
62
+ export interface GMPhysicsSettings {
63
+ inheritPhysicsSettings: boolean;
64
+ PhysicsWorld: boolean;
65
+ PhysicsWorldGravityX: number;
66
+ PhysicsWorldGravityY: number;
67
+ PhysicsWorldPixToMetres: number;
68
+ }
69
+ /** Base GameMaker Layer */
70
+ export interface GMLayerBase {
71
+ resourceType: string;
72
+ resourceVersion: string;
73
+ name: string;
74
+ depth: number;
75
+ visible: boolean;
76
+ hspeed: number;
77
+ vspeed: number;
78
+ x: number;
79
+ y: number;
80
+ effectEnabled: boolean;
81
+ effectType: string | null;
82
+ gridX: number;
83
+ gridY: number;
84
+ layers: GMLayerInstance[];
85
+ hierarchyFrozen: boolean;
86
+ inheritLayerDepth: boolean;
87
+ inheritLayerSettings: boolean;
88
+ inheritSubLayers: boolean;
89
+ inheritVisibility: boolean;
90
+ userdefinedDepth: boolean;
91
+ properties?: GMLayerProperty[];
92
+ }
93
+ export type GMLayerInstance = GMInstanceLayer | GMTileLayer | GMBackgroundLayer | GMAssetLayer | GMPathLayer | GMEffectLayer | GMFolderLayer;
94
+ /** GameMaker Instance Layer */
95
+ export interface GMInstanceLayer extends GMLayerBase {
96
+ resourceType: 'GMRLayer';
97
+ instances: GMRoomInstance[];
98
+ }
99
+ /** GameMaker Tile Layer */
100
+ export interface GMTileLayer extends GMLayerBase {
101
+ resourceType: 'GMRTileLayer';
102
+ tilesetId: GMResourceRef | null;
103
+ tiles: GMTileData;
104
+ x: number;
105
+ y: number;
106
+ }
107
+ /** GameMaker Tile Data */
108
+ export interface GMTileData {
109
+ TileDataFormat: number;
110
+ SerialiseWidth: number;
111
+ SerialiseHeight: number;
112
+ TileCompressedData: number[];
113
+ TileSerialiseData: number[];
114
+ }
115
+ /** GameMaker Background Layer */
116
+ export interface GMBackgroundLayer extends GMLayerBase {
117
+ resourceType: 'GMRBackgroundLayer';
118
+ spriteId: GMResourceRef | null;
119
+ colour: GMColor;
120
+ stretch: boolean;
121
+ htiled: boolean;
122
+ vtiled: boolean;
123
+ userdefinedAnimFPS: boolean;
124
+ animationFPS: number;
125
+ animationSpeedType: number;
126
+ }
127
+ /** GameMaker Asset Layer */
128
+ export interface GMAssetLayer extends GMLayerBase {
129
+ resourceType: 'GMRAssetLayer';
130
+ assets: GMRoomAsset[];
131
+ }
132
+ /** GameMaker Path Layer */
133
+ export interface GMPathLayer extends GMLayerBase {
134
+ resourceType: 'GMRPathLayer';
135
+ pathId: GMResourceRef | null;
136
+ colour: GMColor;
137
+ }
138
+ /** GameMaker Effect Layer */
139
+ export interface GMEffectLayer extends GMLayerBase {
140
+ resourceType: 'GMREffectLayer';
141
+ }
142
+ /** GameMaker Folder Layer */
143
+ export interface GMFolderLayer extends GMLayerBase {
144
+ resourceType: 'GMRLayer';
145
+ instances?: never;
146
+ }
147
+ /** GameMaker Room Instance */
148
+ export interface GMRoomInstance {
149
+ resourceType: 'GMRInstance';
150
+ resourceVersion: string;
151
+ name: string;
152
+ objectId: GMResourceRef;
153
+ x: number;
154
+ y: number;
155
+ scaleX: number;
156
+ scaleY: number;
157
+ rotation: number;
158
+ colour: GMColor;
159
+ imageIndex: number;
160
+ imageSpeed: number;
161
+ inheritCode: boolean;
162
+ inheritedItemId: GMResourceRef | null;
163
+ inheritItemSettings: boolean;
164
+ isDnd: boolean;
165
+ frozen: boolean;
166
+ ignore: boolean;
167
+ creationCode: string;
168
+ properties: GMInstanceProperty[];
169
+ tags?: string[];
170
+ }
171
+ /** GameMaker Room Asset */
172
+ export interface GMRoomAsset {
173
+ resourceType: 'GMRSpriteGraphic' | 'GMRSequenceGraphic' | 'GMRParticleGraphic';
174
+ resourceVersion: string;
175
+ name: string;
176
+ spriteId?: GMResourceRef;
177
+ sequenceId?: GMResourceRef;
178
+ headPosition: number;
179
+ x: number;
180
+ y: number;
181
+ scaleX: number;
182
+ scaleY: number;
183
+ rotation: number;
184
+ colour: GMColor;
185
+ animationSpeed: number;
186
+ animationSpeedType: number;
187
+ ignore: boolean;
188
+ frozen: boolean;
189
+ inheritedItemId: GMResourceRef | null;
190
+ inheritItemSettings: boolean;
191
+ tags?: string[];
192
+ }
193
+ /** GameMaker Instance Property */
194
+ export interface GMInstanceProperty {
195
+ propertyId: GMResourceRef;
196
+ objectId: GMResourceRef;
197
+ value: string;
198
+ }
199
+ /** GameMaker Layer Property */
200
+ export interface GMLayerProperty {
201
+ propertyId: GMResourceRef;
202
+ value: string;
203
+ }
204
+ /** GameMaker Object */
205
+ export interface GMObject {
206
+ resourceType: 'GMObject';
207
+ resourceVersion: string;
208
+ name: string;
209
+ spriteId: GMResourceRef | null;
210
+ solid: boolean;
211
+ visible: boolean;
212
+ managed: boolean;
213
+ spriteMaskId: GMResourceRef | null;
214
+ persistent: boolean;
215
+ parentObjectId: GMResourceRef | null;
216
+ physicsObject: boolean;
217
+ physicsSensor: boolean;
218
+ physicsShape: number;
219
+ physicsGroup: number;
220
+ physicsDensity: number;
221
+ physicsRestitution: number;
222
+ physicsLinearDamping: number;
223
+ physicsAngularDamping: number;
224
+ physicsFriction: number;
225
+ physicsStartAwake: boolean;
226
+ physicsKinematic: boolean;
227
+ physicsShapePoints: GMPhysicsPoint[];
228
+ eventList: GMEvent[];
229
+ properties: GMObjectProperty[];
230
+ overriddenProperties: GMObjectProperty[];
231
+ parent: GMResourceRef;
232
+ }
233
+ /** GameMaker Physics Point */
234
+ export interface GMPhysicsPoint {
235
+ x: number;
236
+ y: number;
237
+ }
238
+ /** GameMaker Event */
239
+ export interface GMEvent {
240
+ resourceType: 'GMEvent';
241
+ resourceVersion: string;
242
+ isDnD: boolean;
243
+ eventNum: number;
244
+ eventType: number;
245
+ collisionObjectId?: GMResourceRef;
246
+ parent: GMResourceRef;
247
+ }
248
+ /** GameMaker Object Property */
249
+ export interface GMObjectProperty {
250
+ resourceType: 'GMObjectProperty';
251
+ resourceVersion: string;
252
+ name: string;
253
+ varType: number;
254
+ value: string;
255
+ rangeEnabled: boolean;
256
+ rangeMin: number;
257
+ rangeMax: number;
258
+ listItems: string[];
259
+ multiselect: boolean;
260
+ filters: string[];
261
+ }
262
+ /** GameMaker Sprite */
263
+ export interface GMSprite {
264
+ resourceType: 'GMSprite';
265
+ resourceVersion: string;
266
+ name: string;
267
+ width: number;
268
+ height: number;
269
+ bbox_left: number;
270
+ bbox_right: number;
271
+ bbox_top: number;
272
+ bbox_bottom: number;
273
+ origin: number;
274
+ xorigin: number;
275
+ yorigin: number;
276
+ frames: GMSpriteFrame[];
277
+ sequence: GMSpriteSequence;
278
+ layers: GMSpriteLayer[];
279
+ nineSlice: GMNineSlice | null;
280
+ parent: GMResourceRef;
281
+ bboxMode: number;
282
+ collisionKind: number;
283
+ collisionTolerance: number;
284
+ edgeFiltering: boolean;
285
+ For3D: boolean;
286
+ gridX: number;
287
+ gridY: number;
288
+ HTile: boolean;
289
+ VTile: boolean;
290
+ premultiplyAlpha: boolean;
291
+ textureGroupId: GMResourceRef;
292
+ }
293
+ /** GameMaker Sprite Frame */
294
+ export interface GMSpriteFrame {
295
+ resourceType: 'GMSpriteFrame';
296
+ resourceVersion: string;
297
+ name: string;
298
+ compositeImage: GMResourceRef;
299
+ images: GMResourceRef[];
300
+ }
301
+ /** GameMaker Sprite Sequence */
302
+ export interface GMSpriteSequence {
303
+ resourceType: 'GMSequence';
304
+ resourceVersion: string;
305
+ name: string;
306
+ playback: number;
307
+ playbackSpeed: number;
308
+ playbackSpeedType: number;
309
+ length: number;
310
+ tracks: unknown[];
311
+ visibleRange: unknown | null;
312
+ lockOrigin: boolean;
313
+ showBackdrop: boolean;
314
+ showBackdropImage: boolean;
315
+ backdropImagePath: string;
316
+ backdropImageOpacity: number;
317
+ backdropWidth: number;
318
+ backdropHeight: number;
319
+ backdropXOffset: number;
320
+ backdropYOffset: number;
321
+ xorigin: number;
322
+ yorigin: number;
323
+ volume: number;
324
+ events: unknown;
325
+ moments: unknown;
326
+ }
327
+ /** GameMaker Sprite Layer */
328
+ export interface GMSpriteLayer {
329
+ resourceType: 'GMImageLayer';
330
+ resourceVersion: string;
331
+ name: string;
332
+ visible: boolean;
333
+ isLocked: boolean;
334
+ blendMode: number;
335
+ opacity: number;
336
+ }
337
+ /** GameMaker Nine Slice */
338
+ export interface GMNineSlice {
339
+ left: number;
340
+ top: number;
341
+ right: number;
342
+ bottom: number;
343
+ guideColour: GMColor[];
344
+ highlightColour: GMColor;
345
+ highlightStyle: number;
346
+ enabled: boolean;
347
+ tileMode: number[];
348
+ }
349
+ export declare class GameMakerImporter extends SceneImporter {
350
+ private objects;
351
+ private sprites;
352
+ constructor();
353
+ canHandle(filePath: string): boolean;
354
+ import(options: ImportOptions): Promise<ImportResult>;
355
+ parseFile(content: string | ArrayBuffer, filePath: string): Promise<ParsedScene | null>;
356
+ validate(sourcePath: string): Promise<ImportError[]>;
357
+ private isRoomFile;
358
+ private isSpriteFile;
359
+ private isObjectFile;
360
+ private convertRoomToScene;
361
+ private convertRoomToParsed;
362
+ private convertLayer;
363
+ private convertLayerToParsed;
364
+ private convertInstance;
365
+ private convertInstanceToParsed;
366
+ private convertTileLayer;
367
+ private decompressTileData;
368
+ private convertBackgroundLayer;
369
+ private convertAsset;
370
+ private convertSpriteToAsset;
371
+ private extractAssetsFromLayers;
372
+ private colorToHex;
373
+ private readFile;
374
+ }
375
+ export declare function createGameMakerImporter(): GameMakerImporter;