From 7594c28f21db53aae12a316c1106acd01f62fbc0 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 14 Apr 2019 14:38:30 -0400 Subject: [PATCH] Updates Part Twelve --- code/__defines/misc.dm | 1 + code/_macros.dm | 1 + .../preference_setup/loadout/gear_tweaks.dm | 148 +++++++++++ .../loadout/loadout_utility.dm | 30 ++- .../computers/modular_computer/core.dm | 2 + .../computers/modular_computer/interaction.dm | 2 +- .../computers/modular_computer/ui.dm | 1 + .../computers/subtypes/dev_laptop.dm | 2 +- .../computers/subtypes/dev_tablet.dm | 7 +- .../computers/subtypes/dev_telescreen.dm | 2 +- .../computers/subtypes/preset_console.dm | 17 +- .../modular_computers/file_system/program.dm | 3 + .../file_system/programs/antagonist/dos.dm | 2 + .../programs/antagonist/hacked_camera.dm | 2 + .../programs/antagonist/revelation.dm | 6 + .../file_system/programs/command/card.dm | 4 +- .../file_system/programs/command/comm.dm | 10 +- .../programs/engineering/alarm_monitor.dm | 4 +- .../programs/engineering/atmos_control.dm | 2 + .../programs/engineering/power_monitor.dm | 2 + .../programs/engineering/rcon_console.dm | 2 + .../engineering/supermatter_monitor.dm | 2 + .../file_system/programs/generic/camera.dm | 2 + .../programs/generic/configurator.dm | 2 + .../programs/generic/email_client.dm | 2 + .../programs/generic/file_browser.dm | 11 +- .../file_system/programs/generic/game.dm | 1 + .../file_system/programs/generic/library.dm | 191 ++++++++++++++ .../programs/generic/news_browser.dm | 2 + .../programs/generic/ntdownloader.dm | 92 ++++--- .../programs/generic/ntnrc_client.dm | 2 + .../programs/generic/nttransfer.dm | 3 + .../programs/generic/wordprocessor.dm | 236 ++++++++++++++++++ .../programs/medical/suit_sensors.dm | 6 + .../programs/research/email_administration.dm | 2 + .../programs/research/ntmonitor.dm | 2 + .../programs/security/digitalwarrant.dm | 2 + .../hardware/nano_printer.dm | 27 +- code/modules/nano/modules/nano_module.dm | 19 ++ icons/obj/modular_console.dmi | Bin 30082 -> 31288 bytes icons/obj/modular_laptop.dmi | Bin 28597 -> 28909 bytes icons/obj/modular_tablet.dmi | Bin 3544 -> 8820 bytes icons/obj/modular_telescreen.dmi | Bin 29210 -> 29216 bytes nano/templates/arcade_classic.tmpl | 82 +++--- nano/templates/laptop_configuration.tmpl | 2 +- nano/templates/laptop_mainscreen.tmpl | 8 +- nano/templates/library.tmpl | 75 ++++++ nano/templates/news_browser.tmpl | 41 ++- nano/templates/ntnet_chat.tmpl | 2 +- nano/templates/ntnet_dos.tmpl | 2 +- nano/templates/ntnet_downloader.tmpl | 152 +++++------ nano/templates/ntnet_monitor.tmpl | 4 +- nano/templates/ntnet_relay.tmpl | 4 +- nano/templates/ntnet_transfer.tmpl | 2 +- nano/templates/word_processor.tmpl | 49 ++++ polaris.dme | 2 + 56 files changed, 1074 insertions(+), 205 deletions(-) create mode 100644 code/modules/modular_computers/file_system/programs/generic/library.dm create mode 100644 code/modules/modular_computers/file_system/programs/generic/wordprocessor.dm create mode 100644 nano/templates/library.tmpl create mode 100644 nano/templates/word_processor.tmpl diff --git a/code/__defines/misc.dm b/code/__defines/misc.dm index 9a00c826d3..4282731dd8 100644 --- a/code/__defines/misc.dm +++ b/code/__defines/misc.dm @@ -113,6 +113,7 @@ #define MAX_RECORD_LENGTH 24576 #define MAX_LNAME_LEN 64 #define MAX_NAME_LEN 52 +#define MAX_TEXTFILE_LENGTH 128000 // 512GQ file // Event defines. #define EVENT_LEVEL_MUNDANE 1 diff --git a/code/_macros.dm b/code/_macros.dm index 4549e01079..3860f63434 100644 --- a/code/_macros.dm +++ b/code/_macros.dm @@ -11,6 +11,7 @@ #define log_world(message) world.log << message #define to_file(file_entry, source_var) file_entry << source_var #define from_file(file_entry, target_var) file_entry >> target_var +#define show_browser(target, browser_content, browser_name) target << browse(browser_content, browser_name) // From TG, might be useful to have. // Didn't port SEND_TEXT() since to_chat() appears to serve the same purpose. diff --git a/code/modules/client/preference_setup/loadout/gear_tweaks.dm b/code/modules/client/preference_setup/loadout/gear_tweaks.dm index 7ddb6957a8..2b86685f17 100644 --- a/code/modules/client/preference_setup/loadout/gear_tweaks.dm +++ b/code/modules/client/preference_setup/loadout/gear_tweaks.dm @@ -289,3 +289,151 @@ if(ValidTeslaLinks[metadata[7]]) var/t = ValidTeslaLinks[metadata[7]] I.tesla_link = new t(I) + +/datum/gear_tweak/laptop + var/list/ValidProcessors = list(/obj/item/weapon/computer_hardware/processor_unit/small, /obj/item/weapon/computer_hardware/processor_unit) + var/list/ValidBatteries = list(/obj/item/weapon/computer_hardware/battery_module, /obj/item/weapon/computer_hardware/battery_module/advanced, /obj/item/weapon/computer_hardware/battery_module/super) + var/list/ValidHardDrives = list(/obj/item/weapon/computer_hardware/hard_drive, /obj/item/weapon/computer_hardware/hard_drive/advanced, /obj/item/weapon/computer_hardware/hard_drive/super) + var/list/ValidNetworkCards = list(/obj/item/weapon/computer_hardware/network_card, /obj/item/weapon/computer_hardware/network_card/advanced) + var/list/ValidNanoPrinters = list(null, /obj/item/weapon/computer_hardware/nano_printer) + var/list/ValidCardSlots = list(null, /obj/item/weapon/computer_hardware/card_slot) + var/list/ValidTeslaLinks = list(null, /obj/item/weapon/computer_hardware/tesla_link) + +/datum/gear_tweak/laptop/get_contents(var/list/metadata) + var/list/names = list() + var/obj/O = ValidProcessors[metadata[1]] + if(O) + names += initial(O.name) + O = ValidBatteries[metadata[2]] + if(O) + names += initial(O.name) + O = ValidHardDrives[metadata[3]] + if(O) + names += initial(O.name) + O = ValidNetworkCards[metadata[4]] + if(O) + names += initial(O.name) + O = ValidNanoPrinters[metadata[5]] + if(O) + names += initial(O.name) + O = ValidCardSlots[metadata[6]] + if(O) + names += initial(O.name) + O = ValidTeslaLinks[metadata[7]] + if(O) + names += initial(O.name) + return "[english_list(names, and_text = ", ")]" + +/datum/gear_tweak/laptop/get_metadata(var/user, var/metadata) + . = list() + + var/list/names = list() + var/counter = 1 + for(var/i in ValidProcessors) + if(i) + var/obj/O = i + names[initial(O.name)] = counter++ + else + names["None"] = counter++ + + var/entry = input(user, "Choose a processor.", "Character Preference") in names + . += names[entry] + + names = list() + counter = 1 + for(var/i in ValidBatteries) + if(i) + var/obj/O = i + names[initial(O.name)] = counter++ + else + names["None"] = counter++ + + entry = input(user, "Choose a battery.", "Character Preference") in names + . += names[entry] + + names = list() + counter = 1 + for(var/i in ValidHardDrives) + if(i) + var/obj/O = i + names[initial(O.name)] = counter++ + else + names["None"] = counter++ + + entry = input(user, "Choose a hard drive.", "Character Preference") in names + . += names[entry] + + names = list() + counter = 1 + for(var/i in ValidNetworkCards) + if(i) + var/obj/O = i + names[initial(O.name)] = counter++ + else + names["None"] = counter++ + + entry = input(user, "Choose a network card.", "Character Preference") in names + . += names[entry] + + names = list() + counter = 1 + for(var/i in ValidNanoPrinters) + if(i) + var/obj/O = i + names[initial(O.name)] = counter++ + else + names["None"] = counter++ + + entry = input(user, "Choose a nanoprinter.", "Character Preference") in names + . += names[entry] + + names = list() + counter = 1 + for(var/i in ValidCardSlots) + if(i) + var/obj/O = i + names[initial(O.name)] = counter++ + else + names["None"] = counter++ + + entry = input(user, "Choose a card slot.", "Character Preference") in names + . += names[entry] + + names = list() + counter = 1 + for(var/i in ValidTeslaLinks) + if(i) + var/obj/O = i + names[initial(O.name)] = counter++ + else + names["None"] = counter++ + + entry = input(user, "Choose a tesla link.", "Character Preference") in names + . += names[entry] + +/datum/gear_tweak/laptop/get_default() + return list(1, 1, 1, 1, 1, 1, 1) + +/datum/gear_tweak/laptop/tweak_item(var/obj/item/modular_computer/laptop/preset/I, var/list/metadata) + if(ValidProcessors[metadata[1]]) + var/t = ValidProcessors[metadata[1]] + I.processor_unit = new t(I) + if(ValidBatteries[metadata[2]]) + var/t = ValidBatteries[metadata[2]] + I.battery_module = new t(I) + I.battery_module.charge_to_full() + if(ValidHardDrives[metadata[3]]) + var/t = ValidHardDrives[metadata[3]] + I.hard_drive = new t(I) + if(ValidNetworkCards[metadata[4]]) + var/t = ValidNetworkCards[metadata[4]] + I.network_card = new t(I) + if(ValidNanoPrinters[metadata[5]]) + var/t = ValidNanoPrinters[metadata[5]] + I.nano_printer = new t(I) + if(ValidCardSlots[metadata[6]]) + var/t = ValidCardSlots[metadata[6]] + I.card_slot = new t(I) + if(ValidTeslaLinks[metadata[7]]) + var/t = ValidTeslaLinks[metadata[7]] + I.tesla_link = new t(I) diff --git a/code/modules/client/preference_setup/loadout/loadout_utility.dm b/code/modules/client/preference_setup/loadout/loadout_utility.dm index 091d732299..bd2977a94f 100644 --- a/code/modules/client/preference_setup/loadout/loadout_utility.dm +++ b/code/modules/client/preference_setup/loadout/loadout_utility.dm @@ -158,23 +158,47 @@ ..() gear_tweaks = list(gear_tweak_free_color_choice) +/**************** +modular computers +****************/ + /datum/gear/utility/cheaptablet - display_name = "cheap tablet computer" display_name = "tablet computer: cheap" + display_name = "tablet computer, cheap" path = /obj/item/modular_computer/tablet/preset/custom_loadout/cheap cost = 3 /datum/gear/utility/normaltablet - display_name = "tablet computer" display_name = "tablet computer: advanced" + display_name = "tablet computer, advanced" path = /obj/item/modular_computer/tablet/preset/custom_loadout/advanced cost = 4 /datum/gear/utility/customtablet display_name = "tablet computer: custom" + display_name = "tablet computer, custom" path = /obj/item/modular_computer/tablet cost = 4 /datum/gear/utility/customtablet/New() ..() - gear_tweaks += new /datum/gear_tweak/tablet() \ No newline at end of file + gear_tweaks += new /datum/gear_tweak/tablet() + +/datum/gear/utility/cheaplaptop + display_name = "laptop computer, cheap" + path = /obj/item/modular_computer/laptop/preset/custom_loadout/cheap + cost = 4 + +/datum/gear/utility/normallaptop + display_name = "laptop computer, advanced" + path = /obj/item/modular_computer/laptop/preset/custom_loadout/advanced + cost = 5 + +/datum/gear/utility/customlaptop + display_name = "laptop computer, custom" + path = /obj/item/modular_computer/laptop/preset/ + cost = 6 + +/datum/gear/utility/customlaptop/New() + ..() + gear_tweaks += new /datum/gear_tweak/laptop() diff --git a/code/modules/modular_computers/computers/modular_computer/core.dm b/code/modules/modular_computers/computers/modular_computer/core.dm index 5474fb1f40..30d9cf6039 100644 --- a/code/modules/modular_computers/computers/modular_computer/core.dm +++ b/code/modules/modular_computers/computers/modular_computer/core.dm @@ -82,6 +82,8 @@ set_light(light_strength) if(active_program) overlays.Add(active_program.program_icon_state ? active_program.program_icon_state : icon_state_menu) + if(active_program.program_key_state) + overlays.Add(active_program.program_key_state) else overlays.Add(icon_state_menu) diff --git a/code/modules/modular_computers/computers/modular_computer/interaction.dm b/code/modules/modular_computers/computers/modular_computer/interaction.dm index 89c35a56cf..bf70bb7d28 100644 --- a/code/modules/modular_computers/computers/modular_computer/interaction.dm +++ b/code/modules/modular_computers/computers/modular_computer/interaction.dm @@ -136,7 +136,7 @@ update_uis() to_chat(user, "You insert \the [I] into \the [src].") return - if(istype(W, /obj/item/weapon/paper)) + if(istype(W, /obj/item/weapon/paper) || istype(W, /obj/item/weapon/paper_bundle)) if(!nano_printer) return nano_printer.attackby(W, user) diff --git a/code/modules/modular_computers/computers/modular_computer/ui.dm b/code/modules/modular_computers/computers/modular_computer/ui.dm index cc4d23a4f4..81081c0cb1 100644 --- a/code/modules/modular_computers/computers/modular_computer/ui.dm +++ b/code/modules/modular_computers/computers/modular_computer/ui.dm @@ -31,6 +31,7 @@ var/list/program = list() program["name"] = P.filename program["desc"] = P.filedesc + program["icon"] = P.program_menu_icon program["autorun"] = (istype(autorun) && (autorun.stored_data == P.filename)) ? 1 : 0 if(P in idle_threads) program["running"] = 1 diff --git a/code/modules/modular_computers/computers/subtypes/dev_laptop.dm b/code/modules/modular_computers/computers/subtypes/dev_laptop.dm index 4aef23213f..eddae93f74 100644 --- a/code/modules/modular_computers/computers/subtypes/dev_laptop.dm +++ b/code/modules/modular_computers/computers/subtypes/dev_laptop.dm @@ -34,4 +34,4 @@ icon_state = icon_state_closed /obj/item/modular_computer/laptop/preset - anchored = FALSE \ No newline at end of file + anchored = FALSE diff --git a/code/modules/modular_computers/computers/subtypes/dev_tablet.dm b/code/modules/modular_computers/computers/subtypes/dev_tablet.dm index 7ebf646e10..62d12ba545 100644 --- a/code/modules/modular_computers/computers/subtypes/dev_tablet.dm +++ b/code/modules/modular_computers/computers/subtypes/dev_tablet.dm @@ -8,4 +8,9 @@ hardware_flag = PROGRAM_TABLET max_hardware_size = 1 w_class = ITEMSIZE_SMALL - light_strength = 2 // Same as PDAs \ No newline at end of file + light_strength = 2 // Same as PDAs + +/obj/item/modular_computer/tablet/lease + desc = "A small portable microcomputer. This one has a gold and blue stripe, and a serial number stamped into the case." + icon_state = "tabletsol" + icon_state_unpowered = "tabletsol" \ No newline at end of file diff --git a/code/modules/modular_computers/computers/subtypes/dev_telescreen.dm b/code/modules/modular_computers/computers/subtypes/dev_telescreen.dm index 95df05320d..1f88ed6cb2 100644 --- a/code/modules/modular_computers/computers/subtypes/dev_telescreen.dm +++ b/code/modules/modular_computers/computers/subtypes/dev_telescreen.dm @@ -1,6 +1,6 @@ /obj/item/modular_computer/telescreen name = "telescreen" - desc = "A stationary wall-mounted touchscreen" + desc = "A wall-mounted touchscreen computer." icon = 'icons/obj/modular_telescreen.dmi' icon_state = "telescreen" icon_state_unpowered = "telescreen" diff --git a/code/modules/modular_computers/computers/subtypes/preset_console.dm b/code/modules/modular_computers/computers/subtypes/preset_console.dm index 5b8735d79e..6bdb081202 100644 --- a/code/modules/modular_computers/computers/subtypes/preset_console.dm +++ b/code/modules/modular_computers/computers/subtypes/preset_console.dm @@ -20,6 +20,7 @@ ..() hard_drive.store_file(new/datum/computer_file/program/suit_sensors()) hard_drive.store_file(new/datum/computer_file/program/camera_monitor()) + hard_drive.store_file(new/datum/computer_file/program/wordprocessor()) set_autorun("sensormonitor") // Research @@ -35,6 +36,7 @@ hard_drive.store_file(new/datum/computer_file/program/camera_monitor()) //hard_drive.store_file(new/datum/computer_file/program/aidiag()) hard_drive.store_file(new/datum/computer_file/program/email_client()) + hard_drive.store_file(new/datum/computer_file/program/wordprocessor()) // Administrator /obj/item/modular_computer/console/preset/sysadmin/install_default_hardware() @@ -50,6 +52,7 @@ //hard_drive.store_file(new/datum/computer_file/program/aidiag()) hard_drive.store_file(new/datum/computer_file/program/email_client()) hard_drive.store_file(new/datum/computer_file/program/email_administration()) + hard_drive.store_file(new/datum/computer_file/program/wordprocessor()) // Command /obj/item/modular_computer/console/preset/command/install_default_hardware() @@ -70,6 +73,7 @@ ..() hard_drive.store_file(new/datum/computer_file/program/camera_monitor()) hard_drive.store_file(new/datum/computer_file/program/digitalwarrant()) + hard_drive.store_file(new/datum/computer_file/program/wordprocessor()) // Civilian /obj/item/modular_computer/console/preset/civilian/install_default_programs() @@ -79,6 +83,7 @@ hard_drive.store_file(new/datum/computer_file/program/newsbrowser()) hard_drive.store_file(new/datum/computer_file/program/camera_monitor()) hard_drive.store_file(new/datum/computer_file/program/email_client()) + hard_drive.store_file(new/datum/computer_file/program/wordprocessor()) // ERT /obj/item/modular_computer/console/preset/ert/install_default_hardware() @@ -114,4 +119,14 @@ // Merchant /obj/item/modular_computer/console/preset/merchant/install_default_programs() ..() - //hard_drive.store_file(new/datum/computer_file/program/merchant()) \ No newline at end of file + //hard_drive.store_file(new/datum/computer_file/program/merchant()) + hard_drive.store_file(new/datum/computer_file/program/wordprocessor()) + +// Library +/obj/item/modular_computer/console/preset/library/install_default_programs() + ..() + hard_drive.store_file(new/datum/computer_file/program/nttransfer()) + hard_drive.store_file(new/datum/computer_file/program/newsbrowser()) + hard_drive.store_file(new/datum/computer_file/program/email_client()) + hard_drive.store_file(new/datum/computer_file/program/wordprocessor()) + hard_drive.store_file(new/datum/computer_file/program/library()) diff --git a/code/modules/modular_computers/file_system/program.dm b/code/modules/modular_computers/file_system/program.dm index e699b009d8..7124bdcd03 100644 --- a/code/modules/modular_computers/file_system/program.dm +++ b/code/modules/modular_computers/file_system/program.dm @@ -12,6 +12,8 @@ var/filedesc = "Unknown Program" // User-friendly name of this program. var/extended_desc = "N/A" // Short description of this program's function. var/program_icon_state = null // Program-specific screen icon state + var/program_key_state = "standby_key" // Program-specific keyboard icon state + var/program_menu_icon = "newwin" // Icon to use for program's link in main menu var/requires_ntnet = 0 // Set to 1 for program to require nonstop NTNet connection to run. If NTNet connection is lost program crashes. var/requires_ntnet_feature = 0 // Optional, if above is set to 1 checks for specific function of NTNet (currently NTNET_SOFTWAREDOWNLOAD, NTNET_PEERTOPEER, NTNET_SYSTEMCONTROL and NTNET_COMMUNICATION) var/ntnet_status = 1 // NTNet status, updated every tick by computer running this program. Don't use this for checks if NTNet works, computers do that. Use this for calculations, etc. @@ -125,6 +127,7 @@ if(can_run(user, 1) || !requires_access_to_run) if(nanomodule_path) NM = new nanomodule_path(src, new /datum/topic_manager/program(src), src) + NM.using_access = user.GetAccess() if(requires_ntnet && network_destination) generate_network_log("Connection opened to [network_destination].") program_state = PROGRAM_STATE_ACTIVE diff --git a/code/modules/modular_computers/file_system/programs/antagonist/dos.dm b/code/modules/modular_computers/file_system/programs/antagonist/dos.dm index 44e5fd8cfe..0e0a1381bd 100644 --- a/code/modules/modular_computers/file_system/programs/antagonist/dos.dm +++ b/code/modules/modular_computers/file_system/programs/antagonist/dos.dm @@ -2,6 +2,8 @@ filename = "ntn_dos" filedesc = "DoS Traffic Generator" program_icon_state = "hostile" + program_key_state = "security_key" + program_menu_icon = "arrow-4-diag" extended_desc = "This advanced script can perform denial of service attacks against NTNet quantum relays. The system administrator will probably notice this. Multiple devices can run this program together against same relay for increased effect" size = 20 requires_ntnet = 1 diff --git a/code/modules/modular_computers/file_system/programs/antagonist/hacked_camera.dm b/code/modules/modular_computers/file_system/programs/antagonist/hacked_camera.dm index 4d224a5bed..27e5a26c3f 100644 --- a/code/modules/modular_computers/file_system/programs/antagonist/hacked_camera.dm +++ b/code/modules/modular_computers/file_system/programs/antagonist/hacked_camera.dm @@ -3,6 +3,8 @@ filedesc = "Camera Decryption Tool" nanomodule_path = /datum/nano_module/camera_monitor/hacked program_icon_state = "hostile" + program_key_state = "security_key" + program_menu_icon = "zoomin" extended_desc = "This very advanced piece of software uses adaptive programming and large database of cipherkeys to bypass most encryptions used on camera networks. Be warned that system administrator may notice this." size = 73 // Very large, a price for bypassing ID checks completely. available_on_ntnet = 0 diff --git a/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm b/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm index 1a5659d743..17199c3b18 100644 --- a/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm +++ b/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm @@ -2,6 +2,8 @@ filename = "revelation" filedesc = "Revelation" program_icon_state = "hostile" + program_key_state = "security_key" + program_menu_icon = "home" extended_desc = "This virus can destroy hard drive of system it is executed on. It may be obfuscated to look like another non-malicious program. Once armed, it will destroy the system upon next execution." size = 13 requires_ntnet = 0 @@ -48,6 +50,10 @@ if(!newname) return filedesc = newname + for(var/datum/computer_file/program/P in ntnet_global.available_station_software) + if(filedesc == P.filedesc) + program_menu_icon = P.program_menu_icon + break return 1 /datum/computer_file/program/revelation/clone() diff --git a/code/modules/modular_computers/file_system/programs/command/card.dm b/code/modules/modular_computers/file_system/programs/command/card.dm index 8aaab7ea0d..2b5c3a6047 100644 --- a/code/modules/modular_computers/file_system/programs/command/card.dm +++ b/code/modules/modular_computers/file_system/programs/command/card.dm @@ -3,7 +3,9 @@ filedesc = "ID card modification program" nanomodule_path = /datum/nano_module/program/card_mod program_icon_state = "id" - extended_desc = "Program for programming employee ID cards to access parts of the station." + program_key_state = "id_key" + program_menu_icon = "key" + extended_desc = "Program for programming crew ID cards." required_access = access_hop requires_ntnet = 0 size = 8 diff --git a/code/modules/modular_computers/file_system/programs/command/comm.dm b/code/modules/modular_computers/file_system/programs/command/comm.dm index 2089c987f3..8de74ed700 100644 --- a/code/modules/modular_computers/file_system/programs/command/comm.dm +++ b/code/modules/modular_computers/file_system/programs/command/comm.dm @@ -5,15 +5,17 @@ #define STATE_ALERT_LEVEL 5 /datum/computer_file/program/comm filename = "comm" - filedesc = "Command and communications program." + filedesc = "Command and Communications Program" program_icon_state = "comm" + program_key_state = "med_key" + program_menu_icon = "flag" nanomodule_path = /datum/nano_module/program/comm - extended_desc = "Used to command and control the station. Can relay long-range communications. This program can not be run on tablet computers." + extended_desc = "Used to command and control. Can relay long-range communications. This program can not be run on tablet computers." required_access = access_heads requires_ntnet = 1 size = 12 usage_flags = PROGRAM_CONSOLE | PROGRAM_LAPTOP - network_destination = "station long-range communication array" + network_destination = "long-range communication array" var/datum/comm_message_listener/message_core = new /datum/computer_file/program/comm/clone() @@ -23,7 +25,7 @@ return temp /datum/nano_module/program/comm - name = "Command and communications program" + name = "Command and Communications Program" //available_to_ai = TRUE var/current_status = STATE_DEFAULT var/msg_line1 = "" diff --git a/code/modules/modular_computers/file_system/programs/engineering/alarm_monitor.dm b/code/modules/modular_computers/file_system/programs/engineering/alarm_monitor.dm index b4d5635ffd..cfd9353eee 100644 --- a/code/modules/modular_computers/file_system/programs/engineering/alarm_monitor.dm +++ b/code/modules/modular_computers/file_system/programs/engineering/alarm_monitor.dm @@ -4,6 +4,8 @@ nanomodule_path = /datum/nano_module/alarm_monitor/engineering ui_header = "alarm_green.gif" program_icon_state = "alert-green" + program_key_state = "atmos_key" + program_menu_icon = "alert" extended_desc = "This program provides visual interface for the alarm system." requires_ntnet = 1 network_destination = "alarm monitoring network" @@ -43,7 +45,7 @@ /datum/nano_module/alarm_monitor/engineering/New() ..() - alarm_handlers = list(atmosphere_alarm, fire_alarm, power_alarm) + alarm_handlers = list(atmosphere_alarm, camera_alarm, fire_alarm, power_alarm) /datum/nano_module/alarm_monitor/security/New() ..() diff --git a/code/modules/modular_computers/file_system/programs/engineering/atmos_control.dm b/code/modules/modular_computers/file_system/programs/engineering/atmos_control.dm index fa3d43176b..3f88029713 100644 --- a/code/modules/modular_computers/file_system/programs/engineering/atmos_control.dm +++ b/code/modules/modular_computers/file_system/programs/engineering/atmos_control.dm @@ -3,6 +3,8 @@ filedesc = "Atmosphere Control" nanomodule_path = /datum/nano_module/atmos_control program_icon_state = "atmos_control" + program_key_state = "atmos_key" + program_menu_icon = "shuffle" extended_desc = "This program allows remote control of air alarms. This program can not be run on tablet computers." required_access = access_atmospherics requires_ntnet = 1 diff --git a/code/modules/modular_computers/file_system/programs/engineering/power_monitor.dm b/code/modules/modular_computers/file_system/programs/engineering/power_monitor.dm index 475a03cfdb..32117e845c 100644 --- a/code/modules/modular_computers/file_system/programs/engineering/power_monitor.dm +++ b/code/modules/modular_computers/file_system/programs/engineering/power_monitor.dm @@ -3,6 +3,8 @@ filedesc = "Power Monitoring" nanomodule_path = /datum/nano_module/power_monitor/ program_icon_state = "power_monitor" + program_key_state = "power_key" + program_menu_icon = "battery-3" extended_desc = "This program connects to sensors to provide information about electrical systems" ui_header = "power_norm.gif" required_access = access_engine diff --git a/code/modules/modular_computers/file_system/programs/engineering/rcon_console.dm b/code/modules/modular_computers/file_system/programs/engineering/rcon_console.dm index 0e22a3ba1e..d5ee88b670 100644 --- a/code/modules/modular_computers/file_system/programs/engineering/rcon_console.dm +++ b/code/modules/modular_computers/file_system/programs/engineering/rcon_console.dm @@ -3,6 +3,8 @@ filedesc = "RCON Remote Control" nanomodule_path = /datum/nano_module/rcon program_icon_state = "generic" + program_key_state = "rd_key" + program_menu_icon = "power" extended_desc = "This program allows remote control of power distribution systems. This program can not be run on tablet computers." required_access = access_engine requires_ntnet = 1 diff --git a/code/modules/modular_computers/file_system/programs/engineering/supermatter_monitor.dm b/code/modules/modular_computers/file_system/programs/engineering/supermatter_monitor.dm index bd60780c78..af0489a953 100644 --- a/code/modules/modular_computers/file_system/programs/engineering/supermatter_monitor.dm +++ b/code/modules/modular_computers/file_system/programs/engineering/supermatter_monitor.dm @@ -3,6 +3,8 @@ filedesc = "Supermatter Monitoring" nanomodule_path = /datum/nano_module/supermatter_monitor/ program_icon_state = "smmon_0" + program_key_state = "tech_key" + program_menu_icon = "notice" extended_desc = "This program connects to specially calibrated supermatter sensors to provide information on the status of supermatter-based engines." ui_header = "smmon_0.gif" required_access = access_engine diff --git a/code/modules/modular_computers/file_system/programs/generic/camera.dm b/code/modules/modular_computers/file_system/programs/generic/camera.dm index 7dde9c0d3f..47ac48eb40 100644 --- a/code/modules/modular_computers/file_system/programs/generic/camera.dm +++ b/code/modules/modular_computers/file_system/programs/generic/camera.dm @@ -29,6 +29,8 @@ filedesc = "Camera Monitoring" nanomodule_path = /datum/nano_module/camera_monitor program_icon_state = "cameras" + program_key_state = "generic_key" + program_menu_icon = "search" extended_desc = "This program allows remote access to the camera system. Some camera networks may have additional access requirements." size = 12 available_on_ntnet = 1 diff --git a/code/modules/modular_computers/file_system/programs/generic/configurator.dm b/code/modules/modular_computers/file_system/programs/generic/configurator.dm index 5867efbdcb..c3ce1e358a 100644 --- a/code/modules/modular_computers/file_system/programs/generic/configurator.dm +++ b/code/modules/modular_computers/file_system/programs/generic/configurator.dm @@ -7,6 +7,8 @@ filedesc = "Computer Configuration Tool" extended_desc = "This program allows configuration of computer's hardware" program_icon_state = "generic" + program_key_state = "generic_key" + program_menu_icon = "gear" unsendable = 1 undeletable = 1 size = 4 diff --git a/code/modules/modular_computers/file_system/programs/generic/email_client.dm b/code/modules/modular_computers/file_system/programs/generic/email_client.dm index 429a68c3a4..3e2f979bb5 100644 --- a/code/modules/modular_computers/file_system/programs/generic/email_client.dm +++ b/code/modules/modular_computers/file_system/programs/generic/email_client.dm @@ -3,6 +3,8 @@ filedesc = "Email Client" extended_desc = "This program may be used to log in into your email account." program_icon_state = "generic" + program_key_state = "generic_key" + program_menu_icon = "mail-closed" size = 7 requires_ntnet = 1 available_on_ntnet = 1 diff --git a/code/modules/modular_computers/file_system/programs/generic/file_browser.dm b/code/modules/modular_computers/file_system/programs/generic/file_browser.dm index 4311c2dedd..42dfdd622d 100644 --- a/code/modules/modular_computers/file_system/programs/generic/file_browser.dm +++ b/code/modules/modular_computers/file_system/programs/generic/file_browser.dm @@ -1,10 +1,10 @@ -#define MAX_TEXTFILE_LENGTH 128000 // 512GQ file - /datum/computer_file/program/filemanager filename = "filemanager" filedesc = "NTOS File Manager" extended_desc = "This program allows management of files." program_icon_state = "generic" + program_key_state = "generic_key" + program_menu_icon = "folder-collapsed" size = 8 requires_ntnet = 0 available_on_ntnet = 0 @@ -89,9 +89,9 @@ return 1 var/oldtext = html_decode(F.stored_data) - oldtext = replacetext(oldtext, "\[editorbr\]", "\n") + oldtext = replacetext(oldtext, "\[br\]", "\n") - var/newtext = sanitize(replacetext(input(usr, "Editing file [open_file]. You may use most tags used in paper formatting:", "Text Editor", oldtext) as message|null, "\n", "\[editorbr\]"), MAX_TEXTFILE_LENGTH) + var/newtext = sanitize(replacetext(input(usr, "Editing file [open_file]. You may use most tags used in paper formatting:", "Text Editor", oldtext) as message|null, "\n", "\[br\]"), MAX_TEXTFILE_LENGTH) if(!newtext) return @@ -204,5 +204,4 @@ ui = new(user, src, ui_key, "file_manager.tmpl", "NTOS File Manager", 575, 700, state = state) ui.auto_update_layout = 1 ui.set_initial_data(data) - ui.open() -#undef MAX_TEXTFILE_LENGTH \ No newline at end of file + ui.open() \ No newline at end of file diff --git a/code/modules/modular_computers/file_system/programs/generic/game.dm b/code/modules/modular_computers/file_system/programs/generic/game.dm index e947bea365..b4c0688c29 100644 --- a/code/modules/modular_computers/file_system/programs/generic/game.dm +++ b/code/modules/modular_computers/file_system/programs/generic/game.dm @@ -6,6 +6,7 @@ filename = "arcadec" // File name, as shown in the file browser program. filedesc = "Unknown Game" // User-Friendly name. In this case, we will generate a random name in constructor. program_icon_state = "game" // Icon state of this program's screen. + program_menu_icon = "script" extended_desc = "Fun for the whole family! Probably not an AAA title, but at least you can download it on the corporate network.." // A nice description. size = 5 // Size in GQ. Integers only. Smaller sizes should be used for utility/low use programs (like this one), while large sizes are for important programs. requires_ntnet = 0 // This particular program does not require NTNet network conectivity... diff --git a/code/modules/modular_computers/file_system/programs/generic/library.dm b/code/modules/modular_computers/file_system/programs/generic/library.dm new file mode 100644 index 0000000000..b686cda14e --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/generic/library.dm @@ -0,0 +1,191 @@ +/* +In reply to this set of comments on lib_machines.dm: +// TODO: Make this an actual /obj/machinery/computer that can be crafted from circuit boards and such +// It is August 22nd, 2012... This TODO has already been here for months.. I wonder how long it'll last before someone does something about it. + +The answer was five and a half years -ZeroBits +*/ + +/datum/computer_file/program/library + filename = "library" + filedesc = "Library" + extended_desc = "This program can be used to view e-books from an external archive." + program_icon_state = "word" + program_key_state = "atmos_key" + program_menu_icon = "note" + size = 6 + requires_ntnet = 1 + available_on_ntnet = 1 + + nanomodule_path = /datum/nano_module/library + +/datum/nano_module/library + name = "Library" + var/error_message = "" + var/current_book + var/obj/machinery/libraryscanner/scanner + var/sort_by = "id" + +/datum/nano_module/library/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = default_state) + var/list/data = host.initial_data() + + if(error_message) + data["error"] = error_message + else if(current_book) + data["current_book"] = current_book + else + var/list/all_entries[0] + establish_old_db_connection() + if(!dbcon_old.IsConnected()) + error_message = "Unable to contact External Archive. Please contact your system administrator for assistance." + else + var/DBQuery/query = dbcon_old.NewQuery("SELECT id, author, title, category FROM library ORDER BY "+sanitizeSQL(sort_by)) + query.Execute() + + while(query.NextRow()) + all_entries.Add(list(list( + "id" = query.item[1], + "author" = query.item[2], + "title" = query.item[3], + "category" = query.item[4] + ))) + data["book_list"] = all_entries + data["scanner"] = istype(scanner) + + ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open) + if (!ui) + ui = new(user, src, ui_key, "library.tmpl", "Library Program", 575, 700, state = state) + ui.auto_update_layout = 1 + ui.set_initial_data(data) + ui.open() + +/datum/nano_module/library/Topic(href, href_list) + if(..()) + return 1 + if(href_list["viewbook"]) + view_book(href_list["viewbook"]) + return 1 + if(href_list["viewid"]) + view_book(sanitizeSQL(input("Enter USBN:") as num|null)) + return 1 + if(href_list["closebook"]) + current_book = null + return 1 + if(href_list["connectscanner"]) + if(!nano_host()) + return 1 + for(var/d in GLOB.cardinal) + var/obj/machinery/libraryscanner/scn = locate(/obj/machinery/libraryscanner, get_step(nano_host(), d)) + if(scn && scn.anchored) + scanner = scn + return 1 + if(href_list["uploadbook"]) + if(!scanner || !scanner.anchored) + scanner = null + error_message = "Hardware Error: No scanner detected. Unable to access cache." + return 1 + if(!scanner.cache) + error_message = "Interface Error: Scanner cache does not contain any data. Please scan a book." + return 1 + + var/obj/item/weapon/book/B = scanner.cache + + if(B.unique) + error_message = "Interface Error: Cached book is copy-protected." + return 1 + + //B.SetName(input(usr, "Enter Book Title", "Title", B.name) as text|null) + B.author = input(usr, "Enter Author Name", "Author", B.author) as text|null + + if(!B.author) + B.author = "Anonymous" + else if(lowertext(B.author) == "edgar allen poe" || lowertext(B.author) == "edgar allan poe") + error_message = "User Error: Upload something original." + return 1 + + if(!B.title) + B.title = "Untitled" + + var/choice = input(usr, "Upload [B.name] by [B.author] to the External Archive?") in list("Yes", "No") + if(choice == "Yes") + establish_old_db_connection() + if(!dbcon_old.IsConnected()) + error_message = "Network Error: Connection to the Archive has been severed." + return 1 + + var/upload_category = input(usr, "Upload to which category?") in list("Fiction", "Non-Fiction", "Reference", "Religion") + + var/sqltitle = sanitizeSQL(B.name) + var/sqlauthor = sanitizeSQL(B.author) + var/sqlcontent = sanitizeSQL(B.dat) + var/sqlcategory = sanitizeSQL(upload_category) + var/DBQuery/query = dbcon_old.NewQuery("INSERT INTO library (author, title, content, category) VALUES ('[sqlauthor]', '[sqltitle]', '[sqlcontent]', '[sqlcategory]')") + if(!query.Execute()) + to_chat(usr, query.ErrorMsg()) + error_message = "Network Error: Unable to upload to the Archive. Contact your system Administrator for assistance." + return 1 + else + log_and_message_admins("has uploaded the book titled [B.name], [length(B.dat)] signs") + log_game("[usr.name]/[usr.key] has uploaded the book titled [B.name], [length(B.dat)] signs") + alert("Upload Complete.") + return 1 + + return 0 + + if(href_list["printbook"]) + if(!current_book) + error_message = "Software Error: Unable to print; book not found." + return 1 + + //PRINT TO BINDER + if(!nano_host()) + return 1 + for(var/d in GLOB.cardinal) + var/obj/machinery/bookbinder/bndr = locate(/obj/machinery/bookbinder, get_step(nano_host(), d)) + if(bndr && bndr.anchored) + var/obj/item/weapon/book/B = new(bndr.loc) + //B.SetName(current_book["title"]) + B.title = current_book["title"] + B.author = current_book["author"] + B.dat = current_book["content"] + B.icon_state = "book[rand(1,7)]" + B.desc = current_book["author"]+", "+current_book["title"]+", "+"USBN "+current_book["id"] + bndr.visible_message("\The [bndr] whirs as it prints and binds a new book.") + return 1 + + //Regular printing + print_text("Author: [current_book["author"]]
USBN: [current_book["id"]]

