From c8bd1259af8aa2370597551caa96ea7b3b17cd5b Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Thu, 13 Jul 2023 20:02:39 +0200 Subject: [PATCH] Allow using floating-point bone sizes and outline widths in the 2D editor This is useful when animating pixel art sprites in the 2D editor, as a value of `1` is often too large when zoomed in. (cherry picked from commit a39190a18f4d1d2971d30147e47f51dea65f4304) --- doc/classes/EditorSettings.xml | 6 ++++-- editor/editor_settings.cpp | 4 ++-- scene/2d/skeleton_2d.cpp | 4 ++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/doc/classes/EditorSettings.xml b/doc/classes/EditorSettings.xml index c6744827252..3fee6d64901 100644 --- a/doc/classes/EditorSettings.xml +++ b/doc/classes/EditorSettings.xml @@ -232,14 +232,16 @@ The outline color to use for non-selected bones in the 2D skeleton editor. See also [member editors/2d/bone_selected_color]. - + The outline size in the 2D skeleton editor (in pixels). See also [member editors/2d/bone_width]. + [b]Note:[/b] Changes to this value only apply after modifying a [Bone2D] node in any way, or closing and reopening the scene. The color to use for selected bones in the 2D skeleton editor. See also [member editors/2d/bone_outline_color]. - + The bone width in the 2D skeleton editor (in pixels). See also [member editors/2d/bone_outline_size]. + [b]Note:[/b] Changes to this value only apply after modifying a [Bone2D] node in any way, or closing and reopening the scene. The grid color to use in the 2D editor. diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp index 8634b94858d..d9889856459 100644 --- a/editor/editor_settings.cpp +++ b/editor/editor_settings.cpp @@ -679,13 +679,13 @@ void EditorSettings::_load_defaults(Ref p_extra_config) { _initial_set("editors/2d/grid_color", Color(1.0, 1.0, 1.0, 0.07)); _initial_set("editors/2d/guides_color", Color(0.6, 0.0, 0.8)); _initial_set("editors/2d/smart_snapping_line_color", Color(0.9, 0.1, 0.1)); - _initial_set("editors/2d/bone_width", 5); + EDITOR_SETTING(Variant::FLOAT, PROPERTY_HINT_RANGE, "editors/2d/bone_width", 5.0, "0.01,20,0.01,or_greater") _initial_set("editors/2d/bone_color1", Color(1.0, 1.0, 1.0, 0.7)); _initial_set("editors/2d/bone_color2", Color(0.6, 0.6, 0.6, 0.7)); _initial_set("editors/2d/bone_selected_color", Color(0.9, 0.45, 0.45, 0.7)); _initial_set("editors/2d/bone_ik_color", Color(0.9, 0.9, 0.45, 0.7)); _initial_set("editors/2d/bone_outline_color", Color(0.35, 0.35, 0.35, 0.5)); - _initial_set("editors/2d/bone_outline_size", 2); + EDITOR_SETTING(Variant::FLOAT, PROPERTY_HINT_RANGE, "editors/2d/bone_outline_size", 2.0, "0.01,8,0.01,or_greater") _initial_set("editors/2d/viewport_border_color", Color(0.4, 0.4, 1.0, 0.4)); // Panning diff --git a/scene/2d/skeleton_2d.cpp b/scene/2d/skeleton_2d.cpp index c31b42bebaf..350fdad7d79 100644 --- a/scene/2d/skeleton_2d.cpp +++ b/scene/2d/skeleton_2d.cpp @@ -309,8 +309,8 @@ void Bone2D::_notification(int p_what) { #ifdef TOOLS_ENABLED bool Bone2D::_editor_get_bone_shape(Vector *p_shape, Vector *p_outline_shape, Bone2D *p_other_bone) { - int bone_width = EDITOR_GET("editors/2d/bone_width"); - int bone_outline_width = EDITOR_GET("editors/2d/bone_outline_size"); + float bone_width = EDITOR_GET("editors/2d/bone_width"); + float bone_outline_width = EDITOR_GET("editors/2d/bone_outline_size"); if (!is_inside_tree()) { return false; //may have been removed