Merge pull request #4509 from Tastyfish/nanomation

Nifty animated UI's
This commit is contained in:
Fox McCloud
2016-05-28 17:35:30 -04:00
46 changed files with 1814 additions and 328 deletions
+10 -11
View File
@@ -2,7 +2,7 @@
name = "Power monitor"
var/select_monitor = 0
var/obj/machinery/computer/monitor/powermonitor
/datum/nano_module/power_monitor/silicon
select_monitor = 1
@@ -10,33 +10,33 @@
..()
if(!select_monitor)
powermonitor = nano_host()
/datum/nano_module/power_monitor/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = default_state)
var/data[0]
data["powermonitor"] = powermonitor
if(select_monitor)
data["select_monitor"] = 1
data["powermonitors"] = powermonitor_repository.powermonitor_data()
if (powermonitor && !isnull(powermonitor.powernet))
if (powermonitor && !isnull(powermonitor.powernet))
if(select_monitor && (powermonitor.stat & (NOPOWER|BROKEN)))
powermonitor = null
return
data["poweravail"] = powermonitor.powernet.avail
data["powerload"] = num2text(powermonitor.powernet.viewload,10)
data["powerload"] = powermonitor.powernet.viewload
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)
if (!ui)
ui = new(user, src, ui_key, "power_monitor.tmpl", "Power Monitoring Console", 800, 700, state = state)
ui.set_initial_data(data)
ui.open()
ui.set_auto_update(1)
/datum/nano_module/power_monitor/Topic(href, href_list)
if(..())
if(..())
return 1
if(href_list["selectmonitor"])
@@ -44,9 +44,8 @@
powermonitor = locate(href_list["selectmonitor"])
powermonitor.powernet = powermonitor.find_powernet() // Refresh the powernet of the monitor
return 1
if(href_list["return"])
if(issilicon(usr))
powermonitor = null
return 1
+9 -9
View File
@@ -97,15 +97,15 @@
var/co2_level = environment.carbon_dioxide/total_moles
var/plasma_level = environment.toxins/total_moles
var/unknown_level = 1-(o2_level+n2_level+co2_level+plasma_level)
data["aircontents"] = list(\
"pressure" = "[round(pressure,0.1)]",\
"nitrogen" = "[round(n2_level*100,0.1)]",\
"oxygen" = "[round(o2_level*100,0.1)]",\
"carbon_dioxide" = "[round(co2_level*100,0.1)]",\
"plasma" = "[round(plasma_level*100,0.01)]",\
"other" = "[round(unknown_level, 0.01)]",\
"temp" = "[round(environment.temperature-T0C,0.1)]",\
"reading" = 1\
data["aircontents"] = list(
"pressure" = pressure,
"nitrogen" = n2_level*100,
"oxygen" = o2_level*100,
"carbon_dioxide" = co2_level*100,
"plasma" = plasma_level*100,
"other" = unknown_level,
"temp" = environment.temperature-T0C,
"reading" = 1
)
if(isnull(data["aircontents"]))
data["aircontents"] = list("reading" = 0)
+1 -5
View File
@@ -815,16 +815,12 @@
ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open)
if (!ui)
// the ui does not exist, so we'll create a new one
ui = new(user, src, ui_key, "apc.tmpl", "[area.name] - APC", 510, data["siliconUser"] ? 465 : 390)
ui = new(user, src, ui_key, "apc.tmpl", "[area.name] - APC", 510, data["siliconUser"] ? 535 : 460)
// When the UI is first opened this is the data it will use
ui.set_initial_data(data)
ui.open()
// Auto update every Master Controller tick
ui.set_auto_update(1)
else
// The UI is already open so push the new data to it
ui.push_data(data)
return
/obj/machinery/power/apc/proc/report()
return "[area.name] : [equipment]/[lighting]/[environ] ([lastused_equip+lastused_light+lastused_environ]) : [cell? cell.percent() : "N/C"] ([charging])"
+7 -10
View File
@@ -293,7 +293,7 @@
var/autostart = 0 // Automatically search for connected devices
var/obj/machinery/power/tracker/connected_tracker = null
var/list/connected_panels = list()
// Used for mapping in solar array which automatically starts itself (telecomms, for example)
/obj/machinery/power/solar_control/autostart
track = 2 // Auto tracking mode
@@ -301,7 +301,7 @@
/obj/machinery/power/solar_control/initialize()
..()
if(!powernet)
if(!powernet)
return
connect_to_network()
set_panels(cdir)
@@ -375,17 +375,17 @@
/obj/machinery/power/solar_control/attack_ai(mob/user as mob)
src.add_hiddenprint(user)
ui_interact(user)
/obj/machinery/power/solar_control/attack_ghost(mob/user as mob)
ui_interact(user)
ui_interact(user)
/obj/machinery/power/solar_control/attack_hand(mob/user)
if(..(user))
return 1
if(stat & BROKEN)
return
ui_interact(user)
/obj/machinery/power/solar_control/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
@@ -409,9 +409,6 @@
ui.set_initial_data(data)
ui.open()
ui.set_auto_update(1)
else
ui.push_data(data)
return
/obj/machinery/power/solar_control/attackby(I as obj, user as mob, params)
if(istype(I, /obj/item/weapon/screwdriver))