[current_book["title"]]


[current_book["content"]]", usr) + return 1 + if(href_list["sortby"]) + sort_by = href_list["sortby"] + return 1 + if(href_list["reseterror"]) + if(error_message) + current_book = null + scanner = null + sort_by = "id" + error_message = "" + return 1 + +/datum/nano_module/library/proc/view_book(var/id) + if(current_book || !id) + return 0 + + var/sqlid = sanitizeSQL(id) + establish_old_db_connection() + if(!dbcon_old.IsConnected()) + error_message = "Network Error: Connection to the Archive has been severed." + return 1 + + var/DBQuery/query = dbcon_old.NewQuery("SELECT * FROM library WHERE id=[sqlid]") + query.Execute() + + while(query.NextRow()) + current_book = list( + "id" = query.item[1], + "author" = query.item[2], + "title" = query.item[3], + "content" = query.item[4] + ) + break + return 1 diff --git a/code/modules/modular_computers/file_system/programs/generic/news_browser.dm b/code/modules/modular_computers/file_system/programs/generic/news_browser.dm index d06741d934..1d4da6d4d5 100644 --- a/code/modules/modular_computers/file_system/programs/generic/news_browser.dm +++ b/code/modules/modular_computers/file_system/programs/generic/news_browser.dm @@ -3,6 +3,8 @@ filedesc = "NTNet/ExoNet News Browser" extended_desc = "This program may be used to view and download news articles from the network." program_icon_state = "generic" + program_key_state = "generic_key" + program_menu_icon = "contact" size = 4 requires_ntnet = 1 available_on_ntnet = 1 diff --git a/code/modules/modular_computers/file_system/programs/generic/ntdownloader.dm b/code/modules/modular_computers/file_system/programs/generic/ntdownloader.dm index 5968fea260..a0b2194168 100644 --- a/code/modules/modular_computers/file_system/programs/generic/ntdownloader.dm +++ b/code/modules/modular_computers/file_system/programs/generic/ntdownloader.dm @@ -2,6 +2,8 @@ filename = "ntndownloader" filedesc = "NTNet Software Download Tool" program_icon_state = "generic" + program_key_state = "generic_key" + program_menu_icon = "arrowthickstop-1-s" extended_desc = "This program allows downloads of software from official NT repositories" unsendable = 1 undeletable = 1 @@ -16,6 +18,7 @@ var/download_completion = 0 //GQ of downloaded data. var/download_netspeed = 0 var/downloaderror = "" + var/list/downloads_queue[0] /datum/computer_file/program/ntnetdownload/kill_program() ..() @@ -25,20 +28,14 @@ downloaderror = "" ui_header = "downloader_finished.gif" + /datum/computer_file/program/ntnetdownload/proc/begin_file_download(var/filename) if(downloaded_file) return 0 var/datum/computer_file/program/PRG = ntnet_global.find_ntnet_file_by_name(filename) - if(!PRG || !istype(PRG)) - return 0 - - // Attempting to download antag only program, but without having emagged computer. No. - if(PRG.available_on_syndinet && !computer_emagged) - return 0 - - if(!computer || !computer.hard_drive || !computer.hard_drive.try_store_file(PRG)) + if(!check_file_download(filename)) return 0 ui_header = "downloader_running.gif" @@ -55,6 +52,22 @@ downloaded_file = PRG.clone() +/datum/computer_file/program/ntnetdownload/proc/check_file_download(var/filename) + //returns 1 if file can be downloaded, returns 0 if download prohibited + var/datum/computer_file/program/PRG = ntnet_global.find_ntnet_file_by_name(filename) + + if(!PRG || !istype(PRG)) + return 0 + + // Attempting to download antag only program, but without having emagged computer. No. + if(PRG.available_on_syndinet && !computer_emagged) + return 0 + + if(!computer || !computer.hard_drive || !computer.hard_drive.try_store_file(PRG)) + return 0 + + return 1 + /datum/computer_file/program/ntnetdownload/proc/abort_file_download() if(!downloaded_file) return @@ -79,6 +92,10 @@ return if(download_completion >= downloaded_file.size) complete_file_download() + if(downloads_queue.len > 0) + begin_file_download(downloads_queue[1]) + downloads_queue.Remove(downloads_queue[1]) + // Download speed according to connectivity state. NTNet server is assumed to be on unlimited speed so we're limited by our local connectivity download_netspeed = 0 // Speed defines are found in misc.dm @@ -97,6 +114,11 @@ if(href_list["PRG_downloadfile"]) if(!downloaded_file) begin_file_download(href_list["PRG_downloadfile"]) + else if(check_file_download(href_list["PRG_downloadfile"]) && !downloads_queue.Find(href_list["PRG_downloadfile"]) && downloaded_file.filename != href_list["PRG_downloadfile"]) + downloads_queue += href_list["PRG_downloadfile"] + return 1 + if(href_list["PRG_removequeued"]) + downloads_queue.Remove(href_list["PRG_removequeued"]) return 1 if(href_list["PRG_reseterror"]) if(downloaderror) @@ -129,40 +151,46 @@ // This IF cuts on data transferred to client, so i guess it's worth it. if(prog.downloaderror) // Download errored. Wait until user resets the program. data["error"] = prog.downloaderror - else if(prog.downloaded_file) // Download running. Wait please.. + if(prog.downloaded_file) // Download running. Wait please.. data["downloadname"] = prog.downloaded_file.filename data["downloaddesc"] = prog.downloaded_file.filedesc data["downloadsize"] = prog.downloaded_file.size data["downloadspeed"] = prog.download_netspeed data["downloadcompletion"] = round(prog.download_completion, 0.1) - else // No download running, pick file. - data["disk_size"] = my_computer.hard_drive.max_capacity - data["disk_used"] = my_computer.hard_drive.used_capacity - var/list/all_entries[0] - for(var/datum/computer_file/program/P in ntnet_global.available_station_software) - // Only those programs our user can run will show in the list - if(!P.can_run(user) && P.requires_access_to_download) - continue - all_entries.Add(list(list( + + data["disk_size"] = my_computer.hard_drive.max_capacity + data["disk_used"] = my_computer.hard_drive.used_capacity + var/list/all_entries[0] + for(var/datum/computer_file/program/P in ntnet_global.available_station_software) + // Only those programs our user can run will show in the list + if(!P.can_run(user) && P.requires_access_to_download) + continue + all_entries.Add(list(list( + "filename" = P.filename, + "filedesc" = P.filedesc, + "fileinfo" = P.extended_desc, + "size" = P.size, + "icon" = P.program_menu_icon + ))) + data["hackedavailable"] = 0 + if(prog.computer_emagged) // If we are running on emagged computer we have access to some "bonus" software + var/list/hacked_programs[0] + for(var/datum/computer_file/program/P in ntnet_global.available_antag_software) + data["hackedavailable"] = 1 + hacked_programs.Add(list(list( "filename" = P.filename, "filedesc" = P.filedesc, "fileinfo" = P.extended_desc, - "size" = P.size + "size" = P.size, + "icon" = P.program_menu_icon ))) - data["hackedavailable"] = 0 - if(prog.computer_emagged) // If we are running on emagged computer we have access to some "bonus" software - var/list/hacked_programs[0] - for(var/datum/computer_file/program/P in ntnet_global.available_antag_software) - data["hackedavailable"] = 1 - hacked_programs.Add(list(list( - "filename" = P.filename, - "filedesc" = P.filedesc, - "fileinfo" = P.extended_desc, - "size" = P.size - ))) - data["hacked_programs"] = hacked_programs + data["hacked_programs"] = hacked_programs + + data["downloadable_programs"] = all_entries + + if(prog.downloads_queue.len > 0) + data["downloads_queue"] = prog.downloads_queue - data["downloadable_programs"] = all_entries ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) ui = new(user, src, ui_key, "ntnet_downloader.tmpl", "NTNet Download Program", 575, 700, state = state) diff --git a/code/modules/modular_computers/file_system/programs/generic/ntnrc_client.dm b/code/modules/modular_computers/file_system/programs/generic/ntnrc_client.dm index 5b384ba4e8..6c67c02c0d 100644 --- a/code/modules/modular_computers/file_system/programs/generic/ntnrc_client.dm +++ b/code/modules/modular_computers/file_system/programs/generic/ntnrc_client.dm @@ -2,6 +2,8 @@ filename = "ntnrc_client" filedesc = "NTNet Relay Chat Client" program_icon_state = "command" + program_key_state = "med_key" + program_menu_icon = "comment" extended_desc = "This program allows communication over NTNRC network" size = 8 requires_ntnet = 1 diff --git a/code/modules/modular_computers/file_system/programs/generic/nttransfer.dm b/code/modules/modular_computers/file_system/programs/generic/nttransfer.dm index 9630613397..0efed986ae 100644 --- a/code/modules/modular_computers/file_system/programs/generic/nttransfer.dm +++ b/code/modules/modular_computers/file_system/programs/generic/nttransfer.dm @@ -5,6 +5,8 @@ var/global/nttransfer_uid = 0 filedesc = "NTNet P2P Transfer Client" extended_desc = "This program allows for simple file transfer via direct peer to peer connection." program_icon_state = "comm_logs" + program_key_state = "generic_key" + program_menu_icon = "transferthick-e-w" size = 7 requires_ntnet = 1 requires_ntnet_feature = NTNET_PEERTOPEER @@ -29,6 +31,7 @@ var/global/nttransfer_uid = 0 ..() /datum/computer_file/program/nttransfer/process_tick() + ..() // Server mode if(provided_file) for(var/datum/computer_file/program/nttransfer/C in connected_clients) diff --git a/code/modules/modular_computers/file_system/programs/generic/wordprocessor.dm b/code/modules/modular_computers/file_system/programs/generic/wordprocessor.dm new file mode 100644 index 0000000000..24c43669be --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/generic/wordprocessor.dm @@ -0,0 +1,236 @@ +/datum/computer_file/program/wordprocessor + filename = "wordprocessor" + filedesc = "NanoWord" + extended_desc = "This program allows the editing and preview of text documents." + program_icon_state = "word" + program_key_state = "atmos_key" + size = 4 + requires_ntnet = 0 + available_on_ntnet = 1 + nanomodule_path = /datum/nano_module/program/computer_wordprocessor/ + var/browsing + var/open_file + var/loaded_data + var/error + var/is_edited + +/datum/computer_file/program/wordprocessor/proc/get_file(var/filename) + var/obj/item/weapon/computer_hardware/hard_drive/HDD = computer.hard_drive + if(!HDD) + return + var/datum/computer_file/data/F = HDD.find_file_by_name(filename) + if(!istype(F)) + return + return F + +/datum/computer_file/program/wordprocessor/proc/open_file(var/filename) + var/datum/computer_file/data/F = get_file(filename) + if(F) + open_file = F.filename + loaded_data = F.stored_data + return 1 + +/datum/computer_file/program/wordprocessor/proc/save_file(var/filename) + var/datum/computer_file/data/F = get_file(filename) + if(!F) //try to make one if it doesn't exist + F = create_file(filename, loaded_data) + return !isnull(F) + var/datum/computer_file/data/backup = F.clone() + var/obj/item/weapon/computer_hardware/hard_drive/HDD = computer.hard_drive + if(!HDD) + return + HDD.remove_file(F) + F.stored_data = loaded_data + F.calculate_size() + if(!HDD.store_file(F)) + HDD.store_file(backup) + return 0 + is_edited = 0 + return 1 + +/datum/computer_file/program/wordprocessor/proc/create_file(var/newname, var/data = "") + if(!newname) + return + var/obj/item/weapon/computer_hardware/hard_drive/HDD = computer.hard_drive + if(!HDD) + return + if(get_file(newname)) + return + var/datum/computer_file/data/F = new/datum/computer_file/data() + F.filename = newname + F.filetype = "TXT" + F.stored_data = data + F.calculate_size() + if(HDD.store_file(F)) + return F + +/datum/computer_file/program/wordprocessor/Topic(href, href_list) + if(..()) + return 1 + + if(href_list["PRG_txtrpeview"]) + show_browser(usr,"[open_file][pencode2html(loaded_data)]", "window=[open_file]") + return 1 + + if(href_list["PRG_taghelp"]) + to_chat(usr, "The hologram of a googly-eyed paper clip helpfully tells you:") + var/help = {" + \[br\] : Creates a linebreak. + \[center\] - \[/center\] : Centers the text. + \[h1\] - \[/h1\] : First level heading. + \[h2\] - \[/h2\] : Second level heading. + \[h3\] - \[/h3\] : Third level heading. + \[b\] - \[/b\] : Bold. + \[i\] - \[/i\] : Italic. + \[u\] - \[/u\] : Underlined. + \[small\] - \[/small\] : Decreases the size of the text. + \[large\] - \[/large\] : Increases the size of the text. + \[field\] : Inserts a blank text field, which can be filled later. Useful for forms. + \[date\] : Current station date. + \[time\] : Current station time. + \[list\] - \[/list\] : Begins and ends a list. + \[*\] : A list item. + \[hr\] : Horizontal rule. + \[table\] - \[/table\] : Creates table using \[row\] and \[cell\] tags. + \[grid\] - \[/grid\] : Table without visible borders, for layouts. + \[row\] - New table row. + \[cell\] - New table cell. + \[logo\] - Inserts NT logo image. + \[bluelogo\] - Inserts blue NT logo image. + \[solcrest\] - Inserts SCG crest image. + \[terraseal\] - Inserts TCC seal"} + + to_chat(usr, help) + return 1 + + if(href_list["PRG_closebrowser"]) + browsing = 0 + return 1 + + if(href_list["PRG_backtomenu"]) + error = null + return 1 + + if(href_list["PRG_loadmenu"]) + browsing = 1 + return 1 + + if(href_list["PRG_openfile"]) + . = 1 + if(is_edited) + if(alert("Would you like to save your changes first?",,"Yes","No") == "Yes") + save_file(open_file) + browsing = 0 + if(!open_file(href_list["PRG_openfile"])) + error = "I/O error: Unable to open file '[href_list["PRG_openfile"]]'." + + if(href_list["PRG_newfile"]) + . = 1 + if(is_edited) + if(alert("Would you like to save your changes first?",,"Yes","No") == "Yes") + save_file(open_file) + + var/newname = sanitize(input(usr, "Enter file name:", "New File") as text|null) + if(!newname) + return 1 + var/datum/computer_file/data/F = create_file(newname) + if(F) + open_file = F.filename + loaded_data = "" + return 1 + else + error = "I/O error: Unable to create file '[href_list["PRG_saveasfile"]]'." + + if(href_list["PRG_saveasfile"]) + . = 1 + var/newname = sanitize(input(usr, "Enter file name:", "Save As") as text|null) + if(!newname) + return 1 + var/datum/computer_file/data/F = create_file(newname, loaded_data) + if(F) + open_file = F.filename + else + error = "I/O error: Unable to create file '[href_list["PRG_saveasfile"]]'." + return 1 + + if(href_list["PRG_savefile"]) + . = 1 + if(!open_file) + open_file = sanitize(input(usr, "Enter file name:", "Save As") as text|null) + if(!open_file) + return 0 + if(!save_file(open_file)) + error = "I/O error: Unable to save file '[open_file]'." + return 1 + + if(href_list["PRG_editfile"]) + var/oldtext = html_decode(loaded_data) + oldtext = replacetext(oldtext, "\[br\]", "\n") + + var/newtext = sanitize(replacetext(input(usr, "Editing file '[open_file]'. You may use most tags used in paper formatting:", "Text Editor", oldtext) as message|null, "\n", "\[br\]"), MAX_TEXTFILE_LENGTH) + if(!newtext) + return + loaded_data = newtext + is_edited = 1 + return 1 + + if(href_list["PRG_printfile"]) + . = 1 + if(!computer.nano_printer) + error = "Missing Hardware: Your computer does not have the required hardware to complete this operation." + return 1 + if(!computer.nano_printer.print_text(pencode2html(loaded_data))) + error = "Hardware error: Printer was unable to print the file. It may be out of paper." + return 1 + +/datum/nano_module/program/computer_wordprocessor + name = "Word Processor" + +/datum/nano_module/program/computer_wordprocessor/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = default_state) + var/list/data = host.initial_data() + var/datum/computer_file/program/wordprocessor/PRG + PRG = program + + var/obj/item/weapon/computer_hardware/hard_drive/HDD + var/obj/item/weapon/computer_hardware/hard_drive/portable/RHDD + if(PRG.error) + data["error"] = PRG.error + if(PRG.browsing) + data["browsing"] = PRG.browsing + if(!PRG.computer || !PRG.computer.hard_drive) + data["error"] = "I/O ERROR: Unable to access hard drive." + else + HDD = PRG.computer.hard_drive + var/list/files[0] + for(var/datum/computer_file/F in HDD.stored_files) + if(F.filetype == "TXT") + files.Add(list(list( + "name" = F.filename, + "size" = F.size + ))) + data["files"] = files + + RHDD = PRG.computer.portable_drive + if(RHDD) + data["usbconnected"] = 1 + var/list/usbfiles[0] + for(var/datum/computer_file/F in RHDD.stored_files) + if(F.filetype == "TXT") + usbfiles.Add(list(list( + "name" = F.filename, + "size" = F.size, + ))) + data["usbfiles"] = usbfiles + else if(PRG.open_file) + data["filedata"] = pencode2html(PRG.loaded_data) + data["filename"] = PRG.is_edited ? "[PRG.open_file]*" : PRG.open_file + else + data["filedata"] = pencode2html(PRG.loaded_data) + data["filename"] = "UNNAMED" + + ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open) + if (!ui) + ui = new(user, src, ui_key, "word_processor.tmpl", "Word Processor", 575, 700, state = state) + ui.auto_update_layout = 1 + ui.set_initial_data(data) + ui.open() \ No newline at end of file diff --git a/code/modules/modular_computers/file_system/programs/medical/suit_sensors.dm b/code/modules/modular_computers/file_system/programs/medical/suit_sensors.dm index 3e83dd2248..86ccaa73bc 100644 --- a/code/modules/modular_computers/file_system/programs/medical/suit_sensors.dm +++ b/code/modules/modular_computers/file_system/programs/medical/suit_sensors.dm @@ -3,12 +3,18 @@ filedesc = "Suit Sensors Monitoring" nanomodule_path = /datum/nano_module/crew_monitor program_icon_state = "crew" + program_key_state = "med_key" + program_menu_icon = "heart" extended_desc = "This program connects to life signs monitoring system to provide basic information on crew health." required_access = access_medical requires_ntnet = 1 network_destination = "crew lifesigns monitoring system" size = 11 + + + + /datum/nano_module/crew_monitor name = "Crew monitor" diff --git a/code/modules/modular_computers/file_system/programs/research/email_administration.dm b/code/modules/modular_computers/file_system/programs/research/email_administration.dm index 5e9a7a1bc1..93ba0bded3 100644 --- a/code/modules/modular_computers/file_system/programs/research/email_administration.dm +++ b/code/modules/modular_computers/file_system/programs/research/email_administration.dm @@ -3,6 +3,8 @@ filedesc = "Email Administration Utility" extended_desc = "This program may be used to administrate NTNet's emailing service." program_icon_state = "comm_monitor" + program_key_state = "generic_key" + program_menu_icon = "mail-open" size = 12 requires_ntnet = 1 available_on_ntnet = 1 diff --git a/code/modules/modular_computers/file_system/programs/research/ntmonitor.dm b/code/modules/modular_computers/file_system/programs/research/ntmonitor.dm index 8b28f71fc7..590837f2b5 100644 --- a/code/modules/modular_computers/file_system/programs/research/ntmonitor.dm +++ b/code/modules/modular_computers/file_system/programs/research/ntmonitor.dm @@ -2,6 +2,8 @@ filename = "ntmonitor" filedesc = "NTNet Diagnostics and Monitoring" program_icon_state = "comm_monitor" + program_key_state = "generic_key" + program_menu_icon = "wrench" extended_desc = "This program monitors the local NTNet network, provides access to logging systems, and allows for configuration changes" size = 12 requires_ntnet = 1 diff --git a/code/modules/modular_computers/file_system/programs/security/digitalwarrant.dm b/code/modules/modular_computers/file_system/programs/security/digitalwarrant.dm index ed7b404b75..28ca1b73f5 100644 --- a/code/modules/modular_computers/file_system/programs/security/digitalwarrant.dm +++ b/code/modules/modular_computers/file_system/programs/security/digitalwarrant.dm @@ -14,6 +14,8 @@ var/warrant_uid = 0 extended_desc = "Official NTsec program for creation and handling of warrants." size = 8 program_icon_state = "warrant" + program_key_state = "security_key" + program_menu_icon = "star" requires_ntnet = 1 available_on_ntnet = 1 required_access = access_security diff --git a/code/modules/modular_computers/hardware/nano_printer.dm b/code/modules/modular_computers/hardware/nano_printer.dm index ac5816345b..0eb2a7b065 100644 --- a/code/modules/modular_computers/hardware/nano_printer.dm +++ b/code/modules/modular_computers/hardware/nano_printer.dm @@ -32,12 +32,37 @@ /obj/item/weapon/computer_hardware/nano_printer/attackby(obj/item/W as obj, mob/user as mob) if(istype(W, /obj/item/weapon/paper)) if(stored_paper >= max_paper) - to_chat(user, "You try to add \the [W] into [src], but it's paper bin is full") + to_chat(user, "You try to add \the [W] into \the [src], but its paper bin is full.") return to_chat(user, "You insert \the [W] into [src].") qdel(W) stored_paper++ + else if(istype(W, /obj/item/weapon/paper_bundle)) + var/obj/item/weapon/paper_bundle/B = W + var/num_of_pages_added = 0 + if(stored_paper >= max_paper) + to_chat(user, "You try to add \the [W] into \the [src], but its paper bin is full.") + return + for(var/obj/item/weapon/bundleitem in B) //loop through items in bundle + if(istype(bundleitem, /obj/item/weapon/paper)) //if item is paper (and not photo), add into the bin + B.pages.Remove(bundleitem) + qdel(bundleitem) + num_of_pages_added++ + stored_paper++ + if(stored_paper >= max_paper) //check if the printer is full yet + to_chat(user, "The printer has been filled to full capacity.") + break + if(B.pages.len == 0) //if all its papers have been put into the printer, delete bundle + qdel(W) + else if(B.pages.len == 1) //if only one item left, extract item and delete the one-item bundle + user.drop_from_inventory(B) + user.put_in_hands(B[1]) + qdel(B) + else //if at least two items remain, just update the bundle icon + B.update_icon() + to_chat(user, "You add [num_of_pages_added] papers from \the [W] into \the [src].") + return /obj/item/weapon/computer_hardware/nano_printer/Destroy() if(holder2 && (holder2.nano_printer == src)) diff --git a/code/modules/nano/modules/nano_module.dm b/code/modules/nano/modules/nano_module.dm index e5e0bf64f1..90c213da1c 100644 --- a/code/modules/nano/modules/nano_module.dm +++ b/code/modules/nano/modules/nano_module.dm @@ -2,6 +2,7 @@ var/name var/datum/host var/datum/topic_manager/topic_manager + var/list/using_access /datum/nano_module/New(var/datum/host, var/topic_manager) ..() @@ -21,6 +22,12 @@ if(!access) return 1 + if(using_access) + if(access in using_access) + return 1 + else + return 0 + if(!istype(user)) return 0 @@ -38,6 +45,18 @@ return TRUE . = ..() +/datum/nano_module/proc/print_text(var/text, var/mob/user) + var/obj/item/modular_computer/MC = nano_host() + if(istype(MC)) + if(!MC.nano_printer) + to_chat(user, "Error: No printer detected. Unable to print document.") + return + + if(!MC.nano_printer.print_text(text)) + to_chat(user, "Error: Printer was unable to print the document. It may be out of paper.") + else + to_chat(user, "Error: Unable to detect compatible printer interface. Are you running NTOSv2 compatible system?") + /datum/proc/initial_data() return list() diff --git a/icons/obj/modular_console.dmi b/icons/obj/modular_console.dmi index 7d28d26da9936b6f7623a6b349575bdc8340f7c1..e16c2c7be81020cc801b1fc7508bcd5fdcf278f6 100644 GIT binary patch literal 31288 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 PfPm3Wvl|t9&XNBO?O0DY literal 3544 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 z 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 diff --git a/nano/templates/arcade_classic.tmpl b/nano/templates/arcade_classic.tmpl index 5792a15b6e..996e8e4715 100644 --- a/nano/templates/arcade_classic.tmpl +++ b/nano/templates/arcade_classic.tmpl @@ -1,44 +1,44 @@ {{if data.gameover}} - centerh2Game Over!h2 - h3{{data.information}}h3 - {{helper.link('New Game', null, { new_game 1 })}}center +

