From f80663e33df71c84db6dba063f32f34eecc610f6 Mon Sep 17 00:00:00 2001 From: fabriceci Date: Mon, 11 Oct 2021 11:30:59 +0200 Subject: [PATCH] Improve editor template workflow Co-Authored-By: jmb462 --- core/object/script_language.cpp | 1 - core/object/script_language.h | 25 +- editor/editor_settings.cpp | 40 -- editor/plugin_config_dialog.cpp | 48 +-- editor/script_create_dialog.cpp | 345 +++++++++++------- editor/script_create_dialog.h | 25 +- modules/gdscript/SCsub | 2 + .../CharacterBody2D/basic_movement.gd | 29 ++ .../CharacterBody3D/basic_movement.gd | 32 ++ .../gdscript/editor_templates/Node/default.gd | 12 + .../gdscript/editor_templates/Object/empty.gd | 3 + modules/gdscript/editor_templates/SCsub | 17 + .../editor_templates/build_template_gd.py | 102 ++++++ modules/gdscript/editor_templates/plugin.gd | 10 + modules/gdscript/gdscript.cpp | 14 +- modules/gdscript/gdscript.h | 102 +++--- modules/gdscript/gdscript_editor.cpp | 106 +++--- modules/mono/SCsub | 2 + modules/mono/csharp_script.cpp | 71 ++-- modules/mono/csharp_script.h | 5 +- .../CharacterBody2D/basic_movement.cs | 41 +++ .../CharacterBody3D/basic_movement.cs | 44 +++ modules/mono/editor_templates/Node/default.cs | 21 ++ modules/mono/editor_templates/Object/empty.cs | 9 + modules/mono/editor_templates/SCsub | 17 + .../editor_templates/build_template_cs.py | 102 ++++++ modules/mono/editor_templates/plugin.cs | 18 + modules/visual_script/visual_script.cpp | 15 +- modules/visual_script/visual_script.h | 77 ++-- 29 files changed, 895 insertions(+), 440 deletions(-) create mode 100644 modules/gdscript/editor_templates/CharacterBody2D/basic_movement.gd create mode 100644 modules/gdscript/editor_templates/CharacterBody3D/basic_movement.gd create mode 100644 modules/gdscript/editor_templates/Node/default.gd create mode 100644 modules/gdscript/editor_templates/Object/empty.gd create mode 100644 modules/gdscript/editor_templates/SCsub create mode 100644 modules/gdscript/editor_templates/build_template_gd.py create mode 100644 modules/gdscript/editor_templates/plugin.gd create mode 100644 modules/mono/editor_templates/CharacterBody2D/basic_movement.cs create mode 100644 modules/mono/editor_templates/CharacterBody3D/basic_movement.cs create mode 100644 modules/mono/editor_templates/Node/default.cs create mode 100644 modules/mono/editor_templates/Object/empty.cs create mode 100644 modules/mono/editor_templates/SCsub create mode 100644 modules/mono/editor_templates/build_template_cs.py create mode 100644 modules/mono/editor_templates/plugin.cs diff --git a/core/object/script_language.cpp b/core/object/script_language.cpp index b0ce46ca2b..5bb4b7c516 100644 --- a/core/object/script_language.cpp +++ b/core/object/script_language.cpp @@ -34,7 +34,6 @@ #include "core/core_string_names.h" #include "core/debugger/engine_debugger.h" #include "core/debugger/script_debugger.h" - #include ScriptLanguage *ScriptServer::_languages[MAX_LANGUAGES]; diff --git a/core/object/script_language.h b/core/object/script_language.h index 8d76cbf479..95cb80da81 100644 --- a/core/object/script_language.h +++ b/core/object/script_language.h @@ -274,13 +274,34 @@ public: String message; }; + enum ScriptOrigin { + SCRIPT_ORIGIN_BUILT_IN, + SCRIPT_ORIGIN_EDITOR, + SCRIPT_ORIGIN_PROJECT + }; + + struct ScriptTemplate { + String inherit = "Object"; + String name; + String description; + String content; + bool default_template = false; + int id = 0; + ScriptOrigin origin = ScriptOrigin::SCRIPT_ORIGIN_BUILT_IN; + + String get_hash() const { + return itos(origin) + inherit + name; + } + }; + void get_core_type_words(List *p_core_type_words) const; virtual void get_reserved_words(List *p_words) const = 0; virtual bool is_control_flow_keyword(String p_string) const = 0; virtual void get_comment_delimiters(List *p_delimiters) const = 0; virtual void get_string_delimiters(List *p_delimiters) const = 0; - virtual Ref