mirror of
https://github.com/godotengine/godot.git
synced 2025-10-20 00:13:30 +00:00
Improve VisualScript UX
* Prototype faster function call ux. * Work on general search ux. * Able to create nodes from search. * Show class for variables but not methods. * Get actions search working. * Descriptions now show for both methods and properties. * Enable zooming on mouse wheel up and down. * Make the drag trigger on right mouse button. * Search now shows for action visual script nodes. * Able to search visual node names. * Search works better. * Change zooming scale to hide artifacts better. * Remove zoom changes * Select from base should check properties too like the other functions. * Seq_connect flag is needed to set sequence lines correctly. * Remove comment * Code cleanup with function names and arguments. * Use brief description for search descriptions. * Clean and fix bug with input nodes connecting with sequence lines. * Add a warning and fix some edge conditions with sequence into data lines and vice versa. * Don't search functions when pulling from a sequence node. * Don't show actions when pulling from a data line. * Set set and get properties. * Convert visual script operators to the correct type * Create a function preset finds only functions. * Singletons can now find functions. * Add shift-a for generic search. * Add brief descriptions for Visual Script nodes. * Search boxes can now filter names. * Add bigger hit zones to node connect. * For the drop zones, make all the rect2 areas the same size. * Function names in visual script node should be lower case so that search works better. * Use the convention of capitalize() for set, set, visual script nodes and methods. * Make search more general. Ignore "_" and make case-insensitive. Also made the search window smaller and remove extra info from search * Make type_cast use the connecting node's type and remove use of found variable. * Fix case where you call an instance's call function where it becomes an invalid call. * Make get_visual_node_names use a set of filters, move action creations and fix bug with sequence node connections. * Make the window bigger. * Make connect_data and connect_seq more robust. * Add icons to search items. * Add vs constructors in shift-a menu. * Operators, builtins and constructors show type name. Fix several problems with port connections. * In shift-a mode search everything. * Code cleanup * Work on autocompleting the type. * Use type guess in action creation. * Check if type hint string exists in object variables when generating the visual script search. * Add the hint to SceneTree. * Add original type detection. * Make type casting great again. This puts the type casted base type as the data output type string hint. * Pass the type in a VisualScriptFunctionCall too. * Set the base type correctly in VisualScriptFunctionGet and VisualScriptFunctionSet using hint string. * Make sure the instance is passed in VisualScriptPropertySet. * Restore search on the node's type. * Remove dependencies from graph_edit. * Remove dependencies from property_selector and name the class visual_script_property_selector. * Extract hot zones into a function. * Move hot_zones constants into default theme. * Bigger capture zones. * Clean messy port_grab_distance variables. * Remove RMB functionality. * Remove memory leak on showing visual script descriptions. * Read the port_grab_distance constants on enter tree and theme changed.
This commit is contained in:
parent
9377f8db55
commit
85670726fd
12 changed files with 1197 additions and 207 deletions
|
@ -34,9 +34,9 @@
|
|||
#include "editor/create_dialog.h"
|
||||
#include "editor/plugins/script_editor_plugin.h"
|
||||
#include "editor/property_editor.h"
|
||||
#include "editor/property_selector.h"
|
||||
#include "scene/gui/graph_edit.h"
|
||||
#include "visual_script.h"
|
||||
#include "visual_script_property_selector.h"
|
||||
class VisualScriptEditorSignalEdit;
|
||||
class VisualScriptEditorVariableEdit;
|
||||
|
||||
|
@ -62,15 +62,8 @@ class VisualScriptEditor : public ScriptEditorBase {
|
|||
|
||||
enum PortAction {
|
||||
|
||||
CREATE_CALL,
|
||||
CREATE_SET,
|
||||
CREATE_GET,
|
||||
CREATE_COND,
|
||||
CREATE_SEQUENCE,
|
||||
CREATE_SWITCH,
|
||||
CREATE_ITERATOR,
|
||||
CREATE_WHILE,
|
||||
CREATE_RETURN,
|
||||
CREATE_CALL_SET_GET,
|
||||
CREATE_ACTION,
|
||||
};
|
||||
|
||||
enum MemberAction {
|
||||
|
@ -102,9 +95,9 @@ class VisualScriptEditor : public ScriptEditorBase {
|
|||
AcceptDialog *edit_signal_dialog;
|
||||
PropertyEditor *edit_signal_edit;
|
||||
|
||||
PropertySelector *method_select;
|
||||
PropertySelector *new_connect_node_select;
|
||||
PropertySelector *new_virtual_method_select;
|
||||
VisualScriptPropertySelector *method_select;
|
||||
VisualScriptPropertySelector *new_connect_node_select;
|
||||
VisualScriptPropertySelector *new_virtual_method_select;
|
||||
|
||||
VisualScriptEditorVariableEdit *variable_editor;
|
||||
|
||||
|
@ -162,21 +155,29 @@ class VisualScriptEditor : public ScriptEditorBase {
|
|||
|
||||
static Clipboard *clipboard;
|
||||
|
||||
PopupMenu *port_action_popup;
|
||||
PopupMenu *member_popup;
|
||||
|
||||
MemberType member_type;
|
||||
String member_name;
|
||||
|
||||
bool seq_connect = false;
|
||||
|
||||
PortAction port_action;
|
||||
int port_action_node;
|
||||
int port_action_output;
|
||||
Vector2 port_action_pos;
|
||||
int port_action_new_node;
|
||||
void _port_action_menu(int p_option);
|
||||
void _selected_connect_node_method_or_setget(const String &p_text);
|
||||
void _cancel_connect_node_method_or_setget();
|
||||
void _selected_new_virtual_method(const String &p_text);
|
||||
|
||||
void new_node(Ref<VisualScriptNode> vnode, Vector2 ofs);
|
||||
|
||||
void connect_data(Ref<VisualScriptNode> vnode_old, Ref<VisualScriptNode> vnode, int new_id);
|
||||
|
||||
void _selected_connect_node(const String &p_text, const String &p_category);
|
||||
void connect_seq(Ref<VisualScriptNode> vnode_old, Ref<VisualScriptNode> vnode_new, int new_id);
|
||||
|
||||
void _cancel_connect_node();
|
||||
void _create_new_node(const String &p_text, const String &p_category, const Vector2 &p_point);
|
||||
void _selected_new_virtual_method(const String &p_text, const String &p_category);
|
||||
|
||||
int error_line;
|
||||
|
||||
|
@ -231,7 +232,7 @@ class VisualScriptEditor : public ScriptEditorBase {
|
|||
void _comment_node_resized(const Vector2 &p_new_size, int p_node);
|
||||
|
||||
int selecting_method_id;
|
||||
void _selected_method(const String &p_method);
|
||||
void _selected_method(const String &p_method, const String &p_type);
|
||||
|
||||
void _draw_color_over_button(Object *obj, Color p_color);
|
||||
void _button_resource_previewed(const String &p_path, const Ref<Texture> &p_preview, Variant p_ud);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue