133,670 Commits over 4,262 Days - 1.31cph!
Fixed magnet crane not marked as Can Sleep (I swear I did this last week)
Early return from the DroppedItem underwater check if the attached rigidbody is sleeping (it's unlikely to change submerged state while sleeping)
Removed Vis.Entities from the artificial light and temperature calculations for growables, now queries a Grid of light and temperature sources
These paths are now completely physics free
Merge from relationship_optim
Added PersistentObjectWorkQueueListBacked, a new version of PersistentObjectWorkQueue that can be provided with a separate list to iterate over
Handy for situations where we don't want to maintain a separate list of objects to iterate over, we can now just provide a list and the work queue will iterate over it
Doesn't have Add or Remove methods as it only reads the list
Updated RelationshipUpdateQueue to iterate over player list instead of a separate, identical list
Added an experimental fast path to UpdateAcquaintancesFor that checks the server occlusion state to see if two players can see each other rather than raycasting
Much faster than a raycast, although it will still fall back to that if the server doesn't have occlusion enabled, can be disabled with BasePlayer.allowRelationshipServerOcclusion
Move UpdateContacts in RelationshipManager to a PersistentObjectWorkQueue, budgeted to 0.05ms by default (BasePlayer.relationshipUpdateQueueFrameBudgetMs)
This used to iterate over every player on the server every 1s so would scale poorly, will now gradually update relationships over time
Merge from botcollider_optim
Fixed deepsea billboards not killed as expected when the deep sea closes, caused by server restarts when the deep sea is open
merge from settings_fixes
Revert accidental change to skin viewer texture resolution, needs more testing
Update server version mismatch disconnect messages.
Minor adjustments to HLMV
* Make the minimum size bigger (1200x800, from 640x700) so all UI elements fit without resizing
* Title always contains program name
* Prevent materials being deduplicated in the material list, so all missing materials now show
Fixed a particle related crash
Fixed normal map for Shotgunner Combine Soldier player model
Added 3rd skin to Combine Soldier player model
* It's the skin for the updated combine soldier texture from Episode 2
Fixed wall slams playing wrong physics sound
* Now plays the sounds associated with the material we hit, not the sounds of the last ground entity we were on
Custom Spawnmenu position function for view models
Merge: from networkcache_stalegroup
- Bugfix for vanishing child entities (l-ike drybox on rhib)
Tests: spawned rhib, teleported far then back after pause, paused again - all parts stayed in place
Bugfix: fix missing child entities (like drybox on rhib) by invalidating network cache on netgroup change
Previously if parent moved it would update the network group of the hierarchy, but only parent would have it's cache invalidated. This meant that it was possible for child to be with a netgroup outside of network range, while parent is in network range.
Tests: on Craggy, took rhib and drove it from E4 to a row above E0, teleported back to E4, waited for boat to stream out, teleported to boat and waited a bit - it stayed in place (previously drybox would disappear)
Fix scientists not moving
Fix scientists fsms being added to client budget queue in editor
Birthday candle hat reposed
Merge from naval_update, re-add new scientists to oilrigs and islands, put scientists to sleep when players are far away
Fix compile error when compiling with neither SERVER or CLIENT in mounted weapon
Replace navmodifiers with navvolumes
Re-enable scientists on deep sea islands
Make sleeping component server only
reduced packed blend mask resolution.
Hook new scientists to AIzones so that they go to sleep when no player is around
Readd new scientists to oilrigs
Added mannequin skinset to player model
Fix leg animator causing the player model to clip through the camera in first person mode.
Mannequin repose - not working yet
Fix `-nosteam` no longer working in editor. (Preferences -> Facepunch -> Disable platform services editor pref)
- removed offset transforms in prefab (in preparation for new anims to be exported at the origin)
- re-introduced 0.7 scaling (not able to set to 1 due to issues with scope attachments)
set lod distances further to 5% on balloon clumps
Replace ServerUpdateBots with a PersistentObjectWorkQueue
In a test of 500 bots on the server (about baseline on an empty server) this was taking 0.25ms because it looped over every entity, every frame. The internal logic is time gated so it would only actually check/modify 5-15 each frame
WorkQueue is budgeted at 0.05ms and goes through as many as possible in a frame within that window
As this might result in some bot colliders temporarily being the wrong size for a frame or two I've added manual forced collider size updates when a player state changes that we are otherwise checking in the update process (mounting/dismounting/wounding/crawling) to minimise any delays
Don't do any processing for UpdateReputations if the player's reputation state hasn't changed
Vertex colours visual for edit mode
Readd nextPlayerCheck to JunkpileWater, we don't need to be running this check every frame on every junkpile
Adjust TOD headless check to work via compiler defines, it seems liike cameras are still present on the server (although not doing anything) so it thought it was running on the client
Should save 0.1ms a frame
Marked FishSwarm as client only, was profiling as 0ms but it was still running a coroutine so might as well nuke it on the server
Merge from main
Only conflict is cake.entity, auto resolved
Fixed settings slider jittering when dragged
Fixed settings resetting convars set above the max value
merge from cardgames_atlas
Compressed and atlased card games UI sprites, should save around 100mb ram