diff --git a/code/modules/modular_computers/documentation.dm b/code/modules/modular_computers/documentation.dm deleted file mode 100644 index 94e02f8125c..00000000000 --- a/code/modules/modular_computers/documentation.dm +++ /dev/null @@ -1,40 +0,0 @@ -/* - -Ok. so a quick rundown on how to make a program. This is kind of a shitty documentation, but oh well I was asked to. - - -This is how the base program is setup. the rest is mostly tgui stuff. I'll use the ntnetmonitor as a base - -/datum/computer_file/program/ntnetmonitor - filename = "ntmonitor" <- This is obviously the name of the file itself. not much to be said - filedesc = "NTNet Diagnostics and Monitoring" <- This sort of the official name. it's what shows up on the main menu - program_icon_state = "comm_monitor" <- This is what the screen will look like when the program is active - extended_desc = "This program is a dummy. <- This is a sort of description, visible when looking on the ntnet - size = 12 <- size of the program. Big programs need more hard drive space. Don't make it too big though. - requires_ntnet = 1 <- if this is set, the program will not run and will close if ntnet connection is lost. mainly for primarily online programs. - required_access = access_network <- This is access required to run the program itself. ONLY SET THIS FOR SUPER SECURE SHIT. This also acts as transfer_access as well. - transfer_access = access_change_ids <- this is the access needed to download from ntnet or host on the ptp program. This is what you want to use most of the time. - available_on_ntnet = 1 <- If it's available to download on ntnet. pretty self explanatory. - available_on_syndinet = 0 <- ditto but on emagged syndie net. Use this for antag programs - usage_flags = PROGRAM_ALL // Bitflags (PROGRAM_CONSOLE, PROGRAM_LAPTOP, PROGRAM_TABLET combination) or PROGRAM_ALL - ^^- The comment above sorta explains it. Use this to limit what kind of machines can run the program. For example, comms program should be limited to consoles and laptops. - var/ui_header = "downloader_finished.gif" <- this one is kinda cool. If you have the program minimized, this will show up in the header of the computer screen. - you can even have the program change what the header is based on the situation! see alarm.dm for an example. - - -Now. for pre-installing stuff. - -Primarily done for consoles, there's an install_programs() proc in the console presets file in the machines folder. - -for example, the command console one. - -/obj/machinery/modular_computer/console/preset/command/install_programs() - cpu.hard_drive.store_file(new/datum/computer_file/program/chatclient()) - cpu.hard_drive.store_file(new/datum/computer_file/program/card_mod()) - -Basically, you want to do cpu.hard_drive.store_file(new/*program path here*()) and put it in the subtype's install_programs(). -Probably pretty self explanatory, but just in case. - -Will probably be expanded when new features come around or I get asked to mention something. - -*/ \ No newline at end of file diff --git a/code/modules/modular_computers/documentation.md b/code/modules/modular_computers/documentation.md new file mode 100644 index 00000000000..88d8602729d --- /dev/null +++ b/code/modules/modular_computers/documentation.md @@ -0,0 +1,45 @@ + + +#Modular computer programs +Ok. so a quick rundown on how to make a program. This is kind of a shitty documentation, but oh well I was asked to. + + +## Base setup +This is how the base program is setup. the rest is mostly tgui stuff. I'll use the ntnetmonitor as a base + + +```DM +/datum/computer_file/program/ntnetmonitor + filename = "ntmonitor" //This is obviously the name of the file itself. not much to be said + filedesc = "NTNet Diagnostics and Monitoring" // This is sort of the official name. it's what shows up on the main menu + program_icon_state = "comm_monitor" // This is what the screen will look like when the program is active + extended_desc = "This program is a dummy. // This is a sort of a description, visible when looking on the ntnet + size = 12 // size of the program. Big programs need more hard drive space. Don't make it too big though. + requires_ntnet = 1 // If this is set, the program will not run without an ntnet connection, and will close if the connection is lost. Mainly for primarily online programs. + required_access = access_network //This is access required to run the program itself. ONLY SET THIS FOR SUPER SECURE SHIT. This also acts as transfer_access as well. + transfer_access = access_change_ids // This is the access needed to download from ntnet or host on the ptp program. This is what you want to use most of the time. + available_on_ntnet = 1 //If it's available to download on ntnet. pretty self explanatory. + available_on_syndinet = 0 // ditto but on emagged syndie net. Use this for antag programs + usage_flags = PROGRAM_ALL // Bitflags (PROGRAM_CONSOLE, PROGRAM_LAPTOP, PROGRAM_TABLET combination) or PROGRAM_ALL + //^^- The comment above sorta explains it. Use this to limit what kind of machines can run the program. For example, comms program should be limited to consoles and laptops. + var/ui_header = "downloader_finished.gif" //This one is kinda cool. If you have the program minimized, this will show up in the header of the computer screen. + //you can even have the program change what the header is based on the situation! see alarm.dm for an example. +``` + +##Preinstalls +Now. for pre-installing stuff. + +Primarily done for consoles, there's an install_programs() proc in the console presets file in the machines folder. + +for example, the command console one. + +```DM +/obj/machinery/modular_computer/console/preset/command/install_programs() + cpu.hard_drive.store_file(new/datum/computer_file/program/chatclient()) + cpu.hard_drive.store_file(new/datum/computer_file/program/card_mod()) +``` +Basically, you want to do cpu.hard_drive.store_file(new/*program path here*()) and put it in the subtype's install_programs(). +Probably pretty self explanatory, but just in case. + +Will probably be expanded when new features come around or I get asked to mention something. + diff --git a/code/modules/modular_computers/file_system/programs/ntdownloader.dm b/code/modules/modular_computers/file_system/programs/ntdownloader.dm index 32d8d2eba13..f71613a587c 100644 --- a/code/modules/modular_computers/file_system/programs/ntdownloader.dm +++ b/code/modules/modular_computers/file_system/programs/ntdownloader.dm @@ -160,3 +160,7 @@ data["downloadable_programs"] = all_entries return data + +/datum/computer_file/program/ntnetdownload/kill_program(forced) + abort_file_download() + return ..(forced) \ No newline at end of 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 b559e9d161f..cf1db00e2e0 100644 --- a/code/modules/modular_computers/file_system/programs/ntnrc_client.dm +++ b/code/modules/modular_computers/file_system/programs/ntnrc_client.dm @@ -28,7 +28,7 @@ if(!channel) return 1 var/mob/living/user = usr - var/message = sanitize(input(user, "Enter message or leave blank to cancel: ")) + var/message = reject_bad_text(input(user, "Enter message or leave blank to cancel: ")) if(!message || !channel) return channel.add_message(message, username) @@ -51,7 +51,7 @@ if(C.password) var/mob/living/user = usr - var/password = sanitize(input(user,"Access Denied. Enter password:")) + var/password = reject_bad_text(input(user,"Access Denied. Enter password:")) if(C && (password == C.password)) C.add_client(src) channel = C @@ -66,7 +66,7 @@ if("PRG_newchannel") . = 1 var/mob/living/user = usr - var/channel_title = sanitize(input(user,"Enter channel name or leave blank to cancel:")) + var/channel_title = reject_bad_text(input(user,"Enter channel name or leave blank to cancel:")) if(!channel_title) return var/datum/ntnet_conversation/C = new/datum/ntnet_conversation() @@ -133,7 +133,7 @@ if(!operator_mode || !channel) return 1 var/mob/living/user = usr - var/newname = sanitize(input(user, "Enter new channel name or leave blank to cancel:")) + var/newname = reject_bad_text(input(user, "Enter new channel name or leave blank to cancel:")) if(!newname || !channel) return channel.add_status_message("Channel renamed from [channel.title] to [newname] by operator.") diff --git a/code/modules/modular_computers/file_system/programs/nttransfer.dm b/code/modules/modular_computers/file_system/programs/nttransfer.dm index ffc4653221e..8e332808451 100644 --- a/code/modules/modular_computers/file_system/programs/nttransfer.dm +++ b/code/modules/modular_computers/file_system/programs/nttransfer.dm @@ -109,7 +109,7 @@ var/global/nttransfer_uid = 0 if(!remote || !remote.provided_file) return if(remote.server_password) - var/pass = sanitize(input(usr, "Code 401 Unauthorized. Please enter password:", "Password required")) + var/pass = reject_bad_text(input(usr, "Code 401 Unauthorized. Please enter password:", "Password required")) if(pass != remote.server_password) error = "Incorrect Password" return @@ -127,7 +127,7 @@ var/global/nttransfer_uid = 0 provided_file = null return 1 if("PRG_setpassword") - var/pass = sanitize(input(usr, "Enter new server password. Leave blank to cancel, input 'none' to disable password.", "Server security", "none")) + var/pass = reject_bad_text(input(usr, "Enter new server password. Leave blank to cancel, input 'none' to disable password.", "Server security", "none")) if(!pass) return if(pass == "none")