summaryrefslogtreecommitdiff
path: root/servers/physics_2d/godot_body_2d.cpp
AgeCommit message (Collapse)Author
2021-10-22Merge pull request #54124 from Uxeron/CenterOfMassRotationFixCamille Mohr-Daurat
Fix physics body rotating incorrectly around it's center of mass
2021-10-22Fix physics body rotating incorrectly around it's center of massUxeron
2021-10-22Fix RigidDynamicBody2D auto center of mass calculationPouleyKetchoupp
Should be changing the local center of mass, which is then transformed into `center_of_mass`. It was causing the center of mass to be always in (0,0) by default with multiple shapes.
2021-10-21Fix RigidDynamicBody collision update after changing collision layer/maskPouleyKetchoupp
Changing the collision layer of a sleeping body was not triggering area updates correctly. Bodies need to be active for collision to be checked against already overlapping bodies and areas. Neighbors need to be activated too in order to handle the case where a static body is modified (it can't be activated directly but paired bodies need to check their collision again). In 3D, moved the call to wakeup() from the physics server to GodotBody3D::_shapes_changed to make it consistent with 2D and also handle the case where shapes are modified (_shapes_changed is called in both this case and collision layer changes).
2021-10-19Fix 2D center of mass not updated from transformPouleyKetchoupp
Same logic as what was done in 3D, applied to 2D center of mass. Also did some minor cleanup in 3D and fixed center of mass transform during the first frame after teleporting a dynamic body.
2021-10-18Rename Godot Physics classes from *SW to Godot*PouleyKetchoupp
Also moved MT physics server wrappers to the main servers folder, since they don't have to be implementation specific.