[MDB Ignore] Combines Cargobus consoles with Dept. Order Consoles, freeing all departments of 1 whole tile of space (#82210)

## About The Pull Request

- Departmental orders are now an NTOS app
   - To download, they require `ACCESS_COMMAND`.
   - To use, they require one access from the department.
- This means you cannot order things from not-your-department unless you
have an ID.
- When newly downloading the app, it will prompt a head of staff to
insert an ID, to determine which department to be linked to.

- Changes chat room overlay from the kind that AI uploads use to a new
icon.

- Minor refactors to department order in general. 


![image](https://github.com/tgstation/tgstation/assets/51863163/605c2499-e5e9-4f91-aa2a-aa8af8b05a9f)


![image-1](https://github.com/tgstation/tgstation/assets/51863163/089d3fe1-787c-4f5a-bc3d-edb9611dfbb2)

## Why It's Good For The Game

These two computers are surprising waste spacers for two things which
are tied together.
So why not combine them?

The lesser used cargobus chat is still there, and departmental orders
are front and center.

This gives mappers a ton more leeway when mapping departments out and is
overall less clutter.

## Changelog

🆑 Melbert
qol: Cargobus chat console and Departmental Order console are now
combined into one.
qol: Mod PCs active on the "chat client" apps no longer look like AI
uploads (and now have their own sprite)
refactor: Departmental order consoles were refactored a bit, report any
oddities.
/🆑
This commit is contained in:
MrMelbert
2024-03-27 11:00:47 -05:00
committed by GitHub
parent 5b81d5bc3c
commit a73b77b3bb
19 changed files with 12522 additions and 12497 deletions
@@ -80,42 +80,69 @@
// ===== CARGO CHAT CONSOLES =====
/obj/machinery/modular_computer/preset/cargochat
name = "cargo chatroom console"
desc = "A stationary computer. This one comes preloaded with a chatroom for your cargo requests."
name = "cargo interfacing console"
desc = "A stationary computer that comes pre-loaded with software to interface with the cargo department."
starting_programs = list(
/datum/computer_file/program/chatclient,
)
///Used in Initialize to set the chat client name.
var/console_department
/// What department type is assigned to this console?
var/datum/job_department/department_type
/obj/machinery/modular_computer/preset/cargochat/Initialize(mapload)
add_starting_software()
. = ..()
setup_starting_software()
REGISTER_REQUIRED_MAP_ITEM(1, 1)
if(department_type)
name = "[lowertext(initial(department_type.department_name))] [name]"
cpu.name = name
/obj/machinery/modular_computer/preset/cargochat/proc/add_starting_software()
starting_programs += /datum/computer_file/program/department_order
/obj/machinery/modular_computer/preset/cargochat/proc/setup_starting_software()
if(!department_type)
return
var/datum/computer_file/program/chatclient/chatprogram = cpu.find_file_by_name("ntnrc_client")
chatprogram.username = "[lowertext(console_department)]_department"
cpu.active_program = chatprogram
chatprogram.username = "[lowertext(initial(department_type.department_name))]_department"
cpu.idle_threads += chatprogram
var/datum/computer_file/program/department_order/orderprogram = cpu.find_file_by_name("dept_order")
orderprogram.set_linked_department(department_type)
cpu.active_program = orderprogram
update_appearance(UPDATE_ICON)
/obj/machinery/modular_computer/preset/cargochat/service
console_department = "Service"
department_type = /datum/job_department/service
/obj/machinery/modular_computer/preset/cargochat/engineering
console_department = "Engineering"
department_type = /datum/job_department/engineering
/obj/machinery/modular_computer/preset/cargochat/science
console_department = "Science"
department_type = /datum/job_department/science
/obj/machinery/modular_computer/preset/cargochat/security
console_department = "Security"
department_type = /datum/job_department/security
/obj/machinery/modular_computer/preset/cargochat/medical
console_department = "Medical"
department_type = /datum/job_department/medical
//ONE PER MAP PLEASE, IT MAKES A CARGOBUS FOR EACH ONE OF THESE
/obj/machinery/modular_computer/preset/cargochat/cargo
console_department = "Cargo"
name = "department chatroom console"
desc = "A stationary computer. This one comes preloaded with a chatroom for incoming cargo requests. You may moderate it from this computer."
department_type = /datum/job_department/cargo
name = "departmental interfacing console"
desc = "A stationary computer that comes pre-loaded with software to interface with incoming departmental cargo requests."
/obj/machinery/modular_computer/preset/cargochat/cargo/add_starting_software()
starting_programs += /datum/computer_file/program/bounty_board
starting_programs += /datum/computer_file/program/budgetorders
starting_programs += /datum/computer_file/program/shipping
/obj/machinery/modular_computer/preset/cargochat/cargo/setup_starting_software()
var/datum/computer_file/program/chatclient/chatprogram = cpu.find_file_by_name("ntnrc_client")
cpu.active_program = chatprogram
update_appearance(UPDATE_ICON)
// Rest of the chat program setup is done in LateInit
/obj/machinery/modular_computer/preset/cargochat/cargo/LateInitialize()
. = ..()