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}} - - {{/if}} - - {{:helper.string('', value.Equipment==1 ? '#4f7529' : '#8f1414')}} - {{:helper.string('', value.Lights==1 ? '#4f7529' : '#8f1414')}} - {{:helper.string('', value.Environment==1 ? '#4f7529' : '#8f1414')}} - {{:helper.string('', value.CellStatus==1 ? '#4f7529' : '#8f1414', value.CellStatus==-1 ? 'No Cell' : value.CellPct + '%')}} +
 Area  Eqp.  Lgt.  Env  Cell 
{{:value.Name}}   {1}
+ + {{for data.records.apcs}} + + {{:helper.string('', value.Equipment == "On" || value.Equipment == "AOn" ? '#4f7529' : '#8f1414', value.Equipment)}} + {{:helper.string('', value.Lights == "On" || value.Lights == "AOn" ? '#4f7529' : '#8f1414', value.Lights)}} + {{:helper.string('', value.Environment == "On" || value.Environment == "AOn" ? '#4f7529' : '#8f1414', value.Environment)}} + {{:helper.string('', value.CellStatus == "F" ? '#4f7529' : value.CellStatus == "C" ? '#cd6500' : '#8f1414', value.CellStatus == "M" ? 'No Cell' : value.CellPct + '%', value.CellStatus == "M" ? '' : ' (' + value.CellStatus + ')')}} + {{/for}}
AreaEquip.LightingEnviron.CellLoad
{{:value.Name}}{1}{1}{1}{1}{2}{{:value.Load}}W
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
- - +
+ Total Load: +
+
+ {{:data.powerload}} W +
+ +
+
+ Total Demand: +
+
+ {{:data.powerdemand}} W +
+
+
+
AreaEquip.LightingEnviron.Cell
+ {{for data.apcs}} - - {{:helper.string('', value.Equipment == 1 ? '#4f7529' : '#8f1414')}} - {{:helper.string('', value.Lights == 1 ? '#4f7529' : '#8f1414')}} - {{:helper.string('', value.Environment == 1 ? '#4f7529' : '#8f1414')}} - {{:helper.string('', value.CellStatus == 1 ? '#4f7529' : '#8f1414', value.CellStatus == -1 ? 'No Cell' : value.CellPct + '%')}} + + {{:helper.string('', value.Equipment == "On" || value.Equipment == "AOn" ? '#4f7529' : '#8f1414', value.Equipment)}} + {{:helper.string('', value.Lights == "On" || value.Lights == "AOn" ? '#4f7529' : '#8f1414', value.Lights)}} + {{:helper.string('', value.Environment == "On" || value.Environment == "AOn" ? '#4f7529' : '#8f1414', value.Environment)}} + {{:helper.string('', value.CellStatus == "F" ? '#4f7529' : value.CellStatus == "C" ? '#cd6500' : '#8f1414', value.CellStatus == "M" ? 'No Cell' : value.CellPct + '%', value.CellStatus == "M" ? '' : ' (' + value.CellStatus + ')')}} + {{/for}}
AreaEquip.LightingEnviron.CellLoad
{{:value.Name}}   {1}
{{:value.Name}}{1}{1}{1}{1}{2}{{:value.Load}}W