@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,517 @@
1
+ import { SceneImporter } from './SceneImporter.js';
2
+
3
+ /**
4
+ * @file RPGMakerImporter.ts
5
+ * @description RPG Maker Map Importer
6
+ * PRO-1.3: Scene Format Interoperability
7
+ *
8
+ * Supports RPG Maker MV/MZ JSON map format.
9
+ *
10
+ * File Types:
11
+ * - Map*.json - Map files
12
+ * - Tilesets.json - Tileset definitions
13
+ * - Actors.json, Enemies.json, etc. - Database files
14
+ */
15
+ // ============================================================
16
+ // RPG Maker Tile Constants
17
+ // ============================================================
18
+ const TILE_SIZE = 48;
19
+ // Event trigger types
20
+ const TRIGGER_ACTION_BUTTON = 0;
21
+ const TRIGGER_PLAYER_TOUCH = 1;
22
+ const TRIGGER_EVENT_TOUCH = 2;
23
+ const TRIGGER_AUTORUN = 3;
24
+ const TRIGGER_PARALLEL = 4;
25
+ // Event priority types
26
+ const PRIORITY_BELOW = 0;
27
+ const PRIORITY_SAME = 1;
28
+ const PRIORITY_ABOVE = 2;
29
+ // ============================================================
30
+ // RPG Maker Importer
31
+ // ============================================================
32
+ class RPGMakerImporter extends SceneImporter {
33
+ constructor() {
34
+ super('rpgmaker');
35
+ this.tilesets = new Map();
36
+ this.commonEvents = new Map();
37
+ }
38
+ canHandle(filePath) {
39
+ const name = filePath.toLowerCase();
40
+ return (name.endsWith('.json') &&
41
+ (name.includes('map') ||
42
+ name.includes('tilesets') ||
43
+ name.includes('actors') ||
44
+ name.includes('commonevents')));
45
+ }
46
+ async import(options) {
47
+ const startTime = Date.now();
48
+ this.options = options;
49
+ this.clearMessages();
50
+ const scenes = [];
51
+ const assets = [];
52
+ try {
53
+ const content = await this.readFile(options.sourcePath);
54
+ const data = JSON.parse(content);
55
+ const fileName = options.sourcePath.toLowerCase();
56
+ // Load tilesets if available
57
+ if (options.resolveDependencies) {
58
+ try {
59
+ const tilesetsPath = this.getDataPath(options.sourcePath, 'Tilesets.json');
60
+ const tilesetsContent = await this.readFile(tilesetsPath);
61
+ const tilesetsData = JSON.parse(tilesetsContent);
62
+ for (const tileset of tilesetsData) {
63
+ if (tileset) {
64
+ this.tilesets.set(tileset.id, tileset);
65
+ }
66
+ }
67
+ }
68
+ catch (_a) {
69
+ this.addWarning('TILESETS_NOT_FOUND', 'Tilesets.json not found', options.sourcePath);
70
+ }
71
+ }
72
+ // Determine file type and process
73
+ if (this.isMapFile(fileName, data)) {
74
+ const map = data;
75
+ const scene = this.convertMapToScene(map, options.sourcePath);
76
+ scenes.push(scene);
77
+ // Extract tileset assets
78
+ const tileset = this.tilesets.get(map.tilesetId);
79
+ if (tileset) {
80
+ for (const tilesetName of tileset.tilesetNames) {
81
+ if (tilesetName) {
82
+ assets.push({
83
+ id: this.generateId(),
84
+ name: tilesetName,
85
+ type: 'tileset',
86
+ path: `img/tilesets/${tilesetName}.png`,
87
+ data: { rpgMaker: true },
88
+ });
89
+ }
90
+ }
91
+ }
92
+ // Extract character assets from events
93
+ for (const event of map.events) {
94
+ if (event) {
95
+ for (const page of event.pages) {
96
+ if (page.image.characterName) {
97
+ assets.push({
98
+ id: this.generateId(),
99
+ name: page.image.characterName,
100
+ type: 'texture',
101
+ path: `img/characters/${page.image.characterName}.png`,
102
+ data: { characterIndex: page.image.characterIndex },
103
+ });
104
+ }
105
+ }
106
+ }
107
+ }
108
+ }
109
+ else if (fileName.includes('tilesets')) {
110
+ // Process tilesets database
111
+ const tilesetsData = data;
112
+ for (const tileset of tilesetsData) {
113
+ if (tileset) {
114
+ for (const tilesetName of tileset.tilesetNames) {
115
+ if (tilesetName) {
116
+ assets.push({
117
+ id: this.generateId(),
118
+ name: tilesetName,
119
+ type: 'tileset',
120
+ path: `img/tilesets/${tilesetName}.png`,
121
+ data: {
122
+ rpgMakerId: tileset.id,
123
+ mode: tileset.mode,
124
+ },
125
+ });
126
+ }
127
+ }
128
+ }
129
+ }
130
+ }
131
+ }
132
+ catch (error) {
133
+ this.addError('IMPORT_ERROR', `Failed to import: ${error}`, options.sourcePath, undefined, true);
134
+ }
135
+ return this.createResult(scenes, assets, startTime);
136
+ }
137
+ async parseFile(content, filePath) {
138
+ const stringContent = typeof content === 'string' ? content : new TextDecoder().decode(content);
139
+ try {
140
+ const data = JSON.parse(stringContent);
141
+ const fileName = filePath.toLowerCase();
142
+ if (this.isMapFile(fileName, data)) {
143
+ return this.convertMapToParsed(data);
144
+ }
145
+ }
146
+ catch (_a) {
147
+ return null;
148
+ }
149
+ return null;
150
+ }
151
+ async validate(sourcePath) {
152
+ const errors = [];
153
+ if (!this.canHandle(sourcePath)) {
154
+ errors.push({
155
+ code: 'INVALID_FORMAT',
156
+ message: `File ${sourcePath} is not a valid RPG Maker file`,
157
+ file: sourcePath,
158
+ fatal: true,
159
+ });
160
+ }
161
+ return errors;
162
+ }
163
+ // ----------------------------------------
164
+ // Type Checks
165
+ // ----------------------------------------
166
+ isMapFile(fileName, data) {
167
+ const obj = data;
168
+ return ((fileName.includes('map') || fileName.match(/map\d+\.json$/i) !== null) &&
169
+ typeof obj === 'object' &&
170
+ obj !== null &&
171
+ 'width' in obj &&
172
+ 'height' in obj &&
173
+ 'data' in obj &&
174
+ 'events' in obj);
175
+ }
176
+ // ----------------------------------------
177
+ // Map Conversion
178
+ // ----------------------------------------
179
+ convertMapToScene(map, sourcePath) {
180
+ const name = map.displayName || this.extractFileName(sourcePath);
181
+ const entities = [];
182
+ // Create tilemap layers (RPG Maker has 6 layers in data array)
183
+ const layers = this.createTilemapLayers(map);
184
+ entities.push(...layers);
185
+ // Convert events
186
+ for (const event of map.events) {
187
+ if (event) {
188
+ entities.push(this.convertEvent(event, map));
189
+ }
190
+ }
191
+ // Create parallax if present
192
+ if (map.parallaxName) {
193
+ entities.push(this.createParallaxEntity(map));
194
+ }
195
+ return {
196
+ id: this.generateId(),
197
+ name,
198
+ entities,
199
+ settings: {
200
+ width: map.width * TILE_SIZE,
201
+ height: map.height * TILE_SIZE,
202
+ backgroundColor: '#000000',
203
+ tilesetId: map.tilesetId,
204
+ encounterStep: map.encounterStep,
205
+ scrollType: map.scrollType,
206
+ autoplayBgm: map.autoplayBgm,
207
+ autoplayBgs: map.autoplayBgs,
208
+ bgm: map.bgm,
209
+ bgs: map.bgs,
210
+ note: map.note,
211
+ },
212
+ };
213
+ }
214
+ convertMapToParsed(map) {
215
+ const layers = [];
216
+ const entities = [];
217
+ // Create tile layers
218
+ const layerNames = ['Ground', 'Ground2', 'Upper', 'Upper2', 'Shadow', 'Region'];
219
+ for (let z = 0; z < 6; z++) {
220
+ const layerData = this.extractLayerData(map.data, z, map.width, map.height);
221
+ layers.push({
222
+ name: layerNames[z],
223
+ type: z === 4 ? 'object' : 'tile', // Shadow layer is special
224
+ visible: z !== 5, // Region layer is hidden
225
+ opacity: 1,
226
+ offsetX: 0,
227
+ offsetY: 0,
228
+ zIndex: z,
229
+ tileData: {
230
+ width: map.width,
231
+ height: map.height,
232
+ tiles: layerData,
233
+ tileWidth: TILE_SIZE,
234
+ tileHeight: TILE_SIZE,
235
+ },
236
+ properties: {},
237
+ });
238
+ }
239
+ // Convert events
240
+ for (const event of map.events) {
241
+ if (event) {
242
+ entities.push(this.convertEventToParsed(event));
243
+ }
244
+ }
245
+ return {
246
+ name: map.displayName || 'RPG Maker Map',
247
+ width: map.width * TILE_SIZE,
248
+ height: map.height * TILE_SIZE,
249
+ backgroundColor: '#000000',
250
+ layers,
251
+ entities,
252
+ properties: {
253
+ tilesetId: map.tilesetId,
254
+ note: map.note,
255
+ },
256
+ };
257
+ }
258
+ // ----------------------------------------
259
+ // Tilemap Layers
260
+ // ----------------------------------------
261
+ createTilemapLayers(map) {
262
+ const entities = [];
263
+ const layerNames = ['Ground', 'Ground2', 'Upper', 'Upper2', 'Shadow', 'Region'];
264
+ for (let z = 0; z < 6; z++) {
265
+ const layerData = this.extractLayerData(map.data, z, map.width, map.height);
266
+ entities.push({
267
+ id: this.generateId(),
268
+ name: layerNames[z],
269
+ components: [
270
+ {
271
+ type: 'Transform',
272
+ data: {
273
+ position: { x: 0, y: 0 },
274
+ rotation: 0,
275
+ scale: { x: 1, y: 1 },
276
+ },
277
+ },
278
+ {
279
+ type: 'Tilemap',
280
+ data: {
281
+ width: map.width,
282
+ height: map.height,
283
+ tileWidth: TILE_SIZE,
284
+ tileHeight: TILE_SIZE,
285
+ data: layerData,
286
+ tilesetId: map.tilesetId,
287
+ layerIndex: z,
288
+ visible: z !== 5, // Hide region layer
289
+ },
290
+ },
291
+ ],
292
+ children: [],
293
+ tags: ['tilemap', layerNames[z].toLowerCase()],
294
+ active: true,
295
+ });
296
+ }
297
+ return entities;
298
+ }
299
+ extractLayerData(data, layer, width, height) {
300
+ const layerData = [];
301
+ const layerSize = width * height;
302
+ const startIndex = layer * layerSize;
303
+ for (let i = 0; i < layerSize; i++) {
304
+ layerData.push(data[startIndex + i]);
305
+ }
306
+ return layerData;
307
+ }
308
+ // ----------------------------------------
309
+ // Event Conversion
310
+ // ----------------------------------------
311
+ convertEvent(event, map) {
312
+ const activePage = this.getActivePage(event);
313
+ const components = [
314
+ {
315
+ type: 'Transform',
316
+ data: {
317
+ position: {
318
+ x: event.x * TILE_SIZE + TILE_SIZE / 2,
319
+ y: event.y * TILE_SIZE + TILE_SIZE / 2,
320
+ },
321
+ rotation: 0,
322
+ scale: { x: 1, y: 1 },
323
+ },
324
+ },
325
+ ];
326
+ // Add sprite if event has image
327
+ if (activePage && activePage.image.characterName) {
328
+ components.push({
329
+ type: 'Sprite',
330
+ data: {
331
+ texture: activePage.image.characterName,
332
+ characterIndex: activePage.image.characterIndex,
333
+ direction: activePage.image.direction,
334
+ pattern: activePage.image.pattern,
335
+ animation: activePage.walkAnime || activePage.stepAnime,
336
+ },
337
+ });
338
+ }
339
+ else if (activePage && activePage.image.tileId > 0) {
340
+ components.push({
341
+ type: 'Sprite',
342
+ data: {
343
+ tileId: activePage.image.tileId,
344
+ tilesetId: map.tilesetId,
345
+ },
346
+ });
347
+ }
348
+ // Add event trigger component
349
+ if (activePage) {
350
+ components.push({
351
+ type: 'EventTrigger',
352
+ data: {
353
+ trigger: this.getTriggerName(activePage.trigger),
354
+ priority: this.getPriorityName(activePage.priorityType),
355
+ moveType: activePage.moveType,
356
+ moveSpeed: activePage.moveSpeed,
357
+ moveFrequency: activePage.moveFrequency,
358
+ directionFix: activePage.directionFix,
359
+ through: activePage.through,
360
+ },
361
+ });
362
+ // Add event commands as script
363
+ if (activePage.list.length > 0) {
364
+ components.push({
365
+ type: 'EventScript',
366
+ data: {
367
+ commands: this.simplifyCommands(activePage.list),
368
+ conditions: activePage.conditions,
369
+ },
370
+ });
371
+ }
372
+ }
373
+ return {
374
+ id: event.id.toString(),
375
+ name: event.name,
376
+ components,
377
+ children: [],
378
+ tags: ['event'],
379
+ active: true,
380
+ };
381
+ }
382
+ convertEventToParsed(event) {
383
+ const activePage = this.getActivePage(event);
384
+ return {
385
+ id: event.id.toString(),
386
+ name: event.name,
387
+ type: 'Event',
388
+ x: event.x * TILE_SIZE + TILE_SIZE / 2,
389
+ y: event.y * TILE_SIZE + TILE_SIZE / 2,
390
+ width: TILE_SIZE,
391
+ height: TILE_SIZE,
392
+ rotation: 0,
393
+ scaleX: 1,
394
+ scaleY: 1,
395
+ visible: true,
396
+ components: [],
397
+ children: [],
398
+ properties: {
399
+ note: event.note,
400
+ pages: event.pages.length,
401
+ trigger: activePage ? this.getTriggerName(activePage.trigger) : 'none',
402
+ characterName: activePage === null || activePage === void 0 ? void 0 : activePage.image.characterName,
403
+ characterIndex: activePage === null || activePage === void 0 ? void 0 : activePage.image.characterIndex,
404
+ },
405
+ };
406
+ }
407
+ getActivePage(event) {
408
+ // In editor context, return first page
409
+ // In runtime, would evaluate conditions
410
+ return event.pages.length > 0 ? event.pages[0] : null;
411
+ }
412
+ getTriggerName(trigger) {
413
+ switch (trigger) {
414
+ case TRIGGER_ACTION_BUTTON:
415
+ return 'action';
416
+ case TRIGGER_PLAYER_TOUCH:
417
+ return 'playerTouch';
418
+ case TRIGGER_EVENT_TOUCH:
419
+ return 'eventTouch';
420
+ case TRIGGER_AUTORUN:
421
+ return 'autorun';
422
+ case TRIGGER_PARALLEL:
423
+ return 'parallel';
424
+ default:
425
+ return 'action';
426
+ }
427
+ }
428
+ getPriorityName(priority) {
429
+ switch (priority) {
430
+ case PRIORITY_BELOW:
431
+ return 'below';
432
+ case PRIORITY_SAME:
433
+ return 'same';
434
+ case PRIORITY_ABOVE:
435
+ return 'above';
436
+ default:
437
+ return 'same';
438
+ }
439
+ }
440
+ simplifyCommands(commands) {
441
+ return commands.map((cmd) => ({
442
+ code: cmd.code,
443
+ indent: cmd.indent,
444
+ params: cmd.parameters,
445
+ }));
446
+ }
447
+ // ----------------------------------------
448
+ // Parallax
449
+ // ----------------------------------------
450
+ createParallaxEntity(map) {
451
+ return {
452
+ id: this.generateId(),
453
+ name: 'Parallax',
454
+ components: [
455
+ {
456
+ type: 'Transform',
457
+ data: {
458
+ position: { x: 0, y: 0 },
459
+ rotation: 0,
460
+ scale: { x: 1, y: 1 },
461
+ },
462
+ },
463
+ {
464
+ type: 'Parallax',
465
+ data: {
466
+ texture: map.parallaxName,
467
+ loopX: map.parallaxLoopX,
468
+ loopY: map.parallaxLoopY,
469
+ scrollX: map.parallaxSx,
470
+ scrollY: map.parallaxSy,
471
+ visible: map.parallaxShow,
472
+ },
473
+ },
474
+ ],
475
+ children: [],
476
+ tags: ['parallax'],
477
+ active: true,
478
+ };
479
+ }
480
+ // ----------------------------------------
481
+ // Utilities
482
+ // ----------------------------------------
483
+ async readFile(path) {
484
+ var _a;
485
+ if (typeof globalThis.process !== 'undefined' && ((_a = globalThis.process.versions) === null || _a === void 0 ? void 0 : _a.node)) {
486
+ const fs = await import('fs');
487
+ return fs.readFileSync(path, 'utf-8');
488
+ }
489
+ else if (typeof fetch !== 'undefined') {
490
+ const response = await fetch(path);
491
+ return response.text();
492
+ }
493
+ throw new Error('Unable to read file in current environment');
494
+ }
495
+ getDataPath(sourcePath, fileName) {
496
+ const dir = sourcePath.substring(0, sourcePath.lastIndexOf('/') + 1);
497
+ // Navigate to data folder
498
+ if (dir.includes('/data/')) {
499
+ return dir + fileName;
500
+ }
501
+ return dir + 'data/' + fileName;
502
+ }
503
+ extractFileName(path) {
504
+ const name = path.substring(path.lastIndexOf('/') + 1);
505
+ const dotIndex = name.lastIndexOf('.');
506
+ return dotIndex > 0 ? name.substring(0, dotIndex) : name;
507
+ }
508
+ }
509
+ // ============================================================
510
+ // Factory Function
511
+ // ============================================================
512
+ function createRPGMakerImporter() {
513
+ return new RPGMakerImporter();
514
+ }
515
+
516
+ export { RPGMakerImporter, createRPGMakerImporter };
517
+ //# sourceMappingURL=RPGMakerImporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RPGMakerImporter.js","sources":["../../../src/import/RPGMakerImporter.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}