diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm index ed5ba8ce49a..9d3ad378f34 100644 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -41,7 +41,12 @@ var/global/list/default_pai_software = list() if(ui_key != "main") var/datum/pai_software/S = software[ui_key] if(S && !S.toggle) - S.on_ui_interact(src, ui, force_open) + ui = nanomanager.try_update_ui(user, src, S.id, ui, force_open) + if(!ui) + ui = new(user, src, S.id, S.template_file, S.ui_title, S.ui_width, S.ui_height, state = state) + ui.open() + if(S.autoupdate) + ui.set_auto_update(1) else if(ui) ui.set_status(STATUS_CLOSE, 0) diff --git a/code/modules/mob/living/silicon/pai/software_modules.dm b/code/modules/mob/living/silicon/pai/software_modules.dm index 2161304fa9b..40756a81a1e 100644 --- a/code/modules/mob/living/silicon/pai/software_modules.dm +++ b/code/modules/mob/living/silicon/pai/software_modules.dm @@ -19,9 +19,6 @@ var/ui_width = 450 var/ui_height = 600 -/datum/pai_software/proc/on_ui_interact(mob/living/silicon/pai/user, datum/nanoui/ui=null, force_open=1) - return - /datum/pai_software/proc/on_ui_data(mob/living/silicon/pai/user, datum/topic_state/state = self_state) return list() @@ -38,6 +35,10 @@ toggle = 0 default = 1 + template_file = "pai_directives.tmpl" + ui_title = "pAI Directives" + autoupdate = 1 + /datum/pai_software/directives/on_ui_data(mob/living/silicon/pai/user, datum/topic_state/state = self_state) var/data[0] @@ -48,14 +49,6 @@ return data -/datum/pai_software/directives/on_ui_interact(mob/living/silicon/pai/user, datum/nanoui/ui=null, force_open=1) - ui = nanomanager.try_update_ui(user, user, id, ui, force_open) - if(!ui) - // Don't copy-paste this unless you're making a pAI software module! - ui = new(user, user, id, "pai_directives.tmpl", "pAI Directives", 450, 600) - ui.open() - ui.set_auto_update(1) - /datum/pai_software/directives/Topic(href, href_list) var/mob/living/silicon/pai/P = usr if(!istype(P)) return @@ -96,6 +89,11 @@ toggle = 0 default = 1 + template_file = "pai_radio.tmpl" + ui_title = "Radio Configuration" + ui_width = 300 + ui_height = 150 + /datum/pai_software/radio_config/on_ui_data(mob/living/silicon/pai/user, datum/topic_state/state = self_state) var/data[0] @@ -114,12 +112,6 @@ return data -/datum/pai_software/radio_config/on_ui_interact(mob/living/silicon/pai/user, datum/nanoui/ui = null, force_open = 1) - ui = nanomanager.try_update_ui(user, user, id, ui, force_open) - if(!ui) - ui = new(user, user, id, "pai_radio.tmpl", "Radio Configuration", 300, 150) - ui.open() - /datum/pai_software/radio_config/Topic(href, href_list) var/mob/living/silicon/pai/P = usr if(!istype(P)) return @@ -133,6 +125,10 @@ id = "manifest" toggle = 0 + autoupdate = 1 + template_file = "pai_manifest.tmpl" + ui_title = "Crew Manifest" + /datum/pai_software/crew_manifest/on_ui_data(mob/living/silicon/pai/user, datum/topic_state/state = self_state) var/data[0] @@ -141,20 +137,16 @@ return data -/datum/pai_software/crew_manifest/on_ui_interact(mob/living/silicon/pai/user, datum/nanoui/ui=null, force_open=1) - ui = nanomanager.try_update_ui(user, user, id, ui, force_open) - if(!ui) - // Don't copy-paste this unless you're making a pAI software module! - ui = new(user, user, id, "pai_manifest.tmpl", "Crew Manifest", 450, 600) - ui.open() - ui.set_auto_update(1) - /datum/pai_software/messenger name = "Digital Messenger" ram_cost = 5 id = "messenger" toggle = 0 + autoupdate = 1 + template_file = "pai_messenger.tmpl" + ui_title = "Digital Messenger" + /datum/pai_software/messenger/on_ui_data(mob/living/silicon/pai/user, datum/topic_state/state = self_state) var/data[0] @@ -204,14 +196,6 @@ return data -/datum/pai_software/messenger/on_ui_interact(mob/living/silicon/pai/user, datum/nanoui/ui=null, force_open=1) - ui = nanomanager.try_update_ui(user, user, id, ui, force_open) - if(!ui) - // Don't copy-paste this unless you're making a pAI software module! - ui = new(user, user, id, "pai_messenger.tmpl", "Digital Messenger", 450, 600) - ui.open() - ui.set_auto_update(1) - /datum/pai_software/messenger/Topic(href, href_list) var/mob/living/silicon/pai/P = usr if(!istype(P)) return @@ -248,6 +232,10 @@ id = "chatroom" toggle = 0 + autoupdate = 1 + template_file = "pai_chatroom.tmpl" + ui_title = "Digital Chatroom" + /datum/pai_software/chatroom/on_ui_data(mob/living/silicon/pai/user, datum/topic_state/state = self_state) var/data[0] @@ -286,14 +274,6 @@ return data -/datum/pai_software/chatroom/on_ui_interact(mob/living/silicon/pai/user, datum/nanoui/ui=null, force_open=1) - ui = nanomanager.try_update_ui(user, user, id, ui, force_open) - if(!ui) - // Don't copy-paste this unless you're making a pAI software module! - ui = new(user, user, id, "pai_chatroom.tmpl", "Digital Chatroom", 450, 600) - ui.open() - ui.set_auto_update(1) - /datum/pai_software/chatroom/Topic(href, href_list) var/mob/living/silicon/pai/P = usr if(!istype(P)) @@ -369,6 +349,11 @@ id = "med_records" toggle = 0 + autoupdate = 1 + template_file = "pai_medrecords.tmpl" + ui_title = "Medical Records" + + /datum/pai_software/med_records/on_ui_data(mob/living/silicon/pai/user, datum/topic_state/state = self_state) var/data[0] @@ -389,14 +374,6 @@ return data -/datum/pai_software/med_records/on_ui_interact(mob/living/silicon/pai/user, datum/nanoui/ui=null, force_open=1) - ui = nanomanager.try_update_ui(user, user, id, ui, force_open) - if(!ui) - // Don't copy-paste this unless you're making a pAI software module! - ui = new(user, user, id, "pai_medrecords.tmpl", "Medical Records", 450, 600) - ui.open() - ui.set_auto_update(1) - /datum/pai_software/med_records/Topic(href, href_list) var/mob/living/silicon/pai/P = usr if(!istype(P)) return @@ -425,6 +402,11 @@ id = "sec_records" toggle = 0 + autoupdate = 1 + template_file = "pai_secrecords.tmpl" + ui_title = "Security Records" + + /datum/pai_software/sec_records/on_ui_data(mob/living/silicon/pai/user, datum/topic_state/state = self_state) var/data[0] @@ -445,14 +427,6 @@ return data -/datum/pai_software/sec_records/on_ui_interact(mob/living/silicon/pai/user, datum/nanoui/ui=null, force_open=1) - ui = nanomanager.try_update_ui(user, user, id, ui, force_open) - if(!ui) - // Don't copy-paste this unless you're making a pAI software module! - ui = new(user, user, id, "pai_secrecords.tmpl", "Security Records", 450, 600) - ui.open() - ui.set_auto_update(1) - /datum/pai_software/sec_records/Topic(href, href_list) var/mob/living/silicon/pai/P = usr if(!istype(P)) return @@ -485,6 +459,12 @@ id = "door_jack" toggle = 0 + autoupdate = 1 + template_file = "pai_doorjack.tmpl" + ui_title = "Door Jack" + ui_width = 300 + ui_height = 150 + /datum/pai_software/door_jack/on_ui_data(mob/living/silicon/pai/user, datum/topic_state/state = self_state) var/data[0] @@ -497,14 +477,6 @@ return data -/datum/pai_software/door_jack/on_ui_interact(mob/living/silicon/pai/user, datum/nanoui/ui=null, force_open=1) - ui = nanomanager.try_update_ui(user, user, id, ui, force_open) - if(!ui) - // Don't copy-paste this unless you're making a pAI software module! - ui = new(user, user, id, "pai_doorjack.tmpl", "Door Jack", 300, 150) - ui.open() - ui.set_auto_update(1) - /datum/pai_software/door_jack/Topic(href, href_list) var/mob/living/silicon/pai/P = usr if(!istype(P)) return @@ -563,6 +535,12 @@ id = "atmos_sense" toggle = 0 + template_file = "pai_atmosphere.tmpl" + ui_title = "Atmosphere Sensor" + ui_width = 350 + ui_height = 300 + + /datum/pai_software/atmosphere_sensor/on_ui_data(mob/living/silicon/pai/user, datum/topic_state/state = self_state) var/data[0] @@ -607,13 +585,6 @@ return data -/datum/pai_software/atmosphere_sensor/on_ui_interact(mob/living/silicon/pai/user, datum/nanoui/ui=null, force_open=1) - ui = nanomanager.try_update_ui(user, user, id, ui, force_open) - if(!ui) - // Don't copy-paste this unless you're making a pAI software module! - ui = new(user, user, id, "pai_atmosphere.tmpl", "Atmosphere Sensor", 350, 300) - ui.open() - /datum/pai_software/sec_hud name = "Security HUD" ram_cost = 20 @@ -682,6 +653,11 @@ id = "signaller" toggle = 0 + template_file = "pai_signaller.tmpl" + ui_title = "Signaller" + ui_width = 320 + ui_height = 150 + /datum/pai_software/signaller/on_ui_data(mob/living/silicon/pai/user, datum/topic_state/state = self_state) var/data[0] @@ -690,13 +666,6 @@ return data -/datum/pai_software/signaller/on_ui_interact(mob/living/silicon/pai/user, datum/nanoui/ui=null, force_open=1) - ui = nanomanager.try_update_ui(user, user, id, ui, force_open) - if(!ui) - // Don't copy-paste this unless you're making a pAI software module! - ui = new(user, user, id, "pai_signaller.tmpl", "Signaller", 320, 150) - ui.open() - /datum/pai_software/signaller/Topic(href, href_list) var/mob/living/silicon/pai/P = usr if(!istype(P)) return @@ -727,6 +696,11 @@ id = "bioscan" toggle = 0 + template_file = "pai_bioscan.tmpl" + ui_title = "Host Bioscan" + ui_width = 400 + ui_height = 350 + /datum/pai_software/host_scan/on_ui_data(mob/living/silicon/pai/user, datum/topic_state/state = self_state) var/data[0] var/mob/living/held = user.loc @@ -752,11 +726,3 @@ data["holder"] = 0 return data - -/datum/pai_software/host_scan/on_ui_interact(mob/living/silicon/pai/user, datum/nanoui/ui=null, force_open=1) - ui = nanomanager.try_update_ui(user, user, id, ui, force_open) - if(!ui) - // Don't copy-paste this unless you're making a pAI software module! - ui = new(user, user, id, "pai_bioscan.tmpl", "Host Bioscan", 400, 350) - ui.open() - //.set_auto_update(1)