rmxp_extractor 1.8 → 1.9

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 (411) hide show
  1. checksums.yaml +4 -4
  2. data/CODE_OF_CONDUCT.md +74 -74
  3. data/Gemfile +13 -13
  4. data/Gemfile.lock +1 -1
  5. data/LICENSE.txt +21 -21
  6. data/README.md +35 -35
  7. data/Rakefile +6 -6
  8. data/bin/rmxp_extractor +13 -13
  9. data/bin/setup +8 -8
  10. data/diff_check.rb +13 -13
  11. data/lib/rmxp_extractor/classnames.rb +227 -245
  12. data/lib/rmxp_extractor/data_export.rb +80 -82
  13. data/lib/rmxp_extractor/data_import.rb +74 -69
  14. data/lib/rmxp_extractor/ron.rb +144 -144
  15. data/lib/rmxp_extractor/script_handler.rb +85 -85
  16. data/lib/rmxp_extractor/version.rb +3 -3
  17. data/lib/rmxp_extractor.rb +46 -46
  18. data/rmxp_extractor.gemspec +30 -30
  19. data/spec/spec_helper.rb +100 -100
  20. metadata +2 -393
  21. data/Data/Actors.rxdata +0 -0
  22. data/Data/Animations.rxdata +0 -0
  23. data/Data/Armors.rxdata +0 -0
  24. data/Data/Classes.rxdata +0 -0
  25. data/Data/CommonEvents.rxdata +0 -0
  26. data/Data/Enemies.rxdata +0 -0
  27. data/Data/Items.rxdata +0 -0
  28. data/Data/Map001.rxdata +0 -0
  29. data/Data/Map002.rxdata +0 -0
  30. data/Data/Map003.rxdata +0 -0
  31. data/Data/Map004.rxdata +0 -0
  32. data/Data/Map005.rxdata +0 -0
  33. data/Data/Map006.rxdata +0 -0
  34. data/Data/Map007.rxdata +0 -0
  35. data/Data/Map008.rxdata +0 -0
  36. data/Data/Map009.rxdata +0 -0
  37. data/Data/Map010.rxdata +0 -0
  38. data/Data/Map011.rxdata +0 -0
  39. data/Data/Map012.rxdata +0 -0
  40. data/Data/Map013.rxdata +0 -0
  41. data/Data/Map014.rxdata +0 -0
  42. data/Data/Map015.rxdata +0 -0
  43. data/Data/Map016.rxdata +0 -0
  44. data/Data/Map017.rxdata +0 -0
  45. data/Data/Map018.rxdata +0 -0
  46. data/Data/Map019.rxdata +0 -0
  47. data/Data/Map020.rxdata +0 -0
  48. data/Data/Map021.rxdata +0 -0
  49. data/Data/Map022.rxdata +0 -0
  50. data/Data/Map023.rxdata +0 -0
  51. data/Data/Map024.rxdata +0 -0
  52. data/Data/Map025.rxdata +0 -0
  53. data/Data/Map026.rxdata +0 -0
  54. data/Data/Map027.rxdata +0 -0
  55. data/Data/Map028.rxdata +0 -0
  56. data/Data/Map029.rxdata +0 -0
  57. data/Data/Map030.rxdata +0 -0
  58. data/Data/Map031.rxdata +0 -0
  59. data/Data/Map032.rxdata +0 -0
  60. data/Data/Map033.rxdata +0 -0
  61. data/Data/Map034.rxdata +0 -0
  62. data/Data/Map035.rxdata +0 -0
  63. data/Data/Map036.rxdata +0 -0
  64. data/Data/Map037.rxdata +0 -0
  65. data/Data/Map038.rxdata +0 -0
  66. data/Data/Map039.rxdata +0 -0
  67. data/Data/Map040.rxdata +0 -0
  68. data/Data/Map041.rxdata +0 -0
  69. data/Data/Map042.rxdata +0 -0
  70. data/Data/Map043.rxdata +0 -0
  71. data/Data/Map044.rxdata +0 -0
  72. data/Data/Map045.rxdata +0 -0
  73. data/Data/Map046.rxdata +0 -0
  74. data/Data/Map047.rxdata +0 -0
  75. data/Data/Map048.rxdata +0 -0
  76. data/Data/Map049.rxdata +0 -0
  77. data/Data/Map050.rxdata +0 -0
  78. data/Data/Map051.rxdata +0 -0
  79. data/Data/Map052.rxdata +0 -0
  80. data/Data/Map053.rxdata +0 -0
  81. data/Data/Map054.rxdata +0 -0
  82. data/Data/Map055.rxdata +0 -0
  83. data/Data/Map056.rxdata +0 -0
  84. data/Data/Map057.rxdata +0 -0
  85. data/Data/Map058.rxdata +0 -0
  86. data/Data/Map059.rxdata +0 -0
  87. data/Data/Map060.rxdata +0 -0
  88. data/Data/Map061.rxdata +0 -0
  89. data/Data/Map062.rxdata +0 -0
  90. data/Data/Map063.rxdata +0 -0
  91. data/Data/Map064.rxdata +0 -0
  92. data/Data/Map065.rxdata +0 -0
  93. data/Data/Map066.rxdata +0 -0
  94. data/Data/Map067.rxdata +0 -0
  95. data/Data/Map068.rxdata +0 -0
  96. data/Data/Map069.rxdata +0 -0
  97. data/Data/Map070.rxdata +0 -0
  98. data/Data/Map071.rxdata +0 -0
  99. data/Data/Map072.rxdata +0 -0
  100. data/Data/Map073.rxdata +0 -0
  101. data/Data/Map074.rxdata +0 -0
  102. data/Data/Map075.rxdata +0 -0
  103. data/Data/Map076.rxdata +0 -0
  104. data/Data/Map077.rxdata +0 -0
  105. data/Data/Map078.rxdata +0 -0
  106. data/Data/Map079.rxdata +0 -0
  107. data/Data/Map080.rxdata +0 -0
  108. data/Data/Map081.rxdata +0 -0
  109. data/Data/Map082.rxdata +0 -0
  110. data/Data/Map083.rxdata +0 -0
  111. data/Data/Map084.rxdata +0 -0
  112. data/Data/Map085.rxdata +0 -0
  113. data/Data/Map086.rxdata +0 -0
  114. data/Data/Map087.rxdata +0 -0
  115. data/Data/Map088.rxdata +0 -0
  116. data/Data/Map089.rxdata +0 -0
  117. data/Data/Map090.rxdata +0 -0
  118. data/Data/Map091.rxdata +0 -0
  119. data/Data/Map092.rxdata +0 -0
  120. data/Data/Map093.rxdata +0 -0
  121. data/Data/Map094.rxdata +0 -0
  122. data/Data/Map095.rxdata +0 -0
  123. data/Data/Map096.rxdata +0 -0
  124. data/Data/Map097.rxdata +0 -0
  125. data/Data/Map098.rxdata +0 -0
  126. data/Data/Map099.rxdata +0 -0
  127. data/Data/Map100.rxdata +0 -0
  128. data/Data/Map101.rxdata +0 -0
  129. data/Data/Map102.rxdata +0 -0
  130. data/Data/Map103.rxdata +0 -0
  131. data/Data/Map104.rxdata +0 -0
  132. data/Data/Map105.rxdata +0 -0
  133. data/Data/Map106.rxdata +0 -0
  134. data/Data/Map107.rxdata +0 -0
  135. data/Data/Map108.rxdata +0 -0
  136. data/Data/Map109.rxdata +0 -0
  137. data/Data/Map110.rxdata +0 -0
  138. data/Data/Map111.rxdata +0 -0
  139. data/Data/Map112.rxdata +0 -0
  140. data/Data/Map113.rxdata +0 -0
  141. data/Data/Map114.rxdata +0 -0
  142. data/Data/Map115.rxdata +0 -0
  143. data/Data/Map116.rxdata +0 -0
  144. data/Data/Map117.rxdata +0 -0
  145. data/Data/Map118.rxdata +0 -0
  146. data/Data/Map119.rxdata +0 -0
  147. data/Data/Map120.rxdata +0 -0
  148. data/Data/Map121.rxdata +0 -0
  149. data/Data/Map122.rxdata +0 -0
  150. data/Data/Map123.rxdata +0 -0
  151. data/Data/Map124.rxdata +0 -0
  152. data/Data/Map125.rxdata +0 -0
  153. data/Data/Map126.rxdata +0 -0
  154. data/Data/Map127.rxdata +0 -0
  155. data/Data/Map128.rxdata +0 -0
  156. data/Data/Map129.rxdata +0 -0
  157. data/Data/Map130.rxdata +0 -0
  158. data/Data/Map131.rxdata +0 -0
  159. data/Data/Map132.rxdata +0 -0
  160. data/Data/Map133.rxdata +0 -0
  161. data/Data/Map134.rxdata +0 -0
  162. data/Data/Map135.rxdata +0 -0
  163. data/Data/Map136.rxdata +0 -0
  164. data/Data/Map137.rxdata +0 -0
  165. data/Data/Map138.rxdata +0 -0
  166. data/Data/Map139.rxdata +0 -0
  167. data/Data/Map140.rxdata +0 -0
  168. data/Data/Map141.rxdata +0 -0
  169. data/Data/Map142.rxdata +0 -0
  170. data/Data/Map143.rxdata +0 -0
  171. data/Data/Map144.rxdata +0 -0
  172. data/Data/Map145.rxdata +0 -0
  173. data/Data/Map146.rxdata +0 -0
  174. data/Data/Map147.rxdata +0 -0
  175. data/Data/Map148.rxdata +0 -0
  176. data/Data/Map149.rxdata +0 -0
  177. data/Data/Map150.rxdata +0 -0
  178. data/Data/Map151.rxdata +0 -0
  179. data/Data/Map152.rxdata +0 -0
  180. data/Data/Map153.rxdata +0 -0
  181. data/Data/Map154.rxdata +0 -0
  182. data/Data/Map155.rxdata +0 -0
  183. data/Data/Map156.rxdata +0 -0
  184. data/Data/Map157.rxdata +0 -0
  185. data/Data/Map158.rxdata +0 -0
  186. data/Data/Map159.rxdata +0 -0
  187. data/Data/Map160.rxdata +0 -0
  188. data/Data/Map161.rxdata +0 -0
  189. data/Data/Map162.rxdata +0 -0
  190. data/Data/Map163.rxdata +0 -0
  191. data/Data/Map164.rxdata +0 -0
  192. data/Data/Map165.rxdata +0 -0
  193. data/Data/Map166.rxdata +0 -0
  194. data/Data/Map167.rxdata +0 -0
  195. data/Data/Map168.rxdata +0 -0
  196. data/Data/Map169.rxdata +0 -0
  197. data/Data/Map170.rxdata +0 -0
  198. data/Data/Map171.rxdata +0 -0
  199. data/Data/Map172.rxdata +0 -0
  200. data/Data/Map173.rxdata +0 -0
  201. data/Data/Map174.rxdata +0 -0
  202. data/Data/Map175.rxdata +0 -0
  203. data/Data/Map176.rxdata +0 -0
  204. data/Data/Map177.rxdata +0 -0
  205. data/Data/Map178.rxdata +0 -0
  206. data/Data/Map179.rxdata +0 -0
  207. data/Data/Map180.rxdata +0 -0
  208. data/Data/Map181.rxdata +0 -0
  209. data/Data/Map182.rxdata +0 -0
  210. data/Data/Map183.rxdata +0 -0
  211. data/Data/Map184.rxdata +0 -0
  212. data/Data/Map185.rxdata +0 -0
  213. data/Data/Map186.rxdata +0 -0
  214. data/Data/Map187.rxdata +0 -0
  215. data/Data/Map188.rxdata +0 -0
  216. data/Data/Map189.rxdata +0 -0
  217. data/Data/Map190.rxdata +0 -0
  218. data/Data/Map191.rxdata +0 -0
  219. data/Data/Map192.rxdata +0 -0
  220. data/Data/Map193.rxdata +0 -0
  221. data/Data/Map194.rxdata +0 -0
  222. data/Data/Map195.rxdata +0 -0
  223. data/Data/Map196.rxdata +0 -0
  224. data/Data/Map197.rxdata +0 -0
  225. data/Data/Map198.rxdata +0 -0
  226. data/Data/Map199.rxdata +0 -0
  227. data/Data/Map200.rxdata +0 -0
  228. data/Data/Map201.rxdata +0 -0
  229. data/Data/Map202.rxdata +0 -0
  230. data/Data/Map203.rxdata +0 -0
  231. data/Data/Map204.rxdata +0 -0
  232. data/Data/Map205.rxdata +0 -0
  233. data/Data/Map206.rxdata +0 -0
  234. data/Data/Map207.rxdata +0 -0
  235. data/Data/Map208.rxdata +0 -0
  236. data/Data/Map209.rxdata +0 -0
  237. data/Data/Map210.rxdata +0 -0
  238. data/Data/Map211.rxdata +0 -0
  239. data/Data/Map212.rxdata +0 -0
  240. data/Data/Map213.rxdata +0 -0
  241. data/Data/Map214.rxdata +0 -0
  242. data/Data/Map215.rxdata +0 -0
  243. data/Data/Map216.rxdata +0 -0
  244. data/Data/Map217.rxdata +0 -0
  245. data/Data/Map218.rxdata +0 -0
  246. data/Data/Map219.rxdata +0 -0
  247. data/Data/Map220.rxdata +0 -0
  248. data/Data/Map221.rxdata +0 -0
  249. data/Data/Map222.rxdata +0 -0
  250. data/Data/Map223.rxdata +0 -0
  251. data/Data/Map224.rxdata +0 -0
  252. data/Data/Map225.rxdata +0 -0
  253. data/Data/Map226.rxdata +0 -0
  254. data/Data/Map227.rxdata +0 -0
  255. data/Data/Map228.rxdata +0 -0
  256. data/Data/Map229.rxdata +0 -0
  257. data/Data/Map230.rxdata +0 -0
  258. data/Data/Map231.rxdata +0 -0
  259. data/Data/Map232.rxdata +0 -0
  260. data/Data/Map233.rxdata +0 -0
  261. data/Data/Map234.rxdata +0 -0
  262. data/Data/Map235.rxdata +0 -0
  263. data/Data/Map236.rxdata +0 -0
  264. data/Data/Map237.rxdata +0 -0
  265. data/Data/Map238.rxdata +0 -0
  266. data/Data/Map239.rxdata +0 -0
  267. data/Data/Map240.rxdata +0 -0
  268. data/Data/Map241.rxdata +0 -0
  269. data/Data/Map242.rxdata +0 -0
  270. data/Data/Map243.rxdata +0 -0
  271. data/Data/Map244.rxdata +0 -0
  272. data/Data/Map245.rxdata +0 -0
  273. data/Data/Map246.rxdata +0 -0
  274. data/Data/Map247.rxdata +0 -0
  275. data/Data/Map248.rxdata +0 -0
  276. data/Data/Map249.rxdata +0 -0
  277. data/Data/Map250.rxdata +0 -0
  278. data/Data/Map251.rxdata +0 -0
  279. data/Data/Map252.rxdata +0 -0
  280. data/Data/Map253.rxdata +0 -0
  281. data/Data/Map254.rxdata +0 -0
  282. data/Data/Map255.rxdata +0 -0
  283. data/Data/Map256.rxdata +0 -0
  284. data/Data/Map257.rxdata +0 -0
  285. data/Data/Map258.rxdata +0 -0
  286. data/Data/Map259.rxdata +0 -0
  287. data/Data/Map260.rxdata +0 -0
  288. data/Data/Map261.rxdata +0 -0
  289. data/Data/Map262.rxdata +0 -0
  290. data/Data/Map263.rxdata +0 -0
  291. data/Data/MapInfos.rxdata +0 -0
  292. data/Data/Scripts.rxdata +0 -0
  293. data/Data/Skills.rxdata +0 -0
  294. data/Data/States.rxdata +0 -0
  295. data/Data/System.rxdata +0 -0
  296. data/Data/Tilesets.rxdata +0 -0
  297. data/Data/Troops.rxdata +0 -0
  298. data/Data/Weapons.rxdata +0 -0
  299. data/Data/xScripts.rxdata +0 -0
  300. data/Scripts/Credits_Message.rb +0 -259
  301. data/Scripts/Data_FastTravel.rb +0 -50
  302. data/Scripts/Data_Footsteps.rb +0 -77
  303. data/Scripts/Data_Item.rb +0 -50
  304. data/Scripts/Data_SpecialEventData.rb +0 -60
  305. data/Scripts/Demo.rb +0 -7
  306. data/Scripts/Desktop_Message.rb +0 -210
  307. data/Scripts/Doc_Message.rb +0 -273
  308. data/Scripts/EdText.rb +0 -50
  309. data/Scripts/Ed_Message.rb +0 -234
  310. data/Scripts/FastTravel.rb +0 -175
  311. data/Scripts/Game_Actor.rb +0 -156
  312. data/Scripts/Game_Actors.rb +0 -28
  313. data/Scripts/Game_BattleAction.rb +0 -145
  314. data/Scripts/Game_Battler 1.rb +0 -307
  315. data/Scripts/Game_Battler 2.rb +0 -294
  316. data/Scripts/Game_Battler 3.rb +0 -354
  317. data/Scripts/Game_Character 1.rb +0 -291
  318. data/Scripts/Game_Character 2.rb +0 -355
  319. data/Scripts/Game_Character 3.rb +0 -505
  320. data/Scripts/Game_CommonEvent.rb +0 -70
  321. data/Scripts/Game_Enemy.rb +0 -317
  322. data/Scripts/Game_Event.rb +0 -264
  323. data/Scripts/Game_FastTravel.rb +0 -40
  324. data/Scripts/Game_Follower.rb +0 -76
  325. data/Scripts/Game_Light.rb +0 -13
  326. data/Scripts/Game_Map.rb +0 -551
  327. data/Scripts/Game_Oneshot.rb +0 -83
  328. data/Scripts/Game_Party.rb +0 -380
  329. data/Scripts/Game_Picture.rb +0 -164
  330. data/Scripts/Game_Player.rb +0 -298
  331. data/Scripts/Game_Screen.rb +0 -148
  332. data/Scripts/Game_SelfSwitches.rb +0 -30
  333. data/Scripts/Game_Switches.rb +0 -45
  334. data/Scripts/Game_System.rb +0 -210
  335. data/Scripts/Game_Temp.rb +0 -145
  336. data/Scripts/Game_Variables.rb +0 -36
  337. data/Scripts/Interpreter 1.rb +0 -320
  338. data/Scripts/Interpreter 2.rb +0 -286
  339. data/Scripts/Interpreter 3.rb +0 -474
  340. data/Scripts/Interpreter 4.rb +0 -327
  341. data/Scripts/Interpreter 5.rb +0 -448
  342. data/Scripts/Interpreter 6.rb +0 -307
  343. data/Scripts/Interpreter 7.rb +0 -282
  344. data/Scripts/Main.rb +0 -50
  345. data/Scripts/Particles.rb +0 -141
  346. data/Scripts/Persistent.rb +0 -71
  347. data/Scripts/Puzzle_Film.rb +0 -14
  348. data/Scripts/Puzzle_Pixel.rb +0 -210
  349. data/Scripts/Puzzle_Safe.rb +0 -152
  350. data/Scripts/Puzzle_Sokoban.rb +0 -14
  351. data/Scripts/RPG.rb +0 -55
  352. data/Scripts/SaveLoad.rb +0 -275
  353. data/Scripts/Scene_Debug.rb +0 -190
  354. data/Scripts/Scene_End.rb +0 -108
  355. data/Scripts/Scene_Equip.rb +0 -222
  356. data/Scripts/Scene_File.rb +0 -111
  357. data/Scripts/Scene_Item.rb +0 -205
  358. data/Scripts/Scene_Load.rb +0 -106
  359. data/Scripts/Scene_Map.rb +0 -540
  360. data/Scripts/Scene_Menu.rb +0 -213
  361. data/Scripts/Scene_Name.rb +0 -113
  362. data/Scripts/Scene_Save.rb +0 -88
  363. data/Scripts/Scene_Skill.rb +0 -232
  364. data/Scripts/Scene_Status.rb +0 -78
  365. data/Scripts/Scene_Title.rb +0 -237
  366. data/Scripts/Script.rb +0 -780
  367. data/Scripts/Sprite_Battler.rb +0 -131
  368. data/Scripts/Sprite_Character.rb +0 -192
  369. data/Scripts/Sprite_Footprint.rb +0 -35
  370. data/Scripts/Sprite_Footsplash.rb +0 -54
  371. data/Scripts/Sprite_Light.rb +0 -18
  372. data/Scripts/Sprite_MapText.rb +0 -63
  373. data/Scripts/Sprite_Picture.rb +0 -72
  374. data/Scripts/Sprite_Timer.rb +0 -52
  375. data/Scripts/Spriteset_Map.rb +0 -370
  376. data/Scripts/Window_Base.rb +0 -327
  377. data/Scripts/Window_BattleResult.rb +0 -51
  378. data/Scripts/Window_BattleStatus.rb +0 -62
  379. data/Scripts/Window_Command.rb +0 -49
  380. data/Scripts/Window_DebugLeft.rb +0 -57
  381. data/Scripts/Window_DebugRight.rb +0 -69
  382. data/Scripts/Window_EquipItem.rb +0 -94
  383. data/Scripts/Window_EquipLeft.rb +0 -61
  384. data/Scripts/Window_EquipRight.rb +0 -56
  385. data/Scripts/Window_Gold.rb +0 -27
  386. data/Scripts/Window_Help.rb +0 -33
  387. data/Scripts/Window_InputNumber.rb +0 -111
  388. data/Scripts/Window_Item.rb +0 -229
  389. data/Scripts/Window_MainMenu.rb +0 -150
  390. data/Scripts/Window_MenuStatus.rb +0 -48
  391. data/Scripts/Window_Message.rb +0 -459
  392. data/Scripts/Window_NameEdit.rb +0 -108
  393. data/Scripts/Window_NameInput.rb +0 -262
  394. data/Scripts/Window_PartyCommand.rb +0 -42
  395. data/Scripts/Window_PlayTime.rb +0 -40
  396. data/Scripts/Window_SaveFile.rb +0 -91
  397. data/Scripts/Window_Selectable.rb +0 -203
  398. data/Scripts/Window_Settings.rb +0 -469
  399. data/Scripts/Window_ShopBuy.rb +0 -93
  400. data/Scripts/Window_ShopCommand.rb +0 -37
  401. data/Scripts/Window_ShopNumber.rb +0 -87
  402. data/Scripts/Window_ShopSell.rb +0 -94
  403. data/Scripts/Window_ShopStatus.rb +0 -107
  404. data/Scripts/Window_Skill.rb +0 -83
  405. data/Scripts/Window_SkillStatus.rb +0 -28
  406. data/Scripts/Window_Status.rb +0 -64
  407. data/Scripts/Window_Steps.rb +0 -26
  408. data/Scripts/Window_Target.rb +0 -49
  409. data/Scripts/_scripts.txt +0 -111
  410. data/Scripts/i18n_English.rb +0 -59
  411. data/Scripts/i18n_Language.rb +0 -130
