mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-16 10:27:14 +01:00
Various Tweaks to modular computers (#1320)
Added different run and download access levels Added the possibility to check for one access, one in a list, all in a list Tweaked the access levels required to download software. Generally speaking, only departmental heads can now download departmental software Locked down the software of the preset consoles. (No downloading games on them) Fixed being unable to eject portable storage devices Locked down work consoles dont accept portable storage devices Added a software backup crate to secure storage
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
var/last_world_time = "00:00"
|
||||
var/list/last_header_icons
|
||||
var/computer_emagged = 0 // Whether the computer is emagged.
|
||||
var/software_locked = 0 // Weather the software on the computer is locked TODO-IT: Look over when implementing IT properly
|
||||
|
||||
var/base_active_power_usage = 50 // Power usage when the computer is open (screen is active) and can be interacted with. Remember hardware can use power too.
|
||||
var/base_idle_power_usage = 5 // Power usage when the computer is idle and screen is off (currently only applies to laptops)
|
||||
@@ -82,7 +83,7 @@
|
||||
proc_eject_usb(usr)
|
||||
|
||||
/obj/item/modular_computer/verb/eject_ai()
|
||||
set name = "Eject Portable Storage"
|
||||
set name = "Eject AI Storage"
|
||||
set category = "Object"
|
||||
set src in view(1)
|
||||
|
||||
@@ -96,6 +97,22 @@
|
||||
|
||||
proc_eject_ai(usr)
|
||||
|
||||
// Reset Computer
|
||||
/obj/item/modular_computer/verb/reset_computer()
|
||||
set name = "Reset Computer"
|
||||
set category = "Object"
|
||||
set src in view(1)
|
||||
|
||||
if(usr.incapacitated() || !istype(usr, /mob/living))
|
||||
usr << "<span class='warning'>You can't do that.</span>"
|
||||
return
|
||||
|
||||
if(!Adjacent(usr))
|
||||
usr << "<span class='warning'>You can't reach it.</span>"
|
||||
return
|
||||
|
||||
proc_reset_computer()
|
||||
|
||||
/obj/item/modular_computer/proc/proc_eject_id(mob/user)
|
||||
if(!user)
|
||||
user = usr
|
||||
@@ -144,6 +161,10 @@
|
||||
ai_slot.update_power_usage()
|
||||
update_uis()
|
||||
|
||||
/obj/item/modular_computer/proc/proc_reset_computer(mob/user)
|
||||
kill_program(1)
|
||||
//shutdown_computer(1) // Killing the current program should be enough
|
||||
|
||||
/obj/item/modular_computer/attack_ghost(var/mob/dead/observer/user)
|
||||
if(enabled)
|
||||
ui_interact(user)
|
||||
@@ -611,6 +632,9 @@
|
||||
/obj/item/modular_computer/proc/try_install_component(var/mob/living/user, var/obj/item/weapon/computer_hardware/H, var/found = 0)
|
||||
// "USB" flash drive.
|
||||
if(istype(H, /obj/item/weapon/computer_hardware/hard_drive/portable))
|
||||
if(software_locked)
|
||||
user << "This computer is locked down by the Central Command IT IQ department. You can not connect \the [H]."
|
||||
return
|
||||
if(portable_drive)
|
||||
user << "This computer's portable drive slot is already occupied by \the [portable_drive]."
|
||||
return
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
var/_has_printer = 0
|
||||
var/_has_battery = 0
|
||||
var/_has_aislot = 0
|
||||
var/_software_locked = 0
|
||||
|
||||
/obj/machinery/modular_computer/console/preset/New()
|
||||
. = ..()
|
||||
@@ -18,30 +19,48 @@
|
||||
cpu.battery_module = new/obj/item/weapon/computer_hardware/battery_module/super(cpu)
|
||||
if(_has_aislot)
|
||||
cpu.ai_slot = new/obj/item/weapon/computer_hardware/ai_slot(cpu)
|
||||
if(_software_locked)
|
||||
cpu.software_locked = 1
|
||||
install_programs()
|
||||
|
||||
// Override in child types to install preset-specific programs.
|
||||
/obj/machinery/modular_computer/console/preset/proc/install_programs()
|
||||
return
|
||||
|
||||
|
||||
// ===== ADMIN CONSOLE =====
|
||||
/obj/machinery/modular_computer/console/preset/admin
|
||||
console_department = "CC ITIQ"
|
||||
desc = "A computer from the CC ITIQ Department. Only available on the odin"
|
||||
|
||||
/obj/machinery/modular_computer/console/preset/admin/install_programs()
|
||||
for(var/F in typesof(/datum/computer_file/program))
|
||||
var/datum/computer_file/program/prog = new F
|
||||
cpu.hard_drive.store_file(prog)
|
||||
cpu.battery_module = new/obj/item/weapon/computer_hardware/battery_module/lambda(cpu)
|
||||
|
||||
// ===== ENGINEERING CONSOLE =====
|
||||
/obj/machinery/modular_computer/console/preset/engineering
|
||||
console_department = "Engineering"
|
||||
desc = "A stationary computer. This one comes preloaded with engineering programs."
|
||||
_software_locked = 1
|
||||
|
||||
/obj/machinery/modular_computer/console/preset/engineering/install_programs()
|
||||
cpu.hard_drive.store_file(new/datum/computer_file/program/power_monitor())
|
||||
cpu.hard_drive.store_file(new/datum/computer_file/program/alarm_monitor())
|
||||
cpu.hard_drive.store_file(new/datum/computer_file/program/atmos_control())
|
||||
cpu.hard_drive.store_file(new/datum/computer_file/program/rcon_console())
|
||||
cpu.hard_drive.store_file(new/datum/computer_file/program/chatclient())
|
||||
|
||||
|
||||
// ===== MEDICAL CONSOLE =====
|
||||
/obj/machinery/modular_computer/console/preset/medical
|
||||
console_department = "Medbay"
|
||||
desc = "A stationary computer. This one comes preloaded with medical programs."
|
||||
_software_locked = 1
|
||||
|
||||
/obj/machinery/modular_computer/console/preset/medical/install_programs()
|
||||
cpu.hard_drive.store_file(new/datum/computer_file/program/chatclient())
|
||||
cpu.hard_drive.store_file(new/datum/computer_file/program/suit_sensors())
|
||||
|
||||
|
||||
@@ -50,10 +69,10 @@
|
||||
console_department = "Research"
|
||||
desc = "A stationary computer. This one comes preloaded with research programs."
|
||||
_has_aislot = 1
|
||||
_software_locked = 1
|
||||
|
||||
/obj/machinery/modular_computer/console/preset/research/install_programs()
|
||||
cpu.hard_drive.store_file(new/datum/computer_file/program/ntnetmonitor())
|
||||
cpu.hard_drive.store_file(new/datum/computer_file/program/nttransfer())
|
||||
cpu.hard_drive.store_file(new/datum/computer_file/program/chatclient())
|
||||
cpu.hard_drive.store_file(new/datum/computer_file/program/aidiag())
|
||||
|
||||
@@ -64,6 +83,7 @@
|
||||
desc = "A stationary computer. This one comes preloaded with command programs."
|
||||
_has_id_slot = 1
|
||||
_has_printer = 1
|
||||
_software_locked = 1
|
||||
|
||||
/obj/machinery/modular_computer/console/preset/command/install_programs()
|
||||
cpu.hard_drive.store_file(new/datum/computer_file/program/chatclient())
|
||||
@@ -78,8 +98,10 @@
|
||||
/obj/machinery/modular_computer/console/preset/security
|
||||
console_department = "Security"
|
||||
desc = "A stationary computer. This one comes preloaded with security programs."
|
||||
_software_locked = 1
|
||||
|
||||
/obj/machinery/modular_computer/console/preset/security/install_programs()
|
||||
cpu.hard_drive.store_file(new/datum/computer_file/program/chatclient())
|
||||
cpu.hard_drive.store_file(new/datum/computer_file/program/camera_monitor())
|
||||
|
||||
// ===== CIVILIAN CONSOLE =====
|
||||
|
||||
@@ -83,6 +83,15 @@ var/list/global_modular_computers = list()
|
||||
if(cpu)
|
||||
cpu.eject_ai()
|
||||
|
||||
// Reset Computer
|
||||
/obj/machinery/modular_computer/verb/reset_computer()
|
||||
set name = "Reset Computer"
|
||||
set category = "Object"
|
||||
set src in view(1)
|
||||
|
||||
if(cpu)
|
||||
cpu.proc_reset_computer()
|
||||
|
||||
/obj/machinery/modular_computer/New()
|
||||
..()
|
||||
cpu = new(src)
|
||||
|
||||
Reference in New Issue
Block a user