From 07e289963ce4b1bcdd02d9259991ec29b9f036e1 Mon Sep 17 00:00:00 2001 From: Rémi Verschelde Date: Mon, 22 Jul 2019 12:24:14 +0200 Subject: doc: Sync classref with current source --- modules/gdscript/doc_classes/@GDScript.xml | 66 +++++++++++++++--------------- 1 file changed, 33 insertions(+), 33 deletions(-) (limited to 'modules/gdscript/doc_classes') diff --git a/modules/gdscript/doc_classes/@GDScript.xml b/modules/gdscript/doc_classes/@GDScript.xml index 2a26df4714..62a3794c6d 100644 --- a/modules/gdscript/doc_classes/@GDScript.xml +++ b/modules/gdscript/doc_classes/@GDScript.xml @@ -389,37 +389,6 @@ [/codeblock] - - - - - - - - - Returns the integer modulus of [code]a/b[/code] that wraps equally in positive and negative. - [codeblock] - var i = -6 - while i < 5: - prints(i, posmod(i, 3)) - i += 1 - [/codeblock] - Produces: - [codeblock] - -6 0 - -5 1 - -4 2 - -3 0 - -2 1 - -1 2 - 0 0 - 1 1 - 2 2 - 3 0 - 4 1 - [/codeblock] - - @@ -753,12 +722,43 @@ Converts a 2D point expressed in the polar coordinate system (a distance from the origin [code]r[/code] and an angle [code]th[/code]) to the cartesian coordinate system (X and Y axis). + + + + + + + + + Returns the integer modulus of [code]a/b[/code] that wraps equally in positive and negative. + [codeblock] + var i = -6 + while i < 5: + prints(i, posmod(i, 3)) + i += 1 + [/codeblock] + Produces: + [codeblock] + -6 0 + -5 1 + -4 2 + -3 0 + -2 1 + -1 2 + 0 0 + 1 1 + 2 2 + 3 0 + 4 1 + [/codeblock] + + - + - + Returns the result of [code]x[/code] raised to the power of [code]y[/code]. -- cgit v1.2.3 From d844e306147689c3f02473b3dd5d592bdf141023 Mon Sep 17 00:00:00 2001 From: Rémi Verschelde Date: Tue, 23 Jul 2019 17:27:55 +0200 Subject: Inspector: Make default float step configurable Also allow lifting the decimal step formatting with a hint range step of 0. A new `range_step_decimals()` is added for this to avoid breaking compatibility on the general purpose `step_decimals()` (which still returns 0 for an input step of 0). Supersedes #25470. Partial fix for #18251. --- core/math/math_funcs.cpp | 9 +++++++++ core/math/math_funcs.h | 1 + editor/editor_node.cpp | 2 ++ editor/editor_properties.cpp | 22 ++++++++++++---------- editor/editor_spin_slider.cpp | 4 ++-- modules/gdscript/doc_classes/@GDScript.xml | 2 +- scene/gui/spin_box.cpp | 2 +- scene/gui/tree.cpp | 6 +++--- 8 files changed, 31 insertions(+), 17 deletions(-) (limited to 'modules/gdscript/doc_classes') diff --git a/core/math/math_funcs.cpp b/core/math/math_funcs.cpp index 7a2e74a413..f04e40cb6c 100644 --- a/core/math/math_funcs.cpp +++ b/core/math/math_funcs.cpp @@ -79,6 +79,15 @@ int Math::step_decimals(double p_step) { return 0; } +// Only meant for editor usage in float ranges, where a step of 0 +// means that decimal digits should not be limited in String::num. +int Math::range_step_decimals(double p_step) { + if (p_step < 0.0000000000001) { + return 16; // Max value hardcoded in String::num + } + return step_decimals(p_step); +} + double Math::dectime(double p_value, double p_amount, double p_step) { double sgn = p_value < 0 ? -1.0 : 1.0; double val = Math::abs(p_value); diff --git a/core/math/math_funcs.h b/core/math/math_funcs.h index b8b5151802..a712356ddc 100644 --- a/core/math/math_funcs.h +++ b/core/math/math_funcs.h @@ -270,6 +270,7 @@ public: // double only, as these functions are mainly used by the editor and not performance-critical, static double ease(double p_x, double p_c); static int step_decimals(double p_step); + static int range_step_decimals(double p_step); static double stepify(double p_value, double p_step); static double dectime(double p_value, double p_amount, double p_step); diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index f1944bf63f..5705629c56 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -5557,6 +5557,8 @@ EditorNode::EditorNode() { EDITOR_DEF_RST("interface/scene_tabs/restore_scenes_on_load", false); EDITOR_DEF_RST("interface/scene_tabs/show_thumbnail_on_hover", true); EDITOR_DEF_RST("interface/inspector/capitalize_properties", true); + EDITOR_DEF_RST("interface/inspector/default_float_step", 0.001); + EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::REAL, "interface/inspector/default_float_step", PROPERTY_HINT_EXP_RANGE, "0,1,0")); EDITOR_DEF_RST("interface/inspector/disable_folding", false); EDITOR_DEF_RST("interface/inspector/auto_unfold_foreign_scenes", true); EDITOR_DEF("interface/inspector/horizontal_vector2_editing", false); diff --git a/editor/editor_properties.cpp b/editor/editor_properties.cpp index d54f72382c..3300228921 100644 --- a/editor/editor_properties.cpp +++ b/editor/editor_properties.cpp @@ -2904,6 +2904,8 @@ void EditorInspectorDefaultPlugin::parse_begin(Object *p_object) { bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Type p_type, const String &p_path, PropertyHint p_hint, const String &p_hint_text, int p_usage) { + float default_float_step = EDITOR_GET("interface/inspector/default_float_step"); + switch (p_type) { // atomic types @@ -3010,7 +3012,7 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ } else { EditorPropertyFloat *editor = memnew(EditorPropertyFloat); - double min = -65535, max = 65535, step = 0.001; + double min = -65535, max = 65535, step = default_float_step; bool hide_slider = true; bool exp_range = false; bool greater = true, lesser = true; @@ -3107,7 +3109,7 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ case Variant::VECTOR2: { EditorPropertyVector2 *editor = memnew(EditorPropertyVector2); - double min = -65535, max = 65535, step = 0.001; + double min = -65535, max = 65535, step = default_float_step; bool hide_slider = true; if (p_hint == PROPERTY_HINT_RANGE && p_hint_text.get_slice_count(",") >= 2) { @@ -3125,7 +3127,7 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ } break; // 5 case Variant::RECT2: { EditorPropertyRect2 *editor = memnew(EditorPropertyRect2); - double min = -65535, max = 65535, step = 0.001; + double min = -65535, max = 65535, step = default_float_step; bool hide_slider = true; if (p_hint == PROPERTY_HINT_RANGE && p_hint_text.get_slice_count(",") >= 2) { @@ -3142,7 +3144,7 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ } break; case Variant::VECTOR3: { EditorPropertyVector3 *editor = memnew(EditorPropertyVector3); - double min = -65535, max = 65535, step = 0.001; + double min = -65535, max = 65535, step = default_float_step; bool hide_slider = true; if (p_hint == PROPERTY_HINT_RANGE && p_hint_text.get_slice_count(",") >= 2) { @@ -3160,7 +3162,7 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ } break; case Variant::TRANSFORM2D: { EditorPropertyTransform2D *editor = memnew(EditorPropertyTransform2D); - double min = -65535, max = 65535, step = 0.001; + double min = -65535, max = 65535, step = default_float_step; bool hide_slider = true; if (p_hint == PROPERTY_HINT_RANGE && p_hint_text.get_slice_count(",") >= 2) { @@ -3178,7 +3180,7 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ } break; case Variant::PLANE: { EditorPropertyPlane *editor = memnew(EditorPropertyPlane); - double min = -65535, max = 65535, step = 0.001; + double min = -65535, max = 65535, step = default_float_step; bool hide_slider = true; if (p_hint == PROPERTY_HINT_RANGE && p_hint_text.get_slice_count(",") >= 2) { @@ -3195,7 +3197,7 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ } break; case Variant::QUAT: { EditorPropertyQuat *editor = memnew(EditorPropertyQuat); - double min = -65535, max = 65535, step = 0.001; + double min = -65535, max = 65535, step = default_float_step; bool hide_slider = true; if (p_hint == PROPERTY_HINT_RANGE && p_hint_text.get_slice_count(",") >= 2) { @@ -3212,7 +3214,7 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ } break; // 10 case Variant::AABB: { EditorPropertyAABB *editor = memnew(EditorPropertyAABB); - double min = -65535, max = 65535, step = 0.001; + double min = -65535, max = 65535, step = default_float_step; bool hide_slider = true; if (p_hint == PROPERTY_HINT_RANGE && p_hint_text.get_slice_count(",") >= 2) { @@ -3229,7 +3231,7 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ } break; case Variant::BASIS: { EditorPropertyBasis *editor = memnew(EditorPropertyBasis); - double min = -65535, max = 65535, step = 0.001; + double min = -65535, max = 65535, step = default_float_step; bool hide_slider = true; if (p_hint == PROPERTY_HINT_RANGE && p_hint_text.get_slice_count(",") >= 2) { @@ -3246,7 +3248,7 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ } break; case Variant::TRANSFORM: { EditorPropertyTransform *editor = memnew(EditorPropertyTransform); - double min = -65535, max = 65535, step = 0.001; + double min = -65535, max = 65535, step = default_float_step; bool hide_slider = true; if (p_hint == PROPERTY_HINT_RANGE && p_hint_text.get_slice_count(",") >= 2) { diff --git a/editor/editor_spin_slider.cpp b/editor/editor_spin_slider.cpp index dcb106899e..9966394025 100644 --- a/editor/editor_spin_slider.cpp +++ b/editor/editor_spin_slider.cpp @@ -38,9 +38,9 @@ String EditorSpinSlider::get_tooltip(const Point2 &p_pos) const { } String EditorSpinSlider::get_text_value() const { - int zeros = Math::step_decimals(get_step()); - return String::num(get_value(), zeros); + return String::num(get_value(), Math::range_step_decimals(get_step())); } + void EditorSpinSlider::_gui_input(const Ref &p_event) { if (read_only) diff --git a/modules/gdscript/doc_classes/@GDScript.xml b/modules/gdscript/doc_classes/@GDScript.xml index 62a3794c6d..f65f2a8935 100644 --- a/modules/gdscript/doc_classes/@GDScript.xml +++ b/modules/gdscript/doc_classes/@GDScript.xml @@ -1095,7 +1095,7 @@ - Returns the position of the first non-zero digit, after the decimal point. + Returns the position of the first non-zero digit, after the decimal point. Note that the maximum return value is 10, which is a design decision in the implementation. [codeblock] # n is 0 n = step_decimals(5) diff --git a/scene/gui/spin_box.cpp b/scene/gui/spin_box.cpp index 279253889c..db277d3705 100644 --- a/scene/gui/spin_box.cpp +++ b/scene/gui/spin_box.cpp @@ -40,7 +40,7 @@ Size2 SpinBox::get_minimum_size() const { void SpinBox::_value_changed(double) { - String value = String::num(get_value(), Math::step_decimals(get_step())); + String value = String::num(get_value(), Math::range_step_decimals(get_step())); if (prefix != "") value = prefix + " " + value; if (suffix != "") diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp index 814100afdc..81f2f46a80 100644 --- a/scene/gui/tree.cpp +++ b/scene/gui/tree.cpp @@ -1315,7 +1315,7 @@ int Tree::draw_item(const Point2i &p_pos, const Point2 &p_draw_ofs, const Size2 Ref updown = cache.updown; - String valtext = String::num(p_item->cells[i].val, Math::step_decimals(p_item->cells[i].step)); + String valtext = String::num(p_item->cells[i].val, Math::range_step_decimals(p_item->cells[i].step)); //String valtext = rtos( p_item->cells[i].val ); if (p_item->cells[i].suffix != String()) @@ -1926,7 +1926,7 @@ int Tree::propagate_mouse_event(const Point2i &p_pos, int x_ofs, int y_ofs, bool } else { - editor_text = String::num(p_item->cells[col].val, Math::step_decimals(p_item->cells[col].step)); + editor_text = String::num(p_item->cells[col].val, Math::range_step_decimals(p_item->cells[col].step)); if (select_mode == SELECT_MULTI && get_tree()->get_event_count() == focus_in_id) bring_up_editor = false; } @@ -2755,7 +2755,7 @@ bool Tree::edit_selected() { text_editor->set_position(textedpos); text_editor->set_size(rect.size); text_editor->clear(); - text_editor->set_text(c.mode == TreeItem::CELL_MODE_STRING ? c.text : String::num(c.val, Math::step_decimals(c.step))); + text_editor->set_text(c.mode == TreeItem::CELL_MODE_STRING ? c.text : String::num(c.val, Math::range_step_decimals(c.step))); text_editor->select_all(); if (c.mode == TreeItem::CELL_MODE_RANGE) { -- cgit v1.2.3 From a2c81a74555ca098da4d03a54f44664d933d7182 Mon Sep 17 00:00:00 2001 From: Kaligule Date: Mon, 29 Jul 2019 07:53:37 +0200 Subject: Add a reference to pow to the description of exp. This might be especially usefull since godot script doesn't support ** or ^ as operators, so beginners might search for the exponential function, when what they really need is the pow function. This is exactly what happened to me and since I couldn't find helpfull information in the documentation I had to look it up online, where I found the answer on a helpfull [reddit thread](https://www.reddit.com/r/godot/comments/3mvwz0/how_do_i_do_exponents_in_godot/). @akien-mga told me how to reference methods here: godotengine#30909 --- modules/gdscript/doc_classes/@GDScript.xml | 1 + 1 file changed, 1 insertion(+) (limited to 'modules/gdscript/doc_classes') diff --git a/modules/gdscript/doc_classes/@GDScript.xml b/modules/gdscript/doc_classes/@GDScript.xml index f65f2a8935..ad47323613 100644 --- a/modules/gdscript/doc_classes/@GDScript.xml +++ b/modules/gdscript/doc_classes/@GDScript.xml @@ -322,6 +322,7 @@ The natural exponential function. It raises the mathematical constant [b]e[/b] to the power of [code]s[/code] and returns it. [b]e[/b] has an approximate value of 2.71828. + For exponents to other bases use the method [method pow]. [codeblock] a = exp(2) # Approximately 7.39 [/codeblock] -- cgit v1.2.3 From 02ed79f7f7de99bc7dd2622fd44d17d658843026 Mon Sep 17 00:00:00 2001 From: Thomas Karcher Date: Thu, 29 Aug 2019 14:03:18 +0200 Subject: Updated description for "stepify" Mentioned the possibility to use stepify as a rounding function; +code examples --- modules/gdscript/doc_classes/@GDScript.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'modules/gdscript/doc_classes') diff --git a/modules/gdscript/doc_classes/@GDScript.xml b/modules/gdscript/doc_classes/@GDScript.xml index ad47323613..605a999d6a 100644 --- a/modules/gdscript/doc_classes/@GDScript.xml +++ b/modules/gdscript/doc_classes/@GDScript.xml @@ -1115,7 +1115,11 @@ - Snaps float value [code]s[/code] to a given [code]step[/code]. + Snaps float value [code]s[/code] to a given [code]step[/code]. This can also be used to round a floating point number to an arbitrary number of decimals. + [codeblock] + stepify(100, 32) # Returns 96 + stepify(3.14159, 0.01) # Returns 3.14 + [/codeblock] -- cgit v1.2.3 From 65d61d0360b8c7649dad3b1706ad3a60c639c2d7 Mon Sep 17 00:00:00 2001 From: Rémi Verschelde Date: Thu, 29 Aug 2019 15:33:52 +0200 Subject: doc: Sync classref with current source --- doc/classes/Control.xml | 2 +- doc/classes/JSONRPC.xml | 95 +++++++++++++++++++++++++++ doc/classes/ProjectSettings.xml | 2 + doc/classes/SpriteBase3D.xml | 2 + doc/classes/Vector2.xml | 4 +- doc/classes/Vector3.xml | 6 +- modules/gdnative/doc_classes/NativeScript.xml | 2 +- modules/gdnative/doc_classes/PluginScript.xml | 2 +- modules/gdscript/doc_classes/@GDScript.xml | 2 +- modules/gdscript/doc_classes/GDScript.xml | 2 +- 10 files changed, 109 insertions(+), 10 deletions(-) create mode 100644 doc/classes/JSONRPC.xml (limited to 'modules/gdscript/doc_classes') diff --git a/doc/classes/Control.xml b/doc/classes/Control.xml index f263c12821..1eeef92ccc 100644 --- a/doc/classes/Control.xml +++ b/doc/classes/Control.xml @@ -260,7 +260,7 @@ - + diff --git a/doc/classes/JSONRPC.xml b/doc/classes/JSONRPC.xml new file mode 100644 index 0000000000..921161afb4 --- /dev/null +++ b/doc/classes/JSONRPC.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/classes/ProjectSettings.xml b/doc/classes/ProjectSettings.xml index b3175bb2fd..86b874d8ee 100644 --- a/doc/classes/ProjectSettings.xml +++ b/doc/classes/ProjectSettings.xml @@ -415,6 +415,8 @@ Internal editor setting, don't touch. + + diff --git a/doc/classes/SpriteBase3D.xml b/doc/classes/SpriteBase3D.xml index 5529da909d..15d5d7beb4 100644 --- a/doc/classes/SpriteBase3D.xml +++ b/doc/classes/SpriteBase3D.xml @@ -46,6 +46,8 @@ The direction in which the front of the texture faces. + + If [code]true[/code], texture will be centered. diff --git a/doc/classes/Vector2.xml b/doc/classes/Vector2.xml index 66c4849358..987ed9867b 100644 --- a/doc/classes/Vector2.xml +++ b/doc/classes/Vector2.xml @@ -215,7 +215,7 @@ - + Returns a vector composed of the [code]fposmod[/code] of this vector's components and [code]modv[/code]'s components. @@ -310,7 +310,7 @@ - Enumerated value for the X axis. Returned by [method max_axis] and [method min_axis]. + Enumerated value for the X axis. Enumerated value for the Y axis. diff --git a/doc/classes/Vector3.xml b/doc/classes/Vector3.xml index 4631eb7300..05ce6c43ae 100644 --- a/doc/classes/Vector3.xml +++ b/doc/classes/Vector3.xml @@ -214,7 +214,7 @@ - + Returns a vector composed of the [code]fposmod[/code] of this vector's components and [code]modv[/code]'s components. @@ -317,10 +317,10 @@ Enumerated value for the X axis. Returned by [method max_axis] and [method min_axis]. - Enumerated value for the Y axis. + Enumerated value for the Y axis. Returned by [method max_axis] and [method min_axis]. - Enumerated value for the Z axis. + Enumerated value for the Z axis. Returned by [method max_axis] and [method min_axis]. Zero vector. diff --git a/modules/gdnative/doc_classes/NativeScript.xml b/modules/gdnative/doc_classes/NativeScript.xml index e34e209374..dc735546e3 100644 --- a/modules/gdnative/doc_classes/NativeScript.xml +++ b/modules/gdnative/doc_classes/NativeScript.xml @@ -42,7 +42,7 @@ - + Constructs a new object of the base type with a script of this type already attached. diff --git a/modules/gdnative/doc_classes/PluginScript.xml b/modules/gdnative/doc_classes/PluginScript.xml index b07122bbdf..33b5f02bd4 100644 --- a/modules/gdnative/doc_classes/PluginScript.xml +++ b/modules/gdnative/doc_classes/PluginScript.xml @@ -8,7 +8,7 @@ - + Returns a new instance of the script. diff --git a/modules/gdscript/doc_classes/@GDScript.xml b/modules/gdscript/doc_classes/@GDScript.xml index 605a999d6a..4efa90fd86 100644 --- a/modules/gdscript/doc_classes/@GDScript.xml +++ b/modules/gdscript/doc_classes/@GDScript.xml @@ -1119,7 +1119,7 @@ [codeblock] stepify(100, 32) # Returns 96 stepify(3.14159, 0.01) # Returns 3.14 - [/codeblock] + [/codeblock] diff --git a/modules/gdscript/doc_classes/GDScript.xml b/modules/gdscript/doc_classes/GDScript.xml index d606a41fab..6f43361914 100644 --- a/modules/gdscript/doc_classes/GDScript.xml +++ b/modules/gdscript/doc_classes/GDScript.xml @@ -19,7 +19,7 @@ - + Returns a new instance of the script. -- cgit v1.2.3