13,068 Commits over 2,769 Days - 0.20cph!
▊▍▊▉▌▇▄▊ █▌█▅▍ ▅▋▅▆▄▌▋▆ ▌▉▌
▅▊▍▆█ █▊▅▇█▊█▇▊▄ ▉▌█▌▇ ▄▊▇▉ ▄▅ █▉▋▌ ▇▅█▇▅▄▉▉ ▌▅▌▇▇▇▆ ▉▊▍▍ █▍▊▄ ▅▉▉▆▇ ▆▇
Fixed ragdoll eye postion
Merge main -> CorpseRagdollParentingFix
Improved server-side ragdoll buoyancy. No longer floats mostly under the water, butt-upward, like the client-side ragdolls do
Only do the early EnsurePointsInitialized call if loading from save
Although the previous commit fixed a big problem, it was rather slow (MultiplyPoint3x4 is MUCH faster than transform.position). Since we're trying to improve performance here rather than make it worse, let's go back to the old system, but make PlayerCorpse manually call EnsurePointsInitialized early, which gets the data before physics have a chance to go crazy and end up with us caching very weird limb positions (happens sometimes on loading existing ragdolls from a save)
The cached rootToPoint stuff doesn't work correctly with ragdolls since the limbs can move relative to the root bone. I've now set ragdolls (both client-side and server-side) to not use the cached data.
Save time reparenting Buoyancy points - just use InverseTransformPoint
Buoyancy code now works in harmony with the new server-side ragdolls, and they go kinematic instead of attempting to sleep when the buoyancy code wants to sleep them (when being set to sleep, they kept waking up)
Eliminate BuoyancyFixedUpdate calls if there's nobody around
Added corpseinfo convar to get info on the amount and status of player corpses
Fix buoyancy code running way too often
Merge LessSinkableBoats -> Aux2
RHIB updated, now 4x the mass as well. Other stats updated to match old behaviour.
Rowboat and kayak updated (both increased from 50kg to 200kg, all stats rebalanced to match old behaviour).
Initial changes to make Rowboat 4x as heavy, while keeping it feeling the same (to reduce the effect of ragdolls). Feels nearly there but acceleration is a bit too fast.
Little bit of parenting debug code
Merge CorpseRagdollParentingFix -> Aux2
Use world space for the bone copy again, it seems okay now
Fix new issue with client-side ragdolls
Much ragdoll init order refactoring, trying to sort out the brief trouble mainly when spawning while parented. Parent is now set before spawn, and a bunch of other stuff needed to change.
Fixed double ParentChanging call
Fixed ragdoll parenting when a new clients enters network range
Merge ServerSideRagdolls -> main
Gave server-side ragdoll a bigger head collider
Merge ServerSideRagdolls -> main
Fixed physics silliness when a client-side ragdoll had multiple arrows in it that overlapped each other
Merge main -> ServerSideRagdolls
Second attempt. Fixed NRE on server load due to horse ragdoll having no head bone
Fixed NRE on server load due to horse ragdoll having no head bone
Merge ServerSideRagdolls -> main
Fixed empty sourceBonePos array on load from save
Merge ServerSideRagdolls -> main
Fixed momentary invisible player when corpse spawns while player was parented
Merge ServerSideRagdolls -> main
Fixed interpolation issues, new system now working correctly
Revamp ragdoll bone position and initial lerp, fix limb trouble between client and server. Broken right now, but committing this mostly-complete WIP
Don't copy bone positions on client when ragdoll sim is on server, since the server doesn't know about any of the non-rigidbody bone positions, so it just confuses things (and most noticeably messes up the neck if the player was looking down)
Only use bodyRotation for the up axis of the corpse, since it's really more like eye rotation
Sort bones for perfect data sync