You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-18 14:21:41 +00:00
Fix editor suffixes and degrees conversion
* Functions to convert to/from degrees are all gone. Conversion is done by the editor. * Use PROPERTY_HINT_ANGLE instead of PROPERTY_HINT_RANGE to edit radian angles in degrees. * Added possibility to add suffixes to range properties, use "min,max[,step][,suffix:<something>]" example "0,100,1,suffix:m" * In general, can add suffixes for EditorSpinSlider Not covered by this PR, will have to be addressed by future ones: * Ability to switch radians/degrees in the inspector for angle properties (if actually wanted). * Animations previously made will most likely break, need to add a way to make old ones compatible. * Only added a "px" suffix to 2D position and a "m" one to 3D position, someone needs to go through the rest of the engine and add all remaining suffixes. * Likely also need to track down usage of EditorSpinSlider outside properties to add suffixes to it too.
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user