mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-12 08:27:13 +01:00
modular computer stuff
This commit is contained in:
@@ -5,14 +5,14 @@
|
||||
/datum/computer_file/program/clientmanager
|
||||
filename = "clientmanager"
|
||||
filedesc = "NTOS Client Manager"
|
||||
extended_desc = "This program allows configuration of computer's software"
|
||||
extended_desc = "This program allows configuration of the computer's software."
|
||||
program_icon_state = "generic"
|
||||
color = LIGHT_COLOR_GREEN
|
||||
unsendable = 1
|
||||
undeletable = 1
|
||||
unsendable = TRUE
|
||||
undeletable = TRUE
|
||||
size = 4
|
||||
available_on_ntnet = 0
|
||||
requires_ntnet = 0
|
||||
available_on_ntnet = FALSE
|
||||
requires_ntnet = FALSE
|
||||
|
||||
/datum/computer_file/program/clientmanager/ui_interact(mob/user)
|
||||
var/datum/vueui/ui = SSvueui.get_open_ui(user, src)
|
||||
@@ -51,31 +51,32 @@
|
||||
|
||||
/datum/computer_file/program/clientmanager/Topic(href, href_list)
|
||||
if(..())
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
if(href_list["enroll"])
|
||||
if(ntnet_global.check_function(NTNET_SOFTWAREDOWNLOAD))
|
||||
if(href_list["enroll"]["type"] == 1)
|
||||
enroll_company_device(href_list["enroll"]["preset"])
|
||||
return 1
|
||||
return TRUE
|
||||
if(href_list["enroll"]["type"] == 2)
|
||||
enroll_private_device()
|
||||
return 1
|
||||
return 0
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
//Set´s up the computer with the file manager and the downloader and removes the lock
|
||||
/datum/computer_file/program/clientmanager/proc/enroll_private_device()
|
||||
if(!computer)
|
||||
return 0
|
||||
return FALSE
|
||||
computer.enrolled = 2 // private devices
|
||||
computer.hard_drive.store_file(new /datum/computer_file/program/filemanager())
|
||||
computer.hard_drive.store_file(new /datum/computer_file/program/ntnetdownload())
|
||||
return 1
|
||||
computer.hard_drive.store_file(new /datum/computer_file/program/chatclient())
|
||||
return TRUE
|
||||
|
||||
//Set´s up the programs from the preset
|
||||
/datum/computer_file/program/clientmanager/proc/enroll_company_device(var/preset)
|
||||
if(!computer)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
for (var/datum/modular_computer_app_presets/prs in ntnet_global.available_software_presets)
|
||||
if(prs.name == preset && prs.available == 1)
|
||||
@@ -83,83 +84,5 @@
|
||||
for (var/datum/computer_file/program/prog in prs_programs)
|
||||
computer.hard_drive.store_file(prog)
|
||||
computer.enrolled = 1 // enroll as company device after finding matching preset and storing software
|
||||
return 1
|
||||
return 0
|
||||
|
||||
|
||||
/*
|
||||
/datum/nano_module/program/clientmanager
|
||||
name = "NTOS Client Manager"
|
||||
var/obj/item/modular_computer/movable = null
|
||||
|
||||
/datum/computer_file/program/clientmanager/Topic(href, href_list)
|
||||
if(..())
|
||||
return 1
|
||||
|
||||
if(href_list["PRG_dev_type"])
|
||||
_dev_type = text2num(href_list["PRG_dev_type"])
|
||||
return 1
|
||||
|
||||
if(href_list["PRG_dev_preset"])
|
||||
_dev_preset = href_list["PRG_dev_preset"]
|
||||
return 1
|
||||
|
||||
if(href_list["PRG_enroll"])
|
||||
if(ntnet_global.check_function(NTNET_SOFTWAREDOWNLOAD))
|
||||
_error_message = null
|
||||
if(_dev_type == 1)
|
||||
enroll_company_device()
|
||||
return 1
|
||||
if(_dev_type == 2)
|
||||
enroll_private_device()
|
||||
return 1
|
||||
return 0
|
||||
else
|
||||
_error_message = "NTNET unavailable. Unable to enroll device"
|
||||
return 0
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/datum/nano_module/program/clientmanager/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 = list()
|
||||
if(program)
|
||||
movable = program.computer
|
||||
data = list("_PC" = program.get_header_data())
|
||||
if(!istype(movable))
|
||||
movable = null
|
||||
|
||||
var/datum/computer_file/program/clientmanager/PRG = program
|
||||
// For now limited to execution by the downloader program
|
||||
// No computer connection, we can't get data from that.
|
||||
if(!PRG || !istype(PRG) || !movable )
|
||||
return 0
|
||||
|
||||
data["status_enrollment"] = movable.enrolled
|
||||
data["status_compliance"] = 1 // 0 - Not Complaint 1 - Compliant //For now. TODO-IT: Run actual compliance checks
|
||||
data["status_remote"] = 1 // 0 - Disabled 1 - Enabled //For now. TODO-IT: ability to enable and disable remote control
|
||||
|
||||
if(!movable.enrolled)
|
||||
data["dev_type"] = PRG._dev_type
|
||||
var/list/all_presets = list()
|
||||
for (var/datum/modular_computer_app_presets/prs in ntnet_global.available_software_presets)
|
||||
if(prs.available)
|
||||
all_presets.Add(list(list(
|
||||
"name" = prs.name,
|
||||
"display_name" = prs.display_name,
|
||||
"description" = prs.description
|
||||
)))
|
||||
data["dev_presets"] = all_presets
|
||||
data["dev_preset"] = PRG._dev_preset
|
||||
else if(movable.enrolled > 2)
|
||||
PRG._error_message = "Unable to determine enrollment status. Contact IT department"
|
||||
|
||||
data["error_message"] = PRG._error_message
|
||||
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open)
|
||||
if (!ui)
|
||||
ui = new(user, src, ui_key, "ntnet_clientmanager.tmpl", "NTOS Client Manager", 575, 700, state = state)
|
||||
ui.auto_update_layout = 1
|
||||
ui.set_initial_data(data)
|
||||
ui.open()
|
||||
*/
|
||||
return TRUE
|
||||
return FALSE
|
||||
@@ -3,16 +3,16 @@
|
||||
// It allows you to toggle components of your device.
|
||||
|
||||
/datum/computer_file/program/computerconfig
|
||||
filename = "compconfig"
|
||||
filedesc = "Computer Configuration Tool"
|
||||
extended_desc = "This program allows configuration of computer's hardware"
|
||||
filename = "hardwareconfig"
|
||||
filedesc = "Hardware Configuration Tool"
|
||||
extended_desc = "This program allows configuration of the computer's hardware."
|
||||
program_icon_state = "generic"
|
||||
color = LIGHT_COLOR_GREEN
|
||||
unsendable = 1
|
||||
undeletable = 1
|
||||
unsendable = TRUE
|
||||
undeletable = TRUE
|
||||
size = 4
|
||||
available_on_ntnet = 0
|
||||
requires_ntnet = 0
|
||||
available_on_ntnet = FALSE
|
||||
requires_ntnet = FALSE
|
||||
|
||||
/datum/computer_file/program/computerconfig/ui_interact(mob/user)
|
||||
var/datum/vueui/ui = SSvueui.get_open_ui(user, src)
|
||||
|
||||
@@ -2,15 +2,15 @@
|
||||
filename = "ntndownloader"
|
||||
filedesc = "NTNet Software Download Tool"
|
||||
program_icon_state = "generic"
|
||||
extended_desc = "This program allows downloads of software from official NT repositories"
|
||||
extended_desc = "This program allows the download of software from official NT repositories."
|
||||
color = LIGHT_COLOR_GREEN
|
||||
unsendable = 1
|
||||
undeletable = 1
|
||||
unsendable = TRUE
|
||||
undeletable = TRUE
|
||||
size = 4
|
||||
requires_ntnet = 1
|
||||
requires_ntnet = TRUE
|
||||
requires_ntnet_feature = NTNET_SOFTWAREDOWNLOAD
|
||||
available_on_ntnet = 0
|
||||
nanomodule_path = /datum/nano_module/program/computer_ntnetdownload/
|
||||
available_on_ntnet = FALSE
|
||||
nanomodule_path = /datum/nano_module/program/computer_ntnetdownload
|
||||
ui_header = "downloader_finished.gif"
|
||||
var/datum/computer_file/program/downloaded_file = null
|
||||
var/hacked_download = 0
|
||||
@@ -22,22 +22,22 @@
|
||||
|
||||
/datum/computer_file/program/ntnetdownload/proc/begin_file_download(var/filename, var/user = null)
|
||||
if(downloaded_file)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
var/datum/computer_file/program/PRG = ntnet_global.find_ntnet_file_by_name(filename)
|
||||
|
||||
if(!PRG || !istype(PRG))
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
// Attempting to download antag only program, but without having emagged computer. No.
|
||||
if(PRG.available_on_syndinet && !computer_emagged)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
if(!computer || !computer.hard_drive || !computer.hard_drive.try_store_file(PRG))
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
if(computer.enrolled == 1 && !computer_emagged)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
ui_header = "downloader_running.gif"
|
||||
|
||||
@@ -122,19 +122,19 @@
|
||||
|
||||
/datum/computer_file/program/ntnetdownload/Topic(href, href_list)
|
||||
if(..())
|
||||
return 1
|
||||
return TRUE
|
||||
if(href_list["PRG_downloadfile"])
|
||||
if(!downloaded_file)
|
||||
begin_file_download(href_list["PRG_downloadfile"], usr)
|
||||
return 1
|
||||
return TRUE
|
||||
if(href_list["PRG_reseterror"])
|
||||
if(downloaderror)
|
||||
download_completion = 0
|
||||
download_netspeed = 0
|
||||
downloaded_file = null
|
||||
downloaderror = ""
|
||||
return 1
|
||||
return 0
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/datum/nano_module/program/computer_ntnetdownload
|
||||
name = "Network Downloader"
|
||||
|
||||
Reference in New Issue
Block a user