diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index 19e4235007a..dc8fc08b77d 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -32,10 +32,10 @@ if(req_access.len || req_one_access.len) board = new(src) if(req_access.len) - board.conf_access = req_access + board.accesses = req_access else - board.use_one_access = 1 - board.conf_access = req_one_access + board.one_access = 1 + board.accesses = req_one_access if(id && istype(device, /obj/item/device/assembly/control)) var/obj/item/device/assembly/control/A = device @@ -85,10 +85,10 @@ return W.loc = src board = W - if(board.use_one_access) - req_one_access = board.conf_access + if(board.one_access) + req_one_access = board.accesses else - req_access = board.conf_access + req_access = board.accesses user << "You add [W] to the button." if(!device && !board && istype(W, /obj/item/weapon/wrench)) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 3eb9c4243e3..8dd4972fb0e 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -880,10 +880,10 @@ About the new airlock wires panel: if(!electronics) ae = new/obj/item/weapon/electronics/airlock( src.loc ) if(req_one_access) - ae.use_one_access = 1 - ae.conf_access = src.req_one_access + ae.one_access = 1 + ae.accesses = src.req_one_access else - ae.conf_access = src.req_access + ae.accesses = src.req_access else ae = electronics electronics = null diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm index 18def41a7a6..63bce544e72 100644 --- a/code/game/machinery/doors/airlock_electronics.dm +++ b/code/game/machinery/doors/airlock_electronics.dm @@ -1,106 +1,58 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 - /obj/item/weapon/electronics/airlock name = "airlock electronics" req_access = list(access_maint_tunnels) - var/list/conf_access = null - var/use_one_access = 0 //If the door should require ALL or only ONE of the listed accesses. - var/last_configurator = null - var/locked = 1 + var/list/accesses = list() + var/one_access = 0 /obj/item/weapon/electronics/airlock/attack_self(mob/user) - if (!ishuman(user) && !usr.has_unlimited_silicon_privilege) - return ..(user) + if (!user) return + interact(user) - var/mob/living/carbon/human/H = user - if(H.getBrainLoss() >= 60) - return +/obj/item/weapon/electronics/airlock/interact(mob/user) + add_fingerprint(user) + ui_interact(user) - var/t1 = text("") +/obj/item/weapon/electronics/airlock/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, force_open = 0) + SSnano.try_update_ui(user, src, ui_key, ui, force_open = force_open) + if (!ui) + ui = new(user, src, ui_key, "airlock_electronics.tmpl", name, 975, 415, state = hands_state) + ui.open() +/obj/item/weapon/electronics/airlock/get_ui_data() + var/list/data = list() + var/list/regions = list() - if (last_configurator) - t1 += "Operator: [last_configurator]
" + for(var/i in 1 to 7) + var/list/region = list() + var/list/accesses = list() + for(var/j in get_region_accesses(i)) + var/list/access = list() + access["name"] = get_access_desc(j) + access["id"] = j + access["req"] = (j in src.accesses) + accesses[++accesses.len] = access + region["name"] = get_region_accesses_name(i) + region["accesses"] = accesses + regions[++regions.len] = region + data["regions"] = regions + data["oneAccess"] = one_access - if (locked) - t1 += "Swipe ID
" - else - t1 += "Lock Interface
" - - if(use_one_access) - t1 += "Restriction Type: At least one access required
" - else - t1 += "Restriction Type: All accesses required
" - - t1 += "Remove All
" - - var/accesses = "" - accesses += "
Access
" - accesses += "" - accesses += "" - for(var/i = 1; i <= 7; i++) - accesses += "" - accesses += "" - for(var/i = 1; i <= 7; i++) - accesses += "" - accesses += "
[get_region_accesses_name(i)]:
" - for(var/A in get_region_accesses(i)) - if(A in conf_access) - accesses += "[replacetext(get_access_desc(A), " ", " ")] " - else - accesses += "[replacetext(get_access_desc(A), " ", " ")] " - accesses += "
" - accesses += "
" - t1 += "[accesses]" - - t1 += text("

Close

