mirror of
https://github.com/godotengine/godot.git
synced 2025-01-31 14:11:41 +00:00
Merge pull request #23083 from Windfisch/pathfollow_configwarn
Add a configuration warning to [Oriented]PathFollow
This commit is contained in:
commit
bf957a414a
@ -43,6 +43,16 @@ void Path::_curve_changed() {
|
||||
if (is_inside_tree()) {
|
||||
emit_signal("curve_changed");
|
||||
}
|
||||
|
||||
// update the configuration warnings of all children of type OrientedPathFollows
|
||||
if (is_inside_tree()) {
|
||||
for (int i = 0; i < get_child_count(); i++) {
|
||||
OrientedPathFollow *child = Object::cast_to<OrientedPathFollow>(get_child(i));
|
||||
if (child) {
|
||||
child->update_configuration_warning();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Path::set_curve(const Ref<Curve3D> &p_curve) {
|
||||
@ -207,6 +217,18 @@ void PathFollow::_validate_property(PropertyInfo &property) const {
|
||||
}
|
||||
}
|
||||
|
||||
String PathFollow::get_configuration_warning() const {
|
||||
|
||||
if (!is_visible_in_tree() || !is_inside_tree())
|
||||
return String();
|
||||
|
||||
if (!Object::cast_to<Path>(get_parent())) {
|
||||
return TTR("PathFollow only works when set as a child of a Path node.");
|
||||
}
|
||||
|
||||
return String();
|
||||
}
|
||||
|
||||
void PathFollow::_bind_methods() {
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_offset", "offset"), &PathFollow::set_offset);
|
||||
@ -444,6 +466,23 @@ void OrientedPathFollow::_validate_property(PropertyInfo &property) const {
|
||||
}
|
||||
}
|
||||
|
||||
String OrientedPathFollow::get_configuration_warning() const {
|
||||
|
||||
if (!is_visible_in_tree() || !is_inside_tree())
|
||||
return String();
|
||||
|
||||
if (!Object::cast_to<Path>(get_parent())) {
|
||||
return TTR("OrientedPathFollow only works when set as a child of a Path node.");
|
||||
} else {
|
||||
Path *path = Object::cast_to<Path>(get_parent());
|
||||
if (path->get_curve().is_valid() && !path->get_curve()->is_up_vector_enabled()) {
|
||||
return TTR("OrientedPathFollow requires up vectors enabled in its parent Path.");
|
||||
}
|
||||
}
|
||||
|
||||
return String();
|
||||
}
|
||||
|
||||
void OrientedPathFollow::_bind_methods() {
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_offset", "offset"), &OrientedPathFollow::set_offset);
|
||||
|
@ -106,6 +106,8 @@ public:
|
||||
void set_cubic_interpolation(bool p_enable);
|
||||
bool get_cubic_interpolation() const;
|
||||
|
||||
String get_configuration_warning() const;
|
||||
|
||||
PathFollow();
|
||||
};
|
||||
|
||||
@ -151,6 +153,8 @@ public:
|
||||
void set_cubic_interpolation(bool p_enable);
|
||||
bool get_cubic_interpolation() const;
|
||||
|
||||
String get_configuration_warning() const;
|
||||
|
||||
OrientedPathFollow();
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user