1,698 Commits over 1,858 Days - 0.04cph!
Merge reactive target changes -> Main. Reactive targets now have optional power in/out + electrical inputs to raise/lower.
Update BillBTestMap for the new Unity version
Fixed wounded players blocking server-side projectiles (rockets etc) as if they were standing up. Collider height is now reduced while wounded.
Fixed incorrect PrefabID on vehicle_parts.prefab (it had the ID from DoPrepare being run while the prefab was open in the prefab stage - see #53749)
Fix GetObjectID returning a blank path if the GameObject passed in is currently open in the prefab stage (prefab editor). Was causing some incorrect PrefabIDs to be set on DoPrepare.
FXAA doesn't work well with large (F9) screenshots. Disable AA for large shots, but only if it's FXAA. Also added an enum for the antialiasing types.
Fixed fuel storage not being accessible on RHIB after collider update
Merge ScreenshotChanges -> Main
Fix modular car conditional object NRE that could occur when adding a new module to a chassis, if the following out-of-order scenario occurred:
- Server creates the module entity and saves it to client with socket index -1 (no socket)
- Server adds the module to the car with socket index now set
- Server saves new socket index to client
- Client creates the module entity and calculates socket index correctly
- Client loads new entity, socket index incorrectly reverts to -1
- Client refreshes module conditionals, bad socket index causes NRE
Fixed two modular car presets not having an engine!
Merge fix for server-side projectiles (autoturrets, NPCs) being able to shoot through armoured module walls in some cases. Allows mountables to set a custom size for the player's capsule collider.
Fix car pushing no longer working properly due to the new handbrake system (#52873) + moved the push code.
Fixed modular car engine performance not being recalculated when the engine is repaired (regression in #53163).
Revert the changes in
53372 - Cars are now cheaper to repair on the lift vs. the hammer again, with hammer going back from 20% to 50% cost (sorry).
Previously I'd observed that wheel colliders were occasionally preventing the modular car rigidbody from sleeping, even with a forced sleep call and having motorTorque and brakeTorque set to zero. To counter that, I was simply disabling them entirely when the rigidbody went to sleep. However, that caused a surprising new bug: If you shot a sleeping car with a rocket, it would correctly wake the rigidbody, but the act of the wheels waking up as well would completely cancel the rocket explosion's force [because Unity], meaning the car didn't move.
I've now determined that it was the steering being non-zero that was preventing sleep [because Unity], so I've removed the disable/enable for wheelcolliders and set steerAngle to zero on sleep as well, which lets sleep work correctly, and explosion forces on sleeping cars now work again.
Move damageRenderer serialisation out of #CLIENT define, so it won't get lost when switching to #SERVER
Fixed missing DamageRenderer scripts on some vehicle modules
Fixed modular car repairs with the hammer costing more than repairs on the vehicle lift. Hammer repair cost has been reduced to 20% of the module's original cost (was 50%), which matches the repair bench/vehicle lift standard.
Fixed minicopter and modular cars becoming unusable after loading from a save if the server was saved during engine startup
▉▋▊▅▉▇ ▉▅▄▉█▌▄▊██▌ ▆▆▌_▅█▄▇▅▄▋▊▅ ▇▊ ▍▉▊ ▇▍ ▄█▇▊▉▍█▊█ ▅▆█ ▊▅▍ ▊▊▊▊▅▋▆▍ █▊▌▄▋
Adjusting stuck-in-car damage
- Fixed car collisions with horses not always registering (at high speeds, RemoveInvalidEntities was removing them before they had a chance to tick).
- Increased car vs. NPC damage by 25%.
- Fixed the player-in-car hurt trigger not doing damage if the car wasn't moving.
Engine internal items now take 50% less damage when inheriting damage to the module itself (i.e. they'll survive twice as long)
Fixed the associated item on the armoured passenger module. Fixes repair not working correctly.
Adjusting collision factors
Remove hit force multiplier
When faking car vs. player/AI/animal collision, use realistic masses for each of them as a starting point. Added new "RealisticMass" field.
Improved car ability to climb hills:
- Increased low-speed power by 25%
- Increased grip both on and off road by 7%
Remove unused TriggerParent from 2module_passengers
Merge Vehicles -> Main. Adds gibs on individual car panels, armoured passenger module, lifts can be placed in tighter areas (including T-shaped floor sections), cars remain still when they should on slopes, + other tweaks and fixes.
Merge new car-to-player/ai collision work -> Main
Merge modular car mass and engine power changes -> Main
Merge modular car save file fix -> Main
Remove F10 screenshot option again as the image FX don't upscale, defeating the point. ☹️
F10 now takes a large screenshot with FX (AA, DOF, sharpening) still on, much like F4 does.
Also fixed a bug in F9 screenshots, they now disable AA as they're supposed to.
Merge vehicle decay changes -> Main.
Merge hackable crate mass increase -> Main
Fix hot air balloon collider being present even when the balloon is not inflated
Stop the ridable horse's saddle from complaining that it can't switch parent to the ragdoll when the horse dies. It doesn't seem to need to switch, so I'm letting it be destroyed silently with an override - same as existing behaviour, but without the logging. Fixes "SwitchedParent Missed horse.corpse" server log spam.
A couple of minor edits to the new carstats var
Added carstats console var
Changed Push back to having higher priority than Mount. Reverts rowboat interaction to Push by default.
Move RemoveInvalidEntities to a safer spot
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