6,314 Commits over 1,645 Days - 0.16cph!
Fix conveyors not resuming their scan when transferring items over multiple ticks
Speed up conveyor ticks when outputs are almost full
Add benchmarks for worst case of old code
Rewrite conveyor system to transfer a set amount of items per tick instead of scaling with number of attached storage
Set furnace & refineries to industrial splitting mode
Resave furnace and refinery prefabs
Allow storage entities to act as splitters or passthrough for industrial
Add door open clipping tests
Stop door open animation before it clips with building blocks
Show seamless neighbor islands as terrain HLODs
Fix seamless players losing third person after crossing to another server
Fix arriving seamless players being left behind their boat
Fix arriving seamless players going to sleep and boats sinking
Let players off a vehicle cross between seamless servers
Fix seamless client taking entities from the wrong server
Fix empty seamless neighbor views and duplicated vehicles on slow transfers
Reopen seamless neighbor connections that drop
Add seamless nexus client neighbor connections and server switching
Add seamless nexus server links, neighbor views and vehicle transfers
Give each seamless server its own entity, item and group ID range
Widen network group IDs to 64 bits
Set the encryption level on the network thread instead of setting it on the main thread
- ensures we don't set the encryption level before the client recieved approved (existing issue) and ensure batches are flushed before the packet is sent (new issue)
Cherrypick CS
170189 (set chainlink & prison gate cell as see through for base occlusion)
merge from base_occlusion/prison_gate -> base_occlusion
Set the prison gate door & chainlink door to see through (opt-out of room occlusion system)
Reserialize prison gate cell prefabs
Fix allocations from anchoring of faces -> network groups
merge from analytics_shield_damage -> main
Add analytics for damage blocked by shields when players take damage
Increase apartment building bounds as it was slightly too small
Serialize apartment building
Fix apartment building serializing some client only fields
Fixed deployables checking all changes to building blocks nearby instead of only the most recent ones
Sort rooms per-floor to speed up the execution time
- 0.1ms -> <0.02ms / frame (only when in network range of apartment building) is very acceptable
Fix placing / destroying doors refreshing all doors on the server instead of only the door that was modified
Optimize apartment culling
- cache transform
- early exit rooms that were already hidden
merge from main -> base_occlusion
Redo the occlusion of apartment rooms
- check the camera position of the player instead of relying on the occlusion culling system
merge from base_occlusion -> main
merge from base_occlusion -> main
merge from main -> base_occlusion
Optimize the player room detection code
- only invalidate a deployable & player's cached room when the rooms near it are rebuilt
Add way to simulate player load (subscriptions, room detection)