mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-20 11:34:19 +01:00
Battery ETA
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user