From 0fd0dd463af70506b70a7ba0fe4e0c6ccf002ff2 Mon Sep 17 00:00:00 2001 From: Ben <91219575+Ben10083@users.noreply.github.com> Date: Tue, 24 Dec 2024 07:42:18 -0500 Subject: [PATCH] Synthetic Access to Shuttle Manifest (#20199) Fixes https://github.com/Aurorastation/Aurora.3/issues/19899 that was mostly fixed by https://github.com/Aurorastation/Aurora.3/pull/19860 by replacing docking port program with shuttle manifest I should be fine for AI to edit shuttle manifest considering it already can edit records Cyborgs given access to shuttle manifest considering that modules such as Mining go on expeditions --------- Co-authored-by: Ben10083 --- .../subtypes/dev_silicon_subtypes.dm | 2 +- .../programs/command/away_manifest.dm | 61 ++++++++----------- html/changelogs/Ben10083 AI Shuttle.yml | 59 ++++++++++++++++++ 3 files changed, 86 insertions(+), 36 deletions(-) create mode 100644 html/changelogs/Ben10083 AI Shuttle.yml diff --git a/code/modules/modular_computers/computers/subtypes/dev_silicon_subtypes.dm b/code/modules/modular_computers/computers/subtypes/dev_silicon_subtypes.dm index 774610c053d..e8ef667a66e 100644 --- a/code/modules/modular_computers/computers/subtypes/dev_silicon_subtypes.dm +++ b/code/modules/modular_computers/computers/subtypes/dev_silicon_subtypes.dm @@ -13,7 +13,7 @@ hard_drive.store_file(new /datum/computer_file/program/rcon_console(src)) hard_drive.store_file(new /datum/computer_file/program/suit_sensors(src)) hard_drive.store_file(new /datum/computer_file/program/power_monitor(src)) - hard_drive.store_file(new /datum/computer_file/program/docks(src)) + hard_drive.store_file(new /datum/computer_file/program/away_manifest(src)) hard_drive.store_file(new /datum/computer_file/program/implant_tracker(src)) hard_drive.store_file(new /datum/computer_file/program/guntracker(src)) hard_drive.store_file(new /datum/computer_file/program/comm(src)) diff --git a/code/modules/modular_computers/file_system/programs/command/away_manifest.dm b/code/modules/modular_computers/file_system/programs/command/away_manifest.dm index c282d4cbde5..496633af8d5 100644 --- a/code/modules/modular_computers/file_system/programs/command/away_manifest.dm +++ b/code/modules/modular_computers/file_system/programs/command/away_manifest.dm @@ -79,7 +79,7 @@ if(!istype(usr)) return var/obj/item/card/id/I = usr.GetIdCard() - if(!istype(I) || !I.registered_name || issilicon(usr) || (!(ACCESS_HEADS in I.access) && !(ACCESS_RESEARCH in I.access) && !(ACCESS_MINING in I.access))) + if(!istype(I) || !I.registered_name || (!(ACCESS_HEADS in I.access) && !(ACCESS_RESEARCH in I.access) && !(ACCESS_MINING in I.access))) to_chat(usr, SPAN_WARNING("Authentication error: Unable to locate ID with appropriate access to allow this operation.")) return @@ -87,10 +87,9 @@ if("addentry") . = TRUE var/datum/record/shuttle_manifest/m = new() - if(!computer.use_check_and_message(usr)) - m.name = "Unknown" - m.shuttle = "Unknown" - active_record = m + m.name = "Unknown" + m.shuttle = "Unknown" + active_record = m if("saveentry") . = TRUE @@ -110,35 +109,31 @@ for(var/datum/record/general/r in SSrecords.records) names += r.name var/newname = sanitize(tgui_input_list(usr, "Please select name.", "Name select", names, active_record.name)) - if(!computer.use_check_and_message(usr)) - if(!newname) - return - active_record.name = newname + if(!newname) + return + active_record.name = newname if("editentrynamecustom") . = TRUE var/newname = sanitize(tgui_input_text(usr, "Please enter name.", "Name entry", active_record.name)) - if(!computer.use_check_and_message(usr)) - if(!newname) - return - active_record.name = newname + if(!newname) + return + active_record.name = newname if("editentryshuttle") . = TRUE var/newshuttle = tgui_input_list(usr, "Please select shuttle.", "Shuttle select", SSatlas.current_map.shuttle_manifests, active_record.shuttle) - if(!computer.use_check_and_message(usr)) - if(!newshuttle) - return - active_record.shuttle = newshuttle + if(!newshuttle) + return + active_record.shuttle = newshuttle if("editdestination") for(var/datum/record/shuttle_assignment/a in SSrecords.shuttle_assignments) if(a.shuttle == params["editdestination"]) var/new_dest = sanitize(tgui_input_text(usr, "Please enter destination.", "Destination entry", a.destination)) - if(!computer.use_check_and_message(usr)) - if(!new_dest) - return - a.destination = new_dest + if(!new_dest) + return + a.destination = new_dest if("editheading") for(var/datum/record/shuttle_assignment/a in SSrecords.shuttle_assignments) @@ -146,35 +141,31 @@ var/new_head = floor(tgui_input_number(usr, "Please enter heading.", "Heading entry", a.heading, 359, 0)) if(new_head < 0 || new_head > 359 || !new_head) new_head = 0 - if(!computer.use_check_and_message(usr)) - a.heading = new_head + a.heading = new_head if("editmission") for(var/datum/record/shuttle_assignment/a in SSrecords.shuttle_assignments) if(a.shuttle == params["editmission"]) var/new_mis = tgui_input_list(usr, "Please select mission.", "Mission select", SSatlas.current_map.shuttle_missions, a.mission) - if(!computer.use_check_and_message(usr)) - if(!new_mis) - return - a.mission = new_mis + if(!new_mis) + return + a.mission = new_mis if("editdeparturetime") for(var/datum/record/shuttle_assignment/a in SSrecords.shuttle_assignments) if(a.shuttle == params["editdeparturetime"]) var/new_depart = sanitize(tgui_input_text(usr, "Please enter new departure time.", "Departure time entry", a.departure_time)) - if(!computer.use_check_and_message(usr)) - if(!new_depart) - return - a.departure_time = new_depart + if(!new_depart) + return + a.departure_time = new_depart if("editreturntime") for(var/datum/record/shuttle_assignment/a in SSrecords.shuttle_assignments) if(a.shuttle == params["editreturntime"]) var/new_return = sanitize(tgui_input_text(usr, "Please enter new return time.", "Return time entry", a.departure_time)) - if(!computer.use_check_and_message(usr)) - if(!new_return) - return - a.return_time = new_return + if(!new_return) + return + a.return_time = new_return if("editlead") for(var/datum/record/shuttle_manifest/m in SSrecords.shuttle_manifests) diff --git a/html/changelogs/Ben10083 AI Shuttle.yml b/html/changelogs/Ben10083 AI Shuttle.yml new file mode 100644 index 00000000000..214d04df307 --- /dev/null +++ b/html/changelogs/Ben10083 AI Shuttle.yml @@ -0,0 +1,59 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# - (fixes bugs) +# wip +# - (work in progress) +# qol +# - (quality of life) +# soundadd +# - (adds a sound) +# sounddel +# - (removes a sound) +# rscadd +# - (adds a feature) +# rscdel +# - (removes a feature) +# imageadd +# - (adds an image or sprite) +# imagedel +# - (removes an image or sprite) +# spellcheck +# - (fixes spelling or grammar) +# experiment +# - (experimental change) +# balance +# - (balance changes) +# code_imp +# - (misc internal code change) +# refactor +# - (refactors code) +# config +# - (makes a change to the config files) +# admin +# - (makes changes to administrator tools) +# server +# - (miscellaneous changes to server) +################################# + +# Your name. +author: Ben10083 + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. +# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Replaces Docking port program for AI internal computer with Shuttle Manifest." + - rscadd: "Synthetics can now use Shuttle Manifest."