* Grappling rework - Grappling hooks are now physics-based
* still have no idea wtf is going on with portals but fixed a few bugs + cleanup
* bonus fixes + prep for optional-but-recommended engine PR
* dropkicking a stray comment outta here
* makes the impulses actually take into account the fucking relays, makes reeling cancel if the rope's already too short, and tweaks values
* reviews + cleanup + makes ungrapple behavior a bit more consistent
joint removal was removed from ungrapple because it mispredicts either way, and breaks grappling hooks attached to the grappling gun (always good to leave possibilities like that open)
* adds a hack to work around grids not caring about waking cross-grid joints
* makes use of dirtyfield(), defenestrates magic number
* y'know it'd probably be better if we were like actually awake before we made commits
* null-coalesce instead of if statement
* two changes
* dont datafield and fix up for sound overrides
---------
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
* Use new Subs.CVar helper
Removes manual config OnValueChanged calls, removes need to remember to manually unsubscribe.
This both reduces boilerplate and fixes many issues where subscriptions weren't removed on entity system shutdown.
* Fix a bunch of warnings
* More warning fixes
* Use new DateTime serializer to get rid of ISerializationHooks in changelog code.
* Get rid of some more ISerializationHooks for enums
* And a little more
* Apply suggestions from code review
Co-authored-by: 0x6273 <0x40@keemail.me>
---------
Co-authored-by: 0x6273 <0x40@keemail.me>
(cherry picked from commit 68ce53ae17)