\n", src) - - var/datum/browser/popup = new(user, "airlock_electronics", "Access Control", 900, 500) - popup.set_content(t1) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) - popup.open() - onclose(user, "airlock") + return data /obj/item/weapon/electronics/airlock/Topic(href, href_list) - ..() - if (usr.stat || usr.restrained() || (!ishuman(usr) && !usr.has_unlimited_silicon_privilege)) - return - if (href_list["close"]) - usr << browse(null, "window=airlock") + if(..()) return - if (href_list["login"]) - if(allowed(usr)) - src.locked = 0 - src.last_configurator = usr.name - - if (locked) - return - - if (href_list["logout"]) - locked = 1 - - if (href_list["access"]) - toggle_access(href_list["access"]) - - attack_self(usr) - -/obj/item/weapon/electronics/airlock/proc/toggle_access(acc) - if (acc == "all") - conf_access = null - else if(acc == "one") - use_one_access = !use_one_access - else - var/req = text2num(acc) - - if (conf_access == null) - conf_access = list() - - if (!(req in conf_access)) - conf_access += req + if(href_list["access"]) + if(href_list["access"] == "clear") + accesses = list() + one_access = 0 + else if(href_list["access"] == "one") + one_access = !one_access else - conf_access -= req - if (!conf_access.len) - conf_access = null - + var/access = text2num(href_list["access"]) + if (!(access in accesses)) + accesses += access + else + accesses -= access diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 1ca5d29b760..adfa82be9b0 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -311,10 +311,10 @@ if(!electronics) ae = new/obj/item/weapon/electronics/airlock( src.loc ) if(req_one_access) - ae.use_one_access = 1 - ae.conf_access = src.req_one_access + ae.one_access = 1 + ae.accesses = src.req_one_access else - ae.conf_access = src.req_access + ae.accesses = src.req_access else ae = electronics electronics = null diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm index 45d48b4fb1c..3ea0df9e3c4 100644 --- a/code/game/objects/items/weapons/RCD.dm +++ b/code/game/objects/items/weapons/RCD.dm @@ -34,8 +34,6 @@ RCD var/list/conf_access = null var/use_one_access = 0 //If the airlock should require ALL or only ONE of the listed accesses. - var/last_configurator = null - var/locked = 1 /* Construction costs */ @@ -82,39 +80,32 @@ RCD var/t1 = text("") - if (last_configurator) - t1 += "Operator: [last_configurator]
" - if (locked) - t1 += "Swipe ID
" + if(use_one_access) + t1 += "Restriction Type: At least one access required
" else - t1 += "Lock Interface
" + t1 += "Restriction Type: All accesses required
" - if(use_one_access) - t1 += "Restriction Type: At least one access required
" - else - t1 += "Restriction Type: All accesses required
" + t1 += "Remove All
" - t1 += "Remove All
" - - var/accesses = "" - accesses += "
Access
" - accesses += "" - accesses += "" - for(var/i = 1; i <= 7; i++) - accesses += "" - accesses += "" - for(var/i = 1; i <= 7; i++) - accesses += "" - accesses += "
[get_region_accesses_name(i)]:
" - for(var/A in get_region_accesses(i)) - if(A in conf_access) - accesses += "[replacetext(get_access_desc(A), " ", " ")] " - else - accesses += "[replacetext(get_access_desc(A), " ", " ")] " - accesses += "
" - accesses += "
" - t1 += "[accesses]" + var/accesses = "" + accesses += "
Access
" + accesses += "" + accesses += "" + for(var/i = 1; i <= 7; i++) + accesses += "" + accesses += "" + for(var/i = 1; i <= 7; i++) + accesses += "" + accesses += "
[get_region_accesses_name(i)]:
" + for(var/A in get_region_accesses(i)) + if(A in conf_access) + accesses += "[replacetext(get_access_desc(A), " ", " ")] " + else + accesses += "[replacetext(get_access_desc(A), " ", " ")] " + accesses += "
" + accesses += "
" + t1 += "[accesses]" t1 += text("

Close

\n", src) @@ -132,17 +123,6 @@ RCD usr << browse(null, "window=airlock") return - if (href_list["login"]) - if(allowed(usr)) - src.locked = 0 - src.last_configurator = usr.name - - if (locked) - return - - if (href_list["logout"]) - locked = 1 - if (href_list["access"]) toggle_access(href_list["access"]) @@ -364,15 +344,13 @@ RCD T.electronics = new/obj/item/weapon/electronics/airlock( src.loc ) if(conf_access) - T.electronics.conf_access = conf_access.Copy() - T.electronics.use_one_access = use_one_access - T.electronics.last_configurator = last_configurator - T.electronics.locked = locked + T.electronics.accesses = conf_access.Copy() + T.electronics.one_access = use_one_access - if(T.electronics.use_one_access) - T.req_one_access = T.electronics.conf_access + if(T.electronics.one_access) + T.req_one_access = T.electronics.accesses else - T.req_access = T.electronics.conf_access + T.req_access = T.electronics.accesses if(!T.checkForMultipleDoors()) qdel(T) diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm index 4f7d765d7c0..58e8c3f2a7b 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -212,10 +212,10 @@ if(electronics) electronics.loc = display display.electronics = electronics - if(electronics.use_one_access) - display.req_one_access = electronics.conf_access + if(electronics.one_access) + display.req_one_access = electronics.accesses else - display.req_access = electronics.conf_access + display.req_access = electronics.accesses qdel(src) return return diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index d1c53fa6d5f..bc35014c522 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -636,10 +636,10 @@ //door.req_access = src.req_access door.electronics = src.electronics door.heat_proof = src.heat_proof_finished - if(src.electronics.use_one_access) - door.req_one_access = src.electronics.conf_access + if(src.electronics.one_access) + door.req_one_access = src.electronics.accesses else - door.req_access = src.electronics.conf_access + door.req_access = src.electronics.accesses if(created_name) door.name = created_name src.electronics.loc = door diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm index ba1f9b119cd..b401cc5a137 100644 --- a/code/game/objects/structures/windoor_assembly.dm +++ b/code/game/objects/structures/windoor_assembly.dm @@ -266,10 +266,10 @@ windoor.dir = dir windoor.density = 0 - if(electronics.use_one_access) - windoor.req_one_access = electronics.conf_access + if(electronics.one_access) + windoor.req_one_access = electronics.accesses else - windoor.req_access = electronics.conf_access + windoor.req_access = electronics.accesses windoor.electronics = electronics electronics.loc = windoor if(created_name) @@ -289,7 +289,7 @@ windoor.dir = dir windoor.density = 0 - windoor.req_access = electronics.conf_access + windoor.req_access = electronics.accesses windoor.electronics = electronics electronics.loc = windoor if(created_name) diff --git a/code/modules/nano/nanoui.dm b/code/modules/nano/nanoui.dm index df729f2a726..fb92e046495 100644 --- a/code/modules/nano/nanoui.dm +++ b/code/modules/nano/nanoui.dm @@ -361,9 +361,10 @@ var/url_parameters_json = list2json(list("src" = "\ref[src]")) return {" - + - + +