branchrust_reboot/main/MagnetCraneUpdatescancel
61 Commits over 59 Days - 0.04cph!
Made the snapshot prototypes static
A less confusing way to define ISnapshot<T>
Change PositionLerp back to using my generic interpolator, performance seems to be the same as before (and the garbage gen is now fixed)
Reduced garbage gen in my generic interpolator to zero but now it's even more complicated. Next step is simplifying if possible (and performance testing).
Merge Main -> MagnetCraneUpdates
Increased magnet crane yaw speed by 20%
Switched magnet crane back to "Normal" animator mode instead of "Animate Physics" on the client. This fixes the slightly jittery yaw movement and makes it absolutely smooth (assuming high framerate). The tradeoff is that it brings back the imperfect sync between the seated driver and the crane. However, with the updated interpolator this seems to be much less of an issue than before.
Merge Main -> MagnetCraneUpdates
Fixed magnet crane oneshot audio playing too often
Removed the input blocking after the magnet crane collides with something, leaving it to just prevent the movement instead. Fixes the case where the magnet could kind of 'dig in' its collision and end up not being able to move back out.
Removed the the map snowmobile
Merge Main -> MagnetCraneUpdates
Added debug method for magnet crane interpolation
Fixed some glitches with the interpolator when magnet crane yaw passed through zero. Still hitches at zero - TODO.
Created GenericLerp mostly based on the existing PositionLerp. Simpler than PositionLerp overall, but can interpolate anything. Implemented it for magnet crane animation - cabin yaw + the two arm movements. This makes the magnet crane visual movement smooth instead of jittery (the existing code did a simple Lerp, but couldn't really be timed right on its own).
GenericLerp may be useful any time the server sends regular data which needs to appear smooth on the client despite only coming 10 or 16 times a second. For instance I plan to use it for the train bogie rotation as well.
Cherry-pick my new interpolator -> MagnetCraneUpdates
Merge Main -> MagnetCraneUpdates
Fixed magnet crane steering the wrong way when reversing
Adjusted driving feel, trying to mostly match old behaviour
Merge Main -> MagnetCraneUpdates
Magnet crane audio now stops running when the crane is inactive
Magnet crane exhaust goes more when the player is using movement controls
Magnet crane stability work. Less wobbly/floaty feeling.
Prevent magnet crane magnet from getting close enough to the driver to hurt them (modified the animator to only let it move 90% of the way to minimum)
Merge Main -> MagnetCraneUpdates
Tidied up flags, removed unused methods. Steering edit.
Merge MCUpdatePhysics2-> MagnetCraneUpdates
Return to old wheelcollider settings for now
Fixed magnet crane not turning off when driver exits (another regression)
Fixed magnet crane audio (was broken in this branch)
Merge Main -> MagnetCraneUpdates
Calculate a separate rotation speed per tread. Fixes magnet crane treads sometimes animating in the wrong direction when turning.
Renamed magnet crane treads (were "threads") and some collider gameobjects.
Added ability for magnet crane to both turn and drive forward/back at the same time (can still spin on the spot if turning without any throttle input)
Initial work on magnet crane wheel colliders and driving physics
Adjusted magnet crane colliders. Removing all VehicleWorld colliders on the client.
Fixed magnet crane mounted driver not syncing up visually with the crane itself when rotating the cabin (yaw controls)
- Fixed magnet crane arm movement speed being affected by physics delta.
- Fixed magnet crane arm movement speed also being affected by dropped physics frames when exceeding maximumDeltaTime (capped to avoid massive moves if the server stalls).
Subtract
68861, flag is needed
Only do Update ticks when the magnet crane is in use or moving