Add ability to export patch packs

Co-authored-by: Poq Xert <poqxert@poqxert.ru>
This commit is contained in:
Mikael Hermansson
2024-09-17 12:48:10 +02:00
parent 4254946de9
commit d3be030ea6
18 changed files with 619 additions and 20 deletions

View File

@ -79,6 +79,7 @@ void EditorExportPreset::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_include_filter"), &EditorExportPreset::get_include_filter);
ClassDB::bind_method(D_METHOD("get_exclude_filter"), &EditorExportPreset::get_exclude_filter);
ClassDB::bind_method(D_METHOD("get_custom_features"), &EditorExportPreset::get_custom_features);
ClassDB::bind_method(D_METHOD("get_patches"), &EditorExportPreset::get_patches);
ClassDB::bind_method(D_METHOD("get_export_path"), &EditorExportPreset::get_export_path);
ClassDB::bind_method(D_METHOD("get_encryption_in_filter"), &EditorExportPreset::get_enc_in_filter);
ClassDB::bind_method(D_METHOD("get_encryption_ex_filter"), &EditorExportPreset::get_enc_ex_filter);
@ -366,6 +367,42 @@ EditorExportPreset::FileExportMode EditorExportPreset::get_file_export_mode(cons
return p_default;
}
void EditorExportPreset::add_patch(const String &p_path, int p_at_pos) {
ERR_FAIL_COND_EDMSG(patches.has(p_path), vformat("Failed to add patch \"%s\". Patches must be unique.", p_path));
if (p_at_pos < 0) {
patches.push_back(p_path);
} else {
patches.insert(p_at_pos, p_path);
}
EditorExport::singleton->save_presets();
}
void EditorExportPreset::set_patch(int p_index, const String &p_path) {
remove_patch(p_index);
add_patch(p_path, p_index);
}
String EditorExportPreset::get_patch(int p_index) {
ERR_FAIL_INDEX_V(p_index, patches.size(), String());
return patches[p_index];
}
void EditorExportPreset::remove_patch(int p_index) {
ERR_FAIL_INDEX(p_index, patches.size());
patches.remove_at(p_index);
EditorExport::singleton->save_presets();
}
void EditorExportPreset::set_patches(const Vector<String> &p_patches) {
patches = p_patches;
}
Vector<String> EditorExportPreset::get_patches() const {
return patches;
}
void EditorExportPreset::set_custom_features(const String &p_custom_features) {
custom_features = p_custom_features;
EditorExport::singleton->save_presets();