Game Over!

+

{{:data.information}}

+ {{:helper.link('New Game', null, { "new_game" : 1 })}}
{{else}} {{if data.information}} - centeri{{data.information}}icenter - {{if}} -centerh3Playerh3center - div class='item' - div class='itemLabel' - Health - div - div class='itemContent' - {{data.player_health}} - div - div class='itemLabel' - Mana - div - div class='itemContent' - {{data.player_mana}} - div - div -centerh3Enemy {{data.enemy_name}}h3center - div class='item' - div class='itemLabel' - Health - div - div class='itemContent' - {{data.enemy_health}} - div - div class='itemLabel' - Mana - div - div class='itemContent' - {{data.enemy_mana}} - div - div -centerh3Actionsh3center - {{helper.link('Attack', null, { attack 1 })}} - {{helper.link('Heal', null, { heal 1 })}} - {{helper.link('Regain Mana', null, { regain_mana 1 })}} - {{helper.link('New Game', null, { new_game 1 })}} -{{if}} \ No newline at end of file +
{{:data.information}}
+ {{/if}} +

Player

+
+
+ Health: +
+
+ {{:data.player_health}} +
+
+ Mana: +
+
+ {{:data.player_mana}} +
+
+

Enemy: {{:data.enemy_name}}

+
+
+ Health: +
+
+ {{:data.enemy_health}} +
+
+ Mana: +
+
+ {{:data.enemy_mana}} +
+
+

