mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-05-14 10:51:29 +01:00
c116088213
* access dev tool * debug * basic ui * invalid ids * fix start * lets make that a unittest instead * oop * test that too * oop * death * cleanup * trying to sublist * no idea what i am doing * more stuff * ugh * . * labels * consts * . --------- Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
82 lines
2.1 KiB
Plaintext
82 lines
2.1 KiB
Plaintext
|
|
/*
|
|
Tgui panel for admins editing the access list of various machines.
|
|
*/
|
|
/datum/access_viewer
|
|
var/datum/weakref/focused_obj
|
|
|
|
/datum/access_viewer/Destroy(force)
|
|
focused_obj = null
|
|
. = ..()
|
|
|
|
/datum/access_viewer/tgui_interact(mob/user, datum/tgui/ui)
|
|
ui = SStgui.try_update_ui(user, src, ui)
|
|
if(!ui)
|
|
ui = new(user, src, "AccessViewer", "Access Viewer")
|
|
ui.open()
|
|
|
|
/datum/access_viewer/tgui_state(mob/user)
|
|
return ADMIN_STATE(R_DEBUG)
|
|
|
|
/datum/access_viewer/tgui_act(action, params, datum/tgui/ui)
|
|
if(..() || !check_rights_for(ui.user.client, R_DEBUG))
|
|
return FALSE
|
|
|
|
var/obj/machinery/req_thing = focused_obj?.resolve()
|
|
if(!req_thing)
|
|
return FALSE
|
|
|
|
switch(action)
|
|
if("req_all")
|
|
var/set_id = text2num(params["set_id"])
|
|
if(!set_id)
|
|
return FALSE
|
|
if(!req_thing.req_access)
|
|
req_thing.req_access = list()
|
|
if(set_id in req_thing.req_access)
|
|
req_thing.req_access -= set_id
|
|
else
|
|
req_thing.req_access += set_id
|
|
return TRUE
|
|
|
|
if("req_one")
|
|
var/set_id = text2num(params["set_id"])
|
|
if(!set_id)
|
|
return FALSE
|
|
if(!req_thing.req_one_access)
|
|
req_thing.req_one_access = list()
|
|
if(set_id in req_thing.req_one_access)
|
|
req_thing.req_one_access -= set_id
|
|
else
|
|
req_thing.req_one_access += set_id
|
|
return TRUE
|
|
|
|
/datum/access_viewer/tgui_static_data(mob/user)
|
|
var/list/data = list()
|
|
var/list/access_list = list()
|
|
for(var/datum/access/dat as anything in subtypesof(/datum/access))
|
|
access_list += list(
|
|
list(
|
|
"id" = dat.id,
|
|
"name" = dat.desc,
|
|
"region" = dat.region,
|
|
"access_type" = dat.access_type,
|
|
)
|
|
)
|
|
data["access_list"] = access_list
|
|
return data
|
|
|
|
/datum/access_viewer/tgui_data(mob/user)
|
|
var/list/data = list()
|
|
// Check if the object still exists
|
|
var/obj/machinery/req_thing = focused_obj?.resolve()
|
|
if(req_thing)
|
|
data["name"] = req_thing.name
|
|
data["coords"] = "[req_thing.x].[req_thing.y].[req_thing.z]"
|
|
data["req_access"] = req_thing.req_access ? req_thing.req_access : list()
|
|
data["req_one_access"] = req_thing.req_one_access ? req_thing.req_one_access : list()
|
|
return data
|
|
|
|
/datum/access_viewer/proc/set_access_focus(obj/machinery/req_thing)
|
|
focused_obj = WEAKREF(req_thing)
|