|
9 | 9 | light_color = LIGHT_COLOR_ORANGE
|
10 | 10 | circuit = /obj/item/circuitboard/powermonitor
|
11 | 11 | var/datum/powernet/powernet = null
|
12 |
| - var/datum/nano_module/power_monitor/power_monitor |
| 12 | + var/datum/tgui_module/power_monitor/power_monitor |
| 13 | + /// Will this monitor be hidden from viewers? |
13 | 14 | var/is_secret_monitor = FALSE
|
| 15 | + /// How many records to keep of supply and demand |
| 16 | + var/record_size = 60 |
| 17 | + /// Interval between power snapshots |
| 18 | + var/record_interval = 5 SECONDS |
| 19 | + /// Time to next record power |
| 20 | + var/next_record = 0 |
| 21 | + /// The history list itself of the power |
| 22 | + var/list/history = list() |
14 | 23 |
|
15 | 24 | /obj/machinery/computer/monitor/secret //Hides the power monitor (such as ones on ruins & CentCom) from PDA's to prevent metagaming.
|
16 | 25 | name = "outdated power monitoring console"
|
|
28 | 37 | ..()
|
29 | 38 | GLOB.powermonitor_repository.update_cache()
|
30 | 39 | powernet = find_powernet()
|
| 40 | + history["supply"] = list() |
| 41 | + history["demand"] = list() |
31 | 42 |
|
32 | 43 | /obj/machinery/computer/monitor/Destroy()
|
33 | 44 | GLOB.power_monitors -= src
|
|
56 | 67 | return
|
57 | 68 | // Update the powernet
|
58 | 69 | powernet = find_powernet()
|
59 |
| - ui_interact(user) |
| 70 | + tgui_interact(user) |
60 | 71 |
|
61 |
| -/obj/machinery/computer/monitor/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) |
62 |
| - power_monitor.ui_interact(user, ui_key, ui, force_open) |
| 72 | +/obj/machinery/computer/monitor/tgui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/tgui_state/state = GLOB.tgui_default_state) |
| 73 | + power_monitor.tgui_interact(user, ui_key, ui, force_open) |
63 | 74 |
|
64 | 75 | /obj/machinery/computer/monitor/interact(mob/user)
|
65 |
| - power_monitor.ui_interact(user) |
| 76 | + power_monitor.tgui_interact(user) |
| 77 | + |
| 78 | +/obj/machinery/computer/monitor/process() |
| 79 | + record() |
| 80 | + |
| 81 | +/** |
| 82 | + * Power snapshot recording proc |
| 83 | + * |
| 84 | + * This proc handles recording powernet history for the graph on the TGUI |
| 85 | + * It is called every process(), but only logs every 5 seconds |
| 86 | + */ |
| 87 | +/obj/machinery/computer/monitor/proc/record() |
| 88 | + if(world.time >= next_record) |
| 89 | + next_record = world.time + record_interval |
| 90 | + if(!powernet) |
| 91 | + return |
| 92 | + |
| 93 | + var/list/supply = history["supply"] |
| 94 | + supply += powernet.viewavail |
| 95 | + if(length(supply) > record_size) |
| 96 | + supply.Cut(1, 2) |
| 97 | + |
| 98 | + var/list/demand = history["demand"] |
| 99 | + demand += powernet.viewload |
| 100 | + if(length(demand) > record_size) |
| 101 | + demand.Cut(1, 2) |
0 commit comments