Actions

+ {{:helper.link('Attack', null, { "attack" : 1 })}} + {{:helper.link('Heal', null, { "heal" : 1 })}} + {{:helper.link('Regain Mana', null, { "regain_mana" : 1 })}} + {{:helper.link('New Game', null, { "new_game" : 1 })}} +{{/if}} \ No newline at end of file diff --git a/nano/templates/laptop_configuration.tmpl b/nano/templates/laptop_configuration.tmpl index bd9197feff..69af3bd6c0 100644 --- a/nano/templates/laptop_configuration.tmpl +++ b/nano/templates/laptop_configuration.tmpl @@ -67,4 +67,4 @@

{{/for}}

-NTOS v2.0.4b Copyright NanoTrasen 2557 - 2559 \ No newline at end of file +NTOS v2.0.4b Copyright NanoTrasen 2557 - 2559 \ No newline at end of file diff --git a/nano/templates/laptop_mainscreen.tmpl b/nano/templates/laptop_mainscreen.tmpl index 4e3479b989..9d7804ae72 100644 --- a/nano/templates/laptop_mainscreen.tmpl +++ b/nano/templates/laptop_mainscreen.tmpl @@ -1,8 +1,8 @@ No program loaded. Please select program from list below. {{for data.programs}} -
{{:helper.link(value.desc, null, {'PC_runprogram' : value.name})}} - {{:helper.link('X', null, {'PC_killprogram' : value.name}, (value.running ? null : 'disabled'))}} - {{:helper.link('AR', null, {'PC_setautorun' : value.name}, null, (value.autorun ? 'yellowButton' : null))}} +
{{:helper.link(value.desc, value.icon, {'PC_runprogram' : value.name})}} + {{:helper.link('X', null, {'PC_killprogram' : value.name}, (value.running ? null : 'disabled'))}} + {{:helper.link('AR', null, {'PC_setautorun' : value.name}, null, (value.autorun ? 'yellowButton' : null))}} {{/for}} -
\ No newline at end of file + \ No newline at end of file diff --git a/nano/templates/library.tmpl b/nano/templates/library.tmpl new file mode 100644 index 0000000000..fa8f3f6622 --- /dev/null +++ b/nano/templates/library.tmpl @@ -0,0 +1,75 @@ +{{if data.error}} +

