Lifetime checks for stored `RIDs` for collision objects assumed they had valid `object_ids`.
It turns out that some are not derived from `Object` and thus checking `ObjectDB` returns false for some valid `RIDs`.
To account for this we only perform lifetime checks on valid `object_ids`.
Appease doctool by switching the order of the documentation page entries.
Update doc/classes/VehicleWheel3D.xml
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
Update doc/classes/VehicleWheel3D.xml
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
Update doc/classes/VehicleWheel3D.xml
Thanks, didn't see the typo in the suggested change. Brain auto corrected it.
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
When travel is high enough, keep the global position resulting from the
move_and_collide call, and set the motion to the remainder from the
move_and_collide call. This ensures travel is taken into account once,
rather than twice.
This also changes the code used to hide the custom center of mass
property for consistency with other places in the editor
(only this approach worked for Contact Monitor as well).
The Center of Mass property hint in RigidBody2D was also modified
for better usability.
Physics body previously stored the RID of a collision object and accessed it on the next frame, leading to a crash if the object had been deleted.
This PR checks the object still exists via the ObjectID prior to access.