mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-24 05:23:22 +01:00
Removes old command and communications console (#3479)
Removes old command and communications console (It is now replaced with modular console with command preset)
This commit is contained in:
@@ -31,7 +31,7 @@
|
||||
else
|
||||
idle_threads.Remove(P)
|
||||
|
||||
|
||||
working = hard_drive && processor_unit && damage < broken_damage && (apc_power(0) || battery_power(0))
|
||||
check_update_ui_need()
|
||||
|
||||
/obj/item/modular_computer/proc/get_preset_programs(var/app_preset_name)
|
||||
@@ -52,6 +52,7 @@
|
||||
|
||||
/obj/item/modular_computer/Initialize()
|
||||
. = ..()
|
||||
listener = new("modular_computers", src)
|
||||
START_PROCESSING(SSprocessing, src)
|
||||
install_default_hardware()
|
||||
if(hard_drive)
|
||||
@@ -64,6 +65,7 @@
|
||||
uninstall_component(null, CH)
|
||||
qdel(CH)
|
||||
STOP_PROCESSING(SSprocessing, src)
|
||||
QDEL_NULL(listener)
|
||||
return ..()
|
||||
|
||||
/obj/item/modular_computer/emag_act(var/remaining_charges, var/mob/user)
|
||||
@@ -80,14 +82,13 @@
|
||||
|
||||
cut_overlays()
|
||||
if(!enabled)
|
||||
var/probably_working = hard_drive && processor_unit && damage < broken_damage && (apc_power(0) || battery_power(0))
|
||||
if(icon_state_screensaver && probably_working)
|
||||
if(icon_state_screensaver && working)
|
||||
if (is_holographic)
|
||||
holographic_overlay(src, src.icon, icon_state_screensaver)
|
||||
else
|
||||
add_overlay(icon_state_screensaver)
|
||||
|
||||
if (screensaver_light_range && probably_working)
|
||||
if (screensaver_light_range && working)
|
||||
set_light(screensaver_light_range, 1, screensaver_light_color ? screensaver_light_color : "#FFFFFF")
|
||||
else
|
||||
set_light(0)
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
var/enabled = 0 // Whether the computer is turned on.
|
||||
var/screen_on = 1 // Whether the computer is active/opened/it's screen is on.
|
||||
var/working = 1 // Whether the computer is working.
|
||||
var/datum/computer_file/program/active_program = null // A currently active program running on the computer.
|
||||
var/hardware_flag = 0 // A flag that describes this device type
|
||||
var/last_power_usage = 0 // Last tick power usage of this computer
|
||||
@@ -55,3 +56,5 @@
|
||||
var/obj/item/weapon/computer_hardware/hard_drive/portable/portable_drive // Portable data storage
|
||||
var/obj/item/weapon/computer_hardware/ai_slot/ai_slot // AI slot, an intellicard housing that allows modifications of AIs.
|
||||
var/obj/item/weapon/computer_hardware/tesla_link/tesla_link // Tesla Link, Allows remote charging from nearest APC.
|
||||
|
||||
var/listener/listener //Listener needed for things
|
||||
@@ -47,6 +47,8 @@
|
||||
/obj/item/modular_computer/console/preset/command/install_default_hardware()
|
||||
..()
|
||||
nano_printer = new/obj/item/weapon/computer_hardware/nano_printer(src)
|
||||
nano_printer.max_paper = 25
|
||||
nano_printer.stored_paper = 20
|
||||
card_slot = new/obj/item/weapon/computer_hardware/card_slot(src)
|
||||
|
||||
// Security
|
||||
@@ -69,6 +71,8 @@
|
||||
..()
|
||||
ai_slot = new/obj/item/weapon/computer_hardware/ai_slot(src)
|
||||
nano_printer = new/obj/item/weapon/computer_hardware/nano_printer(src)
|
||||
nano_printer.max_paper = 25
|
||||
nano_printer.stored_paper = 20
|
||||
card_slot = new/obj/item/weapon/computer_hardware/card_slot(src)
|
||||
|
||||
/obj/item/modular_computer/console/preset/ert/
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
new/datum/computer_file/program/filemanager(),
|
||||
new/datum/computer_file/program/chatclient(),
|
||||
new/datum/computer_file/program/card_mod(),
|
||||
new/datum/computer_file/program/comm()
|
||||
new/datum/computer_file/program/comm(1)
|
||||
)
|
||||
return _prg_list
|
||||
|
||||
@@ -159,7 +159,7 @@
|
||||
new/datum/computer_file/program/filemanager(),
|
||||
new/datum/computer_file/program/ntnetdownload(),
|
||||
new/datum/computer_file/program/camera_monitor/hacked(),
|
||||
new/datum/computer_file/program/comm(),
|
||||
new/datum/computer_file/program/comm(1),
|
||||
new/datum/computer_file/program/suit_sensors(),
|
||||
new/datum/computer_file/program/alarm_monitor(),
|
||||
new/datum/computer_file/program/lighting_control(),
|
||||
|
||||
@@ -16,8 +16,13 @@
|
||||
usage_flags = PROGRAM_CONSOLE
|
||||
network_destination = "station long-range communication array"
|
||||
var/datum/comm_message_listener/message_core = new
|
||||
var/intercept = 0
|
||||
color = LIGHT_COLOR_BLUE
|
||||
|
||||
/datum/computer_file/program/comm/New(intercept_printing = 0)
|
||||
. = ..()
|
||||
intercept = intercept_printing
|
||||
|
||||
/datum/computer_file/program/comm/clone()
|
||||
var/datum/computer_file/program/comm/temp = ..()
|
||||
temp.message_core.messages = null
|
||||
@@ -47,6 +52,8 @@
|
||||
data["emagged"] = program.computer_emagged
|
||||
data["net_comms"] = !!program.get_signal(NTNET_COMMUNICATION) //Double !! is needed to get 1 or 0 answer
|
||||
data["net_syscont"] = !!program.get_signal(NTNET_SYSTEMCONTROL)
|
||||
var/datum/computer_file/program/comm/P = program
|
||||
data["message_printing_intercepts"] = P.intercept
|
||||
if(program.computer)
|
||||
data["have_printer"] = !!program.computer.nano_printer
|
||||
else
|
||||
@@ -56,6 +63,7 @@
|
||||
data["net_comms"] = 1
|
||||
data["net_syscont"] = 1
|
||||
data["have_printer"] = 0
|
||||
data["message_printing_intercepts"] = 0
|
||||
|
||||
data["message_line1"] = msg_line1
|
||||
data["message_line2"] = msg_line2
|
||||
@@ -193,11 +201,11 @@
|
||||
if(can_still_topic())
|
||||
msg_line2 = linput
|
||||
if("message")
|
||||
post_status("message", msg_line1, msg_line2)
|
||||
post_display_status("message", msg_line1, msg_line2)
|
||||
if("alert")
|
||||
post_status("alert", href_list["alert"])
|
||||
post_display_status("alert", href_list["alert"])
|
||||
else
|
||||
post_status(href_list["target"])
|
||||
post_display_status(href_list["target"])
|
||||
|
||||
if("setalert")
|
||||
if(is_autenthicated(user) && !issilicon(usr) && ntn_cont && ntn_comm)
|
||||
@@ -238,31 +246,14 @@
|
||||
usr << "<span class='notice'>Hardware error: Printer was unable to print the file. It may be out of paper.</span>"
|
||||
else
|
||||
program.computer.visible_message("<span class='notice'>\The [program.computer] prints out paper.</span>")
|
||||
if("toggleintercept")
|
||||
if(is_autenthicated(user) && ntn_comm)
|
||||
if(program && program.computer && program.computer.nano_printer)
|
||||
var/datum/computer_file/program/comm/P = program
|
||||
P.intercept = !P.intercept
|
||||
|
||||
SSnanoui.update_uis(src)
|
||||
|
||||
/datum/nano_module/program/comm/proc/post_status(var/command, var/data1, var/data2)
|
||||
|
||||
var/datum/radio_frequency/frequency = SSradio.return_frequency(1435)
|
||||
|
||||
if(!frequency) return
|
||||
|
||||
|
||||
var/datum/signal/status_signal = new
|
||||
status_signal.source = src
|
||||
status_signal.transmission_method = 1
|
||||
status_signal.data["command"] = command
|
||||
|
||||
switch(command)
|
||||
if("message")
|
||||
status_signal.data["msg1"] = data1
|
||||
status_signal.data["msg2"] = data2
|
||||
log_admin("STATUS: [key_name(usr)] set status screen message with [src]: [data1] [data2]",ckey=key_name(usr))
|
||||
if("alert")
|
||||
status_signal.data["picture_state"] = data1
|
||||
|
||||
frequency.post_signal(src, status_signal)
|
||||
|
||||
#undef STATE_DEFAULT
|
||||
#undef STATE_MESSAGELIST
|
||||
#undef STATE_VIEWMESSAGE
|
||||
@@ -289,15 +280,12 @@ var/last_message_id = 0
|
||||
for (var/datum/comm_message_listener/l in comm_message_listeners)
|
||||
l.Add(message)
|
||||
|
||||
//Old console support
|
||||
for (var/obj/machinery/computer/communications/comm in SSmachinery.processing_machines)
|
||||
if (!(comm.stat & (BROKEN | NOPOWER)) && comm.prints_intercept)
|
||||
var/obj/item/weapon/paper/intercept = new /obj/item/weapon/paper( comm.loc )
|
||||
intercept.name = message_title
|
||||
intercept.info = message_text
|
||||
for (var/obj/item/modular_computer/computer in get_listeners_by_type("modular_computers", /obj/item/modular_computer))
|
||||
if(computer && computer.working && !!computer.nano_printer)
|
||||
var/datum/computer_file/program/comm/C = locate(/datum/computer_file/program/comm) in computer.hard_drive.stored_files
|
||||
if(C && C.intercept)
|
||||
computer.nano_printer.print_text(message_text, message_title)
|
||||
|
||||
comm.messagetitle.Add(message_title)
|
||||
comm.messagetext.Add(message_text)
|
||||
|
||||
/datum/comm_message_listener
|
||||
var/list/messages
|
||||
@@ -312,3 +300,131 @@ var/last_message_id = 0
|
||||
|
||||
/datum/comm_message_listener/proc/Remove(var/list/message)
|
||||
messages -= list(message)
|
||||
/*
|
||||
Command action procs
|
||||
*/
|
||||
/proc/post_display_status(var/command, var/data1, var/data2)
|
||||
|
||||
var/datum/radio_frequency/frequency = SSradio.return_frequency(1435)
|
||||
|
||||
if(!frequency) return
|
||||
|
||||
|
||||
var/datum/signal/status_signal = new
|
||||
status_signal.source = src
|
||||
status_signal.transmission_method = 1
|
||||
status_signal.data["command"] = command
|
||||
|
||||
switch(command)
|
||||
if("message")
|
||||
status_signal.data["msg1"] = data1
|
||||
status_signal.data["msg2"] = data2
|
||||
log_admin("STATUS: [key_name(usr)] set status screen message with [src]: [data1] [data2]")
|
||||
if("alert")
|
||||
status_signal.data["picture_state"] = data1
|
||||
|
||||
frequency.post_signal(src, status_signal)
|
||||
|
||||
/proc/cancel_call_proc(var/mob/user)
|
||||
if (!(ROUND_IS_STARTED) || !emergency_shuttle.can_recall())
|
||||
return
|
||||
if((SSticker.mode.name == "blob")||(SSticker.mode.name == "Meteor"))
|
||||
return
|
||||
|
||||
if(!emergency_shuttle.going_to_centcom()) //check that shuttle isn't already heading to centcomm
|
||||
emergency_shuttle.recall()
|
||||
log_game("[key_name(user)] has recalled the shuttle.",key_name(user))
|
||||
message_admins("[key_name_admin(user)] has recalled the shuttle.", 1)
|
||||
return
|
||||
|
||||
|
||||
/proc/is_relay_online()
|
||||
for(var/obj/machinery/bluespacerelay/M in SSmachinery.all_machines)
|
||||
if(M.stat == 0)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/proc/call_shuttle_proc(var/mob/user)
|
||||
if ((!(ROUND_IS_STARTED) || !emergency_shuttle.location()))
|
||||
return
|
||||
|
||||
if(!universe.OnShuttleCall(usr))
|
||||
user << "<span class='notice'>Cannot establish a bluespace connection.</span>"
|
||||
return
|
||||
|
||||
if(deathsquad.deployed)
|
||||
user << "[boss_short] will not allow the shuttle to be called. Consider all contracts terminated."
|
||||
return
|
||||
|
||||
if(emergency_shuttle.deny_shuttle)
|
||||
user << "The emergency shuttle may not be sent at this time. Please try again later."
|
||||
return
|
||||
|
||||
if(world.time < 6000) // Ten minute grace period to let the game get going without lolmetagaming. -- TLE
|
||||
user << "The emergency shuttle is refueling. Please wait another [round((6000-world.time)/600)] minute\s before trying again."
|
||||
return
|
||||
|
||||
if(emergency_shuttle.going_to_centcom())
|
||||
user << "The emergency shuttle may not be called while returning to [boss_short]."
|
||||
return
|
||||
|
||||
if(emergency_shuttle.online())
|
||||
user << "The emergency shuttle is already on its way."
|
||||
return
|
||||
|
||||
if(SSticker.mode.name == "blob")
|
||||
user << "Under directive 7-10, [station_name()] is quarantined until further notice."
|
||||
return
|
||||
|
||||
emergency_shuttle.call_evac()
|
||||
log_game("[key_name(user)] has called the shuttle.",ckey=key_name(user))
|
||||
message_admins("[key_name_admin(user)] has called the shuttle.", 1)
|
||||
|
||||
|
||||
return
|
||||
|
||||
/proc/init_shift_change(var/mob/user, var/force = 0)
|
||||
if ((!(ROUND_IS_STARTED) || !emergency_shuttle.location()))
|
||||
return
|
||||
|
||||
if(emergency_shuttle.going_to_centcom())
|
||||
user << "The shuttle may not be called while returning to [boss_short]."
|
||||
return
|
||||
|
||||
if(emergency_shuttle.online())
|
||||
user << "The shuttle is already on its way."
|
||||
return
|
||||
|
||||
// if force is 0, some things may stop the shuttle call
|
||||
if(!force)
|
||||
if(emergency_shuttle.deny_shuttle)
|
||||
user << "[boss_short] does not currently have a shuttle available in your sector. Please try again later."
|
||||
return
|
||||
|
||||
if(deathsquad.deployed == 1)
|
||||
user << "[boss_short] will not allow the shuttle to be called. Consider all contracts terminated."
|
||||
return
|
||||
|
||||
if(world.time < 54000) // 30 minute grace period to let the game get going
|
||||
user << "The shuttle is refueling. Please wait another [round((54000-world.time)/60)] minutes before trying again."
|
||||
return
|
||||
|
||||
if(SSticker.mode.auto_recall_shuttle)
|
||||
//New version pretends to call the shuttle but cause the shuttle to return after a random duration.
|
||||
emergency_shuttle.auto_recall = 1
|
||||
|
||||
if(SSticker.mode.name == "blob" || SSticker.mode.name == "epidemic")
|
||||
user << "Under directive 7-10, [station_name()] is quarantined until further notice."
|
||||
return
|
||||
|
||||
emergency_shuttle.call_transfer()
|
||||
|
||||
//delay events in case of an autotransfer
|
||||
if (!user)
|
||||
SSevents.delay_events(EVENT_LEVEL_MODERATE, 10200) //17 minutes
|
||||
SSevents.delay_events(EVENT_LEVEL_MAJOR, 10200)
|
||||
|
||||
log_game("[user? key_name(user) : "Autotransfer"] has called the shuttle.")
|
||||
message_admins("[user? key_name_admin(user) : "Autotransfer"] has called the shuttle.", 1)
|
||||
|
||||
return
|
||||
Reference in New Issue
Block a user