138,496 Commits over 4,474 Days - 1.29cph!
merge from turret_hqm_increase -> main
Increase turret crafting cost from 10 HQM -> 25 HQM
Polish pass on supply signal refresh anims
merge from fix_boat_vendor_heli -> main
Add tests to confirm boat spawners don't destroy helicopters & boat spawners still destroy boats
Add support for vehicle spawners to label what kind of vehicles they spawn (boat, horse, heli)
- prevent boat spawners from deleting helicopters when spawning boats since they can't get in the way
WTP fixes
- gearbox wheel turns smoothly
- switched from prefab serialized values to server convars
- added debug convar command to check current pressure of tank(s)
Console: no more truncated combatlog, big perf improvements (only reparse changed rows, flex texts can use the measure fast path)
Add UV1 channel to the 100x300 barrels blocker for use with a new beveled rubble detail normal, in order to reduce the low poly look on some rocks
more basement player block blockouts
- play confetti effect on win
merge from PlayerMaintainedMonuments
merge from PlayerMaintainedMonuments
merge from PlayerMaintainedMonuments
Wood Panelling wallpaper - WIP textures and material
Converted multi-compiles to shader-features where applicable in the cloth shaders
merge from mainmenu_toggle_optims
master key for apartments
viewmodel and textures
Bar Stool Wood - Updated model with backface on cloth, updated textures
fix string alloc in VolumetricFogShadowPreProcessPass
Applied the same system to the F1 menu
- ~12ms -> ~4.20ms
- GC ~115KB -> ~10KB
Update: avoid Time calls in BasePlayer.GetUnderwearSkin
- UnderweatManifest now initialized in ServerMgr.StartServer
Tests: switched to jobs 4 and toggled underwear
Add an assertion to catch rare error spam from WaterCamera
merge from game_room_dlc -> main
switch left side of darts scoring to just show points earned in each round (doesnt accumulate on the left anymore)
Satellite list serialization fixes
Update: in UseParallelSaves mode, Ragdol component samples transform handles
Tests: on playground enabled Jobs 4 and ragdolled a bunch of times
improved sculpting ux massively, keeps collider as-is during carve (only updating visuals) so that carving depth doesn't feed into itself or need messy plane logic
Merge from playermaintainedmonuments
Update: use handles to get pitch and yaw rotations for AttackHelicopterTurret in UseParallelSaves mode
- amended test to cover turret saving path
Tests: TestMTSave pass
Fix scientists not spawning in deep sea
Workbench recycle bin upgrade is now interactable and gets its own 16 slot storage.
Reycle upgrade automatically puts all returned ingredients into the recycle bin storage.
Bin storage is take-only - can't put anything in or add to existing stacks manually.
Merge from render_pipeline_testing
Fixed the normal maps not being present on the deploy meshes
thickened up X sprays and set O sprays to white
Update: move OrientableLight interpolation invoke from Save to rpc + ondeply
Scheduling invokes won't be safe in MT
Tests: none
Fix hit animation not working
adding for Damian to check
Update: avoid transform call in TravellingVendor.Save when it's following a spline
Tests: none
Supply signal animation updates
Update: move Privelege caching from DisplayingBoxStorage.Save to OnPrivelegeUpdated
We can't have it in Save as it is self-modifying and can call Vis.Entities - lets see how this holds
Tests: none
No longer create pie close action if there isn't a closing command
- Added a fast path for root canvas toggling, that lets us toggle the main menu root canvas without triggering a lot of stuff on every graphic
- Graphic::CacheCanvas walks up and stops at the first enabled canvas instead of doing a nasty GetComponentsInParent, saves ~560KB of GC per menu toggle
- Each main menu page now has a canvas component too
Toggling the menu:
- ~134ms → ~45ms
- GC ~600KB -> 24KB
Update: force TimeZone caching in WipeTimer.ServerInit
While smashing TestMTSave(WipeTimer) I saw it NRE while resolving timezone. Couldn't repro again, but this should make it safe
Tests: none, trivial change
Update: get rid of WipeTimer rounding to second, just pass DateTime from external source
Old version would always have a sporadic fails when serialization test would run across second boundary, this way we can control it in tests
Tests: a bunch of times for hacked version of TestMTSave(WipeTimer) that has 1k serialization tasks
fix double free on pooled array in sculpting