From 3003777b6adee20c79e61407d79df7a89bfaab60 Mon Sep 17 00:00:00 2001 From: Atlantiscze Date: Thu, 20 Nov 2014 16:24:26 +0100 Subject: [PATCH] Adds mwerezak's suggestions - Power monitor is now /computer/ subtype - Different rounding of values in power monitor display - Unfortunately, PDA power monitoring for engineers is broken and probably won't be fixed as it relies on old powernet monitoring computers. Laptops work OK --- .../game/machinery/computer/buildandrepair.dm | 2 +- code/game/objects/items/devices/PDA/cart.dm | 7 ++-- code/modules/power/sensors/powernet_sensor.dm | 6 ++-- .../power/sensors/sensor_monitoring.dm | 34 +++++++++++-------- maps/tgstation2.dmm | 8 ++--- 5 files changed, 32 insertions(+), 25 deletions(-) diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index 244598dacd..7c907c4605 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -181,7 +181,7 @@ origin_tech = "programming=2;powerstorage=2" /obj/item/weapon/circuitboard/powermonitor name = "Circuit board (Power Monitor)" - build_path = /obj/machinery/power/monitor + build_path = /obj/machinery/computer/power_monitor /obj/item/weapon/circuitboard/olddoor name = "Circuit board (DoorMex)" build_path = /obj/machinery/computer/pod/old diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm index 0bf1bec2a0..982ac98ff3 100644 --- a/code/game/objects/items/devices/PDA/cart.dm +++ b/code/game/objects/items/devices/PDA/cart.dm @@ -263,10 +263,11 @@ /* Power Monitor (Mode: 43 / 433) */ + /* if(mode==43 || mode==433) var/pMonData[0] var/apcData[0] - for(var/obj/machinery/power/monitor/pMon in world) + for(var/obj/machinery/computer/power_monitor/pMon in world) if(!(pMon.stat & (NOPOWER|BROKEN)) ) var/turf/monitorturf = locate(pMon.x,pMon.y,pMon.z) var/area/monitorarea = monitorturf.loc @@ -293,7 +294,7 @@ values["apcs"] = apcData else values["powerconnected"] = 0 - + */ @@ -592,10 +593,12 @@ updateSelfDialog() else post_status(href_list["statdisp"]) + /* if("Power Select") var/pref = href_list["target"] powmonitor = locate(pref) loc:mode = 433 mode = 433 + ´*/ return 1 diff --git a/code/modules/power/sensors/powernet_sensor.dm b/code/modules/power/sensors/powernet_sensor.dm index 43af5649fe..88a0bedfae 100644 --- a/code/modules/power/sensors/powernet_sensor.dm +++ b/code/modules/power/sensors/powernet_sensor.dm @@ -59,13 +59,13 @@ var/load = A.lastused_total // Load. total_load += load if(load > 1000) - load = "~[round(load/1000)]kW" // If above 1000W convert to Kilowatts. + load = "~[round(load/100)/10]kW" // If above 1000W convert to Kilowatts. else load = "[round(load)]W" // Below 1000W, leave it in Watts out += "[load]" // Add load info if (total_load > 1000) - total_load = "~[round(total_load/1000)] kW" + total_load = "~[round(total_load/100)/10] kW" else total_load = "[round(total_load)] W" @@ -73,7 +73,7 @@ var/textavail = powernet.avail if(textavail > 1000) - textavail = "[textavail / 1000] kW" + textavail = "[round(textavail/100)/10] kW" else textavail = "[textavail] W" out += "
TOTAL AVAILABLE: [textavail]" diff --git a/code/modules/power/sensors/sensor_monitoring.dm b/code/modules/power/sensors/sensor_monitoring.dm index 0325790ec3..e3f39ede6d 100644 --- a/code/modules/power/sensors/sensor_monitoring.dm +++ b/code/modules/power/sensors/sensor_monitoring.dm @@ -4,7 +4,7 @@ - Should filter out most duplicities. */ -/obj/machinery/power/monitor +/obj/machinery/computer/power_monitor name = "Power Monitor" desc = "Computer designed to remotely monitor power levels around the station" icon = 'icons/obj/computer.dmi' @@ -13,7 +13,7 @@ //computer stuff density = 1 anchored = 1.0 - var/circuit = /obj/item/weapon/circuitboard/powermonitor + circuit = /obj/item/weapon/circuitboard/powermonitor var/list/grid_sensors = null var/update_counter = 0 // Next icon update when this reaches 5 (ie every 5 ticks) var/active_sensor = null @@ -22,17 +22,17 @@ active_power_usage = 300 // Update icon every 5 ticks. -/obj/machinery/power/monitor/process() +/obj/machinery/computer/power_monitor/process() update_counter++ if(update_counter > 4) update_icon() -/obj/machinery/power/monitor/New() +/obj/machinery/computer/power_monitor/New() ..() refresh_sensors() -/obj/machinery/power/monitor/proc/refresh_sensors() +/obj/machinery/computer/power_monitor/proc/refresh_sensors() grid_sensors = list() for(var/obj/machinery/power/sensor/S in machines) if((S.loc.z == src.loc.z) || (S.long_range)) // Consoles have range on their Z-Level. Sensors with long_range var will work between Z levels. @@ -42,21 +42,21 @@ grid_sensors += S -/obj/machinery/power/monitor/attack_ai(mob/user) +/obj/machinery/computer/power_monitor/attack_ai(mob/user) add_fingerprint(user) if(stat & (BROKEN|NOPOWER)) return interact(user) -/obj/machinery/power/monitor/attack_hand(mob/user) +/obj/machinery/computer/power_monitor/attack_hand(mob/user) add_fingerprint(user) if(stat & (BROKEN|NOPOWER)) return interact(user) -/obj/machinery/power/monitor/interact(mob/user) +/obj/machinery/computer/power_monitor/interact(mob/user) if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) ) if (!istype(user, /mob/living/silicon)) @@ -95,7 +95,10 @@ t += "ERROR - No Active Sensors Detected!" else for(var/obj/machinery/power/sensor/S in grid_sensors) // Show all data from current Z level. - t += "[S.name]
" + if(S.check_grid_warning()) // Display grids with active alarms in bold text + t += "[S.name]
" + else + t += "[S.name]
" @@ -103,7 +106,7 @@ onclose(user, "powcomp") -/obj/machinery/power/monitor/Topic(href, href_list) +/obj/machinery/computer/power_monitor/Topic(href, href_list) ..() if( href_list["close"] ) usr << browse(null, "window=powcomp") @@ -120,7 +123,7 @@ active_sensor = href_list["setsensor"] src.updateDialog() -/obj/machinery/power/monitor/update_icon() +/obj/machinery/computer/power_monitor/update_icon() update_counter = 0 // Reset the icon update counter. if(stat & BROKEN) icon_state = "powerb" @@ -134,7 +137,7 @@ icon_state = "power" -/obj/machinery/power/monitor/proc/check_warnings() +/obj/machinery/computer/power_monitor/proc/check_warnings() var/warn = 0 if(grid_sensors) for(var/obj/machinery/power/sensor/S in grid_sensors) @@ -143,7 +146,7 @@ return warn -/obj/machinery/power/monitor/power_change() +/obj/machinery/computer/power_monitor/power_change() ..() // Leaving this here to preserve that delayed shutdown effect when power goes out. @@ -153,7 +156,7 @@ else update_icon() - +/* //copied from computer.dm /obj/machinery/power/monitor/attackby(I as obj, user as mob) if(istype(I, /obj/item/weapon/screwdriver) && circuit) @@ -178,4 +181,5 @@ del(src) else src.attack_hand(user) - return \ No newline at end of file + return + */ \ No newline at end of file diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm index 4fe433d69d..78592666a1 100644 --- a/maps/tgstation2.dmm +++ b/maps/tgstation2.dmm @@ -5543,7 +5543,7 @@ "ccE" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) "ccF" = (/obj/machinery/computer/security/engineering{network = list("Engineering","Power Alarms","Atmosphere Alarms","Fire Alarms","Supermatter")},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "warning"},/area/engine/engine_monitoring) "ccG" = (/obj/machinery/light,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/sensor{name = "Powernet Sensor - Master Grid"; name_tag = "Master"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 6},/area/engine/drone_fabrication) -"ccH" = (/obj/machinery/power/monitor{name = "Engine Power Monitoring"},/turf/simulated/floor{icon_state = "warning"},/area/engine/engine_monitoring) +"ccH" = (/obj/machinery/computer/power_monitor{name = "Engine Power Monitoring"},/turf/simulated/floor{icon_state = "warning"},/area/engine/engine_monitoring) "ccI" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "n2o_in"; name = "Nitrous Oxide Supply Control"; output_tag = "n2o_out"; sensors = list("n2o_sensor" = "Tank")},/turf/simulated/floor{dir = 7; icon_state = "escape"},/area/atmos) "ccJ" = (/obj/machinery/atmospherics/pipe/simple/visible/green,/obj/machinery/camera{c_tag = "Atmospherics South West"; dir = 1},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/atmos) "ccK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/virology) @@ -5563,7 +5563,7 @@ "ccY" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/turf/simulated/floor{dir = 1; icon_state = "whitered"},/area/medical/virology) "ccZ" = (/obj/vehicle/train/cargo/engine,/turf/simulated/floor{icon_state = "bot"},/area/quartermaster/storage) "cda" = (/turf/simulated/wall/r_wall,/area/turret_protected/ai_cyborg_station) -"cdb" = (/obj/machinery/power/monitor{name = "Main Power Grid Monitoring"},/turf/simulated/floor{icon_state = "warning"},/area/engine/engine_monitoring) +"cdb" = (/obj/machinery/computer/power_monitor{name = "Main Power Grid Monitoring"},/turf/simulated/floor{icon_state = "warning"},/area/engine/engine_monitoring) "cdc" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/wall/r_wall,/area/rnd/xenobiology) "cdd" = (/turf/simulated/wall/r_wall,/area/engine/hallway) "cde" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/power/smes/buildable{charge = 2e+006},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/engine/engine_room) @@ -6892,7 +6892,7 @@ "cCB" = (/obj/structure/table,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "cCC" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership) "cCD" = (/obj/machinery/computer/arcade,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"cCE" = (/obj/machinery/power/monitor{name = "Main Power Grid Monitoring"},/turf/simulated/floor,/area/engine/engineering_monitoring) +"cCE" = (/obj/machinery/computer/power_monitor{name = "Main Power Grid Monitoring"},/turf/simulated/floor,/area/engine/engineering_monitoring) "cCF" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_station/start) "cCG" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) "cCH" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) @@ -9685,7 +9685,7 @@ "dEm" = (/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/research_outpost/longtermstorage) "dEn" = (/obj/structure/transit_tube{icon_state = "D-SE"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/unexplored) "dEo" = (/obj/machinery/door_control{id = "syndieshutters_workshop"; name = "remote shutter control"; pixel_x = 25; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) -"dEp" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/monitor{name = "telecoms power monitoring"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/sensor{long_range = 1; name = "Powernet Sensor - Telecommunications Grid"; name_tag = "Telecommunications Grid"},/turf/simulated/floor{icon_state = "bot"},/area/tcommsat/entrance) +"dEp" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/computer/power_monitor{name = "telecoms power monitoring"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/sensor{long_range = 1; name = "Powernet Sensor - Telecommunications Grid"; name_tag = "Telecommunications Grid"},/turf/simulated/floor{icon_state = "bot"},/area/tcommsat/entrance) "dEq" = (/turf/simulated/floor{icon_state = "green"; dir = 8},/area/mine/abandoned) "dEr" = (/obj/effect/gibspawner/human,/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned) "dEs" = (/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/turf/simulated/floor,/area/mine/abandoned)