summaryrefslogtreecommitdiff
path: root/editor/plugin_config_dialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'editor/plugin_config_dialog.cpp')
-rw-r--r--editor/plugin_config_dialog.cpp54
1 files changed, 10 insertions, 44 deletions
diff --git a/editor/plugin_config_dialog.cpp b/editor/plugin_config_dialog.cpp
index ad22aafb2b..e6e53d2e29 100644
--- a/editor/plugin_config_dialog.cpp
+++ b/editor/plugin_config_dialog.cpp
@@ -36,12 +36,6 @@
#include "editor/editor_plugin.h"
#include "editor/editor_scale.h"
#include "editor/project_settings_editor.h"
-#include "scene/gui/grid_container.h"
-
-#include "modules/modules_enabled.gen.h" // For gdscript.
-#ifdef MODULE_GDSCRIPT_ENABLED
-#include "modules/gdscript/gdscript.h"
-#endif
void PluginConfigDialog::_clear_fields() {
name_edit->set_text("");
@@ -76,42 +70,16 @@ void PluginConfigDialog::_on_confirmed() {
String lang_name = ScriptServer::get_language(lang_idx)->get_name();
Ref<Script> script;
-
- // TODO Use script templates. Right now, this code won't add the 'tool' annotation to other languages.
- // TODO Better support script languages with named classes (has_named_classes).
-
- // FIXME: It's hacky to have hardcoded access to the GDScript module here.
- // The editor code should not have to know what languages are enabled.
-#ifdef MODULE_GDSCRIPT_ENABLED
- if (lang_name == GDScriptLanguage::get_singleton()->get_name()) {
- // Hard-coded GDScript template to keep usability until we use script templates.
- Ref<Script> gdscript = memnew(GDScript);
- gdscript->set_source_code(
- "@tool\n"
- "extends EditorPlugin\n"
- "\n"
- "\n"
- "func _enter_tree()%VOID_RETURN%:\n"
- "%TS%pass\n"
- "\n"
- "\n"
- "func _exit_tree()%VOID_RETURN%:\n"
- "%TS%pass\n");
- GDScriptLanguage::get_singleton()->make_template("", "", gdscript);
- String script_path = path.plus_file(script_edit->get_text());
- gdscript->set_path(script_path);
- ResourceSaver::save(script_path, gdscript);
- script = gdscript;
- } else {
-#endif
- String script_path = path.plus_file(script_edit->get_text());
- String class_name = script_path.get_file().get_basename();
- script = ScriptServer::get_language(lang_idx)->get_template(class_name, "EditorPlugin");
- script->set_path(script_path);
- ResourceSaver::save(script_path, script);
-#ifdef MODULE_GDSCRIPT_ENABLED
+ String script_path = path.plus_file(script_edit->get_text());
+ String class_name = script_path.get_file().get_basename();
+ String template_content = "";
+ Vector<ScriptLanguage::ScriptTemplate> templates = ScriptServer::get_language(lang_idx)->get_built_in_templates("EditorPlugin");
+ if (templates.size() > 0) {
+ template_content = templates.get(0).content;
}
-#endif
+ script = ScriptServer::get_language(lang_idx)->make_template(template_content, class_name, "EditorPlugin");
+ script->set_path(script_path);
+ ResourceSaver::save(script_path, script);
emit_signal(SNAME("plugin_ready"), script.operator->(), active_edit->is_pressed() ? _to_absolute_plugin_path(subfolder_edit->get_text()) : "");
} else {
@@ -331,11 +299,9 @@ PluginConfigDialog::PluginConfigDialog() {
for (int i = 0; i < ScriptServer::get_language_count(); i++) {
ScriptLanguage *lang = ScriptServer::get_language(i);
script_option_edit->add_item(lang->get_name());
-#ifdef MODULE_GDSCRIPT_ENABLED
- if (lang == GDScriptLanguage::get_singleton()) {
+ if (lang->get_name() == "GDScript") {
default_lang = i;
}
-#endif
}
script_option_edit->select(default_lang);
grid->add_child(script_option_edit);