branchrust_reboot/main/io_budget_healthcancel
7 Commits over 30 Days - 0.01cph!
ProcessInterferenceQueue null checks
Run turret interference updates in a new hashset based queue that sorts interference updates from highest net id to lowest to ensure that interference is applied deterministically (newer turrets will always suffer from interference before older turrets) and hopefully doesn't overload the queue in the process
Fix leaking entity list in UpdateNearbyTurrets
Rename property to PreventDuplicatesInQueue, false by default
Expose the option on AutoTurrets via sentry.debugpreventduplicates (true by default)
Added a new AllowDuplicatesInQueue property for IOEntities
Prevent AutoTurrets from being added to the queue more than once
Split different IO budget systems into specific queues by type. This should allow servers to maintain responsive monument IO even if something player deployed is throttling the IO queue.
Removed IOEntity.framebudgetms convar
Added IOEntityconvars:
-frameBudgetElectricHighPriorityMs (default 1ms) -monument IO entities
-frameBudgetElectricLowPriorityMs (default 0.5ms) -all player placed electrical entities
-frameBudgetFluidMs (default 0.25ms) - all player placed fluid entities
-frameBudgetKineticMs (default 1ms) - a small selection of monument entities like door wheels
-frameBudgetGenericMs (default 1ms) - currently unusued
-frameBudgetIndustrialMs (default 0.25ms) - all industrial entities (this is separate from server.frameBudgetIndustrialMs where most of the work happens, hence the small budget)