@@ -1,69 +1,74 @@
1
- module RMXPExtractor
2
- def self.import(format)
3
- STDERR.puts "No Data_JSON Directory!" unless Dir.exists? "./Data_#{format.upcase}"
4
- exit 1 unless Dir.exists? "./Data_#{format.upcase}"
5
-
6
- require "oj"
7
- require "yaml"
8
- require "ruby-progressbar"
9
- require "fileutils"
10
- require "pathname"
11
- require "readline"
12
- require_relative "classnames"
13
- require_relative "script_handler"
14
-
15
- if format == "ron"
16
- puts "RON not supported for importing yet"
17
- exit 1
18
- end
19
-
20
- window_size = 120
21
- progress_format = "%a /%e |%B| %p%% %c/%C %r files/sec %t, currently processing: "
22
- progress = ProgressBar.create(
23
- format: progress_format,
24
- starting_at: 0,
25
- total: nil,
26
- output: $stderr,
27
- length: window_size,
28
- title: "imported",
29
- remainder_mark: "\e[0;30m█\e[0m",
30
- progress_mark: "█",
31
- unknown_progress_animation_steps: ["==>", ">==", "=>="],
32
- )
33
- Dir.mkdir "./Data" unless Dir.exists? "./Data"
34
- paths = Pathname.glob(("./Data_#{format.upcase}/" + ("*" + ".#{format}")))
35
- count = paths.size
36
- progress.total = count
37
- paths.each_with_index do |path, i|
38
- name = path.basename(".#{format}")
39
- progress.format = progress_format + name.to_s
40
- file_contents = path.read(mode: "rb")
41
- hash = case format
42
- when "json"
43
- Oj.load file_contents
44
- when "yaml"
45
- YAML.load file_contents
46
- when "toml"
47
- TomlRB.parse file_contents
48
- when "rb"
49
- eval file_contents # Yes, this SHOULD work. Is it bad? Yes.
50
- end
51
-
52
- warn "\n\e[33;1mWARNING: Incompatible version format in #{name.to_s}!\e[0m\n" if hash["version"] != VERSION
53
-
54
- case name.to_s
55
- when "xScripts", "Scripts"
56
- RMXPExtractor.rpgscript("./", "./Scripts", "#{name.to_s}")
57
- progress.increment
58
- return
59
- else
60
- content = create_from_rmxp_serialize(hash["data"])
61
- end
62
-
63
- rxdata = File.open("./Data/" + name.sub_ext(".rxdata").to_s, "wb")
64
- rxdata.puts Marshal.dump(content)
65
-
66
- progress.increment
67
- end
68
- end
69
- end
1
+ module RMXPExtractor
2
+ def self.import(format)
3
+ STDERR.puts "No Data_JSON Directory!" unless Dir.exists? "./Data_#{format.upcase}"
4
+ exit 1 unless Dir.exists? "./Data_#{format.upcase}"
5
+
6
+ require "oj"
7
+ require "yaml"
8
+ require "ruby-progressbar"
9
+ require "fileutils"
10
+ require "pathname"
11
+ require "readline"
12
+ require_relative "classnames"
13
+ require_relative "script_handler"
14
+
15
+ if format == "ron"
16
+ puts "RON not supported for importing yet"
17
+ exit 1
18
+ end
19
+
20
+ window_size = 120
21
+ progress_format = "%a /%e |%B| %p%% %c/%C %r files/sec %t, currently processing: "
22
+ progress = ProgressBar.create(
23
+ format: progress_format,
24
+ starting_at: 0,
25
+ total: nil,
26
+ output: $stderr,
27
+ length: window_size,
28
+ title: "imported",
29
+ remainder_mark: "\e[0;30m█\e[0m",
30
+ progress_mark: "█",
31
+ unknown_progress_animation_steps: ["==>", ">==", "=>="],
32
+ )
33
+ Dir.mkdir "./Data" unless Dir.exists? "./Data"
34
+ paths = Pathname.glob(("./Data_#{format.upcase}/" + ("*" + ".#{format}")))
35
+ count = paths.size
36
+ progress.total = count
37
+ paths.each_with_index do |path, i|
38
+ name = path.basename(".#{format}")
39
+ progress.format = progress_format + name.to_s
40
+ file_contents = path.read(mode: "rb")
41
+ hash = case format
42
+ when "json"
43
+ Oj.load file_contents
44
+ when "yaml"
45
+ YAML.load file_contents
46
+ when "rb"
47
+ eval file_contents # Yes, this SHOULD work. Is it bad? Yes.
48
+ end
49
+
50
+ warn "\n\e[33;1mWARNING: Incompatible version format in #{name.to_s}!\e[0m\n" if hash["version"] != VERSION
51
+
52
+ case name.to_s
53
+ when "xScripts", "Scripts"
54
+ RMXPExtractor.rpgscript("./", "./Scripts", "#{name.to_s}")
55
+ progress.increment
56
+ return
57
+ else
58
+ content = create_from_rmxp_serialize(hash["data"])
59
+ end
60
+
61
+ begin
62
+ dump = Marshal.dump(content)
63
+
64
+ rxdata = File.open("./Data/" + name.sub_ext(".rxdata").to_s, "wb")
65
+ rxdata.puts dump
66
+ rescue TypeError => e
67
+ puts "Failed to dump file #{path}.\n"
68
+ next
69
+ end
70
+
71
+ progress.increment
72
+ end
73
+ end
74
+ end
@@ -1,144 +1,144 @@
1
- # This file handles rusty object notation.
2
- require_relative "classnames"
3
-
4
- $indent = 0
5
-
6
- class Object
7
- def rmxp_serialize
8
- $indent += 2
9
- str = "#{self.class.name.split("::").last}(\n"
10
- self.instance_variables.each { |var| str += "#{" " * $indent}#{var.to_s.delete("@")}: #{self.instance_variable_get(var).rmxp_serialize},\n" }
11
- $indent -= 2
12
- str += "#{" " * $indent})"
13
- str
14
- end
15
- end
16
-
17
- class Table
18
- def rmxp_serialize
19
- str = "Table#{@num_of_dimensions}(\n"
20
- $indent += 2
21
- str += "#{" " * $indent}"
22
- str += case @num_of_dimensions
23
- when 1
24
- "xsize: #{@xsize},\n"
25
- when 2
26
- "xsize: #{@xsize}, ysize: #{@ysize},\n"
27
- when 3
28
- "xsize: #{@xsize}, ysize: #{@ysize}, zsize: #{@zsize},\n"
29
- end
30
- str += "#{" " * $indent}data: [\n"
31
- $indent += 2
32
- case @num_of_dimensions
33
- when 1
34
- str += "#{" " * $indent}"
35
- @elements.each_with_index do |e, index|
36
- str += "#{e}, "
37
- str += "\n#{" " * $indent}" if (index + 1) % 8 == 0
38
- end
39
- str += "\n"
40
- when 2
41
- @elements.each do |y|
42
- str += " " * $indent
43
- y.each { |e| str += "#{e}, " }
44
- str += "\n"
45
- end
46
- when 3
47
- @elements.each do |z|
48
- z.each do |y|
49
- str += " " * $indent
50
- y.each { |e| str += "#{e}, " }
51
- str += "\n"
52
- end
53
- str += "\n"
54
- end
55
- end
56
- $indent -= 2
57
- str += "#{" " * $indent}]\n"
58
- $indent -= 2
59
- str += "#{" " * $indent})"
60
- str
61
- end
62
- end
63
-
64
- class Hash
65
- def rmxp_serialize
66
- str = "{\n"
67
- $indent += 2
68
- self.each { |key, value| str += "#{" " * $indent}#{key.rmxp_serialize}: #{value.rmxp_serialize},\n" }
69
- $indent -= 2
70
- str += "#{" " * $indent}}"
71
- str
72
- end
73
- end
74
-
75
- # BAD BAD
76
- class NilClass
77
- def rmxp_serialize
78
- "None"
79
- end
80
- end
81
-
82
- class String
83
- def rmxp_serialize
84
- self.inspect
85
- end
86
- end
87
-
88
- class Array
89
- def rmxp_serialize
90
- unless self.empty?
91
- str = "[\n"
92
- $indent += 2
93
- self.each { |e| next unless e; str += "#{" " * $indent}#{e.rmxp_serialize},\n" }
94
- $indent -= 2
95
- str += "#{" " * $indent}]"
96
- else
97
- str = "[]"
98
- end
99
- str
100
- end
101
- end
102
-
103
- module RPG
104
- class EventCommand
105
- def rmxp_serialize
106
- str = "EventCommand(\n"
107
- $indent += 2
108
- str += "#{" " * $indent}indent: #{@indent},\n"
109
- str += "#{" " * $indent}code: #{@code},\n"
110
- str += "#{" " * $indent}parameters: ["
111
- if @parameters.empty?
112
- str += "],\n"
113
- else
114
- $indent += 2
115
- @parameters.each do |param|
116
- str += "\n#{" " * $indent}#{param.class.name.split("::").last}(#{param.rmxp_serialize}),"
117
- end
118
- $indent -= 2
119
- str += "\n#{" " * $indent}],\n"
120
- end
121
- $indent -= 2
122
- str += "#{" " * $indent})"
123
- str
124
- end
125
- end
126
-
127
- class MoveCommand
128
- def rmxp_serialize
129
- str = "MoveCommand(\n"
130
- $indent += 2
131
- str += "#{" " * $indent}code: #{@code},\n"
132
- str += "#{" " * $indent}parameters: ["
133
- $indent += 2
134
- @parameters.each do |param|
135
- str += "\n#{" " * $indent}#{param.class.name.split("::").last}(#{param.rmxp_serialize}),"
136
- end
137
- $indent -= 2
138
- str += "\n#{" " * $indent}],\n"
139
- $indent -= 2
140
- str += "#{" " * $indent})"
141
- str
142
- end
143
- end
144
- end
1
+ # This file handles rusty object notation.
2
+ require_relative "classnames"
3
+
4
+ $indent = 0
5
+
6
+ class Object
7
+ def rmxp_serialize
8
+ $indent += 2
9
+ str = "#{self.class.name.split("::").last}(\n"
10
+ self.instance_variables.sort.each { |var| str += "#{" " * $indent}#{var.to_s.delete("@")}: #{self.instance_variable_get(var).rmxp_serialize},\n" }
11
+ $indent -= 2
12
+ str += "#{" " * $indent})"
13
+ str
14
+ end
15
+ end
16
+
17
+ class Table
18
+ def rmxp_serialize
19
+ str = "Table#{@num_of_dimensions}(\n"
20
+ $indent += 2
21
+ str += "#{" " * $indent}"
22
+ str += case @num_of_dimensions
23
+ when 1
24
+ "xsize: #{@xsize},\n"
25
+ when 2
26
+ "xsize: #{@xsize}, ysize: #{@ysize},\n"
27
+ when 3
28
+ "xsize: #{@xsize}, ysize: #{@ysize}, zsize: #{@zsize},\n"
29
+ end
30
+ str += "#{" " * $indent}data: [\n"
31
+ $indent += 2
32
+ case @num_of_dimensions
33
+ when 1
34
+ str += "#{" " * $indent}"
35
+ @elements.each_with_index do |e, index|
36
+ str += "#{e}, "
37
+ str += "\n#{" " * $indent}" if (index + 1) % 8 == 0
38
+ end
39
+ str += "\n"
40
+ when 2
41
+ @elements.each do |y|
42
+ str += " " * $indent
43
+ y.each { |e| str += "#{e}, " }
44
+ str += "\n"
45
+ end
46
+ when 3
47
+ @elements.each do |z|
48
+ z.each do |y|
49
+ str += " " * $indent
50
+ y.each { |e| str += "#{e}, " }
51
+ str += "\n"
52
+ end
53
+ str += "\n"
54
+ end
55
+ end
56
+ $indent -= 2
57
+ str += "#{" " * $indent}]\n"
58
+ $indent -= 2
59
+ str += "#{" " * $indent})"
60
+ str
61
+ end
62
+ end
63
+
64
+ class Hash
65
+ def rmxp_serialize
66
+ str = "{\n"
67
+ $indent += 2
68
+ self.sort.each { |key, value| str += "#{" " * $indent}#{key.rmxp_serialize}: #{value.rmxp_serialize},\n" }
69
+ $indent -= 2
70
+ str += "#{" " * $indent}}"
71
+ str
72
+ end
73
+ end
74
+
75
+ # BAD BAD
76
+ class NilClass
77
+ def rmxp_serialize
78
+ "None"
79
+ end
80
+ end
81
+
82
+ class String
83
+ def rmxp_serialize
84
+ self.inspect
85
+ end
86
+ end
87
+
88
+ class Array
89
+ def rmxp_serialize
90
+ unless self.empty?
91
+ str = "[\n"
92
+ $indent += 2
93
+ self.each { |e| next unless e; str += "#{" " * $indent}#{e.rmxp_serialize},\n" }
94
+ $indent -= 2
95
+ str += "#{" " * $indent}]"
96
+ else
97
+ str = "[]"
98
+ end
99
+ str
100
+ end
101
+ end
102
+
103
+ module RPG
104
+ class EventCommand
105
+ def rmxp_serialize
106
+ str = "EventCommand(\n"
107
+ $indent += 2
108
+ str += "#{" " * $indent}indent: #{@indent},\n"
109
+ str += "#{" " * $indent}code: #{@code},\n"
110
+ str += "#{" " * $indent}parameters: ["
111
+ if @parameters.empty?
112
+ str += "],\n"
113
+ else
114
+ $indent += 2
115
+ @parameters.each do |param|
116
+ str += "\n#{" " * $indent}#{param.class.name.split("::").last}(#{param.rmxp_serialize}),"
117
+ end
118
+ $indent -= 2
119
+ str += "\n#{" " * $indent}],\n"
120
+ end
121
+ $indent -= 2
122
+ str += "#{" " * $indent})"
123
+ str
124
+ end
125
+ end
126
+
127
+ class MoveCommand
128
+ def rmxp_serialize
129
+ str = "MoveCommand(\n"
130
+ $indent += 2
131
+ str += "#{" " * $indent}code: #{@code},\n"
132
+ str += "#{" " * $indent}parameters: ["
133
+ $indent += 2
134
+ @parameters.each do |param|
135
+ str += "\n#{" " * $indent}#{param.class.name.split("::").last}(#{param.rmxp_serialize}),"
136
+ end
137
+ $indent -= 2
138
+ str += "\n#{" " * $indent}],\n"
139
+ $indent -= 2
140
+ str += "#{" " * $indent})"
141
+ str
142
+ end
143
+ end
144
+ end
@@ -1,85 +1,85 @@
1
- #!/usr/bin/ruby
2
- require "zlib"
3
-
4
- module RMXPExtractor
5
- def self.rpgscript(game_dir, scripts_dir, script_name, extract = false)
6
- # Determine version of game engine
7
- game_data_dir = File.join(game_dir, "Data")
8
- unless Dir.exist? game_data_dir
9
- STDERR.puts "error: #{game_dir} does not have a Data subdirectory"
10
- exit 1
11
- end
12
-
13
- target_path = File.join(game_data_dir, script_name)
14
-
15
- # Generate path of script list
16
- list_path = File.join(scripts_dir, "_scripts.txt")
17
-
18
- if extract
19
- # Make sure the script directory exists
20
- Dir.mkdir(scripts_dir) unless Dir.exists? scripts_dir
21
-
22
- # Keep track of names of scripts extracted so we can warn about duplicates
23
- names = Hash.new(0)
24
-
25
- # Read scripts
26
- File.open(target_path, "rb") do |fin|
27
- File.open(list_path, "w") do |flist|
28
- Marshal.load(fin).each_with_index do |script, index|
29
- name = script[1].strip
30
- data = Zlib::Inflate.inflate(script[2]).rstrip
31
- .gsub(/[ \t]*(?:$|\r\n?)/, "\n")
32
-
33
- # Make sure this file doesn't already exist
34
- if name.empty?
35
- if data.empty? || data == "\n"
36
- flist.puts
37
- next
38
- else
39
- name = "UNTITLED"
40
- end
41
- end
42
-
43
- names[name] += 1
44
- if names[name] > 1
45
- name << " (#{names[name]})"
46
- end
47
-
48
- if data.empty? || data == "\n"
49
- # Treat this like a comment
50
- flist.puts("# " + name)
51
- else
52
- # Write to file order list
53
- flist.puts(name)
54
-
55
- # Write script file
56
- File.open(File.join(scripts_dir, name + ".rb"), "wb") do |fout|
57
- fout.write(data)
58
- end
59
- end
60
- end
61
- end
62
- end
63
- #puts "#{target_path} extracted."
64
- else
65
- # Write scripts
66
- scripts = []
67
-
68
- IO.foreach(list_path) do |name|
69
- name.strip!
70
- next if name.empty? || name.start_with?("#")
71
-
72
- data = File.read(File.join(scripts_dir, name + ".rb")).rstrip.gsub("\n", "\r\n")
73
-
74
- script = Array.new(3)
75
- script[0] = 0
76
- script[1] = name
77
- script[2] = Zlib.deflate(data)
78
- scripts << script
79
- end
80
-
81
- File.open(target_path, "wb") { |f| f.write(Marshal.dump(scripts)) }
82
- #puts "#{target_path} written."
83
- end
84
- end
85
- end
1
+ #!/usr/bin/ruby
2
+ require "zlib"
3
+
4
+ module RMXPExtractor
5
+ def self.rpgscript(game_dir, scripts_dir, script_name, extract = false)
6
+ # Determine version of game engine
7
+ game_data_dir = File.join(game_dir, "Data")
8
+ unless Dir.exist? game_data_dir
9
+ STDERR.puts "error: #{game_dir} does not have a Data subdirectory"
10
+ exit 1
11
+ end
12
+
13
+ target_path = File.join(game_data_dir, script_name)
14
+
15
+ # Generate path of script list
16
+ list_path = File.join(scripts_dir, "_scripts.txt")
17
+
18
+ if extract
19
+ # Make sure the script directory exists
20
+ Dir.mkdir(scripts_dir) unless Dir.exists? scripts_dir
21
+
22
+ # Keep track of names of scripts extracted so we can warn about duplicates
23
+ names = Hash.new(0)
24
+
25
+ # Read scripts
26
+ File.open(target_path, "rb") do |fin|
27
+ File.open(list_path, "w") do |flist|
28
+ Marshal.load(fin).each_with_index do |script, index|
29
+ name = script[1].strip
30
+ data = Zlib::Inflate.inflate(script[2]).rstrip
31
+ .gsub(/[ \t]*(?:$|\r\n?)/, "\n")
32
+
33
+ # Make sure this file doesn't already exist
34
+ if name.empty?
35
+ if data.empty? || data == "\n"
36
+ flist.puts
37
+ next
38
+ else
39
+ name = "UNTITLED"
40
+ end
41
+ end
42
+
43
+ names[name] += 1
44
+ if names[name] > 1
45
+ name << " (#{names[name]})"
46
+ end
47
+
48
+ if data.empty? || data == "\n"
49
+ # Treat this like a comment
50
+ flist.puts("# " + name)
51
+ else
52
+ # Write to file order list
53
+ flist.puts(name)
54
+
55
+ # Write script file
56
+ File.open(File.join(scripts_dir, name + ".rb"), "wb") do |fout|
57
+ fout.write(data)
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
63
+ #puts "#{target_path} extracted."
64
+ else
65
+ # Write scripts
66
+ scripts = []
67
+
68
+ IO.foreach(list_path) do |name|
69
+ name.strip!
70
+ next if name.empty? || name.start_with?("#")
71
+
72
+ data = File.read(File.join(scripts_dir, name + ".rb")).rstrip.gsub("\n", "\r\n")
73
+
74
+ script = Array.new(3)
75
+ script[0] = 0
76
+ script[1] = name
77
+ script[2] = Zlib.deflate(data)
78
+ scripts << script
79
+ end
80
+
81
+ File.open(target_path, "wb") { |f| f.write(Marshal.dump(scripts)) }
82
+ #puts "#{target_path} written."
83
+ end
84
+ end
85
+ end
@@ -1,3 +1,3 @@
1
- module RMXPExtractor
2
- VERSION = "1.8"
3
- end
1
+ module RMXPExtractor
2
+ VERSION = "1.9"
3
+ end