diff --git a/code/datums/cache/apc.dm b/code/datums/cache/apc.dm
index e6dc996827b..f50b0a8e121 100644
--- a/code/datums/cache/apc.dm
+++ b/code/datums/cache/apc.dm
@@ -18,10 +18,10 @@ var/global/datum/repository/apc/apc_repository = new()
var/obj/machinery/power/apc/A = term.master
L += A
- var/list/Status = list(0,0,1,1) // Status: off, auto-off, on, auto-on
- var/list/chg = list(0,1,1) // Charging: no, charging, full
+ var/list/Status = list("Off","AOff","On","AOn") // Status: off, auto-off, on, auto-on
+ var/list/chg = list("N","C","F") // Charging: no, charging, full
for(var/obj/machinery/power/apc/A in L)
- apcData[++apcData.len] = list("Name" = html_encode(A.area.name), "Equipment" = Status[A.equipment+1], "Lights" = Status[A.lighting+1], "Environment" = Status[A.environ+1], "CellPct" = A.cell ? round(A.cell.percent(),1) : -1, "CellStatus" = A.cell ? chg[A.charging+1] : 0)
+ apcData[++apcData.len] = list("Name" = html_encode(A.area.name), "Equipment" = Status[A.equipment+1], "Lights" = Status[A.lighting+1], "Environment" = Status[A.environ+1], "CellPct" = A.cell ? round(A.cell.percent(),1) : "M", "CellStatus" = A.cell ? chg[A.charging+1] : "M", "Load" = round(A.lastused_total,1))
cache_entry.timestamp = world.time + 5 SECONDS
cache_entry.data = apcData
diff --git a/code/game/machinery/computer/power.dm b/code/game/machinery/computer/power.dm
index 50a37483526..55cf68c3234 100644
--- a/code/game/machinery/computer/power.dm
+++ b/code/game/machinery/computer/power.dm
@@ -14,9 +14,12 @@
/obj/machinery/computer/monitor/New()
..()
power_monitor = new(src)
- powernet = find_powernet()
powermonitor_repository.update_cache()
+/obj/machinery/computer/monitor/initialize()
+ ..()
+ powernet = find_powernet()
+
/obj/machinery/computer/monitor/Destroy()
if (src in machines) // So the cache can properly update
removeAtProcessing()
@@ -27,11 +30,6 @@
..()
powermonitor_repository.update_cache()
-/obj/machinery/computer/monitor/process()
- if(!powernet)
- powernet = find_powernet()
- ..()
-
/obj/machinery/computer/monitor/proc/find_powernet()
var/obj/structure/cable/attached = null
var/turf/T = loc
diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm
index 4b69fd2dd6d..e44fb712774 100644
--- a/code/game/objects/items/devices/PDA/cart.dm
+++ b/code/game/objects/items/devices/PDA/cart.dm
@@ -289,6 +289,7 @@
values["powerconnected"] = 1
values["poweravail"] = powmonitor.powernet.avail
values["powerload"] = num2text(powmonitor.powernet.viewload,10)
+ values["powerdemand"] = powmonitor.powernet.load
values["apcs"] = apc_repository.apc_data(powmonitor)
else
values["powerconnected"] = 0
diff --git a/code/modules/nano/modules/power_monitor.dm b/code/modules/nano/modules/power_monitor.dm
index 1bcf9bc2176..73651c7835d 100644
--- a/code/modules/nano/modules/power_monitor.dm
+++ b/code/modules/nano/modules/power_monitor.dm
@@ -25,6 +25,7 @@
return
data["poweravail"] = powermonitor.powernet.avail
data["powerload"] = num2text(powermonitor.powernet.viewload,10)
+ data["powerdemand"] = powermonitor.powernet.load
data["apcs"] = apc_repository.apc_data(powermonitor)
ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open)
diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm
index 44a4eda8612..083fe7009c2 100644
--- a/code/modules/power/power.dm
+++ b/code/modules/power/power.dm
@@ -44,6 +44,12 @@
return powernet.avail
else
return 0
+
+/obj/machinery/power/proc/load()
+ if(powernet)
+ return powernet.load
+ else
+ return 0
/obj/machinery/power/proc/disconnect_terminal() // machines without a terminal will just return, no harm no fowl.
return
diff --git a/nano/templates/pda.tmpl b/nano/templates/pda.tmpl
index 35a7d9e57bb..8b2920bb23b 100644
--- a/nano/templates/pda.tmpl
+++ b/nano/templates/pda.tmpl
@@ -535,7 +535,15 @@ Used In File(s): \code\game\objects\items\devices\PDA\PDA.dm
{{if data.records.powerconnected == 1}}
- Current Load:
+ Total Power:
+
+
+ {{:data.records.poweravail}} W
+
+
+
+
+ Total Load:
{{:data.records.powerload}} W
@@ -543,24 +551,22 @@ Used In File(s): \code\game\objects\items\devices\PDA\PDA.dm
- Total Power:
+ Total Demand:
- {{:data.records.poweravail}} W
+ {{:data.records.powerdemand}} W
-
-
- {{for data.records.apcs}}
- {{if index % 20 === 0}}
- | Area | Eqp. | Lgt. | Env | Cell |
- {{/if}}
- | {{:value.Name}} |
- {{:helper.string(' | ', value.Equipment==1 ? '#4f7529' : '#8f1414')}}
- {{:helper.string(' | ', value.Lights==1 ? '#4f7529' : '#8f1414')}}
- {{:helper.string(' | ', value.Environment==1 ? '#4f7529' : '#8f1414')}}
- {{:helper.string('{1} | ', value.CellStatus==1 ? '#4f7529' : '#8f1414', value.CellStatus==-1 ? 'No Cell' : value.CellPct + '%')}}
+
+ | Area | Equip. | Lighting | Environ. | Cell | Load |
+ {{for data.records.apcs}}
+ | {{:value.Name}} |
+ {{:helper.string('{1} | ', value.Equipment == "On" || value.Equipment == "AOn" ? '#4f7529' : '#8f1414', value.Equipment)}}
+ {{:helper.string('{1} | ', value.Lights == "On" || value.Lights == "AOn" ? '#4f7529' : '#8f1414', value.Lights)}}
+ {{:helper.string('{1} | ', value.Environment == "On" || value.Environment == "AOn" ? '#4f7529' : '#8f1414', value.Environment)}}
+ {{:helper.string('{1}{2} | ', value.CellStatus == "F" ? '#4f7529' : value.CellStatus == "C" ? '#cd6500' : '#8f1414', value.CellStatus == "M" ? 'No Cell' : value.CellPct + '%', value.CellStatus == "M" ? '' : ' (' + value.CellStatus + ')')}}
+ {{:value.Load}}W |
{{/for}}
diff --git a/nano/templates/power_monitor.tmpl b/nano/templates/power_monitor.tmpl
index 8adf7f7ed72..af19740ce26 100644
--- a/nano/templates/power_monitor.tmpl
+++ b/nano/templates/power_monitor.tmpl
@@ -21,14 +21,6 @@ Used In File(s): \code\modules\nano\modules\power_monitor.dm
{{:helper.link('Return', 'gear', { 'return' : 1 }, null, null)}}
{{/if}}
Powernet Status
-
-
- Current Load:
-
-
- {{:data.powerload}} W
-
-
Total Power:
@@ -38,14 +30,31 @@ Used In File(s): \code\modules\nano\modules\power_monitor.dm
-
- | Area | Equip. | Lighting | Environ. | Cell |
+
+ Total Load:
+
+
+ {{:data.powerload}} W
+
+
+
+
+ Total Demand:
+
+
+ {{:data.powerdemand}} W
+
+
+
+
+ | Area | Equip. | Lighting | Environ. | Cell | Load |
{{for data.apcs}}
- | {{:value.Name}} |
- {{:helper.string(' | ', value.Equipment == 1 ? '#4f7529' : '#8f1414')}}
- {{:helper.string(' | ', value.Lights == 1 ? '#4f7529' : '#8f1414')}}
- {{:helper.string(' | ', value.Environment == 1 ? '#4f7529' : '#8f1414')}}
- {{:helper.string('{1} | ', value.CellStatus == 1 ? '#4f7529' : '#8f1414', value.CellStatus == -1 ? 'No Cell' : value.CellPct + '%')}}
+
| {{:value.Name}} |
+ {{:helper.string('{1} | ', value.Equipment == "On" || value.Equipment == "AOn" ? '#4f7529' : '#8f1414', value.Equipment)}}
+ {{:helper.string('{1} | ', value.Lights == "On" || value.Lights == "AOn" ? '#4f7529' : '#8f1414', value.Lights)}}
+ {{:helper.string('{1} | ', value.Environment == "On" || value.Environment == "AOn" ? '#4f7529' : '#8f1414', value.Environment)}}
+ {{:helper.string('{1}{2} | ', value.CellStatus == "F" ? '#4f7529' : value.CellStatus == "C" ? '#cd6500' : '#8f1414', value.CellStatus == "M" ? 'No Cell' : value.CellPct + '%', value.CellStatus == "M" ? '' : ' (' + value.CellStatus + ')')}}
+ {{:value.Load}}W |
{{/for}}