mirror of
https://github.com/godotengine/godot.git
synced 2024-11-11 06:33:10 +00:00
Better validate CollisionShape3D config. warning after #38743
Relates to #42479, though I don't think it would crash in the master version.
This commit is contained in:
parent
48afdfddb5
commit
7b18a7143b
@ -313,8 +313,9 @@ String Light2D::get_configuration_warning() const {
|
||||
String warning = Node2D::get_configuration_warning();
|
||||
|
||||
if (!texture.is_valid()) {
|
||||
if (!warning.empty())
|
||||
if (!warning.empty()) {
|
||||
warning += "\n\n";
|
||||
}
|
||||
warning += TTR("A texture with the shape of the light must be supplied to the \"Texture\" property.");
|
||||
}
|
||||
|
||||
|
@ -140,15 +140,14 @@ String CollisionShape3D::get_configuration_warning() const {
|
||||
warning += TTR("A shape must be provided for CollisionShape3D to function. Please create a shape resource for it.");
|
||||
}
|
||||
|
||||
if (Object::cast_to<RigidBody3D>(get_parent())) {
|
||||
if (Object::cast_to<ConcavePolygonShape3D>(*shape)) {
|
||||
if (Object::cast_to<RigidBody3D>(get_parent())->get_mode() != RigidBody3D::MODE_STATIC) {
|
||||
if (!warning.empty()) {
|
||||
warning += "\n\n";
|
||||
}
|
||||
warning += TTR("ConcavePolygonShape3D doesn't support RigidBody3D in another mode than static.");
|
||||
}
|
||||
if (shape.is_valid() &&
|
||||
Object::cast_to<RigidBody3D>(get_parent()) &&
|
||||
Object::cast_to<ConcavePolygonShape3D>(*shape) &&
|
||||
Object::cast_to<RigidBody3D>(get_parent())->get_mode() != RigidBody3D::MODE_STATIC) {
|
||||
if (!warning.empty()) {
|
||||
warning += "\n\n";
|
||||
}
|
||||
warning += TTR("ConcavePolygonShape3D doesn't support RigidBody3D in another mode than static.");
|
||||
}
|
||||
|
||||
return warning;
|
||||
|
@ -197,10 +197,12 @@ String NavigationRegion3D::get_configuration_warning() const {
|
||||
}
|
||||
warning += TTR("A NavigationMesh resource must be set or created for this node to work.");
|
||||
}
|
||||
|
||||
const Node3D *c = this;
|
||||
while (c) {
|
||||
if (Object::cast_to<Navigation3D>(c))
|
||||
if (Object::cast_to<Navigation3D>(c)) {
|
||||
return warning;
|
||||
}
|
||||
|
||||
c = Object::cast_to<Node3D>(c->get_parent());
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user