branchrust_reboot/main/naval_update/relationship_optimcancel
2 Commits over 0 Days - ∞cph!
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