From 6bf4e7072747eb0e912ae3df4d62b4665df8aca3 Mon Sep 17 00:00:00 2001 From: Hawk-v3 Date: Sat, 28 Jan 2012 02:40:38 +0000 Subject: [PATCH] Power Control Computer can now remote toggle APC main circuit breakers! Codegift from Newt. --- code/defines/obj/machinery.dm | 23 +++++++++++++---------- code/game/machinery/computer/power.dm | 25 ++++++++++++++++++++++++- 2 files changed, 37 insertions(+), 11 deletions(-) diff --git a/code/defines/obj/machinery.dm b/code/defines/obj/machinery.dm index b305a5525b4..5365249ca45 100644 --- a/code/defines/obj/machinery.dm +++ b/code/defines/obj/machinery.dm @@ -373,16 +373,19 @@ var/lastgen = 0 var/lastgenlev = -1 + /obj/machinery/power/monitor - name = "Power Monitoring Computer" - desc = "Used to monitor the power." - icon = 'computer.dmi' - icon_state = "power" - density = 1 - anchored = 1 - use_power = 2 - idle_power_usage = 20 - active_power_usage = 80 + name = "Power Monitoring Computer" + desc = "Used to monitor the power, and remotely toggle main breakers." + icon = 'computer.dmi' + icon_state = "power" + density = 1 + anchored = 1 + use_power = 2 + idle_power_usage = 20 + active_power_usage = 80 + var/control = 0 + req_access = list(access_engine_equip) /obj/machinery/cell_charger name = "cell charger" @@ -460,4 +463,4 @@ density = 1 anchored = 1.0 var/obj/item/clothing/suit/storage/det_suit/coat - var/obj/item/clothing/head/det_hat/hat \ No newline at end of file + var/obj/item/clothing/head/det_hat/hat diff --git a/code/game/machinery/computer/power.dm b/code/game/machinery/computer/power.dm index 7566e0a6de0..df474f601dd 100644 --- a/code/game/machinery/computer/power.dm +++ b/code/game/machinery/computer/power.dm @@ -1,5 +1,9 @@ // the power monitoring computer // for the moment, just report the status of all APCs in the same powernet + +//Now Supports remote access -- Newt + + /obj/machinery/power/monitor/attack_ai(mob/user) add_fingerprint(user) @@ -41,6 +45,15 @@ A.icon_state = "4" A.anchored = 1 del(src) + if(istype(I, /obj/item/weapon/card/id)||istype(I, /obj/item/device/pda)) + //var/obj/item/weapon/card/id/W = I + if(src.allowed(user)) + src.control = !src.control + user << "You [ control ? "enable" : "disable"] remote APC control." + else + user << "\red Access denied." + + else src.attack_hand(user) return @@ -84,6 +97,10 @@ for(var/obj/machinery/power/apc/A in L) t += copytext(add_tspace(A.area.name, 30), 1, 30) + if(control) + t += " ([A.operating? " On" : "Off"])" + else + t += " ([A.operating? "On " : "Off"])" t += " [S[A.equipment+1]] [S[A.lighting+1]] [S[A.environ+1]] [add_lspace(A.lastused_total, 6)] [A.cell ? "[add_lspace(round(A.cell.percent()), 3)]% [chg[A.charging+1]]" : " N/C"]
" t += "" @@ -101,6 +118,13 @@ if( href_list["update"] ) src.updateDialog() return + if( href_list["breaker"]) + var/obj/machinery/power/apc/APC = locate(href_list["apc"]) + APC.operating = !APC.operating + APC.update() + APC.updateicon() + src.updateDialog() + return /obj/machinery/power/monitor/process() @@ -119,4 +143,3 @@ spawn(rand(0, 15)) src.icon_state = "c_unpowered" stat |= NOPOWER -