rgss_db 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (156) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +5 -0
  3. data/COPYING.md +674 -0
  4. data/README.md +347 -0
  5. data/bin/rgss-db +4 -0
  6. data/bin/rgssdb +4 -0
  7. data/lib/rgss_db/app.rb +928 -0
  8. data/lib/rgss_db/controller/data_manager.rb +557 -0
  9. data/lib/rgss_db/model/data_file.rb +516 -0
  10. data/lib/rgss_db/model/data_file_factory.rb +94 -0
  11. data/lib/rgss_db/model/debug.rb +199 -0
  12. data/lib/rgss_db/model/errors.rb +17 -0
  13. data/lib/rgss_db/model/mixins/jsonable.rb +35 -0
  14. data/lib/rgss_db/model/mixins/jsonable_constructor.rb +40 -0
  15. data/lib/rgss_db/model/rpg_maker_data/vx/rgss/color.rb +72 -0
  16. data/lib/rgss_db/model/rpg_maker_data/vx/rgss/rect.rb +70 -0
  17. data/lib/rgss_db/model/rpg_maker_data/vx/rgss/table.rb +99 -0
  18. data/lib/rgss_db/model/rpg_maker_data/vx/rgss/tone.rb +72 -0
  19. data/lib/rgss_db/model/rpg_maker_data/vx/rgss.rb +11 -0
  20. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/actor.rb +44 -0
  21. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/animation.rb +31 -0
  22. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/animation_frame.rb +20 -0
  23. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/animation_timing.rb +23 -0
  24. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/area.rb +26 -0
  25. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/armor.rb +31 -0
  26. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/audio_file.rb +23 -0
  27. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/base_item.rb +25 -0
  28. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/bgm.rb +36 -0
  29. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/bgs.rb +36 -0
  30. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/class.rb +31 -0
  31. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/class_learning.rb +20 -0
  32. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/common_event.rb +25 -0
  33. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/enemy.rb +44 -0
  34. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/enemy_action.rb +29 -0
  35. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/enemy_drop_item.rb +23 -0
  36. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/event.rb +36 -0
  37. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/event_command.rb +19 -0
  38. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/event_page.rb +32 -0
  39. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/event_page_condition.rb +34 -0
  40. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/event_page_graphic.rb +25 -0
  41. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/item.rb +27 -0
  42. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/map.rb +47 -0
  43. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/map_info.rb +26 -0
  44. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/me.rb +27 -0
  45. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/move_command.rb +18 -0
  46. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/move_route.rb +20 -0
  47. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/se.rb +21 -0
  48. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/skill.rb +22 -0
  49. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/state.rb +47 -0
  50. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/system.rb +43 -0
  51. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/system_terms.rb +53 -0
  52. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/system_test_battler.rb +25 -0
  53. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/system_vehicle.rb +24 -0
  54. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/troop.rb +24 -0
  55. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/troop_member.rb +23 -0
  56. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/troop_page.rb +21 -0
  57. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/troop_page_condition.rb +33 -0
  58. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/usable_item.rb +87 -0
  59. data/lib/rgss_db/model/rpg_maker_data/vx/rpg/weapon.rb +31 -0
  60. data/lib/rgss_db/model/rpg_maker_data/vx/rpg.rb +59 -0
  61. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rgss/color.rb +72 -0
  62. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rgss/rect.rb +70 -0
  63. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rgss/table.rb +99 -0
  64. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rgss/tone.rb +72 -0
  65. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rgss.rb +11 -0
  66. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/actor.rb +27 -0
  67. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/animation.rb +31 -0
  68. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/animation_frame.rb +23 -0
  69. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/animation_timing.rb +26 -0
  70. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/armor.rb +20 -0
  71. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/audio_file.rb +23 -0
  72. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/base_item.rb +31 -0
  73. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/base_item_feature.rb +29 -0
  74. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/bgm.rb +43 -0
  75. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/bgs.rb +43 -0
  76. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/class.rb +37 -0
  77. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/class_learning.rb +24 -0
  78. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/common_event.rb +33 -0
  79. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/enemy.rb +27 -0
  80. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/enemy_action.rb +26 -0
  81. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/enemy_drop_item.rb +24 -0
  82. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/equip_item.rb +19 -0
  83. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/event.rb +36 -0
  84. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/event_command.rb +19 -0
  85. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/event_page.rb +35 -0
  86. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/event_page_condition.rb +40 -0
  87. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/event_page_graphic.rb +31 -0
  88. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/item.rb +25 -0
  89. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/map.rb +58 -0
  90. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/map_encounter.rb +23 -0
  91. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/map_info.rb +26 -0
  92. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/me.rb +27 -0
  93. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/move_command.rb +17 -0
  94. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/move_route.rb +19 -0
  95. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/se.rb +21 -0
  96. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/skill.rb +25 -0
  97. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/state.rb +34 -0
  98. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/system.rb +62 -0
  99. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/system_terms.rb +25 -0
  100. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/system_test_battler.rb +24 -0
  101. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/system_vehicle.rb +27 -0
  102. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/tileset.rb +26 -0
  103. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/troop.rb +24 -0
  104. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/troop_member.rb +25 -0
  105. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/troop_page.rb +24 -0
  106. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/troop_page_condition.rb +39 -0
  107. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/usable_item.rb +84 -0
  108. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/usable_item_damage.rb +56 -0
  109. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/usable_item_effect.rb +25 -0
  110. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg/weapon.rb +25 -0
  111. data/lib/rgss_db/model/rpg_maker_data/vx_ace/rpg.rb +66 -0
  112. data/lib/rgss_db/model/rpg_maker_data/xp/rgss/color.rb +72 -0
  113. data/lib/rgss_db/model/rpg_maker_data/xp/rgss/rect.rb +70 -0
  114. data/lib/rgss_db/model/rpg_maker_data/xp/rgss/table.rb +99 -0
  115. data/lib/rgss_db/model/rpg_maker_data/xp/rgss/tone.rb +72 -0
  116. data/lib/rgss_db/model/rpg_maker_data/xp/rgss.rb +11 -0
  117. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/actor.rb +44 -0
  118. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/animation.rb +28 -0
  119. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/animation_frame.rb +20 -0
  120. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/animation_timing.rb +24 -0
  121. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/armor.rb +37 -0
  122. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/audio_file.rb +23 -0
  123. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/class.rb +28 -0
  124. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/class_learning.rb +20 -0
  125. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/common_event.rb +25 -0
  126. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/enemy.rb +47 -0
  127. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/enemy_action.rb +28 -0
  128. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/event.rb +36 -0
  129. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/event_command.rb +19 -0
  130. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/event_page.rb +32 -0
  131. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/event_page_condition.rb +30 -0
  132. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/event_page_graphic.rb +27 -0
  133. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/item.rb +48 -0
  134. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/map.rb +39 -0
  135. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/map_info.rb +26 -0
  136. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/move_command.rb +18 -0
  137. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/move_route.rb +19 -0
  138. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/skill.rb +47 -0
  139. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/state.rb +51 -0
  140. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/system.rb +56 -0
  141. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/system_test_battler.rb +25 -0
  142. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/system_words.rb +39 -0
  143. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/tileset.rb +39 -0
  144. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/troop.rb +24 -0
  145. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/troop_member.rb +23 -0
  146. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/troop_page.rb +21 -0
  147. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/troop_page_condition.rb +32 -0
  148. data/lib/rgss_db/model/rpg_maker_data/xp/rpg/weapon.rb +38 -0
  149. data/lib/rgss_db/model/rpg_maker_data/xp/rpg.rb +52 -0
  150. data/lib/rgss_db/model/strings.rb +607 -0
  151. data/lib/rgss_db/model/utilities.rb +90 -0
  152. data/lib/rgss_db/version.rb +7 -0
  153. data/lib/rgss_db/view/app_cli.rb +449 -0
  154. data/lib/rgss_db.rb +41 -0
  155. data/sig/rgss_db.rbs +5221 -0
  156. metadata +496 -0
