Files
Bubberstation/modular_zubbers/code/modules/modular_computers/programs/siliconmanagement.dm
2024-10-24 07:52:55 -06:00

57 lines
1.7 KiB
Plaintext

/datum/computer_file/program/silicon_management
filename = "Silicon Manager"
filedesc = "Silicon Manager"
downloader_category = PROGRAM_CATEGORY_EQUIPMENT
program_open_overlay = "id"
extended_desc = "Program for viewing and changing Silicon priority."
download_access = list(ACCESS_ROBOTICS)
program_flags = PROGRAM_ON_NTNET_STORE | PROGRAM_REQUIRES_NTNET
size = 4
tgui_id = "SiliconJobManager"
program_icon = "address-book"
/datum/computer_file/program/silicon_management/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
var/obj/item/card/id/user_id = computer.computer_id_slot
if(!user_id || !(ACCESS_ROBOTICS in user_id.access))
return TRUE
if(action)
var/priority_target = params["target"]
var/datum/job/silicon = SSjob.get_job(priority_target)
if(silicon in SSjob.prioritized_jobs)
SSjob.prioritized_jobs -= silicon
else
SSjob.prioritized_jobs += silicon
playsound(computer, 'sound/machines/terminal/terminal_prompt_confirm.ogg', 50, FALSE)
return TRUE
/datum/computer_file/program/silicon_management/ui_data(mob/user)
var/list/data = list()
var/authed = FALSE
var/obj/item/card/id/user_id = computer.computer_id_slot
if(user_id && (ACCESS_ROBOTICS in user_id.access))
authed = TRUE
var/list/silicon_jobs = list(
SSjob.get_job(JOB_AI),
SSjob.get_job(JOB_CYBORG)
)
data["authed"] = authed
var/list/pos = list()
var/list/priority = list()
for(var/datum/job/job as anything in silicon_jobs)
if(job in SSjob.prioritized_jobs)
priority += job.title
pos += list(list(
"title" = job.title,
"current" = job.current_positions,
"total" = job.total_positions,
))
data["slots"] = pos
data["prioritized"] = priority
return data