8,837 Commits over 1,735 Days - 0.21cph!
Test map edit. Added all the wagons
WorkCart train coupling LOD assignment fix
█▊▊▅▆█ ▋▋▇▄▆█▅ ▇▄▋▉▄ ▄▍▋ ▉ ▇▄▍ ▄▍▅▉
▍▋▉█▍-▌█▆▍▍▄▅-▄▋-▍▍▇▅▍▋▇-▌▌▄▋-▅█▆▋▅▌▋▅▌█▇-█▋▇█▋▋ ▌▆▋▆▊█▍ ▌▍▆ ▋▉▆▄ ▍. ▉▋▌█▅▉▌▅▆ ▍▆▇ ▉▉▊▋█▄ ▊▄ ▉▇██_▄▇▌▅▊▄▉▉ ▇▇ ▌▍▉▄ ▊▅▍▅█▇█▄.
▇█▌▆█-▄▍▋▌▉▆▇-▇▆-▆▆▌▉▍▇▆-▉▊▊▊-█▉▊█▇██▋▌▄▇-▉▄▅▍▍█ ▆▅▅█▇▇▌ ▋▌▋ ▍▇▄▌ ▌. ▅▊▄█▇▇▉ ▅▋▊ ▉▆▌▋▌▇ ▄▇ ▋▇▉█▅▅▅▌▊█▊█▇▋▆██ ▇▅ █▊▅▋ ▄▇▌▋▅▍▄▍.
Set up WorkCart coupling LODs
Set up above-ground WorkCart bounds and colliders for coupling
Coupling point setup for above-ground WorkCart
Compile fix for uncoupling
Don't scan for decoupling if the coupling point can't be locked
Deleted my placeholder train engine and carriages. Moved some assets around.
Merge Rail Network -> Coupling
Separated the train coupling model and added them to the above-ground WorkCart
WIP refactoring train car collisions and coupling. Hoping to remove a lot of the old "workcarts pushing other work carts" code, and instead treat it as an unlocked coupling, even for train cars that don't actually have couplings (like the train tunnel WorkCarts)
Merge Rail Network -> Coupling
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
Reverted PositionLerp to last month's version. Using my updated generic interpolator required casting the snapshot struct to an interface which was boxing it and generating 256 bytes of garbage per Query call. Can be avoided by pre-creating the TransformSnapshots and passing them into Query as T but that was getting overcomplicated. I'll sort out the Magnet Crane and train bogie uses of GenericLerp at a later date.
Allow the above-ground WorkCart bogies to pivot
Matched the above-ground WorkCart controls colour to the exterior (similar to the red variant)
Added above-ground WorkCart prefab variant. Set up different materials on it. Made it save/load.
Merge Main -> Rail Network
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
Merge Rail Network -> Main. Contains two small/safe fixes:
- Raised WorkCart end colliders so it doesn't hit some specific configurations of rail.
- Fixed floating trains after server restart from AddTrackSpline modifying the original spline (this fix won't work until a server's cache is cleared).
Copy the rail spline - fix floating trains after restart
Merge Rail Network -> Coupling
Fixed NRE when initially loading from save in RefreshEngineState. Use NumMounted, which checks if mountPointInfo.mountable is null.
Temp hack to stop trains being able to spawn on the above-ground rails, since performance will be poor with this old code. WorkCart reimport fix.
Revert all train changes to last month's code
Remaining cleanup. Magnet Crane continues to use the new interpolation, but players are reverted.
Revert PositionLerp to last month's version
Raised the height of the front and rear collision detectors on the WorkCart. Fixes a few cases where the train would think it was colliding with the ground, e.g. J7 on seed 1051067268 size 4500.
Merge Main -> Rail Network
Coupled train collisions WIP
Added barriers to the test map rail
Made the train carriages a lot lighter
Train car coupling spacing is now correct. Also fixes the brief jitter when first coupling