Merge pull request #6051 from Crazylemon64/pai_ui_fix

Fixes pAI UIs
This commit is contained in:
Fox McCloud
2017-01-06 03:08:27 -05:00
committed by GitHub
67 changed files with 633 additions and 623 deletions
@@ -24,7 +24,7 @@
ui.open()
ui.set_auto_update(1)
/obj/machinery/computer/artillerycontrol/ui_data(mob/user, datum/topic_state/state = default_state)
/obj/machinery/computer/artillerycontrol/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
var/data[0]
var/time_to_wait = round(reload_cooldown - ((world.time / 10) - last_fire), 1)
+1 -1
View File
@@ -514,7 +514,7 @@
ui.open()
ui.set_auto_update(1)
/obj/item/weapon/rig/ui_data(mob/user, datum/topic_state/state = inventory_state)
/obj/item/weapon/rig/ui_data(mob/user, ui_key = "main", datum/topic_state/state = inventory_state)
var/data[0]
data["primarysystem"] = null
+1 -1
View File
@@ -83,7 +83,7 @@
ui = new(user, src, ui_key, "accounts_terminal.tmpl", src.name, 400, 640)
ui.open()
/obj/machinery/computer/account_database/ui_data(mob/user, datum/topic_state/state = default_state)
/obj/machinery/computer/account_database/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
var/data[0]
data["src"] = UID()
@@ -322,7 +322,7 @@
ui = new(user, src, ui_key, "smartfridge.tmpl", name, 400, 500)
ui.open()
/obj/machinery/smartfridge/ui_data(mob/user, datum/topic_state/state = default_state)
/obj/machinery/smartfridge/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
var/data[0]
data["contents"] = null
+2 -2
View File
@@ -166,7 +166,7 @@
ui.open()
ui.set_auto_update(1)
/obj/machinery/botany/extractor/ui_data(mob/user, datum/topic_state/state = default_state)
/obj/machinery/botany/extractor/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
var/data[0]
var/list/geneMasks[0]
@@ -318,7 +318,7 @@
ui.open()
ui.set_auto_update(1)
/obj/machinery/botany/editor/ui_data(mob/user, datum/topic_state/state = default_state)
/obj/machinery/botany/editor/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
var/data[0]
data["activity"] = active
@@ -114,8 +114,6 @@
C.toff = 1
..()
/mob/living/silicon/pai/Login()
..()
// this function shows the information about being silenced as a pAI in the Status panel
/mob/living/silicon/pai/proc/show_silenced()
@@ -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)
@@ -53,9 +58,15 @@ var/global/list/default_pai_software = list()
ui.open()
ui.set_auto_update(1)
/mob/living/silicon/pai/ui_data(mob/user, datum/topic_state/state = self_state)
/mob/living/silicon/pai/ui_data(mob/user, ui_key = "main", datum/topic_state/state = self_state)
var/data[0]
if(ui_key != "main")
var/datum/pai_software/S = software[ui_key]
if(S && !S.toggle)
return S.on_ui_data(user, state)
log_runtime(EXCEPTION("Unrecognized/invalid pAI UI state '[ui_key]'"), src)
return
// Software we have bought
var/bought_software[0]
// Software we have not bought
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -62,7 +62,7 @@
ui.open()
ui.set_auto_update(1)
/datum/nano_module/alarm_monitor/ui_data(mob/user, datum/topic_state/state = default_state)
/datum/nano_module/alarm_monitor/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
var/data[0]
var/categories[0]
+1 -1
View File
@@ -39,7 +39,7 @@
ui.set_auto_update(1)
ui_ref = ui
/datum/nano_module/atmos_control/ui_data(mob/user, datum/topic_state/state = default_state)
/datum/nano_module/atmos_control/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
var/data[0]
data["alarms"] = air_alarm_repository.air_alarm_data(monitored_alarms)
return data
+1 -1
View File
@@ -31,7 +31,7 @@
// should make the UI auto-update; doesn't seem to?
ui.set_auto_update(1)
/datum/nano_module/crew_monitor/ui_data(mob/user, datum/topic_state/state = default_state)
/datum/nano_module/crew_monitor/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
var/data[0]
var/turf/T = get_turf(nano_host())
@@ -217,7 +217,7 @@
ui.open()
ui.set_auto_update(1)
/datum/nano_module/appearance_changer/ui_data(mob/user, datum/topic_state/state = default_state)
/datum/nano_module/appearance_changer/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
generate_data(check_whitelist, whitelist, blacklist)
var/data[0]
+1 -1
View File
@@ -154,7 +154,7 @@
ui.open()
ui.set_auto_update(1)
/datum/nano_module/law_manager/ui_data(mob/user, datum/topic_state/state = default_state)
/datum/nano_module/law_manager/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
var/data[0]
owner.lawsync()
+1 -1
View File
@@ -18,7 +18,7 @@
ui.open()
ui.set_auto_update(1)
/datum/nano_module/power_monitor/ui_data(mob/user, datum/topic_state/state = default_state)
/datum/nano_module/power_monitor/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
var/data[0]
data["powermonitor"] = powermonitor
+2 -1
View File
@@ -44,11 +44,12 @@
* The ui_data proc is used to get data for the interface
*
* @param user /mob The mob who is viewing this ui
* @param ui_key string A string key to use for this ui. Allows for multiple unique uis on one obj/mob (defaut value "main")
* @param state /datum/topic_state Current topic state of the UI
*
* @return list()
*/
/datum/proc/ui_data(mob/user, datum/topic_state/state = default_state)
/datum/proc/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
return list()
// Used by the Nano UI Manager (/datum/nanomanager) to track UIs opened by this mob
+1 -1
View File
@@ -23,7 +23,7 @@
ui = get_open_ui(user, src_object, ui_key)
if(!isnull(ui))
var/data = src_object.ui_data(user, ui.state) // Get data from src_object.
var/data = src_object.ui_data(user, ui_key, ui.state) // Get data from src_object.
if(!force_open)
ui.push_data(data)
else
+1 -1
View File
@@ -415,7 +415,7 @@ nanoui is used to open and update nano browser uis
return
if(!initial_data)
set_initial_data(src_object.ui_data(user, state)) // Get the UI data.
set_initial_data(src_object.ui_data(user, ui_key, state)) // Get the UI data.
user << browse(get_html(), "window=[window_id];[window_size][window_options]")
winset(user, "mapwindow.map", "focus=true") // return keyboard focus to map
+1 -1
View File
@@ -62,7 +62,7 @@ var/list/alldepartments = list()
ui = new(user, src, ui_key, "faxmachine.tmpl", "Fax Machine UI", 540, 450)
ui.open()
/obj/machinery/photocopier/faxmachine/ui_data(mob/user, datum/topic_state/state = default_state)
/obj/machinery/photocopier/faxmachine/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
var/data[0]
if(scan)
+1 -1
View File
@@ -129,7 +129,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
// auto update every Master Controller tick
ui.set_auto_update(auto_update)
/obj/item/device/pda/ui_data(mob/user, datum/topic_state/state = inventory_state)
/obj/item/device/pda/ui_data(mob/user, ui_key = "main", datum/topic_state/state = inventory_state)
var/data[0]
data["owner"] = owner // Who is your daddy...
+1 -1
View File
@@ -787,7 +787,7 @@
// Auto update every Master Controller tick
ui.set_auto_update(1)
/obj/machinery/power/apc/ui_data(mob/user, datum/topic_state/state = default_state)
/obj/machinery/power/apc/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
var/data[0]
data["locked"] = is_locked(user)
data["isOperating"] = operating
+1 -1
View File
@@ -327,7 +327,7 @@
ui.open()
ui.set_auto_update(1)
/obj/machinery/power/port_gen/pacman/ui_data(mob/user, datum/topic_state/state = default_state)
/obj/machinery/power/port_gen/pacman/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
var/data[0]
data["active"] = active
+1 -1
View File
@@ -375,7 +375,7 @@
// auto update every Master Controller tick
ui.set_auto_update(1)
/obj/machinery/power/smes/ui_data(mob/user, datum/topic_state/state = default_state)
/obj/machinery/power/smes/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
var/data[0]
data["nameTag"] = name_tag
+1 -1
View File
@@ -395,7 +395,7 @@
ui.open()
ui.set_auto_update(1)
/obj/machinery/power/solar_control/ui_data(mob/user, datum/topic_state/state = default_state)
/obj/machinery/power/solar_control/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
var/data[0]
data["generated"] = round(lastgen)
@@ -265,7 +265,7 @@
ui.open()
ui.set_auto_update(1)
/obj/machinery/power/supermatter_shard/ui_data(mob/user, datum/topic_state/state = default_state)
/obj/machinery/power/supermatter_shard/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
var/data[0]
data["integrity_percentage"] = round(get_integrity())
@@ -121,7 +121,7 @@
// open the new ui window
ui.open()
/obj/machinery/chem_dispenser/ui_data(mob/user, datum/topic_state/state = default_state)
/obj/machinery/chem_dispenser/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
var/data[0]
data["amount"] = amount
@@ -136,7 +136,7 @@
ui = new(user, src, ui_key, "chem_heater.tmpl", "ChemHeater", 350, 270)
ui.open()
/obj/machinery/chem_heater/ui_data(mob/user, datum/topic_state/state = default_state)
/obj/machinery/chem_heater/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
var/data[0]
data["targetTemp"] = desired_temp
@@ -328,7 +328,7 @@
ui = new(user, src, ui_key, "chem_master.tmpl", name, 575, 400)
ui.open()
/obj/machinery/chem_master/ui_data(mob/user, datum/topic_state/state = default_state)
/obj/machinery/chem_master/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
var/data[0]
data["condi"] = condi
+1 -1
View File
@@ -247,7 +247,7 @@
ui.open()
ui.set_auto_update(1)
/obj/machinery/disposal/ui_data(mob/user, datum/topic_state/state = default_state)
/obj/machinery/disposal/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
var/data[0]
var/pressure = Clamp(100* air_contents.return_pressure() / (SEND_PRESSURE), 0, 100)
+1 -1
View File
@@ -652,7 +652,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
ui = new(user, src, ui_key, "r_n_d.tmpl", src.name, 800, 550)
ui.open()
/obj/machinery/computer/rdconsole/ui_data(mob/user, datum/topic_state/state = default_state)
/obj/machinery/computer/rdconsole/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
var/data[0]
files.RefreshResearch()
@@ -126,7 +126,7 @@
// auto update every Master Controller tick
ui.set_auto_update(1)
/obj/machinery/radiocarbon_spectrometer/ui_data(mob/user, datum/topic_state/state = default_state)
/obj/machinery/radiocarbon_spectrometer/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
var/data[0]
data["scanned_item"] = (scanned_item ? scanned_item.name : "")
data["scanned_item_desc"] = (scanned_item ? (scanned_item.desc ? scanned_item.desc : "No information on record.") : "")
@@ -75,7 +75,7 @@
ui = new(user, src, ui_key, "keycard_auth.tmpl", "Keycard Authentication Device UI", 540, 320)
ui.open()
/obj/machinery/keycard_auth/ui_data(mob/user, datum/topic_state/state = default_state)
/obj/machinery/keycard_auth/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
var/data[0]
data["screen"] = screen
data["event"] = event
+2 -2
View File
@@ -430,7 +430,7 @@
ui = new(user, src, ui_key, "order_console.tmpl", name, ORDER_SCREEN_WIDTH, ORDER_SCREEN_HEIGHT)
ui.open()
/obj/machinery/computer/ordercomp/ui_data(mob/user, datum/topic_state/state = default_state)
/obj/machinery/computer/ordercomp/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
var/data[0]
data["last_viewed_group"] = last_viewed_group
@@ -579,7 +579,7 @@
ui = new(user, src, ui_key, "supply_console.tmpl", name, SUPPLY_SCREEN_WIDTH, SUPPLY_SCREEN_HEIGHT)
ui.open()
/obj/machinery/computer/supplycomp/ui_data(mob/user, datum/topic_state/state = default_state)
/obj/machinery/computer/supplycomp/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
var/data[0]
data["last_viewed_group"] = last_viewed_group