Battery ETA

This commit is contained in:
davipatury
2017-03-04 18:40:16 -03:00
parent 5fb5e1eedd
commit 8496523a6c
5 changed files with 29 additions and 25 deletions
@@ -191,7 +191,7 @@
icon_state = icon_state_unpowered
else
icon_state = icon_state_powered
if(active_program)
if(active_program && active_program.program_state != PROGRAM_STATE_KILLED)
overlays += active_program.program_icon_state ? active_program.program_icon_state : icon_state_menu
else
overlays += icon_state_menu
@@ -56,6 +56,18 @@
power_failure()
return FALSE
/obj/item/device/modular_computer/proc/get_power_eta()
var/obj/item/weapon/computer_hardware/battery/battery_module = all_components[MC_CELL]
if(battery_module && battery_module.battery)
var/hours = 0
var/minutes = (battery_module.battery.charge) / (last_power_usage / 20) // 20 = obj processing interval
if(minutes > 60)
hours = minutes/60
minutes = (hours - round(hours)) * 60
var/seconds = (minutes - round(minutes)) * 60
return list("hours" = hours, "minutes" = minutes, "seconds" = seconds)
return list()
// Used by child types if they have other power source than battery or recharger
/obj/item/device/modular_computer/proc/check_power_override()
return FALSE
@@ -12,7 +12,6 @@
size = 4
available_on_ntnet = 0
requires_ntnet = 0
var/obj/item/device/modular_computer/movable = null
/datum/computer_file/program/computerconfig/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
@@ -25,32 +24,26 @@
ui.open()
/datum/computer_file/program/computerconfig/ui_data(mob/user)
movable = computer
var/obj/item/weapon/computer_hardware/hard_drive/hard_drive = movable.all_components[MC_HDD]
var/obj/item/weapon/computer_hardware/battery/battery_module = movable.all_components[MC_CELL]
if(!istype(movable))
movable = null
// No computer connection, we can't get data from that.
if(!movable)
return 0
var/obj/item/weapon/computer_hardware/hard_drive/hard_drive = computer.all_components[MC_HDD]
var/obj/item/weapon/computer_hardware/battery/battery_module = computer.all_components[MC_CELL]
var/list/data = get_header_data()
data["disk_size"] = hard_drive.max_capacity
data["disk_used"] = hard_drive.used_capacity
data["power_usage"] = movable.last_power_usage
data["power_usage"] = computer.last_power_usage
data["battery_exists"] = battery_module ? 1 : 0
if(battery_module && battery_module.battery)
data["battery_rating"] = battery_module.battery.maxcharge
data["battery_percent"] = round(battery_module.battery.percent())
data["eta"] = computer.get_power_eta()
if(battery_module && battery_module.battery)
data["battery"] = list("max" = battery_module.battery.maxcharge, "charge" = round(battery_module.battery.charge))
var/list/all_entries[0]
for(var/I in movable.all_components)
var/obj/item/weapon/computer_hardware/H = movable.all_components[I]
for(var/I in computer.all_components)
var/obj/item/weapon/computer_hardware/H = computer.all_components[I]
all_entries.Add(list(list(
"name" = H.name,
"desc" = H.desc,
@@ -68,7 +61,7 @@
return
switch(href_list["action"])
if("PC_toggle_component")
var/obj/item/weapon/computer_hardware/H = movable.find_hardware_by_name(href_list["name"])
var/obj/item/weapon/computer_hardware/H = computer.find_hardware_by_name(href_list["name"])
if(H && istype(H))
H.enabled = !H.enabled
. = TRUE
@@ -69,11 +69,7 @@
return FALSE
// Stock parts
/obj/item/weapon/stock_parts/cell/computer
name = "standard battery"
desc = "A standard power cell, commonly seen in high-end portable microcomputers or low-end laptops."
@@ -83,13 +79,11 @@
w_class = WEIGHT_CLASS_TINY
maxcharge = 750
/obj/item/weapon/stock_parts/cell/computer/advanced
name = "advanced battery"
desc = "An advanced power cell, often used in most laptops. It is too large to be fitted into smaller devices."
icon_state = "cell"
origin_tech = "powerstorage=2;engineering=2"
w_class = WEIGHT_CLASS_SMALL
maxcharge = 1500
/obj/item/weapon/stock_parts/cell/computer/super
@@ -97,17 +91,18 @@
desc = "An advanced power cell, often used in high-end laptops."
icon_state = "cell"
origin_tech = "powerstorage=3;engineering=3"
w_class = WEIGHT_CLASS_SMALL
maxcharge = 2000
/obj/item/weapon/stock_parts/cell/computer/micro
name = "micro battery"
desc = "A small power cell, commonly seen in most portable microcomputers."
icon_state = "cell_micro"
w_class = WEIGHT_CLASS_TINY
maxcharge = 500
/obj/item/weapon/stock_parts/cell/computer/nano
name = "nano battery"
desc = "A tiny power cell, commonly seen in low-end portable microcomputers."
icon_state = "cell_micro"
w_class = WEIGHT_CLASS_TINY
maxcharge = 300