@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,499 @@
1
+ 'use strict';
2
+
3
+ var SceneImporter = require('./SceneImporter.js');
4
+
5
+ /**
6
+ * @file NdgFormat.ts
7
+ * @description Nice2Dev Game (.ndg) Universal Format - Import/Export
8
+ * PRO-1.3: Scene Format Interoperability
9
+ *
10
+ * The .ndg format is Nice2Dev's native scene interchange format.
11
+ * Designed for:
12
+ * - Lossless round-trip conversion
13
+ * - Human-readable JSON structure
14
+ * - Full feature preservation
15
+ * - Version compatibility
16
+ *
17
+ * File Types:
18
+ * - .ndg - Single scene
19
+ * - .ndgp - Project with multiple scenes
20
+ * - .ndga - Asset bundle
21
+ */
22
+ // ============================================================
23
+ // NDG Format Version
24
+ // ============================================================
25
+ const NDG_FORMAT_VERSION = '1.0.0';
26
+ const NDG_MAGIC = 'NDG1';
27
+ // ============================================================
28
+ // NDG Importer
29
+ // ============================================================
30
+ class NdgImporter extends SceneImporter.SceneImporter {
31
+ constructor() {
32
+ super('unity'); // Use unity as base, but this handles .ndg files
33
+ this.ndgFile = null;
34
+ }
35
+ canHandle(filePath) {
36
+ const ext = filePath.substring(filePath.lastIndexOf('.')).toLowerCase();
37
+ return ['.ndg', '.ndgp', '.ndga'].includes(ext);
38
+ }
39
+ async import(options) {
40
+ const startTime = Date.now();
41
+ this.options = options;
42
+ this.clearMessages();
43
+ const scenes = [];
44
+ const assets = [];
45
+ try {
46
+ const content = await this.readFile(options.sourcePath);
47
+ this.ndgFile = JSON.parse(content);
48
+ // Validate format
49
+ if (this.ndgFile.magic !== NDG_MAGIC) {
50
+ this.addError('INVALID_MAGIC', 'Invalid NDG file magic', options.sourcePath, undefined, true);
51
+ return { ...this.createEmptyResult(), errors: this.errors };
52
+ }
53
+ // Convert based on file type
54
+ if (this.ndgFile.type === 'scene') {
55
+ const scene = this.convertNdgSceneToNice(this.ndgFile.content);
56
+ scenes.push(scene);
57
+ }
58
+ else if (this.ndgFile.type === 'project') {
59
+ const project = this.ndgFile.content;
60
+ for (const ndgScene of project.scenes) {
61
+ scenes.push(this.convertNdgSceneToNice(ndgScene));
62
+ }
63
+ for (const ndgAsset of project.assets) {
64
+ assets.push(this.convertNdgAssetToNice(ndgAsset));
65
+ }
66
+ }
67
+ else if (this.ndgFile.type === 'asset-bundle') {
68
+ const bundle = this.ndgFile.content;
69
+ for (const ndgAsset of bundle.assets) {
70
+ assets.push(this.convertNdgAssetToNice(ndgAsset));
71
+ }
72
+ }
73
+ }
74
+ catch (error) {
75
+ this.addError('IMPORT_ERROR', `Failed to import: ${error}`, options.sourcePath, undefined, true);
76
+ }
77
+ return this.createResult(scenes, assets, startTime);
78
+ }
79
+ async parseFile(content, filePath) {
80
+ const stringContent = typeof content === 'string' ? content : new TextDecoder().decode(content);
81
+ try {
82
+ const ndgFile = JSON.parse(stringContent);
83
+ if (ndgFile.type === 'scene') {
84
+ const scene = ndgFile.content;
85
+ return this.convertNdgSceneToParsed(scene);
86
+ }
87
+ }
88
+ catch (_a) {
89
+ return null;
90
+ }
91
+ return null;
92
+ }
93
+ async validate(sourcePath) {
94
+ const errors = [];
95
+ if (!this.canHandle(sourcePath)) {
96
+ errors.push({
97
+ code: 'INVALID_FORMAT',
98
+ message: `File ${sourcePath} is not a valid NDG file`,
99
+ file: sourcePath,
100
+ fatal: true,
101
+ });
102
+ }
103
+ return errors;
104
+ }
105
+ // ----------------------------------------
106
+ // Conversion
107
+ // ----------------------------------------
108
+ convertNdgSceneToNice(ndgScene) {
109
+ return {
110
+ id: ndgScene.id,
111
+ name: ndgScene.name,
112
+ entities: ndgScene.entities.map((e) => this.convertNdgEntityToNice(e)),
113
+ settings: {
114
+ width: ndgScene.settings.width,
115
+ height: ndgScene.settings.height,
116
+ backgroundColor: ndgScene.settings.backgroundColor,
117
+ gravity: ndgScene.settings.gravity,
118
+ ...ndgScene.metadata,
119
+ },
120
+ };
121
+ }
122
+ convertNdgEntityToNice(ndgEntity) {
123
+ return {
124
+ id: ndgEntity.id,
125
+ name: ndgEntity.name,
126
+ components: [
127
+ {
128
+ type: 'Transform',
129
+ data: {
130
+ position: ndgEntity.transform.position,
131
+ rotation: ndgEntity.transform.rotation,
132
+ scale: ndgEntity.transform.scale,
133
+ },
134
+ },
135
+ ...ndgEntity.components.map((c) => ({
136
+ type: c.type,
137
+ data: c.data,
138
+ })),
139
+ ],
140
+ children: ndgEntity.children.map((c) => this.convertNdgEntityToNice(c)),
141
+ tags: ndgEntity.tags,
142
+ active: ndgEntity.active,
143
+ };
144
+ }
145
+ convertNdgAssetToNice(ndgAsset) {
146
+ return {
147
+ id: ndgAsset.id,
148
+ name: ndgAsset.name,
149
+ type: ndgAsset.type,
150
+ path: ndgAsset.path,
151
+ data: ndgAsset.data || {},
152
+ };
153
+ }
154
+ convertNdgSceneToParsed(ndgScene) {
155
+ var _a;
156
+ return {
157
+ name: ndgScene.name,
158
+ width: ndgScene.settings.width,
159
+ height: ndgScene.settings.height,
160
+ backgroundColor: ndgScene.settings.backgroundColor,
161
+ layers: ((_a = ndgScene.layers) === null || _a === void 0 ? void 0 : _a.map((l, i) => ({
162
+ name: l.name,
163
+ type: 'object',
164
+ visible: l.visible,
165
+ opacity: 1,
166
+ offsetX: 0,
167
+ offsetY: 0,
168
+ zIndex: l.zIndex,
169
+ properties: l.properties || {},
170
+ }))) || [],
171
+ entities: ndgScene.entities.map((e) => this.convertNdgEntityToParsed(e)),
172
+ properties: {
173
+ ...ndgScene.settings,
174
+ ...ndgScene.metadata,
175
+ },
176
+ };
177
+ }
178
+ convertNdgEntityToParsed(ndgEntity) {
179
+ return {
180
+ id: ndgEntity.id,
181
+ name: ndgEntity.name,
182
+ type: ndgEntity.tags[0] || 'Entity',
183
+ x: ndgEntity.transform.position.x,
184
+ y: ndgEntity.transform.position.y,
185
+ width: 1,
186
+ height: 1,
187
+ rotation: typeof ndgEntity.transform.rotation === 'number'
188
+ ? ndgEntity.transform.rotation
189
+ : ndgEntity.transform.rotation.z,
190
+ scaleX: ndgEntity.transform.scale.x,
191
+ scaleY: ndgEntity.transform.scale.y,
192
+ visible: ndgEntity.active,
193
+ components: ndgEntity.components.map((c) => ({
194
+ type: c.type,
195
+ data: c.data,
196
+ })),
197
+ children: ndgEntity.children.map((c) => this.convertNdgEntityToParsed(c)),
198
+ properties: {
199
+ tags: ndgEntity.tags,
200
+ layer: ndgEntity.layer,
201
+ ...ndgEntity.metadata,
202
+ },
203
+ };
204
+ }
205
+ async readFile(path) {
206
+ var _a;
207
+ if (typeof globalThis.process !== 'undefined' && ((_a = globalThis.process.versions) === null || _a === void 0 ? void 0 : _a.node)) {
208
+ const fs = await import('fs');
209
+ return fs.readFileSync(path, 'utf-8');
210
+ }
211
+ else if (typeof fetch !== 'undefined') {
212
+ const response = await fetch(path);
213
+ return response.text();
214
+ }
215
+ throw new Error('Unable to read file in current environment');
216
+ }
217
+ }
218
+ // ============================================================
219
+ // NDG Exporter
220
+ // ============================================================
221
+ class NdgExporter {
222
+ constructor() {
223
+ this.generatorName = 'Nice2Dev';
224
+ this.generatorVersion = '1.0.0';
225
+ }
226
+ /**
227
+ * Export a single scene to NDG format
228
+ */
229
+ exportScene(scene, source) {
230
+ const now = new Date().toISOString();
231
+ return {
232
+ magic: NDG_MAGIC,
233
+ version: NDG_FORMAT_VERSION,
234
+ type: 'scene',
235
+ created: now,
236
+ modified: now,
237
+ generator: {
238
+ name: this.generatorName,
239
+ version: this.generatorVersion,
240
+ },
241
+ source,
242
+ content: this.convertNiceSceneToNdg(scene),
243
+ };
244
+ }
245
+ /**
246
+ * Export a full project to NDG format
247
+ */
248
+ exportProject(project) {
249
+ const now = new Date().toISOString();
250
+ return {
251
+ magic: NDG_MAGIC,
252
+ version: NDG_FORMAT_VERSION,
253
+ type: 'project',
254
+ created: now,
255
+ modified: now,
256
+ generator: {
257
+ name: this.generatorName,
258
+ version: this.generatorVersion,
259
+ },
260
+ content: this.convertNiceProjectToNdg(project),
261
+ };
262
+ }
263
+ /**
264
+ * Export an asset bundle to NDG format
265
+ */
266
+ exportAssetBundle(name, assets) {
267
+ const now = new Date().toISOString();
268
+ return {
269
+ magic: NDG_MAGIC,
270
+ version: NDG_FORMAT_VERSION,
271
+ type: 'asset-bundle',
272
+ created: now,
273
+ modified: now,
274
+ generator: {
275
+ name: this.generatorName,
276
+ version: this.generatorVersion,
277
+ },
278
+ content: {
279
+ name,
280
+ assets: assets.map((a) => this.convertNiceAssetToNdg(a)),
281
+ },
282
+ };
283
+ }
284
+ /**
285
+ * Serialize NDG file to JSON string
286
+ */
287
+ serialize(ndgFile, pretty = true) {
288
+ return JSON.stringify(ndgFile, null, pretty ? 2 : undefined);
289
+ }
290
+ // ----------------------------------------
291
+ // Conversion
292
+ // ----------------------------------------
293
+ convertNiceSceneToNdg(scene) {
294
+ const settings = scene.settings || {};
295
+ return {
296
+ id: scene.id,
297
+ name: scene.name,
298
+ settings: {
299
+ width: settings.width || 1920,
300
+ height: settings.height || 1080,
301
+ backgroundColor: settings.backgroundColor || '#1a1a2e',
302
+ gravity: settings.gravity,
303
+ },
304
+ entities: scene.entities.map((e) => this.convertNiceEntityToNdg(e)),
305
+ metadata: this.extractMetadata(settings),
306
+ };
307
+ }
308
+ convertNiceEntityToNdg(entity) {
309
+ var _a;
310
+ const transformComp = entity.components.find((c) => c.type === 'Transform');
311
+ const transform = (transformComp === null || transformComp === void 0 ? void 0 : transformComp.data) || {};
312
+ return {
313
+ id: entity.id,
314
+ name: entity.name,
315
+ active: (_a = entity.active) !== null && _a !== void 0 ? _a : true,
316
+ tags: entity.tags || [],
317
+ transform: {
318
+ position: transform.position || { x: 0, y: 0 },
319
+ rotation: transform.rotation || 0,
320
+ scale: transform.scale || { x: 1, y: 1 },
321
+ },
322
+ components: entity.components
323
+ .filter((c) => c.type !== 'Transform')
324
+ .map((c) => {
325
+ var _a;
326
+ return ({
327
+ type: c.type,
328
+ enabled: true,
329
+ data: (_a = c.data) !== null && _a !== void 0 ? _a : {},
330
+ });
331
+ }),
332
+ children: (entity.children || []).map((c) => this.convertNiceEntityToNdg(c)),
333
+ };
334
+ }
335
+ convertNiceProjectToNdg(project) {
336
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
337
+ return {
338
+ name: project.name,
339
+ description: project.description,
340
+ settings: {
341
+ width: ((_a = project.settings) === null || _a === void 0 ? void 0 : _a.width) || 1920,
342
+ height: ((_b = project.settings) === null || _b === void 0 ? void 0 : _b.height) || 1080,
343
+ physics: ((_c = project.settings) === null || _c === void 0 ? void 0 : _c.physics)
344
+ ? {
345
+ gravity: project.settings.physics.gravity,
346
+ velocityIterations: (_d = project.settings.physics.velocityIterations) !== null && _d !== void 0 ? _d : 8,
347
+ positionIterations: (_e = project.settings.physics.positionIterations) !== null && _e !== void 0 ? _e : 3,
348
+ timeStep: (_f = project.settings.physics.timeStep) !== null && _f !== void 0 ? _f : 1 / 60,
349
+ }
350
+ : undefined,
351
+ audio: ((_g = project.settings) === null || _g === void 0 ? void 0 : _g.audio)
352
+ ? {
353
+ masterVolume: project.settings.audio.masterVolume,
354
+ musicVolume: (_h = project.settings.audio.musicVolume) !== null && _h !== void 0 ? _h : 1,
355
+ sfxVolume: (_j = project.settings.audio.sfxVolume) !== null && _j !== void 0 ? _j : 1,
356
+ audioChannels: (_k = project.settings.audio.audioChannels) !== null && _k !== void 0 ? _k : 32,
357
+ }
358
+ : undefined,
359
+ rendering: ((_l = project.settings) === null || _l === void 0 ? void 0 : _l.rendering)
360
+ ? {
361
+ pixelPerfect: (_m = project.settings.rendering.pixelPerfect) !== null && _m !== void 0 ? _m : project.settings.rendering.pixelArt,
362
+ antialiasing: (_o = project.settings.rendering.antialiasing) !== null && _o !== void 0 ? _o : project.settings.rendering.antialias,
363
+ vsync: (_p = project.settings.rendering.vsync) !== null && _p !== void 0 ? _p : true,
364
+ backgroundColor: (_q = project.settings.rendering.backgroundColor) !== null && _q !== void 0 ? _q : '#000000',
365
+ }
366
+ : undefined,
367
+ input: (_r = project.settings) === null || _r === void 0 ? void 0 : _r.input,
368
+ },
369
+ scenes: project.scenes.map((s) => this.convertNiceSceneToNdg(s)),
370
+ assets: project.assets.map((a) => this.convertNiceAssetToNdg(a)),
371
+ };
372
+ }
373
+ convertNiceAssetToNdg(asset) {
374
+ return {
375
+ id: asset.id,
376
+ name: asset.name,
377
+ type: asset.type,
378
+ path: asset.path,
379
+ data: asset.data,
380
+ };
381
+ }
382
+ extractMetadata(settings) {
383
+ const knownKeys = ['width', 'height', 'backgroundColor', 'gravity'];
384
+ const metadata = {};
385
+ for (const [key, value] of Object.entries(settings)) {
386
+ if (!knownKeys.includes(key)) {
387
+ metadata[key] = value;
388
+ }
389
+ }
390
+ return Object.keys(metadata).length > 0 ? metadata : {};
391
+ }
392
+ }
393
+ // ============================================================
394
+ // Bidirectional Sync Helper
395
+ // ============================================================
396
+ class NdgBidirectionalSync {
397
+ constructor() {
398
+ this.importer = new NdgImporter();
399
+ this.exporter = new NdgExporter();
400
+ }
401
+ /**
402
+ * Import and track original data for round-trip
403
+ */
404
+ async importWithTracking(sourcePath, sourceType) {
405
+ const result = await this.importer.import({ sourcePath });
406
+ const source = {
407
+ type: sourceType,
408
+ path: sourcePath,
409
+ importedAt: new Date().toISOString(),
410
+ // Could also preserve original data here for lossless round-trip
411
+ };
412
+ return {
413
+ scenes: result.scenes,
414
+ assets: result.assets,
415
+ source,
416
+ };
417
+ }
418
+ /**
419
+ * Export with source tracking for later re-import
420
+ */
421
+ exportWithTracking(scene, source) {
422
+ const ndgFile = this.exporter.exportScene(scene, source);
423
+ return this.exporter.serialize(ndgFile);
424
+ }
425
+ /**
426
+ * Check if NDG file has modifications compared to source
427
+ */
428
+ hasModifications(ndgFile) {
429
+ return ndgFile.created !== ndgFile.modified;
430
+ }
431
+ /**
432
+ * Update the modified timestamp
433
+ */
434
+ touch(ndgFile) {
435
+ return {
436
+ ...ndgFile,
437
+ modified: new Date().toISOString(),
438
+ };
439
+ }
440
+ }
441
+ // ============================================================
442
+ // Factory Functions
443
+ // ============================================================
444
+ /**
445
+ * Create NDG importer
446
+ */
447
+ function createNdgImporter() {
448
+ return new NdgImporter();
449
+ }
450
+ /**
451
+ * Create NDG exporter
452
+ */
453
+ function createNdgExporter() {
454
+ return new NdgExporter();
455
+ }
456
+ /**
457
+ * Create bidirectional sync helper
458
+ */
459
+ function createBidirectionalSync() {
460
+ return new NdgBidirectionalSync();
461
+ }
462
+ /**
463
+ * Quick export scene to NDG JSON string
464
+ */
465
+ function sceneToNdg(scene, pretty = true) {
466
+ const exporter = new NdgExporter();
467
+ const ndgFile = exporter.exportScene(scene);
468
+ return exporter.serialize(ndgFile, pretty);
469
+ }
470
+ /**
471
+ * Quick import NDG JSON string to scene
472
+ */
473
+ async function ndgToScene(ndgJson) {
474
+ try {
475
+ const ndgFile = JSON.parse(ndgJson);
476
+ if (ndgFile.magic !== NDG_MAGIC || ndgFile.type !== 'scene') {
477
+ return null;
478
+ }
479
+ const importer = new NdgImporter();
480
+ const result = await importer.parseFile(ndgJson, 'inline.ndg');
481
+ if (result && 'name' in result) {
482
+ return importer['convertParsedToNiceScene'](result);
483
+ }
484
+ return null;
485
+ }
486
+ catch (_a) {
487
+ return null;
488
+ }
489
+ }
490
+
491
+ exports.NdgBidirectionalSync = NdgBidirectionalSync;
492
+ exports.NdgExporter = NdgExporter;
493
+ exports.NdgImporter = NdgImporter;
494
+ exports.createBidirectionalSync = createBidirectionalSync;
495
+ exports.createNdgExporter = createNdgExporter;
496
+ exports.createNdgImporter = createNdgImporter;
497
+ exports.ndgToScene = ndgToScene;
498
+ exports.sceneToNdg = sceneToNdg;
499
+ //# sourceMappingURL=NdgFormat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NdgFormat.js","sources":["../../../src/import/NdgFormat.ts"],"sourcesContent":[null],"names":["SceneImporter"],"mappings":"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"}