diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2021-05-04 09:22:20 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-04 09:22:20 +0200 |
commit | 508fbf4abea8ab5cffe75490896ea0726ce84e76 (patch) | |
tree | 9cab91d10fdac3f26f8035907e8e6fd5924e7d0f /servers/physics_3d/body_3d_sw.cpp | |
parent | 302b6ef576221ab74a20cdf48c29bf2c724664ce (diff) | |
parent | 448c41a3e4ba4ae7f1ffc3138ecfb7f85a6c8435 (diff) |
Merge pull request #48221 from nekomatata/solver-multithreaded
Godot Physics collisions and solver processed on threads
Diffstat (limited to 'servers/physics_3d/body_3d_sw.cpp')
-rw-r--r-- | servers/physics_3d/body_3d_sw.cpp | 35 |
1 files changed, 7 insertions, 28 deletions
diff --git a/servers/physics_3d/body_3d_sw.cpp b/servers/physics_3d/body_3d_sw.cpp index d54345821d..4357c474e4 100644 --- a/servers/physics_3d/body_3d_sw.cpp +++ b/servers/physics_3d/body_3d_sw.cpp @@ -145,31 +145,17 @@ void Body3DSW::set_active(bool p_active) { } active = p_active; - if (!p_active) { - if (get_space()) { - get_space()->body_remove_from_active_list(&active_list); - } - } else { + + if (active) { if (mode == PhysicsServer3D::BODY_MODE_STATIC) { - return; //static bodies can't become active - } - if (get_space()) { + // Static bodies can't be active. + active = false; + } else if (get_space()) { get_space()->body_add_to_active_list(&active_list); } - - //still_time=0; + } else if (get_space()) { + get_space()->body_remove_from_active_list(&active_list); } - /* - if (!space) - return; - - for(int i=0;i<get_shape_count();i++) { - Shape &s=shapes[i]; - if (s.bpid>0) { - get_space()->get_broadphase()->set_active(s.bpid,active); - } - } -*/ } void Body3DSW::set_param(PhysicsServer3D::BodyParameter p_param, real_t p_value) { @@ -392,13 +378,6 @@ void Body3DSW::set_space(Space3DSW *p_space) { if (active) { get_space()->body_add_to_active_list(&active_list); } - /* - _update_queries(); - if (is_active()) { - active=false; - set_active(true); - } - */ } first_integration = true; |