Merge pull request #50009 from reduz/fix-suffixes-and-degrees
Fix editor suffixes and degrees conversion
This commit is contained in:
commit
a02620f3a5
55 changed files with 275 additions and 498 deletions
|
|
@ -893,11 +893,17 @@ void EditorPropertyFloat::_value_changed(double val) {
|
|||
return;
|
||||
}
|
||||
|
||||
if (angle_in_radians) {
|
||||
val = Math::deg2rad(val);
|
||||
}
|
||||
emit_changed(get_edited_property(), val);
|
||||
}
|
||||
|
||||
void EditorPropertyFloat::update_property() {
|
||||
double val = get_edited_object()->get(get_edited_property());
|
||||
if (angle_in_radians) {
|
||||
val = Math::rad2deg(val);
|
||||
}
|
||||
setting = true;
|
||||
spin->set_value(val);
|
||||
setting = false;
|
||||
|
|
@ -906,7 +912,8 @@ void EditorPropertyFloat::update_property() {
|
|||
void EditorPropertyFloat::_bind_methods() {
|
||||
}
|
||||
|
||||
void EditorPropertyFloat::setup(double p_min, double p_max, double p_step, bool p_no_slider, bool p_exp_range, bool p_greater, bool p_lesser) {
|
||||
void EditorPropertyFloat::setup(double p_min, double p_max, double p_step, bool p_no_slider, bool p_exp_range, bool p_greater, bool p_lesser, const String &p_suffix, bool p_angle_in_radians) {
|
||||
angle_in_radians = p_angle_in_radians;
|
||||
spin->set_min(p_min);
|
||||
spin->set_max(p_max);
|
||||
spin->set_step(p_step);
|
||||
|
|
@ -914,6 +921,7 @@ void EditorPropertyFloat::setup(double p_min, double p_max, double p_step, bool
|
|||
spin->set_exp_ratio(p_exp_range);
|
||||
spin->set_allow_greater(p_greater);
|
||||
spin->set_allow_lesser(p_lesser);
|
||||
spin->set_suffix(p_suffix);
|
||||
}
|
||||
|
||||
EditorPropertyFloat::EditorPropertyFloat() {
|
||||
|
|
@ -922,7 +930,6 @@ EditorPropertyFloat::EditorPropertyFloat() {
|
|||
add_child(spin);
|
||||
add_focusable(spin);
|
||||
spin->connect("value_changed", callable_mp(this, &EditorPropertyFloat::_value_changed));
|
||||
setting = false;
|
||||
}
|
||||
|
||||
///////////////////// EASING /////////////////////////
|
||||
|
|
@ -1172,7 +1179,7 @@ void EditorPropertyVector2::_notification(int p_what) {
|
|||
void EditorPropertyVector2::_bind_methods() {
|
||||
}
|
||||
|
||||
void EditorPropertyVector2::setup(double p_min, double p_max, double p_step, bool p_no_slider) {
|
||||
void EditorPropertyVector2::setup(double p_min, double p_max, double p_step, bool p_no_slider, const String &p_suffix) {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
spin[i]->set_min(p_min);
|
||||
spin[i]->set_max(p_max);
|
||||
|
|
@ -1180,6 +1187,7 @@ void EditorPropertyVector2::setup(double p_min, double p_max, double p_step, boo
|
|||
spin[i]->set_hide_slider(p_no_slider);
|
||||
spin[i]->set_allow_greater(true);
|
||||
spin[i]->set_allow_lesser(true);
|
||||
spin[i]->set_suffix(p_suffix);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1258,7 +1266,7 @@ void EditorPropertyRect2::_notification(int p_what) {
|
|||
void EditorPropertyRect2::_bind_methods() {
|
||||
}
|
||||
|
||||
void EditorPropertyRect2::setup(double p_min, double p_max, double p_step, bool p_no_slider) {
|
||||
void EditorPropertyRect2::setup(double p_min, double p_max, double p_step, bool p_no_slider, const String &p_suffix) {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
spin[i]->set_min(p_min);
|
||||
spin[i]->set_max(p_max);
|
||||
|
|
@ -1266,6 +1274,7 @@ void EditorPropertyRect2::setup(double p_min, double p_max, double p_step, bool
|
|||
spin[i]->set_hide_slider(p_no_slider);
|
||||
spin[i]->set_allow_greater(true);
|
||||
spin[i]->set_allow_lesser(true);
|
||||
spin[i]->set_suffix(p_suffix);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1326,6 +1335,11 @@ void EditorPropertyVector3::_value_changed(double val, const String &p_name) {
|
|||
v3.x = spin[0]->get_value();
|
||||
v3.y = spin[1]->get_value();
|
||||
v3.z = spin[2]->get_value();
|
||||
if (angle_in_radians) {
|
||||
v3.x = Math::deg2rad(v3.x);
|
||||
v3.y = Math::deg2rad(v3.y);
|
||||
v3.z = Math::deg2rad(v3.z);
|
||||
}
|
||||
emit_changed(get_edited_property(), v3, p_name);
|
||||
}
|
||||
|
||||
|
|
@ -1334,6 +1348,11 @@ void EditorPropertyVector3::update_property() {
|
|||
}
|
||||
|
||||
void EditorPropertyVector3::update_using_vector(Vector3 p_vector) {
|
||||
if (angle_in_radians) {
|
||||
p_vector.x = Math::rad2deg(p_vector.x);
|
||||
p_vector.y = Math::rad2deg(p_vector.y);
|
||||
p_vector.z = Math::rad2deg(p_vector.z);
|
||||
}
|
||||
setting = true;
|
||||
spin[0]->set_value(p_vector.x);
|
||||
spin[1]->set_value(p_vector.y);
|
||||
|
|
@ -1346,6 +1365,12 @@ Vector3 EditorPropertyVector3::get_vector() {
|
|||
v3.x = spin[0]->get_value();
|
||||
v3.y = spin[1]->get_value();
|
||||
v3.z = spin[2]->get_value();
|
||||
if (angle_in_radians) {
|
||||
v3.x = Math::deg2rad(v3.x);
|
||||
v3.y = Math::deg2rad(v3.y);
|
||||
v3.z = Math::deg2rad(v3.z);
|
||||
}
|
||||
|
||||
return v3;
|
||||
}
|
||||
|
||||
|
|
@ -1363,7 +1388,8 @@ void EditorPropertyVector3::_notification(int p_what) {
|
|||
void EditorPropertyVector3::_bind_methods() {
|
||||
}
|
||||
|
||||
void EditorPropertyVector3::setup(double p_min, double p_max, double p_step, bool p_no_slider) {
|
||||
void EditorPropertyVector3::setup(double p_min, double p_max, double p_step, bool p_no_slider, const String &p_suffix, bool p_angle_in_radians) {
|
||||
angle_in_radians = p_angle_in_radians;
|
||||
for (int i = 0; i < 3; i++) {
|
||||
spin[i]->set_min(p_min);
|
||||
spin[i]->set_max(p_max);
|
||||
|
|
@ -1371,6 +1397,7 @@ void EditorPropertyVector3::setup(double p_min, double p_max, double p_step, boo
|
|||
spin[i]->set_hide_slider(p_no_slider);
|
||||
spin[i]->set_allow_greater(true);
|
||||
spin[i]->set_allow_lesser(true);
|
||||
spin[i]->set_suffix(p_suffix);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1407,7 +1434,6 @@ EditorPropertyVector3::EditorPropertyVector3(bool p_force_wide) {
|
|||
if (!horizontal) {
|
||||
set_label_reference(spin[0]); //show text and buttons around this
|
||||
}
|
||||
setting = false;
|
||||
}
|
||||
|
||||
///////////////////// VECTOR2i /////////////////////////
|
||||
|
|
@ -1445,7 +1471,7 @@ void EditorPropertyVector2i::_notification(int p_what) {
|
|||
void EditorPropertyVector2i::_bind_methods() {
|
||||
}
|
||||
|
||||
void EditorPropertyVector2i::setup(int p_min, int p_max, bool p_no_slider) {
|
||||
void EditorPropertyVector2i::setup(int p_min, int p_max, bool p_no_slider, const String &p_suffix) {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
spin[i]->set_min(p_min);
|
||||
spin[i]->set_max(p_max);
|
||||
|
|
@ -1453,6 +1479,7 @@ void EditorPropertyVector2i::setup(int p_min, int p_max, bool p_no_slider) {
|
|||
spin[i]->set_hide_slider(p_no_slider);
|
||||
spin[i]->set_allow_greater(true);
|
||||
spin[i]->set_allow_lesser(true);
|
||||
spin[i]->set_suffix(p_suffix);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1531,7 +1558,7 @@ void EditorPropertyRect2i::_notification(int p_what) {
|
|||
void EditorPropertyRect2i::_bind_methods() {
|
||||
}
|
||||
|
||||
void EditorPropertyRect2i::setup(int p_min, int p_max, bool p_no_slider) {
|
||||
void EditorPropertyRect2i::setup(int p_min, int p_max, bool p_no_slider, const String &p_suffix) {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
spin[i]->set_min(p_min);
|
||||
spin[i]->set_max(p_max);
|
||||
|
|
@ -1539,6 +1566,7 @@ void EditorPropertyRect2i::setup(int p_min, int p_max, bool p_no_slider) {
|
|||
spin[i]->set_hide_slider(p_no_slider);
|
||||
spin[i]->set_allow_greater(true);
|
||||
spin[i]->set_allow_lesser(true);
|
||||
spin[i]->set_suffix(p_suffix);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1625,7 +1653,7 @@ void EditorPropertyVector3i::_notification(int p_what) {
|
|||
void EditorPropertyVector3i::_bind_methods() {
|
||||
}
|
||||
|
||||
void EditorPropertyVector3i::setup(int p_min, int p_max, bool p_no_slider) {
|
||||
void EditorPropertyVector3i::setup(int p_min, int p_max, bool p_no_slider, const String &p_suffix) {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
spin[i]->set_min(p_min);
|
||||
spin[i]->set_max(p_max);
|
||||
|
|
@ -1633,6 +1661,7 @@ void EditorPropertyVector3i::setup(int p_min, int p_max, bool p_no_slider) {
|
|||
spin[i]->set_hide_slider(p_no_slider);
|
||||
spin[i]->set_allow_greater(true);
|
||||
spin[i]->set_allow_lesser(true);
|
||||
spin[i]->set_suffix(p_suffix);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1710,7 +1739,7 @@ void EditorPropertyPlane::_notification(int p_what) {
|
|||
void EditorPropertyPlane::_bind_methods() {
|
||||
}
|
||||
|
||||
void EditorPropertyPlane::setup(double p_min, double p_max, double p_step, bool p_no_slider) {
|
||||
void EditorPropertyPlane::setup(double p_min, double p_max, double p_step, bool p_no_slider, const String &p_suffix) {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
spin[i]->set_min(p_min);
|
||||
spin[i]->set_max(p_max);
|
||||
|
|
@ -1718,6 +1747,7 @@ void EditorPropertyPlane::setup(double p_min, double p_max, double p_step, bool
|
|||
spin[i]->set_hide_slider(p_no_slider);
|
||||
spin[i]->set_allow_greater(true);
|
||||
spin[i]->set_allow_lesser(true);
|
||||
spin[i]->set_suffix(p_suffix);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1796,7 +1826,7 @@ void EditorPropertyQuaternion::_notification(int p_what) {
|
|||
void EditorPropertyQuaternion::_bind_methods() {
|
||||
}
|
||||
|
||||
void EditorPropertyQuaternion::setup(double p_min, double p_max, double p_step, bool p_no_slider) {
|
||||
void EditorPropertyQuaternion::setup(double p_min, double p_max, double p_step, bool p_no_slider, const String &p_suffix) {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
spin[i]->set_min(p_min);
|
||||
spin[i]->set_max(p_max);
|
||||
|
|
@ -1804,6 +1834,7 @@ void EditorPropertyQuaternion::setup(double p_min, double p_max, double p_step,
|
|||
spin[i]->set_hide_slider(p_no_slider);
|
||||
spin[i]->set_allow_greater(true);
|
||||
spin[i]->set_allow_lesser(true);
|
||||
spin[i]->set_suffix(p_suffix);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1885,7 +1916,7 @@ void EditorPropertyAABB::_notification(int p_what) {
|
|||
void EditorPropertyAABB::_bind_methods() {
|
||||
}
|
||||
|
||||
void EditorPropertyAABB::setup(double p_min, double p_max, double p_step, bool p_no_slider) {
|
||||
void EditorPropertyAABB::setup(double p_min, double p_max, double p_step, bool p_no_slider, const String &p_suffix) {
|
||||
for (int i = 0; i < 6; i++) {
|
||||
spin[i]->set_min(p_min);
|
||||
spin[i]->set_max(p_max);
|
||||
|
|
@ -1893,6 +1924,7 @@ void EditorPropertyAABB::setup(double p_min, double p_max, double p_step, bool p
|
|||
spin[i]->set_hide_slider(p_no_slider);
|
||||
spin[i]->set_allow_greater(true);
|
||||
spin[i]->set_allow_lesser(true);
|
||||
spin[i]->set_suffix(p_suffix);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1961,7 +1993,7 @@ void EditorPropertyTransform2D::_notification(int p_what) {
|
|||
void EditorPropertyTransform2D::_bind_methods() {
|
||||
}
|
||||
|
||||
void EditorPropertyTransform2D::setup(double p_min, double p_max, double p_step, bool p_no_slider) {
|
||||
void EditorPropertyTransform2D::setup(double p_min, double p_max, double p_step, bool p_no_slider, const String &p_suffix) {
|
||||
for (int i = 0; i < 6; i++) {
|
||||
spin[i]->set_min(p_min);
|
||||
spin[i]->set_max(p_max);
|
||||
|
|
@ -1969,6 +2001,7 @@ void EditorPropertyTransform2D::setup(double p_min, double p_max, double p_step,
|
|||
spin[i]->set_hide_slider(p_no_slider);
|
||||
spin[i]->set_allow_greater(true);
|
||||
spin[i]->set_allow_lesser(true);
|
||||
spin[i]->set_suffix(p_suffix);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2042,7 +2075,7 @@ void EditorPropertyBasis::_notification(int p_what) {
|
|||
void EditorPropertyBasis::_bind_methods() {
|
||||
}
|
||||
|
||||
void EditorPropertyBasis::setup(double p_min, double p_max, double p_step, bool p_no_slider) {
|
||||
void EditorPropertyBasis::setup(double p_min, double p_max, double p_step, bool p_no_slider, const String &p_suffix) {
|
||||
for (int i = 0; i < 9; i++) {
|
||||
spin[i]->set_min(p_min);
|
||||
spin[i]->set_max(p_max);
|
||||
|
|
@ -2050,6 +2083,7 @@ void EditorPropertyBasis::setup(double p_min, double p_max, double p_step, bool
|
|||
spin[i]->set_hide_slider(p_no_slider);
|
||||
spin[i]->set_allow_greater(true);
|
||||
spin[i]->set_allow_lesser(true);
|
||||
spin[i]->set_suffix(p_suffix);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2131,7 +2165,7 @@ void EditorPropertyTransform3D::_notification(int p_what) {
|
|||
void EditorPropertyTransform3D::_bind_methods() {
|
||||
}
|
||||
|
||||
void EditorPropertyTransform3D::setup(double p_min, double p_max, double p_step, bool p_no_slider) {
|
||||
void EditorPropertyTransform3D::setup(double p_min, double p_max, double p_step, bool p_no_slider, const String &p_suffix) {
|
||||
for (int i = 0; i < 12; i++) {
|
||||
spin[i]->set_min(p_min);
|
||||
spin[i]->set_max(p_max);
|
||||
|
|
@ -2139,6 +2173,7 @@ void EditorPropertyTransform3D::setup(double p_min, double p_max, double p_step,
|
|||
spin[i]->set_hide_slider(p_no_slider);
|
||||
spin[i]->set_allow_greater(true);
|
||||
spin[i]->set_allow_lesser(true);
|
||||
spin[i]->set_suffix(p_suffix);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2711,6 +2746,60 @@ void EditorInspectorDefaultPlugin::parse_end() {
|
|||
//do none
|
||||
}
|
||||
|
||||
struct EditorPropertyRangeHint {
|
||||
bool angle_in_degrees = false;
|
||||
bool greater = true;
|
||||
bool lesser = true;
|
||||
double min = -99999;
|
||||
double max = 99999;
|
||||
double step = 0;
|
||||
String suffix;
|
||||
bool exp_range = false;
|
||||
bool hide_slider = true;
|
||||
bool radians = false;
|
||||
};
|
||||
|
||||
static EditorPropertyRangeHint _parse_range_hint(PropertyHint p_hint, const String &p_hint_text, double p_default_step) {
|
||||
EditorPropertyRangeHint hint;
|
||||
hint.step = p_default_step;
|
||||
bool degrees = false;
|
||||
if (p_hint == PROPERTY_HINT_RANGE && p_hint_text.get_slice_count(",") >= 2) {
|
||||
hint.greater = false; //if using ranged, assume false by default
|
||||
hint.lesser = false;
|
||||
|
||||
hint.min = p_hint_text.get_slice(",", 0).to_float();
|
||||
hint.max = p_hint_text.get_slice(",", 1).to_float();
|
||||
if (p_hint_text.get_slice_count(",") >= 3) {
|
||||
hint.step = p_hint_text.get_slice(",", 2).to_float();
|
||||
}
|
||||
hint.hide_slider = false;
|
||||
for (int i = 2; i < p_hint_text.get_slice_count(","); i++) {
|
||||
String slice = p_hint_text.get_slice(",", i).strip_edges();
|
||||
if (slice == "radians") {
|
||||
hint.radians = true;
|
||||
} else if (slice == "degrees") {
|
||||
degrees = true;
|
||||
} else if (slice == "or_greater") {
|
||||
hint.greater = true;
|
||||
} else if (slice == "or_lesser") {
|
||||
hint.lesser = true;
|
||||
} else if (slice == "noslider") {
|
||||
hint.hide_slider = true;
|
||||
} else if (slice == "exp") {
|
||||
hint.exp_range = true;
|
||||
} else if (slice.begins_with("suffix:")) {
|
||||
hint.suffix = " " + slice.replace_first("suffix:", "").strip_edges();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ((hint.radians || degrees) && hint.suffix == String()) {
|
||||
hint.suffix = U"\u00B0";
|
||||
}
|
||||
|
||||
return hint;
|
||||
}
|
||||
|
||||
EditorProperty *EditorInspectorDefaultPlugin::get_editor_for_property(Object *p_object, Variant::Type p_type, const String &p_path, PropertyHint p_hint, const String &p_hint_text, int p_usage, bool p_wide) {
|
||||
double default_float_step = EDITOR_GET("interface/inspector/default_float_step");
|
||||
|
||||
|
|
@ -2776,31 +2865,10 @@ EditorProperty *EditorInspectorDefaultPlugin::get_editor_for_property(Object *p_
|
|||
|
||||
} else {
|
||||
EditorPropertyInteger *editor = memnew(EditorPropertyInteger);
|
||||
int min = 0, max = 65535, step = 1;
|
||||
bool greater = true, lesser = true;
|
||||
|
||||
if (p_hint == PROPERTY_HINT_RANGE && p_hint_text.get_slice_count(",") >= 2) {
|
||||
greater = false; //if using ranged, assume false by default
|
||||
lesser = false;
|
||||
min = p_hint_text.get_slice(",", 0).to_int();
|
||||
max = p_hint_text.get_slice(",", 1).to_int();
|
||||
EditorPropertyRangeHint hint = _parse_range_hint(p_hint, p_hint_text, 1);
|
||||
|
||||
if (p_hint_text.get_slice_count(",") >= 3) {
|
||||
step = p_hint_text.get_slice(",", 2).to_int();
|
||||
}
|
||||
|
||||
for (int i = 2; i < p_hint_text.get_slice_count(","); i++) {
|
||||
String slice = p_hint_text.get_slice(",", i).strip_edges();
|
||||
if (slice == "or_greater") {
|
||||
greater = true;
|
||||
}
|
||||
if (slice == "or_lesser") {
|
||||
lesser = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
editor->setup(min, max, step, greater, lesser);
|
||||
editor->setup(hint.min, hint.max, hint.step, hint.greater, hint.lesser);
|
||||
|
||||
return editor;
|
||||
}
|
||||
|
|
@ -2826,33 +2894,9 @@ EditorProperty *EditorInspectorDefaultPlugin::get_editor_for_property(Object *p_
|
|||
|
||||
} else {
|
||||
EditorPropertyFloat *editor = memnew(EditorPropertyFloat);
|
||||
double min = -65535, max = 65535, step = default_float_step;
|
||||
bool hide_slider = true;
|
||||
bool exp_range = false;
|
||||
bool greater = true, lesser = true;
|
||||
|
||||
if ((p_hint == PROPERTY_HINT_RANGE || p_hint == PROPERTY_HINT_EXP_RANGE) && p_hint_text.get_slice_count(",") >= 2) {
|
||||
greater = false; //if using ranged, assume false by default
|
||||
lesser = false;
|
||||
min = p_hint_text.get_slice(",", 0).to_float();
|
||||
max = p_hint_text.get_slice(",", 1).to_float();
|
||||
if (p_hint_text.get_slice_count(",") >= 3) {
|
||||
step = p_hint_text.get_slice(",", 2).to_float();
|
||||
}
|
||||
hide_slider = false;
|
||||
exp_range = p_hint == PROPERTY_HINT_EXP_RANGE;
|
||||
for (int i = 2; i < p_hint_text.get_slice_count(","); i++) {
|
||||
String slice = p_hint_text.get_slice(",", i).strip_edges();
|
||||
if (slice == "or_greater") {
|
||||
greater = true;
|
||||
}
|
||||
if (slice == "or_lesser") {
|
||||
lesser = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
editor->setup(min, max, step, hide_slider, exp_range, greater, lesser);
|
||||
EditorPropertyRangeHint hint = _parse_range_hint(p_hint, p_hint_text, default_float_step);
|
||||
editor->setup(hint.min, hint.max, hint.step, hint.hide_slider, hint.exp_range, hint.greater, hint.lesser, hint.suffix, hint.radians);
|
||||
|
||||
return editor;
|
||||
}
|
||||
|
|
@ -2933,203 +2977,81 @@ EditorProperty *EditorInspectorDefaultPlugin::get_editor_for_property(Object *p_
|
|||
|
||||
case Variant::VECTOR2: {
|
||||
EditorPropertyVector2 *editor = memnew(EditorPropertyVector2(p_wide));
|
||||
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) {
|
||||
min = p_hint_text.get_slice(",", 0).to_float();
|
||||
max = p_hint_text.get_slice(",", 1).to_float();
|
||||
if (p_hint_text.get_slice_count(",") >= 3) {
|
||||
step = p_hint_text.get_slice(",", 2).to_float();
|
||||
}
|
||||
hide_slider = false;
|
||||
}
|
||||
|
||||
editor->setup(min, max, step, hide_slider);
|
||||
EditorPropertyRangeHint hint = _parse_range_hint(p_hint, p_hint_text, default_float_step);
|
||||
editor->setup(hint.min, hint.max, hint.step, hint.hide_slider, hint.suffix);
|
||||
return editor;
|
||||
|
||||
} break;
|
||||
case Variant::VECTOR2I: {
|
||||
EditorPropertyVector2i *editor = memnew(EditorPropertyVector2i(p_wide));
|
||||
int min = -65535, max = 65535;
|
||||
bool hide_slider = true;
|
||||
|
||||
if (p_hint == PROPERTY_HINT_RANGE && p_hint_text.get_slice_count(",") >= 2) {
|
||||
min = p_hint_text.get_slice(",", 0).to_float();
|
||||
max = p_hint_text.get_slice(",", 1).to_float();
|
||||
hide_slider = false;
|
||||
}
|
||||
|
||||
editor->setup(min, max, hide_slider);
|
||||
EditorPropertyRangeHint hint = _parse_range_hint(p_hint, p_hint_text, 1);
|
||||
editor->setup(hint.min, hint.max, hint.hide_slider, hint.suffix);
|
||||
return editor;
|
||||
|
||||
} break;
|
||||
case Variant::RECT2: {
|
||||
EditorPropertyRect2 *editor = memnew(EditorPropertyRect2(p_wide));
|
||||
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) {
|
||||
min = p_hint_text.get_slice(",", 0).to_float();
|
||||
max = p_hint_text.get_slice(",", 1).to_float();
|
||||
if (p_hint_text.get_slice_count(",") >= 3) {
|
||||
step = p_hint_text.get_slice(",", 2).to_float();
|
||||
}
|
||||
hide_slider = false;
|
||||
}
|
||||
|
||||
editor->setup(min, max, step, hide_slider);
|
||||
EditorPropertyRangeHint hint = _parse_range_hint(p_hint, p_hint_text, default_float_step);
|
||||
editor->setup(hint.min, hint.max, hint.step, hint.hide_slider, hint.suffix);
|
||||
return editor;
|
||||
} break;
|
||||
case Variant::RECT2I: {
|
||||
EditorPropertyRect2i *editor = memnew(EditorPropertyRect2i(p_wide));
|
||||
int min = -65535, max = 65535;
|
||||
bool hide_slider = true;
|
||||
EditorPropertyRangeHint hint = _parse_range_hint(p_hint, p_hint_text, 1);
|
||||
editor->setup(hint.min, hint.max, hint.hide_slider, hint.suffix);
|
||||
|
||||
if (p_hint == PROPERTY_HINT_RANGE && p_hint_text.get_slice_count(",") >= 2) {
|
||||
min = p_hint_text.get_slice(",", 0).to_float();
|
||||
max = p_hint_text.get_slice(",", 1).to_float();
|
||||
hide_slider = false;
|
||||
}
|
||||
|
||||
editor->setup(min, max, hide_slider);
|
||||
return editor;
|
||||
} break;
|
||||
case Variant::VECTOR3: {
|
||||
EditorPropertyVector3 *editor = memnew(EditorPropertyVector3(p_wide));
|
||||
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) {
|
||||
min = p_hint_text.get_slice(",", 0).to_float();
|
||||
max = p_hint_text.get_slice(",", 1).to_float();
|
||||
if (p_hint_text.get_slice_count(",") >= 3) {
|
||||
step = p_hint_text.get_slice(",", 2).to_float();
|
||||
}
|
||||
hide_slider = false;
|
||||
}
|
||||
|
||||
editor->setup(min, max, step, hide_slider);
|
||||
EditorPropertyRangeHint hint = _parse_range_hint(p_hint, p_hint_text, default_float_step);
|
||||
editor->setup(hint.min, hint.max, hint.step, hint.hide_slider, hint.suffix, hint.radians);
|
||||
return editor;
|
||||
|
||||
} break;
|
||||
case Variant::VECTOR3I: {
|
||||
EditorPropertyVector3i *editor = memnew(EditorPropertyVector3i(p_wide));
|
||||
int min = -65535, max = 65535;
|
||||
bool hide_slider = true;
|
||||
|
||||
if (p_hint == PROPERTY_HINT_RANGE && p_hint_text.get_slice_count(",") >= 2) {
|
||||
min = p_hint_text.get_slice(",", 0).to_float();
|
||||
max = p_hint_text.get_slice(",", 1).to_float();
|
||||
|
||||
hide_slider = false;
|
||||
}
|
||||
|
||||
editor->setup(min, max, hide_slider);
|
||||
EditorPropertyRangeHint hint = _parse_range_hint(p_hint, p_hint_text, 1);
|
||||
editor->setup(hint.min, hint.max, hint.hide_slider, hint.suffix);
|
||||
return editor;
|
||||
|
||||
} break;
|
||||
case Variant::TRANSFORM2D: {
|
||||
EditorPropertyTransform2D *editor = memnew(EditorPropertyTransform2D);
|
||||
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) {
|
||||
min = p_hint_text.get_slice(",", 0).to_float();
|
||||
max = p_hint_text.get_slice(",", 1).to_float();
|
||||
if (p_hint_text.get_slice_count(",") >= 3) {
|
||||
step = p_hint_text.get_slice(",", 2).to_float();
|
||||
}
|
||||
hide_slider = false;
|
||||
}
|
||||
|
||||
editor->setup(min, max, step, hide_slider);
|
||||
EditorPropertyRangeHint hint = _parse_range_hint(p_hint, p_hint_text, default_float_step);
|
||||
editor->setup(hint.min, hint.max, hint.step, hint.hide_slider, hint.suffix);
|
||||
return editor;
|
||||
|
||||
} break;
|
||||
case Variant::PLANE: {
|
||||
EditorPropertyPlane *editor = memnew(EditorPropertyPlane(p_wide));
|
||||
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) {
|
||||
min = p_hint_text.get_slice(",", 0).to_float();
|
||||
max = p_hint_text.get_slice(",", 1).to_float();
|
||||
if (p_hint_text.get_slice_count(",") >= 3) {
|
||||
step = p_hint_text.get_slice(",", 2).to_float();
|
||||
}
|
||||
hide_slider = false;
|
||||
}
|
||||
|
||||
editor->setup(min, max, step, hide_slider);
|
||||
EditorPropertyRangeHint hint = _parse_range_hint(p_hint, p_hint_text, default_float_step);
|
||||
editor->setup(hint.min, hint.max, hint.step, hint.hide_slider, hint.suffix);
|
||||
return editor;
|
||||
} break;
|
||||
case Variant::QUATERNION: {
|
||||
EditorPropertyQuaternion *editor = memnew(EditorPropertyQuaternion);
|
||||
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) {
|
||||
min = p_hint_text.get_slice(",", 0).to_float();
|
||||
max = p_hint_text.get_slice(",", 1).to_float();
|
||||
if (p_hint_text.get_slice_count(",") >= 3) {
|
||||
step = p_hint_text.get_slice(",", 2).to_float();
|
||||
}
|
||||
hide_slider = false;
|
||||
}
|
||||
|
||||
editor->setup(min, max, step, hide_slider);
|
||||
EditorPropertyRangeHint hint = _parse_range_hint(p_hint, p_hint_text, default_float_step);
|
||||
editor->setup(hint.min, hint.max, hint.step, hint.hide_slider, hint.suffix);
|
||||
return editor;
|
||||
} break;
|
||||
case Variant::AABB: {
|
||||
EditorPropertyAABB *editor = memnew(EditorPropertyAABB);
|
||||
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) {
|
||||
min = p_hint_text.get_slice(",", 0).to_float();
|
||||
max = p_hint_text.get_slice(",", 1).to_float();
|
||||
if (p_hint_text.get_slice_count(",") >= 3) {
|
||||
step = p_hint_text.get_slice(",", 2).to_float();
|
||||
}
|
||||
hide_slider = false;
|
||||
}
|
||||
|
||||
editor->setup(min, max, step, hide_slider);
|
||||
EditorPropertyRangeHint hint = _parse_range_hint(p_hint, p_hint_text, default_float_step);
|
||||
editor->setup(hint.min, hint.max, hint.step, hint.hide_slider, hint.suffix);
|
||||
return editor;
|
||||
} break;
|
||||
case Variant::BASIS: {
|
||||
EditorPropertyBasis *editor = memnew(EditorPropertyBasis);
|
||||
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) {
|
||||
min = p_hint_text.get_slice(",", 0).to_float();
|
||||
max = p_hint_text.get_slice(",", 1).to_float();
|
||||
if (p_hint_text.get_slice_count(",") >= 3) {
|
||||
step = p_hint_text.get_slice(",", 2).to_float();
|
||||
}
|
||||
hide_slider = false;
|
||||
}
|
||||
|
||||
editor->setup(min, max, step, hide_slider);
|
||||
EditorPropertyRangeHint hint = _parse_range_hint(p_hint, p_hint_text, default_float_step);
|
||||
editor->setup(hint.min, hint.max, hint.step, hint.hide_slider, hint.suffix);
|
||||
return editor;
|
||||
} break;
|
||||
case Variant::TRANSFORM3D: {
|
||||
EditorPropertyTransform3D *editor = memnew(EditorPropertyTransform3D);
|
||||
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) {
|
||||
min = p_hint_text.get_slice(",", 0).to_float();
|
||||
max = p_hint_text.get_slice(",", 1).to_float();
|
||||
if (p_hint_text.get_slice_count(",") >= 3) {
|
||||
step = p_hint_text.get_slice(",", 2).to_float();
|
||||
}
|
||||
hide_slider = false;
|
||||
}
|
||||
|
||||
editor->setup(min, max, step, hide_slider);
|
||||
EditorPropertyRangeHint hint = _parse_range_hint(p_hint, p_hint_text, default_float_step);
|
||||
editor->setup(hint.min, hint.max, hint.step, hint.hide_slider, hint.suffix);
|
||||
return editor;
|
||||
|
||||
} break;
|
||||
|
|
|
|||
|
|
@ -298,7 +298,8 @@ public:
|
|||
class EditorPropertyFloat : public EditorProperty {
|
||||
GDCLASS(EditorPropertyFloat, EditorProperty);
|
||||
EditorSpinSlider *spin;
|
||||
bool setting;
|
||||
bool setting = false;
|
||||
bool angle_in_radians = false;
|
||||
void _value_changed(double p_val);
|
||||
|
||||
protected:
|
||||
|
|
@ -306,7 +307,7 @@ protected:
|
|||
|
||||
public:
|
||||
virtual void update_property() override;
|
||||
void setup(double p_min, double p_max, double p_step, bool p_no_slider, bool p_exp_range, bool p_greater, bool p_lesser);
|
||||
void setup(double p_min, double p_max, double p_step, bool p_no_slider, bool p_exp_range, bool p_greater, bool p_lesser, const String &p_suffix = String(), bool p_angle_in_radians = false);
|
||||
EditorPropertyFloat();
|
||||
};
|
||||
|
||||
|
|
@ -363,7 +364,7 @@ protected:
|
|||
|
||||
public:
|
||||
virtual void update_property() override;
|
||||
void setup(double p_min, double p_max, double p_step, bool p_no_slider);
|
||||
void setup(double p_min, double p_max, double p_step, bool p_no_slider, const String &p_suffix = String());
|
||||
EditorPropertyVector2(bool p_force_wide = false);
|
||||
};
|
||||
|
||||
|
|
@ -379,14 +380,15 @@ protected:
|
|||
|
||||
public:
|
||||
virtual void update_property() override;
|
||||
void setup(double p_min, double p_max, double p_step, bool p_no_slider);
|
||||
void setup(double p_min, double p_max, double p_step, bool p_no_slider, const String &p_suffix = String());
|
||||
EditorPropertyRect2(bool p_force_wide = false);
|
||||
};
|
||||
|
||||
class EditorPropertyVector3 : public EditorProperty {
|
||||
GDCLASS(EditorPropertyVector3, EditorProperty);
|
||||
EditorSpinSlider *spin[3];
|
||||
bool setting;
|
||||
bool setting = false;
|
||||
bool angle_in_radians = false;
|
||||
void _value_changed(double p_val, const String &p_name);
|
||||
|
||||
protected:
|
||||
|
|
@ -397,7 +399,7 @@ public:
|
|||
virtual void update_property() override;
|
||||
virtual void update_using_vector(Vector3 p_vector);
|
||||
virtual Vector3 get_vector();
|
||||
void setup(double p_min, double p_max, double p_step, bool p_no_slider);
|
||||
void setup(double p_min, double p_max, double p_step, bool p_no_slider, const String &p_suffix = String(), bool p_angle_in_radians = false);
|
||||
EditorPropertyVector3(bool p_force_wide = false);
|
||||
};
|
||||
|
||||
|
|
@ -413,7 +415,7 @@ protected:
|
|||
|
||||
public:
|
||||
virtual void update_property() override;
|
||||
void setup(int p_min, int p_max, bool p_no_slider);
|
||||
void setup(int p_min, int p_max, bool p_no_slider, const String &p_suffix = String());
|
||||
EditorPropertyVector2i(bool p_force_wide = false);
|
||||
};
|
||||
|
||||
|
|
@ -429,7 +431,7 @@ protected:
|
|||
|
||||
public:
|
||||
virtual void update_property() override;
|
||||
void setup(int p_min, int p_max, bool p_no_slider);
|
||||
void setup(int p_min, int p_max, bool p_no_slider, const String &p_suffix = String());
|
||||
EditorPropertyRect2i(bool p_force_wide = false);
|
||||
};
|
||||
|
||||
|
|
@ -445,7 +447,7 @@ protected:
|
|||
|
||||
public:
|
||||
virtual void update_property() override;
|
||||
void setup(int p_min, int p_max, bool p_no_slider);
|
||||
void setup(int p_min, int p_max, bool p_no_slider, const String &p_suffix = String());
|
||||
EditorPropertyVector3i(bool p_force_wide = false);
|
||||
};
|
||||
|
||||
|
|
@ -461,7 +463,7 @@ protected:
|
|||
|
||||
public:
|
||||
virtual void update_property() override;
|
||||
void setup(double p_min, double p_max, double p_step, bool p_no_slider);
|
||||
void setup(double p_min, double p_max, double p_step, bool p_no_slider, const String &p_suffix = String());
|
||||
EditorPropertyPlane(bool p_force_wide = false);
|
||||
};
|
||||
|
||||
|
|
@ -477,7 +479,7 @@ protected:
|
|||
|
||||
public:
|
||||
virtual void update_property() override;
|
||||
void setup(double p_min, double p_max, double p_step, bool p_no_slider);
|
||||
void setup(double p_min, double p_max, double p_step, bool p_no_slider, const String &p_suffix = String());
|
||||
EditorPropertyQuaternion();
|
||||
};
|
||||
|
||||
|
|
@ -493,7 +495,7 @@ protected:
|
|||
|
||||
public:
|
||||
virtual void update_property() override;
|
||||
void setup(double p_min, double p_max, double p_step, bool p_no_slider);
|
||||
void setup(double p_min, double p_max, double p_step, bool p_no_slider, const String &p_suffix = String());
|
||||
EditorPropertyAABB();
|
||||
};
|
||||
|
||||
|
|
@ -509,7 +511,7 @@ protected:
|
|||
|
||||
public:
|
||||
virtual void update_property() override;
|
||||
void setup(double p_min, double p_max, double p_step, bool p_no_slider);
|
||||
void setup(double p_min, double p_max, double p_step, bool p_no_slider, const String &p_suffix = String());
|
||||
EditorPropertyTransform2D();
|
||||
};
|
||||
|
||||
|
|
@ -525,7 +527,7 @@ protected:
|
|||
|
||||
public:
|
||||
virtual void update_property() override;
|
||||
void setup(double p_min, double p_max, double p_step, bool p_no_slider);
|
||||
void setup(double p_min, double p_max, double p_step, bool p_no_slider, const String &p_suffix = String());
|
||||
EditorPropertyBasis();
|
||||
};
|
||||
|
||||
|
|
@ -542,7 +544,7 @@ protected:
|
|||
public:
|
||||
virtual void update_property() override;
|
||||
virtual void update_using_transform(Transform3D p_transform);
|
||||
void setup(double p_min, double p_max, double p_step, bool p_no_slider);
|
||||
void setup(double p_min, double p_max, double p_step, bool p_no_slider, const String &p_suffix = String());
|
||||
EditorPropertyTransform3D();
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -255,7 +255,15 @@ void EditorSpinSlider::_notification(int p_what) {
|
|||
|
||||
draw_string(font, Vector2(Math::round(sb->get_offset().x), vofs), label, HALIGN_LEFT, -1, font_size, lc * Color(1, 1, 1, 0.5));
|
||||
|
||||
draw_string(font, Vector2(Math::round(sb->get_offset().x + string_width + sep), vofs), numstr, HALIGN_LEFT, number_width, font_size, fc);
|
||||
Vector2 text_ofs = Vector2(Math::round(sb->get_offset().x + string_width + sep), vofs);
|
||||
draw_string(font, text_ofs, numstr, HALIGN_LEFT, number_width, font_size, fc);
|
||||
|
||||
if (suffix != String()) {
|
||||
int sw = font->get_string_size(numstr).width;
|
||||
text_ofs.x += sw;
|
||||
fc.a *= 0.4;
|
||||
draw_string(font, text_ofs, suffix, HALIGN_LEFT, MAX(0, number_width - sw), font_size, fc);
|
||||
}
|
||||
|
||||
if (get_step() == 1) {
|
||||
Ref<Texture2D> updown2 = get_theme_icon("updown", "SpinBox");
|
||||
|
|
@ -365,6 +373,15 @@ String EditorSpinSlider::get_label() const {
|
|||
return label;
|
||||
}
|
||||
|
||||
void EditorSpinSlider::set_suffix(const String &p_suffix) {
|
||||
suffix = p_suffix;
|
||||
update();
|
||||
}
|
||||
|
||||
String EditorSpinSlider::get_suffix() const {
|
||||
return suffix;
|
||||
}
|
||||
|
||||
void EditorSpinSlider::_evaluate_input_text() {
|
||||
// Replace comma with dot to support it as decimal separator (GH-6028).
|
||||
// This prevents using functions like `pow()`, but using functions
|
||||
|
|
@ -468,6 +485,9 @@ void EditorSpinSlider::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("set_label", "label"), &EditorSpinSlider::set_label);
|
||||
ClassDB::bind_method(D_METHOD("get_label"), &EditorSpinSlider::get_label);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_suffix", "suffix"), &EditorSpinSlider::set_suffix);
|
||||
ClassDB::bind_method(D_METHOD("get_suffix"), &EditorSpinSlider::get_suffix);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_read_only", "read_only"), &EditorSpinSlider::set_read_only);
|
||||
ClassDB::bind_method(D_METHOD("is_read_only"), &EditorSpinSlider::is_read_only);
|
||||
|
||||
|
|
@ -477,6 +497,7 @@ void EditorSpinSlider::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("_gui_input"), &EditorSpinSlider::_gui_input);
|
||||
|
||||
ADD_PROPERTY(PropertyInfo(Variant::STRING, "label"), "set_label", "get_label");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::STRING, "suffix"), "set_suffix", "get_suffix");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "read_only"), "set_read_only", "is_read_only");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "flat"), "set_flat", "is_flat");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ class EditorSpinSlider : public Range {
|
|||
GDCLASS(EditorSpinSlider, Range);
|
||||
|
||||
String label;
|
||||
String suffix;
|
||||
int updown_offset;
|
||||
bool hover_updown;
|
||||
bool mouse_hover;
|
||||
|
|
@ -93,6 +94,9 @@ public:
|
|||
void set_label(const String &p_label);
|
||||
String get_label() const;
|
||||
|
||||
void set_suffix(const String &p_suffix);
|
||||
String get_suffix() const;
|
||||
|
||||
void set_hide_slider(bool p_hide);
|
||||
bool is_hiding_slider() const;
|
||||
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ void ResourceImporterWAV::get_import_options(List<ImportOption> *r_options, int
|
|||
r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "force/8_bit"), false));
|
||||
r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "force/mono"), false));
|
||||
r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "force/max_rate", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED), false));
|
||||
r_options->push_back(ImportOption(PropertyInfo(Variant::FLOAT, "force/max_rate_hz", PROPERTY_HINT_EXP_RANGE, "11025,192000,1"), 44100));
|
||||
r_options->push_back(ImportOption(PropertyInfo(Variant::FLOAT, "force/max_rate_hz", PROPERTY_HINT_RANGE, "11025,192000,1,exp"), 44100));
|
||||
r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "edit/trim"), false));
|
||||
r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "edit/normalize"), false));
|
||||
r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "edit/loop"), false));
|
||||
|
|
|
|||
|
|
@ -4242,7 +4242,7 @@ void CanvasItemEditor::_insert_animation_keys(bool p_location, bool p_rotation,
|
|||
AnimationPlayerEditor::singleton->get_track_editor()->insert_node_value_key(n2d, "position", n2d->get_position(), p_on_existing);
|
||||
}
|
||||
if (key_rot && p_rotation) {
|
||||
AnimationPlayerEditor::singleton->get_track_editor()->insert_node_value_key(n2d, "rotation_degrees", Math::rad2deg(n2d->get_rotation()), p_on_existing);
|
||||
AnimationPlayerEditor::singleton->get_track_editor()->insert_node_value_key(n2d, "rotation", n2d->get_rotation(), p_on_existing);
|
||||
}
|
||||
if (key_scale && p_scale) {
|
||||
AnimationPlayerEditor::singleton->get_track_editor()->insert_node_value_key(n2d, "scale", n2d->get_scale(), p_on_existing);
|
||||
|
|
@ -4274,7 +4274,7 @@ void CanvasItemEditor::_insert_animation_keys(bool p_location, bool p_rotation,
|
|||
AnimationPlayerEditor::singleton->get_track_editor()->insert_node_value_key(F->get(), "position", F->get()->get_position(), p_on_existing);
|
||||
}
|
||||
if (key_rot) {
|
||||
AnimationPlayerEditor::singleton->get_track_editor()->insert_node_value_key(F->get(), "rotation_degrees", Math::rad2deg(F->get()->get_rotation()), p_on_existing);
|
||||
AnimationPlayerEditor::singleton->get_track_editor()->insert_node_value_key(F->get(), "rotation", F->get()->get_rotation(), p_on_existing);
|
||||
}
|
||||
if (key_scale) {
|
||||
AnimationPlayerEditor::singleton->get_track_editor()->insert_node_value_key(F->get(), "scale", F->get()->get_scale(), p_on_existing);
|
||||
|
|
@ -4290,7 +4290,7 @@ void CanvasItemEditor::_insert_animation_keys(bool p_location, bool p_rotation,
|
|||
AnimationPlayerEditor::singleton->get_track_editor()->insert_node_value_key(ctrl, "rect_position", ctrl->get_position(), p_on_existing);
|
||||
}
|
||||
if (key_rot) {
|
||||
AnimationPlayerEditor::singleton->get_track_editor()->insert_node_value_key(ctrl, "rect_rotation", ctrl->get_rotation_degrees(), p_on_existing);
|
||||
AnimationPlayerEditor::singleton->get_track_editor()->insert_node_value_key(ctrl, "rect_rotation", ctrl->get_rotation(), p_on_existing);
|
||||
}
|
||||
if (key_scale) {
|
||||
AnimationPlayerEditor::singleton->get_track_editor()->insert_node_value_key(ctrl, "rect_size", ctrl->get_size(), p_on_existing);
|
||||
|
|
|
|||
|
|
@ -2508,8 +2508,8 @@ void Node3DEditorViewport::_notification(int p_what) {
|
|||
text += "X: " + rtos(current_camera->get_position().x).pad_decimals(1) + "\n";
|
||||
text += "Y: " + rtos(current_camera->get_position().y).pad_decimals(1) + "\n";
|
||||
text += "Z: " + rtos(current_camera->get_position().z).pad_decimals(1) + "\n";
|
||||
text += TTR("Pitch") + ": " + itos(Math::round(current_camera->get_rotation_degrees().x)) + "\n";
|
||||
text += TTR("Yaw") + ": " + itos(Math::round(current_camera->get_rotation_degrees().y)) + "\n\n";
|
||||
text += TTR("Pitch") + ": " + itos(Math::round(Math::rad2deg(current_camera->get_rotation().x))) + "\n";
|
||||
text += TTR("Yaw") + ": " + itos(Math::round(Math::rad2deg(current_camera->get_rotation().y))) + "\n\n";
|
||||
|
||||
text += TTR("Size") +
|
||||
vformat(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue