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 : "--"}}
+
+