From 5062d7499fd9ffde301f9fb5ba49514e135e24cd Mon Sep 17 00:00:00 2001 From: Pierre Caye Date: Tue, 3 Mar 2020 17:05:10 +0100 Subject: [PATCH] Add a new configuration warning to CollisionShape In the case where a ConcavePolygonShape is used as a shape for a RigidBody in another mode than static, a configuration warning will appear in the editor. (cherry picked from commit ad227d9a85ad1164ba7e1b099b332bef99f1883b) --- scene/3d/collision_shape.cpp | 8 ++++++++ scene/3d/physics_body.cpp | 1 + 2 files changed, 9 insertions(+) diff --git a/scene/3d/collision_shape.cpp b/scene/3d/collision_shape.cpp index bf2816fd417..caa0c5047a2 100644 --- a/scene/3d/collision_shape.cpp +++ b/scene/3d/collision_shape.cpp @@ -127,6 +127,14 @@ String CollisionShape::get_configuration_warning() const { return TTR("Plane shapes don't work well and will be removed in future versions. Please don't use them."); } + if (Object::cast_to(get_parent())) { + if (Object::cast_to(*shape)) { + if (Object::cast_to(get_parent())->get_mode() != RigidBody::MODE_STATIC) { + return TTR("ConcavePolygonShape doesn't support RigidBody in another mode than static."); + } + } + } + return String(); } diff --git a/scene/3d/physics_body.cpp b/scene/3d/physics_body.cpp index caeae902383..1f95560c7a7 100644 --- a/scene/3d/physics_body.cpp +++ b/scene/3d/physics_body.cpp @@ -590,6 +590,7 @@ void RigidBody::set_mode(Mode p_mode) { PhysicsServer::get_singleton()->body_set_mode(get_rid(), PhysicsServer::BODY_MODE_KINEMATIC); } break; } + update_configuration_warning(); } RigidBody::Mode RigidBody::get_mode() const {