data/README.md ADDED
@@ -0,0 +1,347 @@
1
+ <p align="center">
2
+ <img src='./img/logo.png'>
3
+ </p>
4
+
5
+ <h1 align="center">RPG Maker Database Tool</h1>
6
+ <h3 align="center">This extension should be used for development purposes only!</h3>
7
+
8
+ ## Table of contents
9
+
10
+ - [Table of contents](#table-of-contents)
11
+ - [Introduction](#introduction)
12
+ - [Features](#features)
13
+ - [Screenshots](#screenshots)
14
+ - [Main Menu](#main-menu)
15
+ - [Settings Menu](#settings-menu)
16
+ - [Export Menu](#export-menu)
17
+ - [Import Menu](#import-menu)
18
+ - [Requirements](#requirements)
19
+ - [Installation](#installation)
20
+ - [Usage](#usage)
21
+ - [Command Syntax](#command-syntax)
22
+ - [Basic Information](#basic-information)
23
+ - [Skip CLI Menu](#skip-cli-menu)
24
+ - [Options](#options)
25
+ - [--debug](#--debug)
26
+ - [--backup, --no-backup](#--backup---no-backup)
27
+ - [-d, --directory](#-d---directory)
28
+ - [-t, --type](#-t---type)
29
+ - [-f, --files](#-f---files)
30
+ - [-i, --ids](#-i---ids)
31
+ - [-a, --action](#-a---action)
32
+ - [-v, --version](#-v---version)
33
+ - [-h, --help](#-h---help)
34
+ - [Known Issues](#known-issues)
35
+ - [Planned](#planned)
36
+ - [Contributing](#contributing)
37
+ - [License](#license)
38
+ - [Code of Conduct](#code-of-conduct)
39
+
40
+ ## Introduction
41
+
42
+ RGSS Database is a tool designed for developers to export and import the database files of a game created in RPG Maker.
43
+
44
+ This gem is compatible with any RPG Maker editor based on RGSS, including:
45
+
46
+ - RPG Maker XP
47
+ - RPG Maker VX
48
+ - RPG Maker VX Ace
49
+
50
+ The purpose of this tool is to provide version control features on the RPG Maker database files if you are working on your game with a team and using any version control software.
51
+
52
+ Now, with JSON/YAML files you can actually see whats changed between versions on the database, something that was impossible with the RPG Maker binary format.
53
+
54
+ The only tool that does this that I know of is [rvpacker](https://github.com/ymaxkrapzv/rvpacker), but I haven't been able to get it to work and it doesn't seem to be maintained by anyone anymore, so I made my own tool for this.
55
+
56
+ Also, I have included some other cool features you may found useful!
57
+
58
+ List of all supported RPG Maker database files:
59
+
60
+ - Actors
61
+ - Animations
62
+ - Areas
63
+ - Armors
64
+ - Classes
65
+ - CommonEvents
66
+ - Enemies
67
+ - Items
68
+ - Map[001, 002, 003...]
69
+ - MapInfos
70
+ - Skills
71
+ - States
72
+ - System
73
+ - Tilesets
74
+ - Troops
75
+ - Weapons
76
+
77
+ The **Scripts database file is not supported** for
78
+ a few reasons:
79
+
80
+ - The format of the scripts database file is very different from the rest of the database files
81
+ - The scripts database file is just a collection of ruby script files
82
+ - These ruby script files depends (heavily) on a load order
83
+ - If this load order does not persists between import and export operations, you will lose this order and (probably) cause a lot of troubles on your project
84
+ - Script files can have duplicated names
85
+ - This can cause problems if these scripts are extracted individually
86
+ - Script file contents are compressed/decompressed
87
+ - It would not be just "plug-and-play"
88
+ - Support for this database file would be very basic and limited
89
+ - **I have made a [Visual Studio Code extension](https://github.com/SnowSzn/rgss-script-editor) that handles this file much better than this application could do**
90
+ - You can check out the features this VS Code extension offers on its repo.
91
+
92
+ ## Features
93
+
94
+ - **Automatic detection of RPG Maker version**
95
+ - The RPG Maker version will be automatically detected when opening the data folder
96
+ - If the version cannot be determined, the application won't allow to perform any action to protect the data from corruption
97
+ - **Export RPG Maker database files**
98
+ - You can export all your RPG Maker database files into human-readable data files
99
+ - Supported file types:
100
+ - JSON
101
+ - YAML
102
+ - Alternatively, you can export specific files and also, specific objects inside some database files
103
+ - These files with custom objects are labeled like: Actors_custom, Items_custom...
104
+ - You can also export objects into the binary format
105
+ - The binary file format will be determined based on the RPG Maker version
106
+ - **Import Extracted data into RPG Maker**
107
+ - You can import all your extracted data files into the RPG Maker editor
108
+ - You can import custom data files that merge them with the current RPG Maker data
109
+ - Any external data file created with specific objects
110
+ - All objects will be appended at the end to avoid problems
111
+ - **You must close the RPG Maker editor before importing data!**
112
+ - RPG Maker cannot load data files again if it is already running
113
+ - **Backup Creation**
114
+ - All your database data will be backed up everytime you import data into RPG Maker as a security measure
115
+ - You can disable this behavior with a flag (see [options](#options))
116
+
117
+ ## Screenshots
118
+
119
+ ### Main Menu
120
+
121
+ ![main-menu](./img/img-main-menu.jpg)
122
+
123
+ ### Settings Menu
124
+
125
+ ![settings-menu](./img/img-show-settings.jpg)
126
+
127
+ ### Export Menu
128
+
129
+ ![export-menu](./img/img-export.jpg)
130
+
131
+ ### Import Menu
132
+
133
+ ![import-menu](./img/img-import.jpg)
134
+
135
+ ## Requirements
136
+
137
+ - [Ruby v3.0+](https://www.ruby-lang.org/en/downloads/)
138
+ - [RPG Maker Editor](https://www.rpgmakerweb.com/)
139
+
140
+ ## Installation
141
+
142
+ TODO: Replace `UPDATE_WITH_YOUR_GEM_NAME_IMMEDIATELY_AFTER_RELEASE_TO_RUBYGEMS_ORG` with your gem name right after releasing it to RubyGems.org. Please do not do it earlier due to security reasons. Alternatively, replace this section with instructions to install your gem from git if you don't plan to release to RubyGems.org.
143
+
144
+ You can install this gem using the following command:
145
+
146
+ $ gem install UPDATE_WITH_YOUR_GEM_NAME_IMMEDIATELY_AFTER_RELEASE_TO_RUBYGEMS_ORG
147
+
148
+ ## Usage
149
+
150
+ ### Command Syntax
151
+
152
+ ```sh
153
+ rgss-db data_directory [options]
154
+ ```
155
+
156
+ ### Basic Information
157
+
158
+ You can simply use this tool by calling the rgss-db command and supplying a RPG Maker data path:
159
+
160
+ ```sh
161
+ # Opens the current directory
162
+ rgss-db .
163
+ ```
164
+
165
+ The path needs to be the data folder where all binary database files are stored, otherwise the app won't work.
166
+
167
+ This will open the application's menu where you can manually perform the desired action.
168
+
169
+ The application has a number of options that allow you to customize the behavior and output of the application, you can check more about this below.
170
+
171
+ #### Skip CLI Menu
172
+
173
+ You can use the `-a` (`--action`) flag to skip the application's CLI menu, this will perform the specified action and finish execution, see more at [-a, --action](#-a---action)
174
+
175
+ ### Options
176
+
177
+ #### --debug
178
+
179
+ You can set the application's debug mode with the following option.
180
+
181
+ A log file will be created inside the application's working directory.
182
+
183
+ ```sh
184
+ rgss-db . --debug 0 # Disables debug functionality (default)
185
+ rgss-db . --debug 1 # Enables debug error level
186
+ rgss-db . --debug 2 # Enables debug warning level
187
+ rgss-db . --debug 3 # Enables debug info level
188
+ ```
189
+
190
+ #### --backup, --no-backup
191
+
192
+ You can enable/disable the automatic backup creation with these flags.
193
+
194
+ ```sh
195
+ rgss-db . --backup # Backups are created (default)
196
+ rgss-db . --no-backup # Backups are not created
197
+ ```
198
+
199
+ #### -d, --directory
200
+
201
+ Sets the application's working directory (used for exporting and importing)
202
+
203
+ All extracted files will be created inside this directory.
204
+
205
+ ```sh
206
+ rgss-db . -d "./rgss-db" # Data folder relative (default)
207
+ rgss-db . -d "C:/Absolute/Folder" # Absolute path
208
+ ```
209
+
210
+ #### -t, --type
211
+
212
+ Sets the application's file format (used for exporting)
213
+
214
+ Supported file format types:
215
+
216
+ - YAML
217
+ - JSON
218
+ - BINARY
219
+
220
+ ```sh
221
+ rgss-db . -t yaml # Uses YAML format (default)
222
+ rgss-db . -t json # Uses JSON format
223
+ rgss-db . -t binary # Uses Binary format
224
+ ```
225
+
226
+ #### -f, --files
227
+
228
+ Sets a list of data files that will be affected by the action.
229
+
230
+ If not provided, it will consider all data files.
231
+
232
+ ```sh
233
+ rgss-db . -f Actors.rvdata2 # Selects only the Actors file
234
+ rgss-db . -f Actors.json # Selects only the Actors file
235
+ rgss-db . -f Actors.rxdata Items.rxdata
236
+ ```
237
+
238
+ #### -i, --ids
239
+
240
+ Sets a list of objects that will be affected by an action (per data file)
241
+
242
+ This option only works for data files that supports this behavior:
243
+
244
+ - Actors
245
+ - Animations
246
+ - Areas
247
+ - Armors
248
+ - Classes
249
+ - CommonEvents
250
+ - Enemies
251
+ - Items
252
+ - MapInfos
253
+ - Skills
254
+ - States
255
+ - Tilesets
256
+ - Troops
257
+ - Weapons
258
+
259
+ This option can be repeated for each data file provided, meaning that if you use:
260
+
261
+ ```sh
262
+ # Selects the Actors.rvdata2, Items.rvdata2 and Weapons.rvdata2 database files
263
+ rgss-db . -f Actors.rvdata2 Items.rvdata2 Weapons.rvdata2
264
+ ```
265
+
266
+ You can use the `-i` option three times to specify the IDs for each file, in the same order they are in the `-f` option
267
+
268
+ ```sh
269
+ # Object IDs received:
270
+ # - Actors.rvdata2 => [420, 123]
271
+ # - Items.rvdata2 => [73, 3, 7]
272
+ # - Weapons.rvdata2 => [69, 79, 89]
273
+ rgss-db . -f Actors.rvdata2 Items.rvdata2 Weapons.rvdata2 -i 420 123 -i 73 3 7 -i 69 79 89
274
+ ```
275
+
276
+ #### -a, --action
277
+
278
+ You can skip the application's CLI menu completely if you supply a supported action.
279
+
280
+ The application will start and perform the action, using the given files and object IDs (if any) and close itself when the action finishes
281
+
282
+ These are the possible actions:
283
+
284
+ - `export`: Exports RPG Maker database
285
+ - `export_custom`: Exports specific objects from the RPG Maker database
286
+ - `import`: Imports external data into the RPG Maker database
287
+ - `import_custom`: Imports custom external data into the RPG Maker database (merge)
288
+
289
+ Here's a few examples with the action option **using the default application directory**:
290
+
291
+ ```sh
292
+ # Opens the current directory and export all data
293
+ rgss-db . -a export
294
+
295
+ # Opens the current directory and import all data
296
+ rgss-db . -a import
297
+
298
+ # Opens the current directory and export only the Items file
299
+ rgss-db . -a export -f Items.rvdata2
300
+
301
+ # Opens the current directory and export only the object with ID: 100 from the Items file
302
+ rgss-db . -a export_custom -f Items.rvdata2 -i 100
303
+
304
+ # Opens the current directory and export only the object with ID: 100 from the Items file to a JSON file
305
+ rgss-db . -a export_custom -f Items.rvdata2 -i 100 -t json
306
+ ```
307
+
308
+ #### -v, --version
309
+
310
+ Prints the application version and exit.
311
+
312
+ ```sh
313
+ rgss-db -v
314
+ rgss-db --version
315
+ ```
316
+
317
+ #### -h, --help
318
+
319
+ Prints a help message on the standard output and exit.
320
+
321
+ ```sh
322
+ rgss-db -h
323
+ rgss-db --help
324
+ ```
325
+
326
+ ## Known Issues
327
+
328
+ - None
329
+
330
+ ## Planned
331
+
332
+ - Code Maintenance
333
+ - Feature Requests
334
+
335
+ ## Contributing
336
+
337
+ Bug reports and pull requests are welcome on GitHub at the [issue tracker](https://github.com/SnowSzn/rgss-db-cli/issues).
338
+
339
+ This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/SnowSzn/rgss-db-cli/blob/main/CODE_OF_CONDUCT.md).
340
+
341
+ ## License
342
+
343
+ The gem is available as open source under the terms of the [GNU General Public License version 3 License](https://opensource.org/license/gpl-3-0).
344
+
345
+ ## Code of Conduct
346
+
347
+ Everyone interacting in the RGSS Database project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/SnowSzn/rgss-db-cli/blob/main/CODE_OF_CONDUCT.md).
data/bin/rgss-db ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require_relative "../lib/rgss_db"
data/bin/rgssdb ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require_relative "../lib/rgss_db"