Error

+ {{:data.error}}

+ {{:helper.link("Reset", null, {'reseterror' : 1})}} +{{else data.current_book}} +

{{:data.current_book.title}}

+
+
+ Author: +
+
+ {{:data.current_book.author}} +
+
+ USBN: +
+
+ {{:data.current_book.id}} +
+
+ Commands: +
+
+ {{:helper.link("Close", null, {'closebook' : 1})}} + {{:helper.link("Print", null, {'printbook' : 1})}} +
+
+
+ {{:data.current_book.content}} +
+{{else}} +

External Archives

+
+
+ Scanner: +
+
+ {{:data.scanner ? 'Connected' : 'Not Connected'}} +
+
+
+
+ Commands: +
+
+ {{:helper.link("View By USBN", null, {'viewid' : 1})}} + {{:helper.link("Upload From Scanner", null, {'uploadbook' : 1})}} + {{:helper.link("Connect to Scanner", null, {'connectscanner' : 1})}} +
+
+
+
+ Sort by: +
+
+ {{:helper.link("Title", null, {'sortby' : 'title'})}} + {{:helper.link("Author", null, {'sortby' : 'author'})}} + {{:helper.link("Category", null, {'sortby' : 'category'})}} + {{:helper.link("USBN", null, {'sortby' : 'id'})}} +
+
+ + +
CommandsTitleAuthorCategoryUSBN + {{for data.book_list}} +
{{:helper.link("View", null, {'viewbook' : value.id})}} + {{:value.title}} + {{:value.author}} + {{:value.category}} + {{:value.id}} + + {{/for}} +
+{{/if}} +


