You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-08 12:40:44 +00:00
Bring back script encryption in export preset
Retrieved working implementation from 2.1 branch and adapted to existing export preset system. Added Script tab in export preset to export script as raw text, compiled, or encrypted (same as in 2.1). The script encryption key is visually validated. The script export mode and the key is saved per per preset in `export_presets.cfg`, so it makes sense to ignore this file in version control system. Each custom exporting procedure can retrieve an export preset set during project exporting. Refactored project export dialog a bit to allow easier code comprehension.
This commit is contained in:
@@ -222,10 +222,33 @@ String EditorExportPreset::get_custom_features() const {
|
||||
return custom_features;
|
||||
}
|
||||
|
||||
void EditorExportPreset::set_script_export_mode(int p_mode) {
|
||||
|
||||
script_mode = p_mode;
|
||||
EditorExport::singleton->save_presets();
|
||||
}
|
||||
|
||||
int EditorExportPreset::get_script_export_mode() const {
|
||||
|
||||
return script_mode;
|
||||
}
|
||||
|
||||
void EditorExportPreset::set_script_encryption_key(const String &p_key) {
|
||||
|
||||
script_key = p_key;
|
||||
EditorExport::singleton->save_presets();
|
||||
}
|
||||
|
||||
String EditorExportPreset::get_script_encryption_key() const {
|
||||
|
||||
return script_key;
|
||||
}
|
||||
|
||||
EditorExportPreset::EditorExportPreset() :
|
||||
export_filter(EXPORT_ALL_RESOURCES),
|
||||
export_path(""),
|
||||
runnable(false) {
|
||||
runnable(false),
|
||||
script_mode(MODE_SCRIPT_COMPILED) {
|
||||
}
|
||||
|
||||
///////////////////////////////////
|
||||
@@ -474,6 +497,18 @@ void EditorExportPlatform::_edit_filter_list(Set<String> &r_list, const String &
|
||||
memdelete(da);
|
||||
}
|
||||
|
||||
void EditorExportPlugin::set_export_preset(const Ref<EditorExportPreset> &p_preset) {
|
||||
|
||||
if (p_preset.is_valid()) {
|
||||
export_preset = p_preset;
|
||||
}
|
||||
}
|
||||
|
||||
Ref<EditorExportPreset> EditorExportPlugin::get_export_preset() const {
|
||||
|
||||
return export_preset;
|
||||
}
|
||||
|
||||
void EditorExportPlugin::add_file(const String &p_path, const Vector<uint8_t> &p_file, bool p_remap) {
|
||||
|
||||
ExtraFile ef;
|
||||
@@ -658,6 +693,9 @@ Error EditorExportPlatform::export_project_files(const Ref<EditorExportPreset> &
|
||||
|
||||
Vector<Ref<EditorExportPlugin> > export_plugins = EditorExport::get_singleton()->get_export_plugins();
|
||||
for (int i = 0; i < export_plugins.size(); i++) {
|
||||
|
||||
export_plugins.write[i]->set_export_preset(p_preset);
|
||||
|
||||
if (p_so_func) {
|
||||
for (int j = 0; j < export_plugins[i]->shared_objects.size(); j++) {
|
||||
p_so_func(p_udata, export_plugins[i]->shared_objects[j]);
|
||||
@@ -1048,6 +1086,7 @@ void EditorExport::_save() {
|
||||
config->set_value(section, "platform", preset->get_platform()->get_name());
|
||||
config->set_value(section, "runnable", preset->is_runnable());
|
||||
config->set_value(section, "custom_features", preset->get_custom_features());
|
||||
|
||||
bool save_files = false;
|
||||
switch (preset->get_export_filter()) {
|
||||
case EditorExportPreset::EXPORT_ALL_RESOURCES: {
|
||||
@@ -1071,6 +1110,8 @@ void EditorExport::_save() {
|
||||
config->set_value(section, "exclude_filter", preset->get_exclude_filter());
|
||||
config->set_value(section, "export_path", preset->get_export_path());
|
||||
config->set_value(section, "patch_list", preset->get_patches());
|
||||
config->set_value(section, "script_export_mode", preset->get_script_export_mode());
|
||||
config->set_value(section, "script_encryption_key", preset->get_script_encryption_key());
|
||||
|
||||
String option_section = "preset." + itos(i) + ".options";
|
||||
|
||||
@@ -1233,6 +1274,13 @@ void EditorExport::load_config() {
|
||||
preset->add_patch(patch_list[i]);
|
||||
}
|
||||
|
||||
if (config->has_section_key(section, "script_export_mode")) {
|
||||
preset->set_script_export_mode(config->get_value(section, "script_export_mode"));
|
||||
}
|
||||
if (config->has_section_key(section, "script_encryption_key")) {
|
||||
preset->set_script_encryption_key(config->get_value(section, "script_encryption_key"));
|
||||
}
|
||||
|
||||
String option_section = "preset." + itos(index) + ".options";
|
||||
|
||||
List<String> options;
|
||||
|
||||
Reference in New Issue
Block a user