Turret & Sound Optimizations (#16754)

* Portable Turret Optimization

Optimizes portable turrets. Takes from Chomp PR here: https://github.com/CHOMPStation2/CHOMPStation2/pull/8088

Optimizes them further by changing mobs_in_xray_view to mobs_in_view.
Reason: mobs_in_xray_view was adding mobs that were out of sight (behind walls) to the target list and trying to do pathfinding to shoot them. If you had 20 mobs around a PoI with turrets, it'd use a LOT of CPU needlessly.

Also adds in Chomp's /mobs.dm helpers as they're helpful.

* Ports over Chompstation Sound Optimizations

- Replaces for( listeners) with a check that sees if a listener is ALSO a hearer

- Makes it so even if there is no vary, if someone has a frequency it uses the frequency for playsound_local

From https://github.com/CHOMPStation2/CHOMPStation2/pull/8088
This commit is contained in:
Cameron Lennox
2024-12-28 09:43:15 +10:00
committed by GitHub
parent d74a18f7fc
commit 37e8ca6194
4 changed files with 70 additions and 37 deletions
@@ -1481,3 +1481,12 @@
robotact?.update_static_data_for_all_viewers()
. = ..()
/// This proc checks to see if a borg has access to whatever they're interacting with
/obj/proc/siliconaccess(mob/user)
var/mob/living/silicon/robot/R = user
if(istype(R))
return check_access(R.idcard)
if(issilicon(user))
return TRUE
return FALSE