NTOS v2.0.4b Copyright NanoTrasen 2557 - 2561 diff --git a/nano/templates/news_browser.tmpl b/nano/templates/news_browser.tmpl index 17b02614f3..ed32814bec 100644 --- a/nano/templates/news_browser.tmpl +++ b/nano/templates/news_browser.tmpl @@ -1,3 +1,4 @@ + {{if data.message}}
{{:data.message}} @@ -5,14 +6,15 @@
{{/if}} {{if data.article}} - Viewing: {{:data.title}}

- - {{:data.article}} - -

+ Viewing: {{:data.title}}
{{:helper.link('CLOSE', null, { "PRG_reset" : 1 })}} {{:helper.link('SAVE', null, { "PRG_savearticle" : 1 })}} -{{else data.download_progress}} +

+ {{if data.cover}} + + {{/if}} + {{:data.article}} +{{else data.download_running}} Downloading file...

@@ -26,37 +28,50 @@ Download speed:
- {{data.download_rate}} GQ/s + {{:data.download_rate}} GQ/s
Controls:
{{:helper.link('ABORT', null, { "PRG_reset" : 1 })}} -
+
{{else}} - Listing available files
+

Listing available files

+
+
+ Show archived files: +
+
+ {{if data.showing_archived}} + {{:helper.link('YES', null, { "PRG_toggle_archived" : 1 })}} + {{else}} + {{:helper.link('NO', null, { "PRG_toggle_archived" : 1 })}} + {{/if}} +
+
+

