diff --git a/code/modules/power/turbine.dm b/code/modules/power/turbine.dm index 497fc53ae3..ac664894de 100644 --- a/code/modules/power/turbine.dm +++ b/code/modules/power/turbine.dm @@ -332,51 +332,38 @@ if(..()) return - interact(user) + ui_interact(user) -/obj/machinery/computer/turbine_computer/interact(mob/user) +/obj/machinery/computer/turbine_computer/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \ + datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "turbine_computer", name, 350, 280, master_ui, state) + ui.open() - var/dat - if(compressor && compressor.turbine) - dat += "
Gas turbine remote control system
" - if(compressor.stat || compressor.turbine.stat) - dat += "[compressor.stat ? "Compressor is inoperable
" : "Turbine is inoperable"]" - else - dat += {"Turbine status: [ src.compressor.starter ? "Off On" : "Off On"] - \n
- \nTurbine speed: [src.compressor.rpm]rpm
- \nPower currently being generated: [DisplayPower(src.compressor.turbine.lastgen)]
- \nInternal gas temperature: [src.compressor.gas_contained.temperature]K
- \n
Close - \n
- \n"} - else - dat += "There is [!compressor ? "no compressor" : " compressor[!compressor.turbine ? " but no turbine" : ""]"].
" - if(!compressor) - dat += "Search for compressor" +/obj/machinery/computer/turbine_computer/ui_data(mob/user) + var/list/data = list() - var/datum/browser/popup = new(user, "turbinecomputer", name) - popup.set_content(dat) - popup.open() - return + data["working"] = (compressor.starter && compressor && compressor.turbine && !compressor.stat && !compressor.turbine.stat) + data["connected"] = (compressor && compressor.turbine) ? TRUE : FALSE + data["compressor_broke"] = (!compressor || compressor.stat) ? TRUE : FALSE + data["turbine_broke"] = (!compressor || compressor.turbine.stat) ? TRUE : FALSE + data["online"] = compressor.starter -/obj/machinery/computer/turbine_computer/Topic(href, href_list) + data["power"] = DisplayPower(compressor.turbine.lastgen) + data["rpm"] = compressor.rpm + data["temp"] = compressor.gas_contained.temperature + + return data + +/obj/machinery/computer/turbine_computer/ui_act(action, params) if(..()) return - - else if( href_list["str"] ) - if(compressor && compressor.turbine) - compressor.starter = !compressor.starter - else if( href_list["close"] ) - usr << browse(null, "window=turbinecomputer") - usr.unset_machine(src) - return - else if(href_list["search"]) - locate_machinery() - - src.updateUsrDialog() - return - -/obj/machinery/computer/turbine_computer/process() - src.updateDialog() - return + switch(action) + if("power") + if(compressor && compressor.turbine) + compressor.starter = !compressor.starter + . = TRUE + if("reconnect") + locate_machinery() + . = TRUE diff --git a/tgui/src/interfaces/turbine_computer.ract b/tgui/src/interfaces/turbine_computer.ract new file mode 100644 index 0000000000..0e24823b39 --- /dev/null +++ b/tgui/src/interfaces/turbine_computer.ract @@ -0,0 +1,51 @@ + + + +
+ Reconnect +
+
+
+ + + {{#if data.working}} + {{data.online && !(data.compressor_broke || data.turbine_broke) ? "Online" : "Offline"}} + {{else}} + Broken + {{/if}} +
+ On + Off +
+ {{#if data.compressor_broke}} +
+ [ Compressor is inoperable ] + {{/if}} + {{#if data.turbine_broke}} +
+ [ Turbine is inoperable ] + {{/if}} +
+
+ + + {{data.working ? data.rpm : "--"}} RPM + + + {{data.working ? data.temp : "--"}} K + + + {{data.working ? data.power : "--"}} + +