diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm
index d48d892a86f..72f83153687 100644
--- a/code/modules/shuttle/shuttle.dm
+++ b/code/modules/shuttle/shuttle.dm
@@ -676,41 +676,41 @@
return
if(!shuttleId)
return
- src.add_fingerprint(usr)
-
connect()
+ add_fingerprint(user)
+ ui_interact(user)
- var/list/options = params2list(possible_destinations)
+/obj/machinery/computer/shuttle/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
var/obj/docking_port/mobile/M = shuttle_master.getShuttle(shuttleId)
- var/dat = "Status: [M ? M.getStatusText() : "*Missing*"]
"
+ ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
+ if(!ui)
+ ui = new(user, src, ui_key, "shuttle_console.tmpl", M ? M.name : "shuttle", 300, 200)
+ ui.open()
+
+/obj/machinery/computer/shuttle/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
+ var/data[0]
+ var/obj/docking_port/mobile/M = shuttle_master.getShuttle(shuttleId)
+ data["status"] = M ? M.getStatusText() : null
if(M)
- var/destination_found
+ data["shuttle"] = 1
+ var/list/docking_ports = list()
+ data["docking_ports"] = docking_ports
+ var/list/options = params2list(possible_destinations)
for(var/obj/docking_port/stationary/S in shuttle_master.stationary)
if(!options.Find(S.id))
continue
if(!M.check_dock(S))
continue
- destination_found = 1
- dat += "Send to [S.name]
"
- if(!destination_found)
- dat += "Shuttle Locked
"
- if(admin_controlled)
- dat += "Authorized personnel only
"
- dat += "Request Authorization
"
- if(docking_request)
- dat += "Request docking at NSS Cyberiad
"
- dat += "Close"
+ docking_ports[++docking_ports.len] = list("name" = S.name, "id" = S.id)
+ data["admin_controlled"] = admin_controlled
+ data["docking_request"] = docking_request
- var/datum/browser/popup = new(user, "computer", M ? M.name : "shuttle", 300, 200)
- popup.set_content("
[dat]")
- popup.set_title_image(usr.browse_rsc_icon(src.icon, src.icon_state))
- popup.open()
+ return data
/obj/machinery/computer/shuttle/Topic(href, href_list)
if(..())
return 1
- usr.set_machine(src)
- src.add_fingerprint(usr)
+
if(!allowed(usr))
to_chat(usr, "Access denied.")
return
@@ -728,7 +728,7 @@
to_chat(usr, "Invalid shuttle requested.")
else
to_chat(usr, "Unable to comply.")
- updateUsrDialog()
+ return 1
/obj/machinery/computer/shuttle/emag_act(mob/user)
if(!emagged)
@@ -760,10 +760,11 @@
to_chat(usr, "Your request has been recieved by Centcom.")
log_admin("[key_name(usr)] requested to move the transport ferry to Centcom.")
message_admins("FERRY: [key_name_admin(usr)] (Move Ferry) is requesting to move the transport ferry to Centcom.")
+ . = 1
+ nanomanager.update_uis(src)
spawn(600) //One minute cooldown
cooldown = 0
-
/obj/machinery/computer/shuttle/ert
name = "specops shuttle console"
//circuit = /obj/item/weapon/circuitboard/ert
@@ -846,6 +847,7 @@ var/global/trade_dockrequest_timelimit = 0
to_chat(usr, "Request sent.")
event_announcement.Announce(docking_request_message, "Docking Request")
trade_dockrequest_timelimit = world.time + 1200 // They have 2 minutes to approve the request.
+ return 1
/obj/machinery/computer/shuttle/trade/sol
req_access = list(access_trade_sol)
diff --git a/nano/templates/shuttle_console.tmpl b/nano/templates/shuttle_console.tmpl
new file mode 100644
index 00000000000..2b16495d522
--- /dev/null
+++ b/nano/templates/shuttle_console.tmpl
@@ -0,0 +1,28 @@
+
+
+
+
Status: {{:data.status ? data.status : '*Missing*'}}
+ {{if data.shuttle}}
+ {{for data.docking_ports}}
+
+
{{:helper.link('Send to ' + value.name, 'sign-out', {'move' : value.id})}}
+
+ {{empty}}
+
Shuttle Locked
+ {{if data.admin_controlled}}
+
Authorized personnel only
+
+
{{:helper.link('Request Authorization', 'share-square-o', {'request' : 1})}}
+
+ {{/if}}
+ {{/for}}
+ {{if data.docking_request}}
+
+
{{:helper.link('Request docking at NSS Cyberiad', 'share-square-o', {'request' : 1})}}
+
+ {{/if}}
+ {{/if}}
+
\ No newline at end of file