summaryrefslogtreecommitdiffstats
path: root/modules/visual_script/visual_script_editor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/visual_script/visual_script_editor.cpp')
-rw-r--r--modules/visual_script/visual_script_editor.cpp348
1 files changed, 183 insertions, 165 deletions
diff --git a/modules/visual_script/visual_script_editor.cpp b/modules/visual_script/visual_script_editor.cpp
index 040d61a31e..eef3f0f8ae 100644
--- a/modules/visual_script/visual_script_editor.cpp
+++ b/modules/visual_script/visual_script_editor.cpp
@@ -37,6 +37,7 @@
#include "core/variant.h"
#include "editor/editor_node.h"
#include "editor/editor_resource_preview.h"
+#include "scene/main/viewport.h"
#include "visual_script_expression.h"
#include "visual_script_flow_control.h"
#include "visual_script_func_nodes.h"
@@ -45,7 +46,7 @@
#ifdef TOOLS_ENABLED
class VisualScriptEditorSignalEdit : public Object {
- GDCLASS(VisualScriptEditorSignalEdit, Object)
+ GDCLASS(VisualScriptEditorSignalEdit, Object);
StringName sig;
@@ -185,7 +186,7 @@ public:
class VisualScriptEditorVariableEdit : public Object {
- GDCLASS(VisualScriptEditorVariableEdit, Object)
+ GDCLASS(VisualScriptEditorVariableEdit, Object);
StringName var;
@@ -340,74 +341,74 @@ static Color _color_from_type(Variant::Type p_type, bool dark_theme = true) {
Color color;
if (dark_theme)
switch (p_type) {
- case Variant::NIL: color = Color::html("#69ecbd"); break;
-
- case Variant::BOOL: color = Color::html("#8da6f0"); break;
- case Variant::INT: color = Color::html("#7dc6ef"); break;
- case Variant::REAL: color = Color::html("#61daf4"); break;
- case Variant::STRING: color = Color::html("#6ba7ec"); break;
-
- case Variant::VECTOR2: color = Color::html("#bd91f1"); break;
- case Variant::RECT2: color = Color::html("#f191a5"); break;
- case Variant::VECTOR3: color = Color::html("#d67dee"); break;
- case Variant::TRANSFORM2D: color = Color::html("#c4ec69"); break;
- case Variant::PLANE: color = Color::html("#f77070"); break;
- case Variant::QUAT: color = Color::html("#ec69a3"); break;
- case Variant::AABB: color = Color::html("#ee7991"); break;
- case Variant::BASIS: color = Color::html("#e3ec69"); break;
- case Variant::TRANSFORM: color = Color::html("#f6a86e"); break;
-
- case Variant::COLOR: color = Color::html("#9dff70"); break;
- case Variant::NODE_PATH: color = Color::html("#6993ec"); break;
- case Variant::_RID: color = Color::html("#69ec9a"); break;
- case Variant::OBJECT: color = Color::html("#79f3e8"); break;
- case Variant::DICTIONARY: color = Color::html("#77edb1"); break;
-
- case Variant::ARRAY: color = Color::html("#e0e0e0"); break;
- case Variant::POOL_BYTE_ARRAY: color = Color::html("#aaf4c8"); break;
- case Variant::POOL_INT_ARRAY: color = Color::html("#afdcf5"); break;
- case Variant::POOL_REAL_ARRAY: color = Color::html("#97e7f8"); break;
- case Variant::POOL_STRING_ARRAY: color = Color::html("#9dc4f2"); break;
- case Variant::POOL_VECTOR2_ARRAY: color = Color::html("#d1b3f5"); break;
- case Variant::POOL_VECTOR3_ARRAY: color = Color::html("#df9bf2"); break;
- case Variant::POOL_COLOR_ARRAY: color = Color::html("#e9ff97"); break;
+ case Variant::NIL: color = Color(0.41, 0.93, 0.74); break;
+
+ case Variant::BOOL: color = Color(0.55, 0.65, 0.94); break;
+ case Variant::INT: color = Color(0.49, 0.78, 0.94); break;
+ case Variant::REAL: color = Color(0.38, 0.85, 0.96); break;
+ case Variant::STRING: color = Color(0.42, 0.65, 0.93); break;
+
+ case Variant::VECTOR2: color = Color(0.74, 0.57, 0.95); break;
+ case Variant::RECT2: color = Color(0.95, 0.57, 0.65); break;
+ case Variant::VECTOR3: color = Color(0.84, 0.49, 0.93); break;
+ case Variant::TRANSFORM2D: color = Color(0.77, 0.93, 0.41); break;
+ case Variant::PLANE: color = Color(0.97, 0.44, 0.44); break;
+ case Variant::QUAT: color = Color(0.93, 0.41, 0.64); break;
+ case Variant::AABB: color = Color(0.93, 0.47, 0.57); break;
+ case Variant::BASIS: color = Color(0.89, 0.93, 0.41); break;
+ case Variant::TRANSFORM: color = Color(0.96, 0.66, 0.43); break;
+
+ case Variant::COLOR: color = Color(0.62, 1.0, 0.44); break;
+ case Variant::NODE_PATH: color = Color(0.41, 0.58, 0.93); break;
+ case Variant::_RID: color = Color(0.41, 0.93, 0.6); break;
+ case Variant::OBJECT: color = Color(0.47, 0.95, 0.91); break;
+ case Variant::DICTIONARY: color = Color(0.47, 0.93, 0.69); break;
+
+ case Variant::ARRAY: color = Color(0.88, 0.88, 0.88); break;
+ case Variant::POOL_BYTE_ARRAY: color = Color(0.67, 0.96, 0.78); break;
+ case Variant::POOL_INT_ARRAY: color = Color(0.69, 0.86, 0.96); break;
+ case Variant::POOL_REAL_ARRAY: color = Color(0.59, 0.91, 0.97); break;
+ case Variant::POOL_STRING_ARRAY: color = Color(0.62, 0.77, 0.95); break;
+ case Variant::POOL_VECTOR2_ARRAY: color = Color(0.82, 0.7, 0.96); break;
+ case Variant::POOL_VECTOR3_ARRAY: color = Color(0.87, 0.61, 0.95); break;
+ case Variant::POOL_COLOR_ARRAY: color = Color(0.91, 1.0, 0.59); break;
default:
color.set_hsv(p_type / float(Variant::VARIANT_MAX), 0.7, 0.7);
}
else
switch (p_type) {
- case Variant::NIL: color = Color::html("#25e3a0"); break;
-
- case Variant::BOOL: color = Color::html("#6d8eeb"); break;
- case Variant::INT: color = Color::html("#4fb2e9"); break;
- case Variant::REAL: color = Color::html("#27ccf0"); break;
- case Variant::STRING: color = Color::html("#4690e7"); break;
-
- case Variant::VECTOR2: color = Color::html("#ad76ee"); break;
- case Variant::RECT2: color = Color::html("#ee758e"); break;
- case Variant::VECTOR3: color = Color::html("#dc6aed"); break;
- case Variant::TRANSFORM2D: color = Color::html("#96ce1a"); break;
- case Variant::PLANE: color = Color::html("#f77070"); break;
- case Variant::QUAT: color = Color::html("#ec69a3"); break;
- case Variant::AABB: color = Color::html("#ee7991"); break;
- case Variant::BASIS: color = Color::html("#b2bb19"); break;
- case Variant::TRANSFORM: color = Color::html("#f49047"); break;
-
- case Variant::COLOR: color = Color::html("#3cbf00"); break;
- case Variant::NODE_PATH: color = Color::html("#6993ec"); break;
- case Variant::_RID: color = Color::html("#2ce573"); break;
- case Variant::OBJECT: color = Color::html("#12d5c3"); break;
- case Variant::DICTIONARY: color = Color::html("#57e99f"); break;
-
- case Variant::ARRAY: color = Color::html("#737373"); break;
- case Variant::POOL_BYTE_ARRAY: color = Color::html("#61ea98"); break;
- case Variant::POOL_INT_ARRAY: color = Color::html("#61baeb"); break;
- case Variant::POOL_REAL_ARRAY: color = Color::html("#40d3f2"); break;
- case Variant::POOL_STRING_ARRAY: color = Color::html("#609fea"); break;
- case Variant::POOL_VECTOR2_ARRAY: color = Color::html("#9d5dea"); break;
- case Variant::POOL_VECTOR3_ARRAY: color = Color::html("#ca5aea"); break;
- case Variant::POOL_COLOR_ARRAY: color = Color::html("#92ba00"); break;
+ case Variant::NIL: color = Color(0.15, 0.89, 0.63); break;
+
+ case Variant::BOOL: color = Color(0.43, 0.56, 0.92); break;
+ case Variant::INT: color = Color(0.31, 0.7, 0.91); break;
+ case Variant::REAL: color = Color(0.15, 0.8, 0.94); break;
+ case Variant::STRING: color = Color(0.27, 0.56, 0.91); break;
+
+ case Variant::VECTOR2: color = Color(0.68, 0.46, 0.93); break;
+ case Variant::RECT2: color = Color(0.93, 0.46, 0.56); break;
+ case Variant::VECTOR3: color = Color(0.86, 0.42, 0.93); break;
+ case Variant::TRANSFORM2D: color = Color(0.59, 0.81, 0.1); break;
+ case Variant::PLANE: color = Color(0.97, 0.44, 0.44); break;
+ case Variant::QUAT: color = Color(0.93, 0.41, 0.64); break;
+ case Variant::AABB: color = Color(0.93, 0.47, 0.57); break;
+ case Variant::BASIS: color = Color(0.7, 0.73, 0.1); break;
+ case Variant::TRANSFORM: color = Color(0.96, 0.56, 0.28); break;
+
+ case Variant::COLOR: color = Color(0.24, 0.75, 0.0); break;
+ case Variant::NODE_PATH: color = Color(0.41, 0.58, 0.93); break;
+ case Variant::_RID: color = Color(0.17, 0.9, 0.45); break;
+ case Variant::OBJECT: color = Color(0.07, 0.84, 0.76); break;
+ case Variant::DICTIONARY: color = Color(0.34, 0.91, 0.62); break;
+
+ case Variant::ARRAY: color = Color(0.45, 0.45, 0.45); break;
+ case Variant::POOL_BYTE_ARRAY: color = Color(0.38, 0.92, 0.6); break;
+ case Variant::POOL_INT_ARRAY: color = Color(0.38, 0.73, 0.92); break;
+ case Variant::POOL_REAL_ARRAY: color = Color(0.25, 0.83, 0.95); break;
+ case Variant::POOL_STRING_ARRAY: color = Color(0.38, 0.62, 0.92); break;
+ case Variant::POOL_VECTOR2_ARRAY: color = Color(0.62, 0.36, 0.92); break;
+ case Variant::POOL_VECTOR3_ARRAY: color = Color(0.79, 0.35, 0.92); break;
+ case Variant::POOL_COLOR_ARRAY: color = Color(0.57, 0.73, 0.0); break;
default:
color.set_hsv(p_type / float(Variant::VARIANT_MAX), 0.3, 0.3);
@@ -579,7 +580,7 @@ void VisualScriptEditor::_update_graph(int p_only_id) {
if (gnode->is_comment())
sbf = EditorNode::get_singleton()->get_theme_base()->get_theme()->get_stylebox("comment", "GraphNode");
- Color c = sbf->get_border_color(MARGIN_TOP);
+ Color c = sbf->get_border_color();
c.a = 1;
if (EditorSettings::get_singleton()->get("interface/theme/use_graph_node_headers")) {
Color mono_color = ((c.r + c.g + c.b) / 3) < 0.7 ? Color(1.0, 1.0, 1.0) : Color(0.0, 0.0, 0.0);
@@ -775,8 +776,8 @@ void VisualScriptEditor::_update_members() {
TreeItem *functions = members->create_item(root);
functions->set_selectable(0, false);
functions->set_text(0, TTR("Functions:"));
- functions->add_button(0, Control::get_icon("Override", "EditorIcons"), 1);
- functions->add_button(0, Control::get_icon("Add", "EditorIcons"), 0);
+ functions->add_button(0, Control::get_icon("Override", "EditorIcons"), 1, false, TTR("Override an existing built-in function."));
+ functions->add_button(0, Control::get_icon("Add", "EditorIcons"), 0, false, TTR("Create a new function."));
functions->set_custom_color(0, Control::get_color("mono_color", "Editor"));
List<StringName> func_names;
@@ -794,7 +795,7 @@ void VisualScriptEditor::_update_members() {
TreeItem *variables = members->create_item(root);
variables->set_selectable(0, false);
variables->set_text(0, TTR("Variables:"));
- variables->add_button(0, Control::get_icon("Add", "EditorIcons"));
+ variables->add_button(0, Control::get_icon("Add", "EditorIcons"), -1, false, TTR("Create a new variable."));
variables->set_custom_color(0, Control::get_color("mono_color", "Editor"));
Ref<Texture> type_icons[Variant::VARIANT_MAX] = {
@@ -847,7 +848,7 @@ void VisualScriptEditor::_update_members() {
TreeItem *_signals = members->create_item(root);
_signals->set_selectable(0, false);
_signals->set_text(0, TTR("Signals:"));
- _signals->add_button(0, Control::get_icon("Add", "EditorIcons"));
+ _signals->add_button(0, Control::get_icon("Add", "EditorIcons"), -1, false, TTR("Create a new signal."));
_signals->set_custom_color(0, Control::get_color("mono_color", "Editor"));
List<StringName> signal_names;
@@ -1098,6 +1099,9 @@ void VisualScriptEditor::_expression_text_changed(const String &p_text, int p_id
void VisualScriptEditor::_available_node_doubleclicked() {
+ if (edited_func == String())
+ return;
+
TreeItem *item = nodes->get_selected();
if (!item)
@@ -1106,7 +1110,6 @@ void VisualScriptEditor::_available_node_doubleclicked() {
String which = item->get_metadata(0);
if (which == String())
return;
-
Vector2 ofs = graph->get_scroll_ofs() + graph->get_size() * 0.5;
if (graph->is_using_snap()) {
@@ -1329,8 +1332,9 @@ void VisualScriptEditor::_input(const Ref<InputEvent> &p_event) {
}
}
-void VisualScriptEditor::_generic_search() {
- new_connect_node_select->select_from_visual_script(String(""), false);
+void VisualScriptEditor::_generic_search(String p_base_type) {
+ port_action_pos = graph->get_viewport()->get_mouse_position() - graph->get_global_position();
+ new_connect_node_select->select_from_visual_script(p_base_type, false);
}
void VisualScriptEditor::_members_gui_input(const Ref<InputEvent> &p_event) {
@@ -1785,7 +1789,6 @@ void VisualScriptEditor::drop_data_fw(const Point2 &p_point, const Variant &p_da
call->set_base_path(sn->get_path_to(node));
call->set_base_type(node->get_class());
n = call;
-
method_select->select_from_instance(node);
selecting_method_id = base_id;
}
@@ -2040,7 +2043,7 @@ void VisualScriptEditor::set_edit_state(const Variant &p_state) {
Dictionary d = p_state;
if (d.has("function")) {
- edited_func = p_state;
+ edited_func = d["function"];
selected = edited_func;
}
@@ -2099,9 +2102,20 @@ void VisualScriptEditor::goto_line(int p_line, bool p_with_error) {
}
}
+void VisualScriptEditor::set_executing_line(int p_line) {
+ // todo: add a way to show which node is executing right now.
+}
+
+void VisualScriptEditor::clear_executing_line() {
+ // todo: add a way to show which node is executing right now.
+}
+
void VisualScriptEditor::trim_trailing_whitespace() {
}
+void VisualScriptEditor::insert_final_newline() {
+}
+
void VisualScriptEditor::convert_indent_to_spaces() {
}
@@ -2209,7 +2223,7 @@ Control *VisualScriptEditor::get_edit_menu() {
void VisualScriptEditor::_change_base_type() {
- select_base_type->popup_create(true);
+ select_base_type->popup_create(true, true);
}
void VisualScriptEditor::clear_edit_menu() {
@@ -2717,93 +2731,98 @@ void VisualScriptEditor::_selected_connect_node(const String &p_text, const Stri
Ref<VisualScriptFunctionCall> vsfc = vsn;
vsfc->set_function(p_text);
- VisualScriptNode::TypeGuess tg = _guess_output_type(port_action_node, port_action_output, vn);
- if (tg.type == Variant::OBJECT) {
- vsfc->set_call_mode(VisualScriptFunctionCall::CALL_MODE_INSTANCE);
- vsfc->set_base_type(String(""));
- if (tg.gdclass != StringName()) {
- vsfc->set_base_type(tg.gdclass);
+ if (p_connecting) {
+ VisualScriptNode::TypeGuess tg = _guess_output_type(port_action_node, port_action_output, vn);
- } else if (script->get_node(edited_func, port_action_node).is_valid()) {
- PropertyHint hint = script->get_node(edited_func, port_action_node)->get_output_value_port_info(port_action_output).hint;
- String base_type = script->get_node(edited_func, port_action_node)->get_output_value_port_info(port_action_output).hint_string;
+ if (tg.type == Variant::OBJECT) {
+ vsfc->set_call_mode(VisualScriptFunctionCall::CALL_MODE_INSTANCE);
+ vsfc->set_base_type(String(""));
+ if (tg.gdclass != StringName()) {
+ vsfc->set_base_type(tg.gdclass);
+
+ } else if (script->get_node(edited_func, port_action_node).is_valid()) {
+ PropertyHint hint = script->get_node(edited_func, port_action_node)->get_output_value_port_info(port_action_output).hint;
+ String base_type = script->get_node(edited_func, port_action_node)->get_output_value_port_info(port_action_output).hint_string;
- if (base_type != String() && hint == PROPERTY_HINT_TYPE_STRING) {
- vsfc->set_base_type(base_type);
+ if (base_type != String() && hint == PROPERTY_HINT_TYPE_STRING) {
+ vsfc->set_base_type(base_type);
+ }
+ if (p_text == "call" || p_text == "call_deferred") {
+ vsfc->set_function(String(""));
+ }
}
- if (p_text == "call" || p_text == "call_deferred") {
- vsfc->set_function(String(""));
+ if (tg.script.is_valid()) {
+ vsfc->set_base_script(tg.script->get_path());
}
+ } else if (tg.type == Variant::NIL) {
+ vsfc->set_call_mode(VisualScriptFunctionCall::CALL_MODE_INSTANCE);
+ vsfc->set_base_type(String(""));
+ } else {
+ vsfc->set_call_mode(VisualScriptFunctionCall::CALL_MODE_BASIC_TYPE);
+ vsfc->set_basic_type(tg.type);
}
- if (tg.script.is_valid()) {
- vsfc->set_base_script(tg.script->get_path());
- }
- } else if (tg.type == Variant::NIL) {
- vsfc->set_call_mode(VisualScriptFunctionCall::CALL_MODE_INSTANCE);
- vsfc->set_base_type(String(""));
- } else {
- vsfc->set_call_mode(VisualScriptFunctionCall::CALL_MODE_BASIC_TYPE);
- vsfc->set_basic_type(tg.type);
}
}
- if (Object::cast_to<VisualScriptPropertySet>(vsn.ptr())) {
+ // if connecting from another node the call mode shouldn't be self
+ if (p_connecting) {
+ if (Object::cast_to<VisualScriptPropertySet>(vsn.ptr())) {
+ Ref<VisualScriptPropertySet> vsp = vsn;
- Ref<VisualScriptPropertySet> vsp = vsn;
-
- VisualScriptNode::TypeGuess tg = _guess_output_type(port_action_node, port_action_output, vn);
- if (tg.type == Variant::OBJECT) {
- vsp->set_call_mode(VisualScriptPropertySet::CALL_MODE_INSTANCE);
- vsp->set_base_type(String(""));
- if (tg.gdclass != StringName()) {
- vsp->set_base_type(tg.gdclass);
+ VisualScriptNode::TypeGuess tg = _guess_output_type(port_action_node, port_action_output, vn);
+ if (tg.type == Variant::OBJECT) {
+ vsp->set_call_mode(VisualScriptPropertySet::CALL_MODE_INSTANCE);
+ vsp->set_base_type(String(""));
+ if (tg.gdclass != StringName()) {
+ vsp->set_base_type(tg.gdclass);
- } else if (script->get_node(edited_func, port_action_node).is_valid()) {
- PropertyHint hint = script->get_node(edited_func, port_action_node)->get_output_value_port_info(port_action_output).hint;
- String base_type = script->get_node(edited_func, port_action_node)->get_output_value_port_info(port_action_output).hint_string;
+ } else if (script->get_node(edited_func, port_action_node).is_valid()) {
+ PropertyHint hint = script->get_node(edited_func, port_action_node)->get_output_value_port_info(port_action_output).hint;
+ String base_type = script->get_node(edited_func, port_action_node)->get_output_value_port_info(port_action_output).hint_string;
- if (base_type != String() && hint == PROPERTY_HINT_TYPE_STRING) {
- vsp->set_base_type(base_type);
+ if (base_type != String() && hint == PROPERTY_HINT_TYPE_STRING) {
+ vsp->set_base_type(base_type);
+ }
}
+ if (tg.script.is_valid()) {
+ vsp->set_base_script(tg.script->get_path());
+ }
+ } else if (tg.type == Variant::NIL) {
+ vsp->set_call_mode(VisualScriptPropertySet::CALL_MODE_INSTANCE);
+ vsp->set_base_type(String(""));
+ } else {
+ vsp->set_call_mode(VisualScriptPropertySet::CALL_MODE_BASIC_TYPE);
+ vsp->set_basic_type(tg.type);
}
- if (tg.script.is_valid()) {
- vsp->set_base_script(tg.script->get_path());
- }
- } else if (tg.type == Variant::NIL) {
- vsp->set_call_mode(VisualScriptPropertySet::CALL_MODE_INSTANCE);
- vsp->set_base_type(String(""));
- } else {
- vsp->set_call_mode(VisualScriptPropertySet::CALL_MODE_BASIC_TYPE);
- vsp->set_basic_type(tg.type);
}
- }
-
- if (Object::cast_to<VisualScriptPropertyGet>(vsn.ptr())) {
- Ref<VisualScriptPropertyGet> vsp = vsn;
- VisualScriptNode::TypeGuess tg = _guess_output_type(port_action_node, port_action_output, vn);
- if (tg.type == Variant::OBJECT) {
- vsp->set_call_mode(VisualScriptPropertyGet::CALL_MODE_INSTANCE);
- vsp->set_base_type(String(""));
- if (tg.gdclass != StringName()) {
- vsp->set_base_type(tg.gdclass);
+ if (Object::cast_to<VisualScriptPropertyGet>(vsn.ptr())) {
+ Ref<VisualScriptPropertyGet> vsp = vsn;
- } else if (script->get_node(edited_func, port_action_node).is_valid()) {
- PropertyHint hint = script->get_node(edited_func, port_action_node)->get_output_value_port_info(port_action_output).hint;
- String base_type = script->get_node(edited_func, port_action_node)->get_output_value_port_info(port_action_output).hint_string;
- if (base_type != String() && hint == PROPERTY_HINT_TYPE_STRING) {
- vsp->set_base_type(base_type);
+ VisualScriptNode::TypeGuess tg = _guess_output_type(port_action_node, port_action_output, vn);
+ if (tg.type == Variant::OBJECT) {
+ vsp->set_call_mode(VisualScriptPropertyGet::CALL_MODE_INSTANCE);
+ vsp->set_base_type(String(""));
+ if (tg.gdclass != StringName()) {
+ vsp->set_base_type(tg.gdclass);
+
+ } else if (script->get_node(edited_func, port_action_node).is_valid()) {
+ PropertyHint hint = script->get_node(edited_func, port_action_node)->get_output_value_port_info(port_action_output).hint;
+ String base_type = script->get_node(edited_func, port_action_node)->get_output_value_port_info(port_action_output).hint_string;
+ if (base_type != String() && hint == PROPERTY_HINT_TYPE_STRING) {
+ vsp->set_base_type(base_type);
+ }
}
+ if (tg.script.is_valid()) {
+ vsp->set_base_script(tg.script->get_path());
+ }
+ } else if (tg.type == Variant::NIL) {
+ vsp->set_call_mode(VisualScriptPropertyGet::CALL_MODE_INSTANCE);
+ vsp->set_base_type(String(""));
+ } else {
+ vsp->set_call_mode(VisualScriptPropertyGet::CALL_MODE_BASIC_TYPE);
+ vsp->set_basic_type(tg.type);
}
- if (tg.script.is_valid()) {
- vsp->set_base_script(tg.script->get_path());
- }
- } else if (tg.type == Variant::NIL) {
- vsp->set_call_mode(VisualScriptPropertyGet::CALL_MODE_INSTANCE);
- vsp->set_base_type(String(""));
- } else {
- vsp->set_call_mode(VisualScriptPropertyGet::CALL_MODE_BASIC_TYPE);
- vsp->set_basic_type(tg.type);
}
}
Ref<VisualScriptNode> vnode_old = script->get_node(edited_func, port_action_node);
@@ -3035,29 +3054,29 @@ void VisualScriptEditor::_notification(int p_what) {
List<Pair<String, Color> > colors;
if (dark_theme) {
- colors.push_back(Pair<String, Color>("flow_control", Color::html("#f4f4f4")));
- colors.push_back(Pair<String, Color>("functions", Color::html("#f58581")));
- colors.push_back(Pair<String, Color>("data", Color::html("#80f6cf")));
- colors.push_back(Pair<String, Color>("operators", Color::html("#ab97df")));
- colors.push_back(Pair<String, Color>("custom", Color::html("#80bbf6")));
- colors.push_back(Pair<String, Color>("constants", Color::html("#f680b0")));
+ colors.push_back(Pair<String, Color>("flow_control", Color(0.96, 0.96, 0.96)));
+ colors.push_back(Pair<String, Color>("functions", Color(0.96, 0.52, 0.51)));
+ colors.push_back(Pair<String, Color>("data", Color(0.5, 0.96, 0.81)));
+ colors.push_back(Pair<String, Color>("operators", Color(0.67, 0.59, 0.87)));
+ colors.push_back(Pair<String, Color>("custom", Color(0.5, 0.73, 0.96)));
+ colors.push_back(Pair<String, Color>("constants", Color(0.96, 0.5, 0.69)));
} else {
- colors.push_back(Pair<String, Color>("flow_control", Color::html("#424242")));
- colors.push_back(Pair<String, Color>("functions", Color::html("#f26661")));
- colors.push_back(Pair<String, Color>("data", Color::html("#13bb83")));
- colors.push_back(Pair<String, Color>("operators", Color::html("#8265d0")));
- colors.push_back(Pair<String, Color>("custom", Color::html("#4ea0f2")));
- colors.push_back(Pair<String, Color>("constants", Color::html("#f02f7d")));
+ colors.push_back(Pair<String, Color>("flow_control", Color(0.26, 0.26, 0.26)));
+ colors.push_back(Pair<String, Color>("functions", Color(0.95, 0.4, 0.38)));
+ colors.push_back(Pair<String, Color>("data", Color(0.07, 0.73, 0.51)));
+ colors.push_back(Pair<String, Color>("operators", Color(0.51, 0.4, 0.82)));
+ colors.push_back(Pair<String, Color>("custom", Color(0.31, 0.63, 0.95)));
+ colors.push_back(Pair<String, Color>("constants", Color(0.94, 0.18, 0.49)));
}
for (List<Pair<String, Color> >::Element *E = colors.front(); E; E = E->next()) {
Ref<StyleBoxFlat> sb = tm->get_stylebox("frame", "GraphNode");
if (!sb.is_null()) {
Ref<StyleBoxFlat> frame_style = sb->duplicate();
- Color c = sb->get_border_color(MARGIN_TOP);
+ Color c = sb->get_border_color();
Color cn = E->get().second;
cn.a = c.a;
- frame_style->set_border_color_all(cn);
+ frame_style->set_border_color(cn);
node_styles[E->get().first] = frame_style;
}
}
@@ -3103,7 +3122,7 @@ void VisualScriptEditor::_comment_node_resized(const Vector2 &p_new_size, int p_
graph->set_block_minimum_size_adjust(true); //faster resize
- undo_redo->create_action("Resize Comment", UndoRedo::MERGE_ENDS);
+ undo_redo->create_action(TTR("Resize Comment"), UndoRedo::MERGE_ENDS);
undo_redo->add_do_method(vsc.ptr(), "set_size", p_new_size / EDSCALE);
undo_redo->add_undo_method(vsc.ptr(), "set_size", vsc->get_size());
undo_redo->commit_action();
@@ -3146,7 +3165,7 @@ void VisualScriptEditor::_menu_option(int p_what) {
} break;
case EDIT_FIND_NODE_TYPE: {
- _generic_search();
+ _generic_search(script->get_instance_base_type());
} break;
case EDIT_COPY_NODES:
case EDIT_CUT_NODES: {
@@ -3564,7 +3583,7 @@ VisualScriptEditor::VisualScriptEditor() {
graph->connect("scroll_offset_changed", this, "_graph_ofs_changed");
select_func_text = memnew(Label);
- select_func_text->set_text(TTR("Select or create a function to edit graph"));
+ select_func_text->set_text(TTR("Select or create a function to edit its graph."));
select_func_text->set_align(Label::ALIGN_CENTER);
select_func_text->set_valign(Label::VALIGN_CENTER);
select_func_text->set_h_size_flags(SIZE_EXPAND_FILL);
@@ -3605,7 +3624,6 @@ VisualScriptEditor::VisualScriptEditor() {
edit_signal_dialog = memnew(AcceptDialog);
edit_signal_dialog->get_ok()->set_text(TTR("Close"));
add_child(edit_signal_dialog);
- edit_signal_dialog->set_title(TTR("Edit Signal Arguments:"));
signal_editor = memnew(VisualScriptEditorSignalEdit);
edit_signal_edit = memnew(EditorInspector);
@@ -3616,7 +3634,6 @@ VisualScriptEditor::VisualScriptEditor() {
edit_variable_dialog = memnew(AcceptDialog);
edit_variable_dialog->get_ok()->set_text(TTR("Close"));
add_child(edit_variable_dialog);
- edit_variable_dialog->set_title(TTR("Edit Variable:"));
variable_editor = memnew(VisualScriptEditorVariableEdit);
edit_variable_edit = memnew(EditorInspector);
@@ -3627,7 +3644,6 @@ VisualScriptEditor::VisualScriptEditor() {
select_base_type = memnew(CreateDialog);
select_base_type->set_base_type("Object"); //anything goes
select_base_type->connect("create", this, "_change_base_type_callback");
- select_base_type->get_ok()->set_text(TTR("Change"));
add_child(select_base_type);
undo_redo = EditorNode::get_singleton()->get_undo_redo();
@@ -3654,7 +3670,6 @@ VisualScriptEditor::VisualScriptEditor() {
new_virtual_method_select = memnew(VisualScriptPropertySelector);
add_child(new_virtual_method_select);
new_virtual_method_select->connect("selected", this, "_selected_new_virtual_method");
- new_virtual_method_select->get_cancel();
member_popup = memnew(PopupMenu);
add_child(member_popup);
@@ -3745,4 +3760,7 @@ void _VisualScriptEditor::_bind_methods() {
ClassDB::bind_method(D_METHOD("remove_custom_node", "name", "category"), &_VisualScriptEditor::remove_custom_node);
ADD_SIGNAL(MethodInfo("custom_nodes_updated"));
}
+
+void VisualScriptEditor::validate() {
+}
#endif