13,156 Commits over 2,830 Days - 0.19cph!
Reduce car collision damage to players a bit
Increased armoured cockpit max HP from 500 to 700
Increase brake force power and allow reverse throttle at 3m/s instead of 0.1m/s. Helps particularly with stopping while travelling forward down slopes.
Make sure we really never receive hurt damage outside of a hurt trigger by checking RemoveInvalidEntities() each tick. Made RemoveInvalidEntities more efficient.
Added simple debug util timing functions
Remove terrain-type based damage, add a new Collision damage type which propagates to other car modules but doesn't count as an attack.
Removed cases where I was doing specific mutable state checks in trigger InterestedInObject calls, not realising that InterestedInObject is also checked to see if we should allow a collider to detect that it LEFT a trigger. Fixes spawning a car on top of yourself and then noclipping out of it causing the game to consider you still in the triggers.
Reduced average collision damage a bit re staging user complaints
Fixed broken physics behaviour on the most important object in Rust: ball.entity
Adjust car steering lerp values
Fixed steering right being slower than steering left
Improvements for flatbed parent triggers
Fix BasePlayer movement references on the server in TriggerPlayerForce and TriggerMount. Moved BasePlayer vars that aren't used on the server at all into BasePlayer-Client, so this mistake is now prevented from being made again.
Update TriggerMount to retry in more situations
Merge the latest modular car fixes -> Main
Add LockType using statement as well
Move method to server only
More rigorous mount check for ModularCar. Things like TriggerMount which call AttemptMount directly will no longer be able to bypass mount eligibility in cars.
Refactored TriggerPlayerForce to be server-side only like TriggerForce, retaining support for pushing NPCs as well by added ApplyInheritedVelocity overrides to NPCPlayer and BaseNpc.
Ignore TriggerMount if noclipping
Exclude NPCs from TriggerMount
Fixed mount triggers being triggerable from outside the car
Code review: Use PivotPoint() instead of getting the position directly
Remove TriggerPlayerForce on the chassis for now until I fix it properly tomorrow
Let the car chassis push and hurt triggers stay always on, since there are various situations where players may end up inside a vehicle - not all of them a case where the vehicle is on or even moving (e.g. Spawning as a sleeper underneath one after loading a save).
Fix potential issues with TriggerHurtNotChild detection. Better handling mounted or parented players with modular cars.
Modular car code review changes complete. Merging to Main.
Code review: Move my OriginIntersect trigger mode into TriggerParentEnclosed, where more of the required functionality was already present. Update the flatbeds.
▆▍▊▉ ▉▋▋▅▊▅: ▉▉▅▍▆▄▋▇ ▇▄▉ ▄▉▉▄▍▆▆▆▍▋ ▊▊ ▅▋▆▋▋▅▆▄▄▋▄▇▆▉▇▌
Big fix: Categorically prevent players on flatbeds being hurt by car hurt triggers. This tended to happen due to server/client differences when standing near the back of a flatbed while the car reversed.
Code review: Use CheckOBB in TriggerParent
One more change to repel trigger
Fix more settings on RepelTrigger
Fix repel trigger IgnoreMounted setting
Add entity validity check to TriggerMount
Merge new mount trigger used in modular car seating. Revert #
52369. Simplify TriggerHurtNotChild.
New TriggerMount that mounts players inside the trigger
Simplify TriggerHurtNotChild
Increased car protection vs basic damage types (blunt/slash/stab)
Subtract sleeper fall-through fix, as we don't want sleepers in HAB or scrap heli to fall through.
Fixed car push not working at extreme, low angles
Fixed vehicle lift UI not showing all repair components
Further increase engine internal item health
Increased car fuel consumption
Try a naive fix for the LightEx NRE errors
Properly fix NRE in VehicleEditingPanel
Mounted state isn't saved to a save file, so players can get stuck in vehicles on load, in their mounted position but not mounted. Quick fix: Ignore the vehicle layer in sleeper physics, so players fall through the vehicle instead of getting stuck in it.
Merge race_condition_fix -> Main. Fixes "empty chassis with FX playing" bug.
Adding some temporary error detection to try and catch a wild NRE
Switch the ForceUpdateTriggers secondary invoke to InvokeFixedTime per André's suggestion. Speculative fix for "player continuously receives hurt damage" bug.