{{for data.all_articles}}
- Name: + Name:
{{:value.name}}
- Size: + Size:
{{:value.size}} GQ
- Actions: + Actions:
{{:helper.link('OPEN', null, { "PRG_openarticle" : value.uid })}}
{{/for}} -{{/if}} \ No newline at end of file +{{/if}} diff --git a/nano/templates/ntnet_chat.tmpl b/nano/templates/ntnet_chat.tmpl index b91afd613c..592b648177 100644 --- a/nano/templates/ntnet_chat.tmpl +++ b/nano/templates/ntnet_chat.tmpl @@ -63,4 +63,4 @@ {{:helper.link(value.chan, null, {'PRG_joinchannel' : value.id})}}
{{/for}} -{{/if}} \ No newline at end of file +{{/if}} \ No newline at end of file diff --git a/nano/templates/ntnet_dos.tmpl b/nano/templates/ntnet_dos.tmpl index c8562706cc..1ddf8eb06e 100644 --- a/nano/templates/ntnet_dos.tmpl +++ b/nano/templates/ntnet_dos.tmpl @@ -19,4 +19,4 @@ {{for data.relays}} {{:helper.link(value , null, { 'PRG_target_relay' : value })}} {{/for}} -{{/if}} \ No newline at end of file +{{/if}} \ No newline at end of file diff --git a/nano/templates/ntnet_downloader.tmpl b/nano/templates/ntnet_downloader.tmpl index 0bce1ff451..b53f36d696 100644 --- a/nano/templates/ntnet_downloader.tmpl +++ b/nano/templates/ntnet_downloader.tmpl @@ -1,4 +1,4 @@ -Welcome to software download utility. Please select which software you wish to download.
+Welcome to the software download utility. Please select which software you wish to download.
{{if data.error}}

