From 05e51d5a80cd9b5c7cd83d7e67e294add73ca338 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 3 Apr 2019 15:05:36 -0400 Subject: [PATCH] Updates Part Two --- code/modules/alarm/alarm_handler.dm | 5 + .../NTNet/NTNRC/conversation.dm | 5 + .../computers/item/console_presets.dm | 1 + .../computers/item/modular_computer.dm | 111 +++++++++++++++--- .../computers/item/processor.dm | 4 +- .../computers/machinery/modular_computer.dm | 7 +- .../modular_computers/file_system/program.dm | 7 ++ .../file_system/programs/_engineering.dm | 25 +++- .../file_system/programs/ntdownloader.dm | 5 + .../file_system/programs/ntnrc_client.dm | 21 +++- .../hardware/processor_unit.dm | 36 ++++++ .../modular_computers/laptop_vendor.dm | 22 +++- code/modules/nano/modules/alarm_monitor.dm | 8 ++ .../research/designs/modular_computer.dm | 40 +++++++ icons/obj/modular_components.dmi | Bin 2639 -> 3291 bytes icons/obj/modular_console.dmi | Bin 25404 -> 26093 bytes icons/obj/modular_laptop.dmi | Bin 25642 -> 25753 bytes icons/obj/modular_tablet.dmi | Bin 1449 -> 1467 bytes nano/images/status_icons/alarm_green.gif | Bin 0 -> 107 bytes nano/images/status_icons/alarm_red.gif | Bin 0 -> 163 bytes .../status_icons/downloader_finished.gif | Bin 0 -> 130 bytes .../status_icons/downloader_running.gif | Bin 0 -> 574 bytes nano/images/status_icons/ntnrc_idle.gif | Bin 0 -> 113 bytes nano/images/status_icons/ntnrc_new.gif | Bin 0 -> 181 bytes nano/templates/computer_fabricator.tmpl | 5 + nano/templates/layout_default.tmpl | 4 + nano/templates/ntnet_chat.tmpl | 2 +- polaris.dme | 1 + 28 files changed, 281 insertions(+), 28 deletions(-) create mode 100644 code/modules/modular_computers/hardware/processor_unit.dm create mode 100644 nano/images/status_icons/alarm_green.gif create mode 100644 nano/images/status_icons/alarm_red.gif create mode 100644 nano/images/status_icons/downloader_finished.gif create mode 100644 nano/images/status_icons/downloader_running.gif create mode 100644 nano/images/status_icons/ntnrc_idle.gif create mode 100644 nano/images/status_icons/ntnrc_new.gif diff --git a/code/modules/alarm/alarm_handler.dm b/code/modules/alarm/alarm_handler.dm index d7a7cdf713..22b069093a 100644 --- a/code/modules/alarm/alarm_handler.dm +++ b/code/modules/alarm/alarm_handler.dm @@ -50,6 +50,11 @@ /datum/alarm_handler/proc/major_alarms() return visible_alarms() +/datum/alarm_handler/proc/has_major_alarms() + if(alarms && alarms.len) + return 1 + return 0 + /datum/alarm_handler/proc/minor_alarms() return visible_alarms() diff --git a/code/modules/modular_computers/NTNet/NTNRC/conversation.dm b/code/modules/modular_computers/NTNet/NTNRC/conversation.dm index 1a4922b5ec..2af92c74e5 100644 --- a/code/modules/modular_computers/NTNet/NTNRC/conversation.dm +++ b/code/modules/modular_computers/NTNet/NTNRC/conversation.dm @@ -1,4 +1,7 @@ +var/global/ntnrc_uid = 0 + /datum/ntnet_conversation/ + var/id = null var/title = "Untitled Conversation" var/datum/computer_file/program/chatclient/operator // "Administrator" of this channel. Creator starts as channel's operator, var/list/messages = list() @@ -6,6 +9,8 @@ var/password /datum/ntnet_conversation/New() + id = ntnrc_uid + ntnrc_uid++ if(ntnet_global) ntnet_global.chat_channels.Add(src) ..() diff --git a/code/modules/modular_computers/computers/item/console_presets.dm b/code/modules/modular_computers/computers/item/console_presets.dm index 450c9e6383..4c7eb7b0d1 100644 --- a/code/modules/modular_computers/computers/item/console_presets.dm +++ b/code/modules/modular_computers/computers/item/console_presets.dm @@ -8,6 +8,7 @@ . = ..() if(!cpu) return + cpu.processor_unit = new/obj/item/weapon/computer_hardware/processor_unit(cpu) if(_has_id_slot) cpu.card_slot = new/obj/item/weapon/computer_hardware/card_slot(cpu) if(_has_printer) diff --git a/code/modules/modular_computers/computers/item/modular_computer.dm b/code/modules/modular_computers/computers/item/modular_computer.dm index 35ea31a45b..e243d041c7 100644 --- a/code/modules/modular_computers/computers/item/modular_computer.dm +++ b/code/modules/modular_computers/computers/item/modular_computer.dm @@ -28,6 +28,7 @@ // Important hardware (must be installed for computer to work) + var/obj/item/weapon/computer_hardware/processor_unit/processor_unit // CPU. Without it the computer won't run. Better CPUs can run more programs at once. var/obj/item/weapon/computer_hardware/network_card/network_card // Network Card component of this computer. Allows connection to NTNet var/obj/item/weapon/computer_hardware/hard_drive/hard_drive // Hard Drive component of this computer. Stores programs and files. var/obj/item/weapon/computer_hardware/battery_module/battery_module // An internal power source for this computer. Can be recharged. @@ -36,6 +37,8 @@ var/obj/item/weapon/computer_hardware/nano_printer/nano_printer // Nano Printer component of this computer, for your everyday paperwork needs. var/obj/item/weapon/computer_hardware/hard_drive/portable/portable_drive // Portable data storage + var/list/idle_threads = list() // Idle programs on background. They still receive process calls but can't be interacted with. + // Eject ID card from computer, if it has ID slot with card inside. /obj/item/modular_computer/verb/eject_id() @@ -69,6 +72,14 @@ card_slot.stored_card = null user << "You remove the card from \the [src]" +/obj/item/modular_computer/attack_ghost(var/mob/observer/dead/user) + if(enabled) + ui_interact(user) + else if(check_rights(R_ADMIN, 0, user)) + var/response = alert(user, "This computer is turned off. Would you like to turn it on?", "Admin Override", "Yes", "No") + if(response == "Yes") + turn_on(user) + /obj/item/modular_computer/emag_act(var/remaining_charges, var/mob/user) if(computer_emagged) user << "\The [src] was already emagged." @@ -151,13 +162,24 @@ /obj/item/modular_computer/attack_self(mob/user) if(enabled) ui_interact(user) - else if((battery_module && battery_module.battery.charge) || check_power_override()) // Battery-run and charged or non-battery but powered by APC. - user << "You press the power button and start up \the [src]" + else + turn_on(user) + +/obj/item/modular_computer/proc/turn_on(var/mob/user) + var/issynth = issilicon(user) // Robots and AIs get different activation messages. + if(processor_unit && ((battery_module && battery_module.battery.charge) || check_power_override())) // Battery-run and charged or non-battery but powered by APC. + if(issynth) + user << "You send an activation signal to \the [src], turning it on" + else + user << "You press the power button and start up \the [src]" enabled = 1 update_icon() ui_interact(user) else // Unpowered - user << "You press the power button but \the [src] does not respond." + if(issynth) + user << "You send an activation signal to \the [src] but it does not respond" + else + user << "You press the power button but \the [src] does not respond" // Process currently calls handle_power(), may be expanded in future if more things are added. /obj/item/modular_computer/process() @@ -169,11 +191,22 @@ kill_program(1) visible_message("\The [src]'s screen briefly freezes and then shows \"NETWORK ERROR - NTNet connection lost. Please retry. If problem persists contact your system administrator.\" error.") + for(var/datum/computer_file/program/P in idle_threads) + if(P.requires_ntnet && !get_ntnet_status(P.requires_ntnet_feature)) + P.kill_program(1) + idle_threads.Remove(P) + visible_message("\The [src] screen displays an \"Process [P.filename].[P.filetype] (PID [rand(100,999)]) terminated - Network Error\" error") + if(active_program) active_program.process_tick() active_program.ntnet_status = get_ntnet_status() active_program.computer_emagged = computer_emagged + for(var/datum/computer_file/program/P in idle_threads) + P.process_tick() + P.ntnet_status = get_ntnet_status() + P.computer_emagged = computer_emagged + handle_power() // Handles all computer power interaction // Function used by NanoUI's to obtain data for header. All relevant entries begin with "PC_" @@ -211,6 +244,17 @@ if(3) data["PC_ntneticon"] = "sig_lan.gif" + if(idle_threads.len) + var/list/program_headers = list() + for(var/datum/computer_file/program/P in idle_threads) + if(!P.ui_header) + continue + program_headers.Add(list(list( + "icon" = P.ui_header + ))) + + data["PC_programheaders"] = program_headers + data["PC_stationtime"] = stationtime2text() data["PC_hasheader"] = 1 data["PC_showexitprogram"] = active_program ? 1 : 0 // Hides "Exit Program" button on mainscreen @@ -238,9 +282,13 @@ return 0 return ntnet_global.add_log(text, network_card) -/obj/item/modular_computer/proc/shutdown_computer() +/obj/item/modular_computer/proc/shutdown_computer(var/loud = 1) kill_program(1) - visible_message("\The [src] shuts down.") + for(var/datum/computer_file/program/P in idle_threads) + P.kill_program(1) + idle_threads.Remove(P) + if(loud) + visible_message("\The [src] shuts down.") enabled = 0 update_icon() return @@ -265,6 +313,23 @@ if( href_list["PC_shutdown"] ) shutdown_computer() return + if( href_list["PC_minimize"] ) + var/mob/user = usr + if(!active_program || !processor_unit) + return + + if(idle_threads.len >= processor_unit.max_idle_programs) + user << "\The [src] displays a \"Maximal CPU load reached. Unable to minimize another program.\" error" + return + + idle_threads.Add(active_program) + active_program.running = 0 // Should close any existing UIs + SSnanoui.close_uis(active_program.NM ? active_program.NM : active_program) + active_program = null + update_icon() + if(user && istype(user)) + ui_interact(user) // Re-open the UI on this computer. It should show the main screen now. + if( href_list["PC_runprogram"] ) var/prog = href_list["PC_runprogram"] var/datum/computer_file/program/P = null @@ -280,6 +345,14 @@ if(!P.is_supported_by_hardware(hardware_flag, 1, user)) return + // The program is already running. Resume it. + if(P in idle_threads) + P.running = 1 + active_program = P + idle_threads.Remove(P) + update_icon() + return + if(P.requires_ntnet && !get_ntnet_status(P.requires_ntnet_feature)) // The program requires NTNet connection, but we are not connected to NTNet. user << "\The [src]'s screen shows \"NETWORK ERROR - Unable to connect to NTNet. Please retry. If problem persists contact your system administrator.\" warning." return @@ -292,9 +365,7 @@ /obj/item/modular_computer/proc/power_failure() if(enabled) // Shut down the computer visible_message("\The [src]'s screen flickers \"BATTERY CRITICAL\" warning as it shuts down unexpectedly.") - kill_program(1) - enabled = 0 - update_icon() + shutdown_computer(0) // Handles power-related things, such as battery interaction, recharging, shutdown when it's discharged /obj/item/modular_computer/proc/handle_power() @@ -303,11 +374,9 @@ return 0 var/power_usage = screen_on ? base_active_power_usage : base_idle_power_usage - if(network_card && network_card.enabled) - power_usage += network_card.power_usage - - if(hard_drive && hard_drive.enabled) - power_usage += hard_drive.power_usage + for(var/obj/item/weapon/computer_hardware/H in get_all_components()) + if(H.enabled) + power_usage += H.power_usage if(battery_module) battery_module.battery.use(power_usage * CELLRATE) @@ -421,6 +490,12 @@ return found = 1 battery_module = H + else if(istype(H, /obj/item/weapon/computer_hardware/processor_unit)) + if(processor_unit) + user << "This computer's processor slot is already occupied by \the [processor_unit]." + return + found = 1 + processor_unit = H if(found) user << "You install \the [H] into \the [src]" H.holder2 = src @@ -448,11 +523,15 @@ if(battery_module == H) battery_module = null found = 1 + if(processor_unit == H) + processor_unit = null + found = 1 + critical = 1 if(found) user << "You remove \the [H] from \the [src]." H.forceMove(get_turf(src)) H.holder2 = null - if(critical) + if(critical && enabled) user << "\The [src]'s screen freezes for few seconds and then displays an \"HARDWARE ERROR: Critical component disconnected. Please verify component connection and reboot the device. If the problem persists contact technical support for assistance.\" warning." kill_program(1) enabled = 0 @@ -473,6 +552,8 @@ return card_slot if(battery_module && (battery_module.name == name)) return battery_module + if(processor_unit && (processor_unit.name == name)) + return processor_unit return null // Returns list of all components @@ -490,4 +571,6 @@ all_components.Add(card_slot) if(battery_module) all_components.Add(battery_module) + if(processor_unit) + all_components.Add(processor_unit) return all_components \ No newline at end of file diff --git a/code/modules/modular_computers/computers/item/processor.dm b/code/modules/modular_computers/computers/item/processor.dm index c840f2717c..9dc87d3517 100644 --- a/code/modules/modular_computers/computers/item/processor.dm +++ b/code/modules/modular_computers/computers/item/processor.dm @@ -78,9 +78,7 @@ /obj/item/modular_computer/processor/shutdown_computer() if(!machinery_computer) return - kill_program(1) - visible_message("\The [machinery_computer] shuts down.") - enabled = 0 + ..() machinery_computer.update_icon() return diff --git a/code/modules/modular_computers/computers/machinery/modular_computer.dm b/code/modules/modular_computers/computers/machinery/modular_computer.dm index 8771e15627..c3877cde06 100644 --- a/code/modules/modular_computers/computers/machinery/modular_computer.dm +++ b/code/modules/modular_computers/computers/machinery/modular_computer.dm @@ -27,6 +27,10 @@ var/obj/item/modular_computer/processor/cpu = null // CPU that handles most logic while this type only handles power and other specific things. +/obj/machinery/modular_computer/attack_ghost(var/mob/observer/dead/user) + if(cpu) + cpu.attack_ghost(user) + /obj/machinery/modular_computer/emag_act(var/remaining_charges, var/mob/user) return //cpu ? cpu.emag_act(remaining_charges, user) : NO_EMAG_ACT @@ -77,8 +81,7 @@ if(cpu && cpu.enabled) // Shut down the computer visible_message("\The [src]'s screen flickers [cpu.battery_module ? "\"BATTERY CRITICAL\"" : "\"EXTERNAL POWER LOSS\""] warning as it shuts down unexpectedly.") if(cpu) - cpu.kill_program(1) - cpu.enabled = 0 + cpu.shutdown_computer(0) battery_powered = 0 update_icon() stat |= NOPOWER diff --git a/code/modules/modular_computers/file_system/program.dm b/code/modules/modular_computers/file_system/program.dm index f75e8271b5..b6e63700f3 100644 --- a/code/modules/modular_computers/file_system/program.dm +++ b/code/modules/modular_computers/file_system/program.dm @@ -18,6 +18,8 @@ var/available_on_ntnet = 1 // Whether the program can be downloaded from NTNet. Set to 0 to disable. var/available_on_syndinet = 0 // Whether the program can be downloaded from SyndiNet (accessible via emagging the computer). Set to 1 to enable. var/computer_emagged = 0 // Set to 1 if computer that's running us was emagged. Computer updates this every Process() tick + var/ui_header = null // Example: "something.gif" - a header image that will be rendered in computer's UI when this program is running at background. Images are taken from /nano/images/status_icons. Be careful not to use too large images! + /datum/computer_file/program/New(var/obj/item/modular_computer/comp = null) ..() @@ -35,6 +37,11 @@ temp.usage_flags = usage_flags return temp +// Relays icon update to the computer. +/datum/computer_file/program/proc/update_computer_icon() + if(computer) + computer.update_icon() + // Attempts to create a log in global ntnet datum. Returns 1 on success, 0 on fail. /datum/computer_file/program/proc/generate_network_log(var/text) if(computer) diff --git a/code/modules/modular_computers/file_system/programs/_engineering.dm b/code/modules/modular_computers/file_system/programs/_engineering.dm index d2a7521b43..83d1797af7 100644 --- a/code/modules/modular_computers/file_system/programs/_engineering.dm +++ b/code/modules/modular_computers/file_system/programs/_engineering.dm @@ -15,18 +15,37 @@ filename = "alarmmonitor" filedesc = "Alarm Monitoring" nanomodule_path = /datum/nano_module/alarm_monitor/engineering - program_icon_state = "alarm_monitor" + ui_header = "alarm_green.gif" + program_icon_state = "alert-green" extended_desc = "This program provides visual interface for station's alarm system." requires_ntnet = 1 network_destination = "alarm monitoring network" size = 5 + var/has_alert = 0 + +/datum/computer_file/program/alarm_monitor/process_tick() + ..() + var/datum/nano_module/alarm_monitor/NMA = NM + if(istype(NMA) && NMA.has_major_alarms()) + if(!has_alert) + program_icon_state = "alert-red" + ui_header = "alarm_red.gif" + update_computer_icon() + has_alert = 1 + else + if(has_alert) + program_icon_state = "alert-green" + ui_header = "alarm_green.gif" + update_computer_icon() + has_alert = 0 + return 1 /datum/computer_file/program/atmos_control filename = "atmoscontrol" filedesc = "Atmosphere Control" nanomodule_path = /datum/nano_module/atmos_control program_icon_state = "atmos_control" - extended_desc = "This program allows remote control of air alarms around the station" + extended_desc = "This program allows remote control of air alarms around the station. This program can not be run on tablet computers." required_access = access_atmospherics requires_ntnet = 1 network_destination = "atmospheric control system" @@ -39,7 +58,7 @@ filedesc = "RCON Remote Control" nanomodule_path = /datum/nano_module/rcon program_icon_state = "generic" - extended_desc = "This program allows remote control of power distribution systems around the station." + extended_desc = "This program allows remote control of power distribution systems around the station. This program can not be run on tablet computers." required_access = access_engine requires_ntnet = 1 network_destination = "RCON remote control system" diff --git a/code/modules/modular_computers/file_system/programs/ntdownloader.dm b/code/modules/modular_computers/file_system/programs/ntdownloader.dm index d148036ee5..c9c601a66d 100644 --- a/code/modules/modular_computers/file_system/programs/ntdownloader.dm +++ b/code/modules/modular_computers/file_system/programs/ntdownloader.dm @@ -10,6 +10,7 @@ requires_ntnet_feature = NTNET_SOFTWAREDOWNLOAD available_on_ntnet = 0 nanomodule_path = /datum/nano_module/computer_ntnetdownload/ + ui_header = "downloader_finished.gif" var/datum/computer_file/program/downloaded_file = null var/hacked_download = 0 var/download_completion = 0 //GQ of downloaded data. @@ -32,6 +33,8 @@ if(!computer || !computer.hard_drive || !computer.hard_drive.try_store_file(PRG)) return 0 + ui_header = "downloader_running.gif" + if(PRG in ntnet_global.available_station_software) generate_network_log("Began downloading file [PRG.filename].[PRG.filetype] from NTNet Software Repository.") hacked_download = 0 @@ -50,6 +53,7 @@ generate_network_log("Aborted download of file [hacked_download ? "**ENCRYPTED**" : downloaded_file.filename].[downloaded_file.filetype].") downloaded_file = null download_completion = 0 + ui_header = "downloader_finished.gif" /datum/computer_file/program/ntnetdownload/proc/complete_file_download() if(!downloaded_file) @@ -60,6 +64,7 @@ downloaderror = "I/O ERROR - Unable to save file. Check whether you have enough free space on your hard drive and whether your hard drive is properly connected. If the issue persists contact your system administrator for assistance." downloaded_file = null download_completion = 0 + ui_header = "downloader_finished.gif" /datum/computer_file/program/ntnetdownload/process_tick() if(!downloaded_file) diff --git a/code/modules/modular_computers/file_system/programs/ntnrc_client.dm b/code/modules/modular_computers/file_system/programs/ntnrc_client.dm index 3e38c9abeb..0fa9c7a96b 100644 --- a/code/modules/modular_computers/file_system/programs/ntnrc_client.dm +++ b/code/modules/modular_computers/file_system/programs/ntnrc_client.dm @@ -7,8 +7,10 @@ requires_ntnet = 1 requires_ntnet_feature = NTNET_COMMUNICATION network_destination = "NTNRC server" + ui_header = "ntnrc_idle.gif" available_on_ntnet = 1 nanomodule_path = /datum/nano_module/computer_chatclient/ + var/last_message = null // Used to generate the toolbar icon var/username var/datum/ntnet_conversation/channel = null var/operator_mode = 0 // Channel operator mode @@ -30,7 +32,7 @@ if(href_list["PRG_joinchannel"]) var/datum/ntnet_conversation/C for(var/datum/ntnet_conversation/chan in ntnet_global.chat_channels) - if(chan.title == href_list["PRG_joinchannel"]) + if(chan.id == text2num(href_list["PRG_joinchannel"])) C = chan break @@ -143,6 +145,20 @@ ..(href, href_list) +/datum/computer_file/program/chatclient/process_tick() + ..() + if(running) + ui_header = "ntnrc_idle.gif" + if(channel) + // Remember the last message. If there is no message in the channel remember null. + last_message = channel.messages.len ? channel.messages[channel.messages.len - 1] : null + else + last_message = null + return 1 + if(channel && channel.messages && channel.messages.len) + ui_header = last_message == channel.messages[channel.messages.len - 1] ? "ntnrc_idle.gif" : "ntnrc_new.gif" + else + ui_header = "ntnrc_idle.gif" /datum/computer_file/program/chatclient/kill_program(var/forced = 0) if(channel) @@ -188,7 +204,8 @@ for(var/datum/ntnet_conversation/conv in ntnet_global.chat_channels) if(conv && conv.title) all_channels.Add(list(list( - "chan" = conv.title + "chan" = conv.title, + "id" = conv.id ))) data["all_channels"] = all_channels diff --git a/code/modules/modular_computers/hardware/processor_unit.dm b/code/modules/modular_computers/hardware/processor_unit.dm new file mode 100644 index 0000000000..c258a3e5aa --- /dev/null +++ b/code/modules/modular_computers/hardware/processor_unit.dm @@ -0,0 +1,36 @@ +// CPU that allows the computer to run programs. +// Better CPUs are obtainable via research and can run more programs on background. + +/obj/item/weapon/computer_hardware/processor_unit + name = "standard processor" + desc = "A standard CPU used in most computers. It can run up to three programs simultaneously." + icon_state = "cpu_normal" + hardware_size = 2 + power_usage = 50 + critical = 1 + + var/max_idle_programs = 2 // 2 idle, + 1 active = 3 as said in description. + +/obj/item/weapon/computer_hardware/processor_unit/small + name = "standard microprocessor" + desc = "A standard miniaturised CPU used in portable devices. It can run up to two programs simultaneously." + icon_state = "cpu_small" + hardware_size = 1 + power_usage = 25 + max_idle_programs = 1 + +/obj/item/weapon/computer_hardware/processor_unit/photonic + name = "photonic processor" + desc = "An advanced experimental CPU that uses photonic core instead of regular circuitry. It can run up to five programs simultaneously, but uses a lot of power." + icon_state = "cpu_normal_photonic" + hardware_size = 2 + power_usage = 250 + max_idle_programs = 4 + +/obj/item/weapon/computer_hardware/processor_unit/photonic/small + name = "photonic microprocessor" + desc = "An advanced miniaturised CPU for use in portable devices. It uses photonic core instead of regular circuitry. It can run up to three programs simultaneously." + icon_state = "cpu_small_photonic" + hardware_size = 1 + power_usage = 75 + max_idle_programs = 2 \ No newline at end of file diff --git a/code/modules/modular_computers/laptop_vendor.dm b/code/modules/modular_computers/laptop_vendor.dm index fb4358d32d..4ce6e94e17 100644 --- a/code/modules/modular_computers/laptop_vendor.dm +++ b/code/modules/modular_computers/laptop_vendor.dm @@ -19,6 +19,7 @@ var/total_price = 0 // Price of currently vended device. // Device loadout + var/dev_cpu = 1 // 1: Default, 2: Upgraded var/dev_battery = 1 // 1: Default, 2: Upgraded, 3: Advanced var/dev_disk = 1 // 1: Default, 2: Upgraded, 3: Advanced var/dev_netcard = 0 // 0: None, 1: Basic, 2: Long-Range @@ -36,6 +37,7 @@ if(fabricated_tablet) qdel(fabricated_tablet) fabricated_tablet = null + dev_cpu = 1 dev_battery = 1 dev_disk = 1 dev_netcard = 0 @@ -50,17 +52,25 @@ if(fabricate) fabricated_laptop = new(src) total_price = 99 + switch(dev_cpu) + if(1) + if(fabricate) + fabricated_laptop.cpu.processor_unit = new/obj/item/weapon/computer_hardware/processor_unit/small(fabricated_laptop.cpu) + if(2) + if(fabricate) + fabricated_laptop.cpu.processor_unit = new/obj/item/weapon/computer_hardware/processor_unit(fabricated_laptop.cpu) + total_price += 299 switch(dev_battery) if(1) // Basic(750C) if(fabricate) - fabricated_laptop.cpu.battery_module = new/obj/item/weapon/computer_hardware/battery_module(fabricated_tablet) + fabricated_laptop.cpu.battery_module = new/obj/item/weapon/computer_hardware/battery_module(fabricated_laptop.cpu) if(2) // Upgraded(1100C) if(fabricate) - fabricated_laptop.cpu.battery_module = new/obj/item/weapon/computer_hardware/battery_module/advanced(fabricated_tablet) + fabricated_laptop.cpu.battery_module = new/obj/item/weapon/computer_hardware/battery_module/advanced(fabricated_laptop.cpu) total_price += 199 if(3) // Advanced(1500C) if(fabricate) - fabricated_laptop.cpu.battery_module = new/obj/item/weapon/computer_hardware/battery_module/super(fabricated_tablet) + fabricated_laptop.cpu.battery_module = new/obj/item/weapon/computer_hardware/battery_module/super(fabricated_laptop.cpu) total_price += 499 switch(dev_disk) if(1) // Basic(128GQ) @@ -100,6 +110,7 @@ else if(devtype == 2) // Tablet, more expensive, not everyone could probably afford this. if(fabricate) fabricated_tablet = new(src) + fabricated_tablet.processor_unit = new/obj/item/weapon/computer_hardware/processor_unit/small(fabricated_tablet) total_price = 199 switch(dev_battery) if(1) // Basic(300C) @@ -169,6 +180,10 @@ state = 2 // Wait for ID swipe for payment processing fabricate_and_recalc_price(0) return 1 + if(href_list["hw_cpu"]) + dev_cpu = text2num(href_list["hw_cpu"]) + fabricate_and_recalc_price(0) + return 1 if(href_list["hw_battery"]) dev_battery = text2num(href_list["hw_battery"]) fabricate_and_recalc_price(0) @@ -213,6 +228,7 @@ data["hw_tesla"] = dev_tesla data["hw_nanoprint"] = dev_nanoprint data["hw_card"] = dev_card + data["hw_cpu"] = dev_cpu data["totalprice"] = "[total_price]$" ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open) diff --git a/code/modules/nano/modules/alarm_monitor.dm b/code/modules/nano/modules/alarm_monitor.dm index 1a230dc908..7ca7a3a26b 100644 --- a/code/modules/nano/modules/alarm_monitor.dm +++ b/code/modules/nano/modules/alarm_monitor.dm @@ -37,6 +37,14 @@ return all_alarms +// Modified version of above proc that uses slightly less resources, returns 1 if there is a major alarm, 0 otherwise. +/datum/nano_module/alarm_monitor/proc/has_major_alarms() + for(var/datum/alarm_handler/AH in alarm_handlers) + if(AH.has_major_alarms()) + return 1 + + return 0 + /datum/nano_module/alarm_monitor/proc/minor_alarms() var/list/all_alarms = new() for(var/datum/alarm_handler/AH in alarm_handlers) diff --git a/code/modules/research/designs/modular_computer.dm b/code/modules/research/designs/modular_computer.dm index 618b0f801e..253087cb1e 100644 --- a/code/modules/research/designs/modular_computer.dm +++ b/code/modules/research/designs/modular_computer.dm @@ -200,3 +200,43 @@ materials = list(DEFAULT_WALL_MATERIAL = 4000) build_path = /obj/item/weapon/computer_hardware/battery_module/micro sort_string = "VBAAU" + +/datum/design/item/modularcomponent/cpu/ + name = "computer processor unit" + id = "cpu_normal" + req_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 2) + build_type = IMPRINTER + materials = list(DEFAULT_WALL_MATERIAL = 8000) + chemicals = list("sacid" = 20) + build_path = /obj/item/weapon/computer_hardware/processor_unit + sort_string = "VBAAV" + +/datum/design/item/modularcomponent/cpu/small + name = "computer microprocessor unit" + id = "cpu_small" + req_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2) + build_type = IMPRINTER + materials = list(DEFAULT_WALL_MATERIAL = 4000) + chemicals = list("sacid" = 20) + build_path = /obj/item/weapon/computer_hardware/processor_unit/small + sort_string = "VBAAW" + +/datum/design/item/modularcomponent/cpu/photonic + name = "computer photonic processor unit" + id = "pcpu_normal" + req_tech = list(TECH_DATA = 5, TECH_ENGINEERING = 4) + build_type = IMPRINTER + materials = list(DEFAULT_WALL_MATERIAL = 32000, glass = 8000) + chemicals = list("sacid" = 40) + build_path = /obj/item/weapon/computer_hardware/processor_unit/photonic + sort_string = "VBAAX" + +/datum/design/item/modularcomponent/cpu/photonic/small + name = "computer photonic microprocessor unit" + id = "pcpu_small" + req_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 3) + build_type = IMPRINTER + materials = list(DEFAULT_WALL_MATERIAL = 16000, glass = 4000) + chemicals = list("sacid" = 20) + build_path = /obj/item/weapon/computer_hardware/processor_unit/photonic/small + sort_string = "VBAAY" diff --git a/icons/obj/modular_components.dmi b/icons/obj/modular_components.dmi index e2aca17340a1bd2b0610b6f3eeea9010ff4e97bf..3594a12c17f70f3b71af1027e7671db465c53934 100644 GIT binary patch literal 3291 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 literal 2639 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 diff --git a/icons/obj/modular_laptop.dmi b/icons/obj/modular_laptop.dmi index 583def71e5082122985ce3284f217bfe5de58d8c..8ee252055cf41c852d8c6595c2b9c8bb6101395e 100644 GIT binary patch literal 25753 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

