mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-20 14:45:05 +00:00
* Reworks how AI tracking is handled & reorganizes it * Update tgstation.dme * Update tgstation.dme * Update tgstation.dme --------- Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
36 lines
1.2 KiB
Plaintext
36 lines
1.2 KiB
Plaintext
/**
|
|
* get_camera_list
|
|
*
|
|
* Builds a list of all available cameras that can be seen to networks_available
|
|
* Args:
|
|
* networks_available - List of networks that we use to see which cameras are visible to it.
|
|
*/
|
|
/proc/get_camera_list(list/networks_available)
|
|
var/list/all_camera_list = list()
|
|
for(var/obj/machinery/camera/camera as anything in GLOB.cameranet.cameras)
|
|
all_camera_list.Add(camera)
|
|
|
|
camera_sort(all_camera_list)
|
|
|
|
var/list/usable_camera_list = list()
|
|
|
|
for(var/obj/machinery/camera/camera as anything in all_camera_list)
|
|
var/list/tempnetwork = camera.network & networks_available
|
|
if(length(tempnetwork))
|
|
usable_camera_list["[camera.c_tag][camera.can_use() ? null : " (Deactivated)"]"] = camera
|
|
|
|
return usable_camera_list
|
|
|
|
///Sorts the list of cameras by their c_tag to display to players.
|
|
/proc/camera_sort(list/camera_list)
|
|
var/obj/machinery/camera/camera_comparing_a
|
|
var/obj/machinery/camera/camera_comparing_b
|
|
|
|
for(var/i = length(camera_list), i > 0, i--)
|
|
for(var/j = 1 to i - 1)
|
|
camera_comparing_a = camera_list[j]
|
|
camera_comparing_b = camera_list[j + 1]
|
|
if(sorttext(camera_comparing_a.c_tag, camera_comparing_b.c_tag) < 0)
|
|
camera_list.Swap(j, j + 1)
|
|
return camera_list
|