Merge pull request #6514 from davipatury/shuttle-ui

Shuttle Console Nano-UI-ification
This commit is contained in:
Crazy Lemon
2017-02-20 19:55:29 -08:00
committed by GitHub
2 changed files with 65 additions and 25 deletions
+28 -25
View File
@@ -174,7 +174,7 @@
*/
/obj/docking_port/stationary/transit
name = "In Transit"
name = "In transit"
turf_type = /turf/space/transit
lock_shuttle_doors = 1
@@ -183,7 +183,7 @@
if(!..())
return 0
name = "In Transit" //This looks weird, but- it means that the on-map instances can be named something actually usable to search for, but still appear correctly in terminals.
name = "In transit" //This looks weird, but- it means that the on-map instances can be named something actually usable to search for, but still appear correctly in terminals.
shuttle_master.transit += src
return 1
@@ -676,41 +676,42 @@
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*"]<br><br>"
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 += "<A href='?src=[UID()];move=[S.id]'>Send to [S.name]</A><br>"
if(!destination_found)
dat += "<B>Shuttle Locked</B><br>"
if(admin_controlled)
dat += "Authorized personnel only<br>"
dat += "<A href='?src=[UID()];request=1]'>Request Authorization</A><br>"
if(docking_request)
dat += "<A href='?src=[UID()];request=1]'>Request docking at NSS Cyberiad</A><br>"
dat += "<a href='?src=[user.UID()];mach_close=computer'>Close</a>"
docking_ports[++docking_ports.len] = list("name" = S.name, "id" = S.id)
data["docking_ports_len"] = docking_ports.len
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("<center>[dat]</center>")
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, "<span class='danger'>Access denied.</span>")
return
@@ -728,7 +729,7 @@
to_chat(usr, "<span class='warning'>Invalid shuttle requested.</span>")
else
to_chat(usr, "<span class='notice'>Unable to comply.</span>")
updateUsrDialog()
return 1
/obj/machinery/computer/shuttle/emag_act(mob/user)
if(!emagged)
@@ -760,10 +761,11 @@
to_chat(usr, "<span class='notice'>Your request has been recieved by Centcom.</span>")
log_admin("[key_name(usr)] requested to move the transport ferry to Centcom.")
message_admins("<b>FERRY: <font color='blue'>[key_name_admin(usr)] (<A HREF='?_src_=holder;secretsfun=moveferry'>Move Ferry</a>)</b> is requesting to move the transport ferry to Centcom.</font>")
. = 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 +848,7 @@ var/global/trade_dockrequest_timelimit = 0
to_chat(usr, "<span class='notice'>Request sent.</span>")
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)