Y+f{K;v8>)uanRb`nDqQKx|T?XW#RQj?nx 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

{9?v|6O~o6!aJLqv@QoC);2M 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 YX+An$r|X>scBWFWllCXdk6(ZA4_k6KHvj+t diff --git a/icons/obj/modular_tablet.dmi b/icons/obj/modular_tablet.dmi index fb0e1fd9c921bafde058733a6e910893e9f4a569..1872315f49f0acc11771ebb495858e7bcb741e6b 100644 GIT binary patch delta 1352 zcmV-O1-JUC3%d)DBtD-|OjJd{z`$f=WPyQ!C@3iZ0001#`!h5DARr+B%mDxY00000 z0RI3p|1+5Y003$L0GR;HGXTuY%rpOHkzW-L0FU>msHgyt`CngO0G9oci9!{7j+m$b z0004WQchCC`6lS@v+Fc5~<@hPl!8&DgE1q&9SR;WVlh67k8nI@L} zK;wak+hetYv{8(a7oHjY-@Gg@`P24!ci@}-j(q|K?HzyM_3erkgKnvhj;L7CgYJ4d zJAo8IG#8}a4A6oVt;P@oYgQalSvcFjGAZ|uuP;(&g$=@x7kO)yYv*-;_c01aeMPe> ze~wt4u1OAQd>7`kRAUxViV0@D)8uiU6eD?8#xt_L52Oub3tmATI6&QGYsD@v`&49o zkd1eQ-eec53?SWf2;lyyMM$haHOIRj0RP@xJ(=cmo-14q3KNZ{-pzvh$P#r~kAzMP zxMoYfJ#0?DGXMY>3CRnF_R@u9@`4BxB$Jm7M3}&M zRt@_Dqz(HYV%o4@&l>vBj}gE=_B7AQ07~%&jjr7Hu)69oz)WXpai_Z2|- z`S*N;Vs0S%i#YlK=JZdqBGu6bIDrP{Xdom&?7s_5;{J7X8z4y#U?^h$KokE*N&o-= z0000$0R3(a`qzd1`}p<2CwPnolncr4=SQm#KEb101MCBA&mc3QLG{5W7~X*N0BTne zqw^E&RUdqU{WlPQswau4yR{mnYi+&^C))r30000000000BBg8?r@m;Q0xXwH_6a2Y z+)-wNt~=@rrIc~6=m2pvzyw%2*aleLj?cg~aEQ(|U^uc2%2s{9Tb2&Vv5rX?QS9O1N{Dd`}ACZAiYT4 zjc;ILE1&|5|5b=@0000000000005C9ed?F=S;H{8H&|7CfFz*<*o_Hiz^f_@dRo&B0?{B6?Oc7c|i{kFoFicj*y>^;wH%IzMoR~ zc~TF*h#g9pprn_bb#ebL=`%YZH>CjGwLs`rV)P@u4-DM^vwxTL#vf-u(z#bDL685P z7ytkO00000005B^x)pf-UlqIQm#?m_SF6>{^>usi-k{y=ash<>yeeun(<)7=0D^v* zZ+YE+-n%y#+CW_>JyQ!ZfS_OH>tb!lSM9xfgVKIJ-Bm;w3_L<_a^wH@cAej~_wEgb zHgLX$3LxmyeC^2Jw)gH0`uR%x{j{$Jrn_t4roDG>@SyE+DjlIr2texZ?mh26wD;}} zO8a|TkZXxFm0002Mf5|^7PKDwj?++*d0000< KMNUMnLSTZqD{V6X delta 1393 zcmV-%1&;c=3#ki`B!8k%OjJd{z`$f=WPyQ!C@3iZ001*H|1?Y zH!;XFku+fHhA%;2f6Wlx8S76AJQGP}D8$54BnQ$CF8&`(som?xyHbiFhO1;6_W(l9gcm``c6j@w{hV_~x44XFkXWXj22 zamwpCH9HKdM9+kFa-rG+@k31j{!Z)(ti|?DFu};J#zY^ne+Bw~%|%c8wfGylYBi0h z8auKB|24@d(xPLS5rIoFm+SrN{A+#ySC;B;>Do-;000A-NklSyS6U5QLFe zlGjMcrU)3t;Rp#iAt(9&e=U2+f(K^C(pn`g^k@62G47t0WIRQ|!2tjOOoZeKV|(dC zGJ8UV36j~sQi2d-Q1@d zAo>R6h9VCTeFF%900Rez{b!+B+&_*s0g?m(#v=9)H1U6=1ONa400004Fz!}C*7FuB zK+t}Ecs-xb=X`({&;YZ4A78f(_!6i9FQ9>D2-DPGf5$n%zJS_ZCdSe8`L+ToK=ciS z8b}gRcWX0B*V^0-qXihd0RR9100000002aa^r?SnebLfS7k7{Op(D=(UH8-%N-5(` zkpTpKDh<#91YO*}+X>p2=Ni~W=Nd3GW*gx2sWdS3IY3V^R1ZIdUP1%&+_pgIJ6?tQ z>WgBbf6aU~8NjN_eARRtX#9~4*o2yCKr*0po@MsV>Y6+UyhuLZcqg+P$0jdB4h8?T}REbTA$E+^c;e_jI66K+&SS3-cyJd$LvL&zIo4w0P# z(1(x>kPUkh4;vtJH@bn@Y<6^HAN_P|aF+nwA*MLJ)b2Lq`v7ksR4-F^;~SXS5%<%l za1{z`0000000000005B^x)oTpjH7#lMZpJ15;}n0sBi}C>Uu!k87$JY-~uGa$H|l% ze<ftA`LkSa< z^t`toyq{m$0l6s!=&l7qw-Tf8>3v}A1_Ji;tv}9yq;pp(L685P7ytkO00000005B^ zx)pf*uZsQjlQ*Yl>-GBl?5w+YZ_sXbf4Km{eqNQ8T4|N0Q~*IgsTZmn zovk+p{d}eUemYbGSKD*oyt{XAaHs8YDjh^Q?ai%yeCqDq8w_tCb2lykqo05F4Sf09-TR|KX@AdMg)$+4pno&t|9*FQcX!|2 z`=h}T--&qpoc@)k-|{b>v&F38^N~f|I*jw!Tav@w9?f)meZx*h^0Z{e(_iPl?+amI Gum%9P&mj8% literal 0 HcmV?d00001 diff --git a/nano/images/status_icons/alarm_red.gif b/nano/images/status_icons/alarm_red.gif new file mode 100644 index 0000000000000000000000000000000000000000..327d58e4db8acf03e219e09ace17c6f1f990f499 GIT binary patch literal 163 zcmZ?wbhEHb6k`x$SjfO&!NBl?f#JY`0}KodivPL&TtkAL9RpmA^bD98K|()SIE@&X z8FYYbpawAp1}4op{VPwu z9gsXo3j>qGoc@)k-|laiBP6A;iLESQZs9fdE`gn;8fkWGK5X@y)0gnV&)mlFMPK)y dJkk3GD#0FQM`JW^Mtrhj=MufRCyI-~8UX$-DMkPQ literal 0 HcmV?d00001 diff --git a/nano/images/status_icons/downloader_running.gif b/nano/images/status_icons/downloader_running.gif new file mode 100644 index 0000000000000000000000000000000000000000..68fb977c86dda6273d7fbd853b86ca38375891b2 GIT binary patch literal 574 zcmZ?wbhEHb6k`x$SjfP@V8L+UzyXFIKo*1Ie{Mh5kYH!W09PYD17=2$&`%alE(T@> z9gsXo3j>qvoc@)k-|laiBP6A;iLET)R_h~=Y0o;By*jn+owOJ>9m=RW66O|OWA74h zEd}Y|KK{w)`nOoDHmPCNx3e^3MNlw1SYPk+U;jj~S*eXvYtx$-T+f^X?*g@+`~Hvr ziYQjA_3-Q8d}^(=waC@4|M+>h+K(hMVsnBCAtSzs1pCZ=|HsTbplx#B#||H@=_i@6 z8DvScK^{p97bLw{HAiD|-)GKVD{io9Ul>uM&z5A<0#03AzH(Mc%dwY>85pbqqOR3W literal 0 HcmV?d00001 diff --git a/nano/images/status_icons/ntnrc_idle.gif b/nano/images/status_icons/ntnrc_idle.gif new file mode 100644 index 0000000000000000000000000000000000000000..d47c01d580080e8e614de62448815b87705a122f GIT binary patch literal 113 zcmZ?wbhEHb6k`x$n8?7uV8L+UzyTl)1d9K;{aizWogD*Qjr0td89_onSvZXtm>6_G z@*ph?O!`y$SDt>$zc^;Wt!~{*{n8&Ar)bngYlhsO6~oo#^kK@TOEwR;%O1S>ei3K; KkwqIB7_0$IQY1tG literal 0 HcmV?d00001 diff --git a/nano/images/status_icons/ntnrc_new.gif b/nano/images/status_icons/ntnrc_new.gif new file mode 100644 index 0000000000000000000000000000000000000000..af72a8b332fc4983088ccafc64593bb04294e551 GIT binary patch literal 181 zcmZ?wbhEHb6k`x$SjfP@V8L+UzyXFIKo*1Ie{Mh5kYH!W09PYD17=2$&`%alBL-#$ z9gsXo3j>q>oc@)k-|{bxS#+yg_fo&~$HpldbQvgwk|!|k#MZ@yo| T*?wfvM*L{{:helper.link('Standard', null, { "hw_netcard" : 1 }, data.hw_netcard == 1 ? 'selected' : null)}} {{:helper.link('Advanced', null, { "hw_netcard" : 2 }, data.hw_netcard == 2 ? 'selected' : null)}} {{if data.devtype != 2}} + + Processor Unit: + {{:helper.link('Standard', null, { "hw_cpu" : 1 }, data.hw_cpu == 1 ? 'selected' : null)}} + {{:helper.link('Advanced', null, { "hw_cpu" : 2 }, data.hw_cpu == 2 ? 'selected' : null)}} Tesla Relay: {{:helper.link('None', null, { "hw_tesla" : 0 }, data.hw_tesla == 0 ? 'selected' : null)}} @@ -50,6 +54,7 @@ Battery allows your device to operate without external utility power source. Advanced batteries increase battery life.
Hard Drive stores file on your device. Advanced drives can store more files, but use more power, shortening battery life.
Network Card allows your device to wirelessly connect to stationwide NTNet network. Basic cards are limited to on-station use, while advanced cards can operate anywhere near the station, which includes the asteroid outposts.
+ Processor Unit is critical for your device's functionality. It allows you to run programs from your hard drive. Advanced CPUs use more power, but allow you to run more programs on background at once.
Tesla Relay is an advanced wireless power relay that allows your device to connect to nearby area power controller to provide alternative power source. This component is currently unavailable on tablet computers due to size restrictions.
Nano Printer is device that allows for various paperwork manipulations, such as, scanning of documents or printing new ones. This device was certified EcoFriendlyPlus and is capable of recycling existing paper for printing purposes.
Card Reader adds a slot that allows you to manipulate RFID cards. Please note that this is not necessary to allow the device to read your identification, it is just necessary to manipulate other cards. diff --git a/nano/templates/layout_default.tmpl b/nano/templates/layout_default.tmpl index a5fd6f5804..53701e3030 100644 --- a/nano/templates/layout_default.tmpl +++ b/nano/templates/layout_default.tmpl @@ -17,6 +17,9 @@ {{if data.PC_stationtime}} {{:data.PC_stationtime}} {{/if}} + {{for data.PC_programheaders}} + + {{/for}} @@ -25,6 +28,7 @@ {{:helper.link('Shutdown', null, {'PC_shutdown' : 1})}} {{if data.PC_showexitprogram}} {{:helper.link('Exit Program', null, {'PC_exit' : 1})}} + {{:helper.link('Minimize Program', null, {'PC_minimize' : 1})}} {{/if}} diff --git a/nano/templates/ntnet_chat.tmpl b/nano/templates/ntnet_chat.tmpl index b81d7b4755..b91afd613c 100644 --- a/nano/templates/ntnet_chat.tmpl +++ b/nano/templates/ntnet_chat.tmpl @@ -60,7 +60,7 @@ Available channels: {{for data.all_channels}} -
{{:helper.link(value.chan, null, {'PRG_joinchannel' : value.chan})}}
+
{{:helper.link(value.chan, null, {'PRG_joinchannel' : value.id})}}
{{/for}}
{{/if}} \ No newline at end of file diff --git a/polaris.dme b/polaris.dme index 430f720734..a8a9f2ab06 100644 --- a/polaris.dme +++ b/polaris.dme @@ -2126,6 +2126,7 @@ #include "code\modules\modular_computers\hardware\nano_printer.dm" #include "code\modules\modular_computers\hardware\network_card.dm" #include "code\modules\modular_computers\hardware\portable_hard_drive.dm" +#include "code\modules\modular_computers\hardware\processor_unit.dm" #include "code\modules\modular_computers\hardware\tesla_link.dm" #include "code\modules\modular_computers\NTNet\NTNet.dm" #include "code\modules\modular_computers\NTNet\NTNet_relay.dm"