Download Error

@@ -13,40 +13,62 @@
{{:helper.link("RESET", null, {'PRG_reseterror' : 1})}}
-{{else data.downloadname}} -

Download Running

- Please wait... -
- File name: +
+{{/if}} + +

{{:data.downloadname ? 'Download Running' : 'No Downloads In Progress'}}

+ {{:data.downloadname ? 'Please wait...' : 'Standing by...'}} +
+
+ File name: +
+
+ {{:data.downloadname ? data.downloadname : 'N/A'}} +
+
+ File description: +
+
+ {{:data.downloadname ? data.downloaddesc : 'N/A'}} +
+
+ File size: +
+
+ {{:data.downloadname ? (data.downloadcompletion + 'GQ / ' + data.downloadsize + 'GQ') : 'N/A'}} +
+
+ Transfer Rate: +
+
+ {{:data.downloadname ? data.downloadspeed : '0'}} GQ/s +
+
+ Download progress: +
+
+ {{:helper.displayBar(data.downloadcompletion, 0, data.downloadname ? data.downloadsize : 0, 'good')}} +
-
- {{:data.downloadname}} + +

+ +

Downloads Queue

+
+ {{for data.downloads_queue}} +
+ {{:index + 1}}: +
+
+ {{:value}} + {{:helper.link('', 'close', {'PRG_removequeued' : value})}} +
+ {{empty}} + The queue is currently empty. + {{/for}}
-
- File description: -
-
- {{:data.downloaddesc}} -
-
- File size: -
-
- {{:data.downloadcompletion}}GQ / {{:data.downloadsize}}GQ -
-
- Transfer Rate: -
-
- {{:data.downloadspeed}} GQ/s -
-
- Download progress: -
-
- {{:helper.displayBar(data.downloadcompletion, 0, data.downloadsize, 'good')}} -
-{{else}} +

+

Primary software repository

Hard drive: @@ -55,66 +77,24 @@ {{:helper.displayBar(data.disk_used, 0, data.disk_size, 'good')}} {{:data.disk_used}}GQ / {{:data.disk_size}}GQ
+ {{for data.downloadable_programs}} -
-
- File name: -
-
- {{:value.filename}} ({{:value.size}} GQ) -
-
- Program name: -
-
- {{:value.filedesc}} -
-
- Description: -
-
- {{:value.fileinfo}} -
-
- File controls: -
-
- {{:helper.link("DOWNLOAD", null, {'PRG_downloadfile' : value.filename})}} -
+
{{:helper.link('', value.icon, {'PRG_downloadfile' : value.filename})}} + {{:value.filedesc}} + {{:value.fileinfo}} + {{:value.size}} GQ {{/for}} +
{{if data.hackedavailable}}

*UNKNOWN* software repository

Please note that NanoTrasen does not recommend download of software from non-official servers. {{for data.hacked_programs}} -
-
- File name: -
-
- {{:value.filename}} ({{:value.size}} GQ) -
-
- Program name: -
-
- {{:value.filedesc}} -
-
- Description: -
-
- {{:value.fileinfo}} -
-
- File controls: -
-
- {{:helper.link("DOWNLOAD", null, {'PRG_downloadfile' : value.filename})}} -
-
+ {{:helper.link(value.filedesc, value.icon, {'PRG_downloadfile' : value.filename})}} + {{:value.fileinfo}} + {{:value.size}} GQ +
{{/for}} {{/if}} -{{/if}} -


NTOS v2.0.4b Copyright NanoTrasen 2557 - 2559 \ No newline at end of file +


NTOS v2.0.4b Copyright NanoTrasen 2557 - 2559 \ No newline at end of file diff --git a/nano/templates/ntnet_monitor.tmpl b/nano/templates/ntnet_monitor.tmpl index 89c9b8144c..3ab1f307c3 100644 --- a/nano/templates/ntnet_monitor.tmpl +++ b/nano/templates/ntnet_monitor.tmpl @@ -68,7 +68,7 @@
{{:data.idsstatus ? 'ENABLED' : 'DISABLED'}}
-
+
Maximal Log Count: @@ -109,4 +109,4 @@ {{/for}}
- \ No newline at end of file + \ No newline at end of file diff --git a/nano/templates/ntnet_relay.tmpl b/nano/templates/ntnet_relay.tmpl index 97b68368f6..24bd831782 100644 --- a/nano/templates/ntnet_relay.tmpl +++ b/nano/templates/ntnet_relay.tmpl @@ -15,7 +15,7 @@ {{else}} {{:helper.link('DISABLED', null, { 'toggle' : 1 })}} {{/if}} - +
Network buffer status: @@ -29,4 +29,4 @@
{{:helper.link('Purge network blacklist', null, { 'purge' : 1 })}}
-{{/if}} \ No newline at end of file +{{/if}} \ No newline at end of file diff --git a/nano/templates/ntnet_transfer.tmpl b/nano/templates/ntnet_transfer.tmpl index fa770295aa..e7a9da892a 100644 --- a/nano/templates/ntnet_transfer.tmpl +++ b/nano/templates/ntnet_transfer.tmpl @@ -91,4 +91,4 @@
{{:helper.link('Send file', null, { "PRG_uploadmenu" : 1 })}} -{{/if}} \ No newline at end of file +{{/if}} \ No newline at end of file diff --git a/nano/templates/word_processor.tmpl b/nano/templates/word_processor.tmpl new file mode 100644 index 0000000000..0a786f4973 --- /dev/null +++ b/nano/templates/word_processor.tmpl @@ -0,0 +1,49 @@ +{{if data.error}} +

An error has occurred:

+Additional information: {{:data.error}}
+Please try again. If the problem persists, contact your system administrator for assistance. +{{:helper.link('Back to menu', null, { "PRG_backtomenu" : 1 })}} +{{else}} +{{if data.browsing}} + {{:helper.link('BACK TO EDITOR', null, { "PRG_closebrowser" : 1 })}} +

Available documents (local):

+ +
Name + Size (GQ) + {{for data.files}} +
{{:value.name}} + {{:value.size}}GQ + {{:helper.link('OPEN', null, { "PRG_openfile" : value.name })}} + {{/for}} +
+ {{if data.usbconnected}} +

Available documents (portable device):

+ +
Name + Size (GQ) + {{for data.usbfiles}} +
{{:value.name}} + {{:value.size}}GQ + {{:helper.link('OPEN', null, { "PRG_openfile" : value.name })}} + {{/for}} +
+ {{/if}} +{{else}} +

Document: {{:data.filename}}

+
+ {{:helper.link('NEW', null, { "PRG_newfile" : 1 })}} + {{:helper.link('LOAD', null, { "PRG_loadmenu" : 1 })}} + {{:helper.link('SAVE', null, { "PRG_savefile" : 1 })}} + {{:helper.link('SAVE AS', null, { "PRG_saveasfile" : 1 })}} +
+
+ {{:helper.link('EDIT', null, { "PRG_editfile" : 1 })}} + {{:helper.link('PREVIEW', null, { "PRG_txtrpeview" : 1 }, data.filedata ? null : 'disabled')}} + {{:helper.link('FORMATTING HELP', null, { "PRG_taghelp" : 1 })}} + {{:helper.link('PRINT', null, { "PRG_printfile" : 1 })}} +

+
+ {{:data.filedata}} +
+{{/if}} +{{/if}} diff --git a/polaris.dme b/polaris.dme index 0c62b7553a..26838190d4 100644 --- a/polaris.dme +++ b/polaris.dme @@ -2134,10 +2134,12 @@ #include "code\modules\modular_computers\file_system\programs\generic\email_client.dm" #include "code\modules\modular_computers\file_system\programs\generic\file_browser.dm" #include "code\modules\modular_computers\file_system\programs\generic\game.dm" +#include "code\modules\modular_computers\file_system\programs\generic\library.dm" #include "code\modules\modular_computers\file_system\programs\generic\news_browser.dm" #include "code\modules\modular_computers\file_system\programs\generic\ntdownloader.dm" #include "code\modules\modular_computers\file_system\programs\generic\ntnrc_client.dm" #include "code\modules\modular_computers\file_system\programs\generic\nttransfer.dm" +#include "code\modules\modular_computers\file_system\programs\generic\wordprocessor.dm" #include "code\modules\modular_computers\file_system\programs\medical\suit_sensors.dm" #include "code\modules\modular_computers\file_system\programs\research\email_administration.dm" #include "code\modules\modular_computers\file_system\programs\research\ntmonitor.dm"