diff options
-rw-r--r-- | SConstruct | 14 | ||||
-rw-r--r-- | core/bind/core_bind.cpp | 14 | ||||
-rw-r--r-- | core/bind/core_bind.h | 11 | ||||
-rw-r--r-- | doc/classes/AcceptDialog.xml | 12 | ||||
-rw-r--r-- | doc/classes/Spatial.xml | 72 | ||||
-rw-r--r-- | doc/classes/Transform.xml | 22 | ||||
-rw-r--r-- | doc/classes/Transform2D.xml | 18 | ||||
-rw-r--r-- | editor/SCsub | 8 | ||||
-rw-r--r-- | editor/doc/doc_data.cpp | 4 | ||||
-rw-r--r-- | editor/editor_file_dialog.cpp | 2 | ||||
-rw-r--r-- | editor/editor_node.h | 1 | ||||
-rw-r--r-- | editor/plugins/animation_tree_editor_plugin.cpp | 6 | ||||
-rw-r--r-- | editor/plugins/spatial_editor_plugin.cpp | 23 | ||||
-rw-r--r-- | main/input_default.cpp | 11 | ||||
-rw-r--r-- | modules/gdnative/gd_native_library_editor.cpp | 94 | ||||
-rw-r--r-- | modules/gdnative/gd_native_library_editor.h | 39 | ||||
-rw-r--r-- | modules/gdnative/register_types.cpp | 4 |
17 files changed, 216 insertions, 139 deletions
diff --git a/SConstruct b/SConstruct index bc89aa7540..f2f1ea57f3 100644 --- a/SConstruct +++ b/SConstruct @@ -367,13 +367,13 @@ if selected_platform in platform_list: if (config.can_build(selected_platform)): config.configure(env) env.module_list.append(x) - try: - doc_classes = config.get_doc_classes() - doc_path = config.get_doc_path() - for c in doc_classes: - env.doc_class_path[c]="modules/"+x+"/"+doc_path - except: - pass + try: + doc_classes = config.get_doc_classes() + doc_path = config.get_doc_path() + for c in doc_classes: + env.doc_class_path[c]="modules/"+x+"/"+doc_path + except: + pass sys.path.remove(tmppath) diff --git a/core/bind/core_bind.cpp b/core/bind/core_bind.cpp index d0acd04497..ab9c107d7a 100644 --- a/core/bind/core_bind.cpp +++ b/core/bind/core_bind.cpp @@ -440,8 +440,8 @@ bool _OS::is_vsync_enabled() const { return OS::get_singleton()->is_vsync_enabled(); } -OS::PowerState _OS::get_power_state() { - return OS::get_singleton()->get_power_state(); +_OS::PowerState _OS::get_power_state() { + return _OS::PowerState(OS::get_singleton()->get_power_state()); } int _OS::get_power_seconds_left() { @@ -1142,11 +1142,11 @@ void _OS::_bind_methods() { BIND_ENUM_CONSTANT(SYSTEM_DIR_PICTURES); BIND_ENUM_CONSTANT(SYSTEM_DIR_RINGTONES); - BIND_ENUM_CONSTANT(OS::POWERSTATE_UNKNOWN); - BIND_ENUM_CONSTANT(OS::POWERSTATE_ON_BATTERY); - BIND_ENUM_CONSTANT(OS::POWERSTATE_NO_BATTERY); - BIND_ENUM_CONSTANT(OS::POWERSTATE_CHARGING); - BIND_ENUM_CONSTANT(OS::POWERSTATE_CHARGED); + BIND_ENUM_CONSTANT(POWERSTATE_UNKNOWN); + BIND_ENUM_CONSTANT(POWERSTATE_ON_BATTERY); + BIND_ENUM_CONSTANT(POWERSTATE_NO_BATTERY); + BIND_ENUM_CONSTANT(POWERSTATE_CHARGING); + BIND_ENUM_CONSTANT(POWERSTATE_CHARGED); } _OS::_OS() { diff --git a/core/bind/core_bind.h b/core/bind/core_bind.h index 0578c2b80f..fc28ada0f8 100644 --- a/core/bind/core_bind.h +++ b/core/bind/core_bind.h @@ -97,6 +97,14 @@ protected: static _OS *singleton; public: + enum PowerState { + POWERSTATE_UNKNOWN, /**< cannot determine power status */ + POWERSTATE_ON_BATTERY, /**< Not plugged in, running on the battery */ + POWERSTATE_NO_BATTERY, /**< Plugged in, no battery available */ + POWERSTATE_CHARGING, /**< Plugged in, charging battery */ + POWERSTATE_CHARGED /**< Plugged in, battery charged */ + }; + enum Weekday { DAY_SUNDAY, DAY_MONDAY, @@ -303,7 +311,7 @@ public: void set_use_vsync(bool p_enable); bool is_vsync_enabled() const; - OS::PowerState get_power_state(); + PowerState get_power_state(); int get_power_seconds_left(); int get_power_percent_left(); @@ -312,6 +320,7 @@ public: _OS(); }; +VARIANT_ENUM_CAST(_OS::PowerState); VARIANT_ENUM_CAST(_OS::Weekday); VARIANT_ENUM_CAST(_OS::Month); VARIANT_ENUM_CAST(_OS::SystemDir); diff --git a/doc/classes/AcceptDialog.xml b/doc/classes/AcceptDialog.xml index 8821a450e5..4244e66a35 100644 --- a/doc/classes/AcceptDialog.xml +++ b/doc/classes/AcceptDialog.xml @@ -21,8 +21,8 @@ <argument index="2" name="action" type="String" default=""""> </argument> <description> - Add custom button to the dialog and return the created button. - The button titled with [i]text[/i] and the [i]action[/i] will be passed to [custom_action] signal when it is pressed. + Adds a button with label [i]text[/i] and a custom [i]action[/i] to the dialog and returns the created button. [i]action[/i] will be passed to the [custom_action] signal when pressed. + If [code]true[/code], [i]right[/i] will place the button to the right of any sibling buttons. Default value: [code]false[/code]. </description> </method> <method name="add_cancel"> @@ -31,7 +31,7 @@ <argument index="0" name="name" type="String"> </argument> <description> - Add custom cancel button to the dialog and return the created button. + Adds a button with label [i]name[/i] and a cancel action to the dialog and returns the created button. </description> </method> <method name="get_hide_on_ok" qualifiers="const"> @@ -68,7 +68,7 @@ <argument index="0" name="line_edit" type="Node"> </argument> <description> - Register a [LineEdit] in the dialog. When the enter key is pressed, the dialog will be accepted. + Registers a [LineEdit] in the dialog. When the enter key is pressed, the dialog will be accepted. </description> </method> <method name="set_hide_on_ok"> @@ -99,14 +99,14 @@ <signals> <signal name="confirmed"> <description> - Emitted when accepted. + Emitted when the dialog is accepted. </description> </signal> <signal name="custom_action"> <argument index="0" name="action" type="String"> </argument> <description> - Emitted with a custom button is added. + Emitted when a custom button is pressed. See [method add_button]. </description> </signal> </signals> diff --git a/doc/classes/Spatial.xml b/doc/classes/Spatial.xml index 076d0b9bc3..e43e4dcc1b 100644 --- a/doc/classes/Spatial.xml +++ b/doc/classes/Spatial.xml @@ -4,7 +4,7 @@ Most basic 3D game object, parent of all 3D related nodes. </brief_description> <description> - Most basic 3D game object, with a 3D [Transform] and visibility settings. All 3D physics nodes and sprites inherit from Spatial. Use Spatial as a parent node to move, scale, rotate and show/hide children in a 3D project. + Most basic 3D game object, with a 3D [Transform] and visibility settings. All other 3D game objects inherit from Spatial. Use Spatial as a parent node to move, scale, rotate and show/hide children in a 3D project. </description> <tutorials> </tutorials> @@ -15,35 +15,35 @@ <return type="SpatialGizmo"> </return> <description> - Return the SpatialGizmo for this node. Used for example in [EditorSpatialGizmo] as custom visualization and editing handles in Editor. + Returns the SpatialGizmo for this node. Used for example in [EditorSpatialGizmo] as custom visualization and editing handles in Editor. </description> </method> <method name="get_global_transform" qualifiers="const"> <return type="Transform"> </return> <description> - Return the global transform, relative to worldspace. + Returns the global transform, relative to worldspace. </description> </method> <method name="get_parent_spatial" qualifiers="const"> <return type="Spatial"> </return> <description> - Return the parent [Spatial], or an empty [Object] if no parent exists or parent is not of type [Spatial]. + Returns the parent [Spatial], or an empty [Object] if no parent exists or parent is not of type [Spatial]. </description> </method> <method name="get_rotation" qualifiers="const"> <return type="Vector3"> </return> <description> - Return the rotation (in radians). + Returns the rotation (in radians). </description> </method> <method name="get_rotation_deg" qualifiers="const"> <return type="Vector3"> </return> <description> - Return the rotation (in degrees). + Returns the rotation (in degrees). </description> </method> <method name="get_scale" qualifiers="const"> @@ -56,7 +56,7 @@ <return type="Transform"> </return> <description> - Return the local transform, relative to the bone parent. + Returns the local transform, relative to the bone parent. </description> </method> <method name="get_translation" qualifiers="const"> @@ -69,7 +69,7 @@ <return type="World"> </return> <description> - Return current [World] resource this Spatial node is registered to. + Returns the current [World] resource this Spatial node is registered to. </description> </method> <method name="global_rotate"> @@ -80,7 +80,7 @@ <argument index="1" name="radians" type="float"> </argument> <description> - Rotate current node along normal [Vector3] by angle in radians in Global space. + Rotates the current node along normal [Vector3] by angle in radians in Global space. </description> </method> <method name="global_translate"> @@ -89,49 +89,49 @@ <argument index="0" name="offset" type="Vector3"> </argument> <description> - Move current node by [Vector3] offset in Global space. + Moves the node by [Vector3] offset in Global space. </description> </method> <method name="hide"> <return type="void"> </return> <description> - Disable rendering of this node. Change Spatial Visible property to false. + Disables rendering of this node. Change Spatial Visible property to false. </description> </method> <method name="is_local_transform_notification_enabled" qualifiers="const"> <return type="bool"> </return> <description> - Returns whether node sends notification that its local transformation changed. Spatial will not propagate this by default. + Returns whether node notifies about its local transformation changes. Spatial will not propagate this by default. </description> </method> <method name="is_set_as_toplevel" qualifiers="const"> <return type="bool"> </return> <description> - Returns whether this node is set as Toplevel, ignoring its parent node transformations. + Returns whether this node is set as Toplevel, that is whether it ignores its parent nodes transformations. </description> </method> <method name="is_transform_notification_enabled" qualifiers="const"> <return type="bool"> </return> <description> - Returns whether node sends notification that its transformation changed. Spatial will not propagate this by default. + Returns whether the node notifies about its global and local transformation changes. Spatial will not propagate this by default. </description> </method> <method name="is_visible" qualifiers="const"> <return type="bool"> </return> <description> - Returns whether this node is set to be visible. + Returns whether the node is set to be visible. </description> </method> <method name="is_visible_in_tree" qualifiers="const"> <return type="bool"> </return> <description> - Returns whether this node is visible, taking into consideration that its parents visibility. + Returns whether the node is visible, taking into consideration that its parents visibility. </description> </method> <method name="look_at"> @@ -155,14 +155,14 @@ <argument index="2" name="up" type="Vector3"> </argument> <description> - Moves itself to specified position and then rotates itself to point into direction of target position. Operations take place in global space. + Moves the node to specified position and then rotates itself to point into direction of target position. Operations take place in global space. </description> </method> <method name="orthonormalize"> <return type="void"> </return> <description> - Reset this node transformations (like scale, skew and taper) preserving its rotation and translation. Performs orthonormalization on this node [Transform3D]. + Resets this node's transformations (like scale, skew and taper) preserving its rotation and translation. Performs orthonormalization on this node [Transform3D]. </description> </method> <method name="rotate"> @@ -173,7 +173,7 @@ <argument index="1" name="radians" type="float"> </argument> <description> - Rotates node in local space on given normal [Vector3] by angle in radians. + Rotates the node in local space on given normal [Vector3] by angle in radians. </description> </method> <method name="rotate_x"> @@ -182,7 +182,7 @@ <argument index="0" name="radians" type="float"> </argument> <description> - Rotates node in local space on X axis by angle in radians. + Rotates the node in local space on X axis by angle in radians. </description> </method> <method name="rotate_y"> @@ -191,7 +191,7 @@ <argument index="0" name="radians" type="float"> </argument> <description> - Rotates node in local space on Y axis by angle in radians. + Rotates the node in local space on Y axis by angle in radians. </description> </method> <method name="rotate_z"> @@ -200,7 +200,7 @@ <argument index="0" name="radians" type="float"> </argument> <description> - Rotates node in local space on Z axis by angle in radians. + Rotates the node in local space on Z axis by angle in radians. </description> </method> <method name="set_as_toplevel"> @@ -209,7 +209,7 @@ <argument index="0" name="enable" type="bool"> </argument> <description> - Makes this node ignore its parents tranformations. Node tranformations are only in global space. + Makes the node ignore its parents tranformations. Node tranformations are only in global space. </description> </method> <method name="set_gizmo"> @@ -243,7 +243,7 @@ <argument index="0" name="enabled" type="bool"> </argument> <description> - Set whether this node ignores notification that its transformation changed. + Set whether the node ignores notification that its transformation (global or local) changed. </description> </method> <method name="set_notify_local_transform"> @@ -252,7 +252,7 @@ <argument index="0" name="enable" type="bool"> </argument> <description> - Set whether this node sends notification that its local transformation changed. Spatial will not propagate this by default. + Set whether the node notifies about its local transformation changes. Spatial will not propagate this by default. </description> </method> <method name="set_notify_transform"> @@ -261,7 +261,7 @@ <argument index="0" name="enable" type="bool"> </argument> <description> - Set whether this node sends notification that its transformation changed. Spatial will not propagate this by default. + Set whether the node notifies about its global and local transformation changes. Spatial will not propagate this by default. </description> </method> <method name="set_rotation"> @@ -320,7 +320,7 @@ <return type="void"> </return> <description> - Enable rendering of this node. Change Spatial Visible property to false. + Enables rendering of this node. Change Spatial Visible property to "True". </description> </method> <method name="to_global" qualifiers="const"> @@ -329,7 +329,7 @@ <argument index="0" name="local_point" type="Vector3"> </argument> <description> - Tranform [Vector3] from this node local space to world space. + Tranforms [Vector3] "local_point" from this node's local space to world space. </description> </method> <method name="to_local" qualifiers="const"> @@ -338,7 +338,7 @@ <argument index="0" name="global_point" type="Vector3"> </argument> <description> - Tranform [Vector3] from world space to this node local space. + Tranforms [Vector3] "global_point" from world space to this node's local space. </description> </method> <method name="translate"> @@ -347,14 +347,14 @@ <argument index="0" name="offset" type="Vector3"> </argument> <description> - Change node position by given offset [Vector3]. + Changes the node's position by given offset [Vector3]. </description> </method> <method name="update_gizmo"> <return type="void"> </return> <description> - Update [SpatialGizmo] of this node. + Updates the [SpatialGizmo] of this node. </description> </method> </methods> @@ -384,23 +384,23 @@ <signals> <signal name="visibility_changed"> <description> - Emitted when node visibility changed. + Emitted when node visibility changes. </description> </signal> </signals> <constants> <constant name="NOTIFICATION_TRANSFORM_CHANGED" value="29" enum=""> - Spatial nodes receive this notification when their global transform changes. This means that either the current or a parent node changed its transform. + Spatial nodes receives this notification when their global transform changes. This means that either the current or a parent node changed its transform. In order for NOTIFICATION_TRANSFORM_CHANGED to work user first needs to ask for it, with set_notify_transform(true). </constant> <constant name="NOTIFICATION_ENTER_WORLD" value="41" enum=""> - Spatial nodes receive this notification when they are registered to new [World] resource. + Spatial nodes receives this notification when they are registered to new [World] resource. </constant> <constant name="NOTIFICATION_EXIT_WORLD" value="42" enum=""> - Spatial nodes receive this notification when they are unregistered from current [World] resource. + Spatial nodes receives this notification when they are unregistered from current [World] resource. </constant> <constant name="NOTIFICATION_VISIBILITY_CHANGED" value="43" enum=""> - Spatial nodes receive this notification when their visibility changes. + Spatial nodes receives this notification when their visibility changes. </constant> </constants> </class> diff --git a/doc/classes/Transform.xml b/doc/classes/Transform.xml index d632eee70a..6780de1943 100644 --- a/doc/classes/Transform.xml +++ b/doc/classes/Transform.xml @@ -23,7 +23,7 @@ <argument index="3" name="origin" type="Vector3"> </argument> <description> - Construct the Transform from four [Vector3]. Each axis corresponds to local basis vectors (some of which may be scaled). + Constructs the Transform from four [Vector3]. Each axis corresponds to local basis vectors (some of which may be scaled). </description> </method> <method name="Transform"> @@ -34,7 +34,7 @@ <argument index="1" name="origin" type="Vector3"> </argument> <description> - Construct the Transform from a [Basis] and [Vector3]. + Constructs the Transform from a [Basis] and [Vector3]. </description> </method> <method name="Transform"> @@ -43,7 +43,7 @@ <argument index="0" name="from" type="Transform2D"> </argument> <description> - Construct the Transform from a [Transform2D]. + Constructs the Transform from a [Transform2D]. </description> </method> <method name="Transform"> @@ -52,7 +52,7 @@ <argument index="0" name="from" type="Quat"> </argument> <description> - Construct the Transform from a [Quat]. The origin will be Vector3(0, 0, 0). + Constructs the Transform from a [Quat]. The origin will be Vector3(0, 0, 0). </description> </method> <method name="Transform"> @@ -61,7 +61,7 @@ <argument index="0" name="from" type="Basis"> </argument> <description> - Construct the Transform from a [Basis]. The origin will be Vector3(0, 0, 0). + Constructs the Transform from a [Basis]. The origin will be Vector3(0, 0, 0). </description> </method> <method name="affine_inverse"> @@ -79,7 +79,7 @@ <argument index="1" name="weight" type="float"> </argument> <description> - Interpolate to other Transform by weight amount (0-1). + Interpolates the transform to other Transform by weight amount (0-1). </description> </method> <method name="inverse"> @@ -104,7 +104,7 @@ <return type="Transform"> </return> <description> - Returns a transfrom with the basis orthogonal (90 degrees), and normalized axis vectors. + Returns the transfrom with the basis orthogonal (90 degrees), and normalized axis vectors. </description> </method> <method name="rotated"> @@ -115,7 +115,7 @@ <argument index="1" name="phi" type="float"> </argument> <description> - Rotate the transform around given axis by phi. The axis must be a normalized vector. + Rotates the transform around given axis by phi. The axis must be a normalized vector. </description> </method> <method name="scaled"> @@ -124,7 +124,7 @@ <argument index="0" name="scale" type="Vector3"> </argument> <description> - Scale the transform by the specified 3D scaling factors. + Scales the transform by the specified 3D scaling factors. </description> </method> <method name="translated"> @@ -133,7 +133,7 @@ <argument index="0" name="ofs" type="Vector3"> </argument> <description> - Translate the transform by the specified offset. + Translates the transform by the specified offset. </description> </method> <method name="xform"> @@ -151,7 +151,7 @@ <argument index="0" name="v" type="var"> </argument> <description> - Inverse-transforms vector "v" by this transform. + Inverse-transforms the given vector "v" by this transform. </description> </method> </methods> diff --git a/doc/classes/Transform2D.xml b/doc/classes/Transform2D.xml index b3b752c1da..4cbe9123f1 100644 --- a/doc/classes/Transform2D.xml +++ b/doc/classes/Transform2D.xml @@ -66,28 +66,28 @@ <argument index="0" name="v" type="var"> </argument> <description> - Inverse-transforms vector "v" by this transform basis (no translation). + Inverse-transforms the given vector "v" by this transform basis (no translation). </description> </method> <method name="get_origin"> <return type="Vector2"> </return> <description> - Return the origin [Vector2] (translation). + Returns the origin [Vector2] (translation). </description> </method> <method name="get_rotation"> <return type="float"> </return> <description> - Return the rotation (in radians). + Returns the rotation (in radians). </description> </method> <method name="get_scale"> <return type="Vector2"> </return> <description> - Return the scale. + Returns the scale. </description> </method> <method name="interpolate_with"> @@ -98,7 +98,7 @@ <argument index="1" name="weight" type="float"> </argument> <description> - Interpolate to other Transform2D by weight amount (0-1). + Interpolates the transform to other Transform2D by weight amount (0-1). </description> </method> <method name="inverse"> @@ -112,7 +112,7 @@ <return type="Transform2D"> </return> <description> - Returns a transfrom with the basis orthogonal (90 degrees), and normalized axis vectors. + Returns the transfrom with the basis orthogonal (90 degrees), and normalized axis vectors. </description> </method> <method name="rotated"> @@ -121,7 +121,7 @@ <argument index="0" name="phi" type="float"> </argument> <description> - Rotate the transform by phi. + Rotates the transform by phi. </description> </method> <method name="scaled"> @@ -130,7 +130,7 @@ <argument index="0" name="scale" type="Vector2"> </argument> <description> - Scale the transform by the specified 2D scaling factors. + Scales the transform by the specified 2D scaling factors. </description> </method> <method name="translated"> @@ -139,7 +139,7 @@ <argument index="0" name="offset" type="Vector2"> </argument> <description> - Translate the transform by the specified offset. + Translates the transform by the specified offset. </description> </method> <method name="xform"> diff --git a/editor/SCsub b/editor/SCsub index 839d8e74c1..315865ad32 100644 --- a/editor/SCsub +++ b/editor/SCsub @@ -41,7 +41,7 @@ def make_doc_header(target, source, env): src = s.srcnode().abspath f = open_utf8(src, "r") content = f.read() - buf+=content + buf+=content buf = encode_utf8(docbegin + buf + docend) decomp_size = len(buf) @@ -385,13 +385,13 @@ def make_license_header(target, source, env): def _make_doc_data_class_path(to_path): - g = open_utf8(os.path.join(to_path,"doc_data_class_path.gen.h"), "wb") + g = open_utf8(os.path.join(to_path,"doc_data_class_path.gen.h"), "w") g.write("static const int _doc_data_class_path_count="+str(len(env.doc_class_path))+";\n") g.write("struct _DocDataClassPath { const char* name; const char* path; };\n") g.write("static const _DocDataClassPath _doc_data_class_paths["+str(len(env.doc_class_path)+1)+"]={\n"); for c in env.doc_class_path: - g.write("{\""+c+"\",\""+env.doc_class_path[c]+"\"},\n") + g.write("{\""+c+"\",\""+env.doc_class_path[c]+"\"},\n") g.write("{NULL,NULL}\n") g.write("};\n") @@ -414,7 +414,7 @@ if (env["tools"] == "yes"): docs=[] print("cdir is: "+env.Dir('#').abspath) for f in os.listdir(os.path.join(env.Dir('#').abspath,"doc/classes")): - docs.append("#doc/classes/"+f) + docs.append("#doc/classes/"+f) _make_doc_data_class_path(os.path.join(env.Dir('#').abspath,"editor/doc")) diff --git a/editor/doc/doc_data.cpp b/editor/doc/doc_data.cpp index 272a5af59b..d35dc53ae1 100644 --- a/editor/doc/doc_data.cpp +++ b/editor/doc/doc_data.cpp @@ -170,6 +170,8 @@ static void return_doc_from_retinfo(DocData::MethodDoc &p_method, const Property if (p_retinfo.type == Variant::INT && p_retinfo.usage & PROPERTY_USAGE_CLASS_IS_ENUM) { p_method.return_enum = p_retinfo.class_name; + if (p_method.return_enum.begins_with("_")) //proxy class + p_method.return_enum = p_method.return_enum.substr(1, p_method.return_enum.length()); p_method.return_type = "int"; } else if (p_retinfo.class_name != StringName()) { p_method.return_type = p_retinfo.class_name; @@ -190,6 +192,8 @@ static void argument_doc_from_arginfo(DocData::ArgumentDoc &p_argument, const Pr if (p_arginfo.type == Variant::INT && p_arginfo.usage & PROPERTY_USAGE_CLASS_IS_ENUM) { p_argument.enumeration = p_arginfo.class_name; + if (p_argument.enumeration.begins_with("_")) //proxy class + p_argument.enumeration = p_argument.enumeration.substr(1, p_argument.enumeration.length()); p_argument.type = "int"; } else if (p_arginfo.class_name != StringName()) { p_argument.type = p_arginfo.class_name; diff --git a/editor/editor_file_dialog.cpp b/editor/editor_file_dialog.cpp index 9d1756a7ec..288b923e87 100644 --- a/editor/editor_file_dialog.cpp +++ b/editor/editor_file_dialog.cpp @@ -107,8 +107,6 @@ void EditorFileDialog::_notification(int p_what) { fav_down->set_icon(get_icon("MoveDown", "EditorIcons")); fav_rm->set_icon(get_icon("RemoveSmall", "EditorIcons")); - Theme::get_default()->clear_icon("ResizedFile", "EditorIcons"); - Theme::get_default()->clear_icon("ResizedFolder", "EditorIcons"); update_file_list(); } } diff --git a/editor/editor_node.h b/editor/editor_node.h index 5c6c5be4c8..f1cdb7b892 100644 --- a/editor/editor_node.h +++ b/editor/editor_node.h @@ -609,7 +609,6 @@ private: void _license_tree_selected(); - protected: void _notification(int p_what); static void _bind_methods(); diff --git a/editor/plugins/animation_tree_editor_plugin.cpp b/editor/plugins/animation_tree_editor_plugin.cpp index 054124da8f..414b091475 100644 --- a/editor/plugins/animation_tree_editor_plugin.cpp +++ b/editor/plugins/animation_tree_editor_plugin.cpp @@ -476,7 +476,7 @@ void AnimationTreeEditor::_draw_node(const StringName &p_node) { Color font_color = get_color("font_color", "PopupMenu"); Color font_color_title = get_color("font_color_hover", "PopupMenu"); font_color_title.a *= 0.8; - Ref<Texture> slot_icon = get_icon("NodeRealSlot", "EditorIcons"); + Ref<Texture> slot_icon = get_icon("VisualShaderPort", "EditorIcons"); Size2 size = get_node_size(p_node); Point2 pos = anim_tree->node_get_pos(p_node); @@ -599,7 +599,7 @@ void AnimationTreeEditor::_draw_node(const StringName &p_node) { if (editable) { - Ref<Texture> arrow = get_icon("arrow", "Tree"); + Ref<Texture> arrow = get_icon("GuiDropdown", "EditorIcons"); Point2 arrow_ofs(w - arrow->get_width(), Math::floor((h - arrow->get_height()) / 2)); arrow->draw(ci, ofs + arrow_ofs); } @@ -671,7 +671,7 @@ Point2 AnimationTreeEditor::_get_slot_pos(const StringName &p_node_id, bool p_in Ref<StyleBox> style = get_stylebox("panel", "PopupMenu"); Ref<Font> font = get_font("font", "PopupMenu"); - Ref<Texture> slot_icon = get_icon("NodeRealSlot", "EditorIcons"); + Ref<Texture> slot_icon = get_icon("VisualShaderPort", "EditorIcons"); Size2 size = get_node_size(p_node_id); Point2 pos = anim_tree->node_get_pos(p_node_id); diff --git a/editor/plugins/spatial_editor_plugin.cpp b/editor/plugins/spatial_editor_plugin.cpp index 704d474746..2c42150cee 100644 --- a/editor/plugins/spatial_editor_plugin.cpp +++ b/editor/plugins/spatial_editor_plugin.cpp @@ -76,18 +76,29 @@ void SpatialEditorViewport::_update_camera(float p_interp_delta) { } else camera->set_perspective(get_fov(), get_znear(), get_zfar()); - float inertia = EDITOR_DEF("editors/3d/orbit_inertia", 0.5); - inertia = MAX(0, inertia); + //when not being manipulated, move softly + float free_orbit_inertia = EDITOR_DEF("editors/3d/free_orbit_inertia", 0.15); + float free_translation_inertia = EDITOR_DEF("editors/3d/free_translation_inertia", 0.15); + //when being manipulated, move more quickly + float manip_orbit_inertia = EDITOR_DEF("editors/3d/manipulation_orbit_inertia", 0.075); + float manip_translation_inertia = EDITOR_DEF("editors/3d/manipulation_translation_inertia", 0.075); + + //determine if being manipulated + bool manipulated = (Input::get_singleton()->get_mouse_button_mask() & (2 | 4)) || Input::get_singleton()->is_key_pressed(KEY_SHIFT) || Input::get_singleton()->is_key_pressed(KEY_ALT) || Input::get_singleton()->is_key_pressed(KEY_CONTROL); + + float orbit_inertia = MAX(0.00001, manipulated ? manip_orbit_inertia : free_orbit_inertia); + float translation_inertia = MAX(0.0001, manipulated ? manip_translation_inertia : free_translation_inertia); Cursor old_camera_cursor = camera_cursor; camera_cursor = cursor; - camera_cursor.x_rot = Math::lerp(old_camera_cursor.x_rot, cursor.x_rot, p_interp_delta * (1 / inertia)); - camera_cursor.y_rot = Math::lerp(old_camera_cursor.y_rot, cursor.y_rot, p_interp_delta * (1 / inertia)); + camera_cursor.x_rot = Math::lerp(old_camera_cursor.x_rot, cursor.x_rot, MIN(1.f, p_interp_delta * (1 / orbit_inertia))); + camera_cursor.y_rot = Math::lerp(old_camera_cursor.y_rot, cursor.y_rot, MIN(1.f, p_interp_delta * (1 / orbit_inertia))); - bool disable_interp = (Input::get_singleton()->get_mouse_button_mask() & (2 | 4)) || Input::get_singleton()->is_key_pressed(KEY_SHIFT) || Input::get_singleton()->is_key_pressed(KEY_ALT) || Input::get_singleton()->is_key_pressed(KEY_CONTROL); + camera_cursor.pos = old_camera_cursor.pos.linear_interpolate(cursor.pos, MIN(1.f, p_interp_delta * (1 / translation_inertia))); + camera_cursor.distance = Math::lerp(old_camera_cursor.distance, cursor.distance, MIN(1.f, p_interp_delta * (1 / translation_inertia))); - if (p_interp_delta == 0 || disable_interp || is_freelook_active()) { + if (p_interp_delta == 0 || is_freelook_active()) { camera_cursor = cursor; } diff --git a/main/input_default.cpp b/main/input_default.cpp index b4c9a6207f..902d3168d8 100644 --- a/main/input_default.cpp +++ b/main/input_default.cpp @@ -80,7 +80,7 @@ bool InputDefault::is_key_pressed(int p_scancode) const { bool InputDefault::is_mouse_button_pressed(int p_button) const { _THREAD_SAFE_METHOD_ - return (mouse_button_mask & (1 << p_button)) != 0; + return (mouse_button_mask & (1 << (p_button - 1))) != 0; } static int _combine_device(int p_value, int p_device) { @@ -265,10 +265,11 @@ void InputDefault::parse_input_event(const Ref<InputEvent> &p_event) { if (mb.is_valid() && !mb->is_doubleclick()) { - if (mb->is_pressed()) - mouse_button_mask |= (1 << mb->get_button_index()); - else - mouse_button_mask &= ~(1 << mb->get_button_index()); + if (mb->is_pressed()) { + mouse_button_mask |= (1 << (mb->get_button_index() - 1)); + } else { + mouse_button_mask &= ~(1 << (mb->get_button_index() - 1)); + } if (main_loop && emulate_touch && mb->get_button_index() == 1) { Ref<InputEventScreenTouch> touch_event; diff --git a/modules/gdnative/gd_native_library_editor.cpp b/modules/gdnative/gd_native_library_editor.cpp index 8aa931d6c9..cc2c2b69a6 100644 --- a/modules/gdnative/gd_native_library_editor.cpp +++ b/modules/gdnative/gd_native_library_editor.cpp @@ -1,9 +1,39 @@ +/*************************************************************************/ +/* gd_native_library_editor.cpp */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md) */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ +#ifdef TOOLS_ENABLED #include "gd_native_library_editor.h" + #include "gdnative.h" void GDNativeLibraryEditor::_find_gdnative_singletons(EditorFileSystemDirectory *p_dir, const Set<String> &enabled_list) { - // check children for (int i = 0; i < p_dir->get_file_count(); i++) { @@ -17,48 +47,45 @@ void GDNativeLibraryEditor::_find_gdnative_singletons(EditorFileSystemDirectory if (lib.is_valid() && lib->is_singleton_gdnative()) { String path = p_dir->get_file_path(i); TreeItem *ti = libraries->create_item(libraries->get_root()); - ti->set_text(0,path.get_file()); - ti->set_tooltip(0,path); - ti->set_metadata(0,path); - ti->set_cell_mode(1,TreeItem::CELL_MODE_RANGE); - ti->set_text(1,"Disabled,Enabled"); - bool enabled = enabled_list.has(path)?true:false; - - ti->set_range(1,enabled?1:0); - ti->set_custom_color(1,enabled?Color(0,1,0):Color(1,0,0)); + ti->set_text(0, path.get_file()); + ti->set_tooltip(0, path); + ti->set_metadata(0, path); + ti->set_cell_mode(1, TreeItem::CELL_MODE_RANGE); + ti->set_text(1, "Disabled,Enabled"); + bool enabled = enabled_list.has(path) ? true : false; + + ti->set_range(1, enabled ? 1 : 0); + ti->set_custom_color(1, enabled ? Color(0, 1, 0) : Color(1, 0, 0)); } } // check subdirectories for (int i = 0; i < p_dir->get_subdir_count(); i++) { - _find_gdnative_singletons(p_dir->get_subdir(i),enabled_list); + _find_gdnative_singletons(p_dir->get_subdir(i), enabled_list); } - - } void GDNativeLibraryEditor::_update_libraries() { - updating=true; + updating = true; libraries->clear(); libraries->create_item(); //rppt Vector<String> enabled_paths; if (ProjectSettings::get_singleton()->has("gdnative/singletons")) { - enabled_paths=ProjectSettings::get_singleton()->get("gdnative/singletons"); + enabled_paths = ProjectSettings::get_singleton()->get("gdnative/singletons"); } Set<String> enabled_list; - for(int i=0;i<enabled_paths.size();i++) { + for (int i = 0; i < enabled_paths.size(); i++) { enabled_list.insert(enabled_paths[i]); } EditorFileSystemDirectory *fs = EditorFileSystem::get_singleton()->get_filesystem(); if (fs) { - _find_gdnative_singletons(fs,enabled_list); + _find_gdnative_singletons(fs, enabled_list); } - updating=false; - + updating = false; } void GDNativeLibraryEditor::_item_edited() { @@ -74,11 +101,11 @@ void GDNativeLibraryEditor::_item_edited() { Vector<String> enabled_paths; if (ProjectSettings::get_singleton()->has("gdnative/singletons")) { - enabled_paths=ProjectSettings::get_singleton()->get("gdnative/singletons"); + enabled_paths = ProjectSettings::get_singleton()->get("gdnative/singletons"); } if (enabled) { - if (enabled_paths.find(path)==-1) { + if (enabled_paths.find(path) == -1) { enabled_paths.push_back(path); } } else { @@ -86,15 +113,15 @@ void GDNativeLibraryEditor::_item_edited() { } if (enabled_paths.size()) { - ProjectSettings::get_singleton()->set("gdnative/singletons",enabled_paths); + ProjectSettings::get_singleton()->set("gdnative/singletons", enabled_paths); } else { - ProjectSettings::get_singleton()->set("gdnative/singletons",Variant()); + ProjectSettings::get_singleton()->set("gdnative/singletons", Variant()); } } void GDNativeLibraryEditor::_notification(int p_what) { - if (p_what==NOTIFICATION_VISIBILITY_CHANGED) { + if (p_what == NOTIFICATION_VISIBILITY_CHANGED) { if (is_visible_in_tree()) { _update_libraries(); } @@ -103,18 +130,19 @@ void GDNativeLibraryEditor::_notification(int p_what) { void GDNativeLibraryEditor::_bind_methods() { - ClassDB::bind_method(D_METHOD("_item_edited"),&GDNativeLibraryEditor::_item_edited); + ClassDB::bind_method(D_METHOD("_item_edited"), &GDNativeLibraryEditor::_item_edited); } -GDNativeLibraryEditor::GDNativeLibraryEditor() -{ - libraries = memnew( Tree ); +GDNativeLibraryEditor::GDNativeLibraryEditor() { + libraries = memnew(Tree); libraries->set_columns(2); libraries->set_column_titles_visible(true); - libraries->set_column_title(0,TTR("Library")); - libraries->set_column_title(1,TTR("Status")); + libraries->set_column_title(0, TTR("Library")); + libraries->set_column_title(1, TTR("Status")); libraries->set_hide_root(true); - add_margin_child(TTR("Libraries: "),libraries,true); - updating=false; - libraries->connect("item_edited",this,"_item_edited"); + add_margin_child(TTR("Libraries: "), libraries, true); + updating = false; + libraries->connect("item_edited", this, "_item_edited"); } + +#endif // TOOLS_ENABLED diff --git a/modules/gdnative/gd_native_library_editor.h b/modules/gdnative/gd_native_library_editor.h index a6c8f31790..a11c4620dd 100644 --- a/modules/gdnative/gd_native_library_editor.h +++ b/modules/gdnative/gd_native_library_editor.h @@ -1,23 +1,52 @@ +/*************************************************************************/ +/* gd_native_library_editor.h */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md) */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ #ifndef GD_NATIVE_LIBRARY_EDITOR_H #define GD_NATIVE_LIBRARY_EDITOR_H #ifdef TOOLS_ENABLED -#include "editor/project_settings_editor.h" #include "editor/editor_file_system.h" +#include "editor/project_settings_editor.h" -class GDNativeLibraryEditor : public VBoxContainer -{ +class GDNativeLibraryEditor : public VBoxContainer { Tree *libraries; bool updating; void _update_libraries(); - void _find_gdnative_singletons(EditorFileSystemDirectory *p_dir,const Set<String>& enabled_list); + void _find_gdnative_singletons(EditorFileSystemDirectory *p_dir, const Set<String> &enabled_list); void _item_edited(); -protected: +protected: void _notification(int p_what); static void _bind_methods(); + public: GDNativeLibraryEditor(); }; diff --git a/modules/gdnative/register_types.cpp b/modules/gdnative/register_types.cpp index dc0da5021d..997c342045 100644 --- a/modules/gdnative/register_types.cpp +++ b/modules/gdnative/register_types.cpp @@ -99,7 +99,6 @@ Set<String> get_gdnative_singletons(EditorFileSystemDirectory *p_dir) { void actual_discoverer_handler() { EditorFileSystemDirectory *dir = EditorFileSystem::get_singleton()->get_filesystem(); - Set<String> file_paths = get_gdnative_singletons(dir); Array files; @@ -118,11 +117,10 @@ GDNativeSingletonDiscover *discoverer = NULL; static void editor_init_callback() { - GDNativeLibraryEditor *library_editor = memnew( GDNativeLibraryEditor ); + GDNativeLibraryEditor *library_editor = memnew(GDNativeLibraryEditor); library_editor->set_name(TTR("GDNative")); ProjectSettingsEditor::get_singleton()->get_tabs()->add_child(library_editor); - discoverer = memnew(GDNativeSingletonDiscover); EditorFileSystem::get_singleton()->connect("filesystem_changed", discoverer, "get_class"); } |