Docking Controller TGUI (#17435)

* Docking Controller TGUI

* linmter
This commit is contained in:
Geeves
2023-09-28 01:56:55 +02:00
committed by GitHub
parent 0f24288853
commit cb20a8e15b
16 changed files with 628 additions and 622 deletions
+29 -36
View File
@@ -43,10 +43,14 @@ var/list/escape_pods_by_name = list()
name = "escape pod controller"
var/datum/shuttle/autodock/ferry/escape_pod/pod
/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
var/data[0]
/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod/ui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
if(!ui)
ui = new(user, src, "EscapePodConsole", name, ui_x=470, ui_y=270)
ui.open()
data = list(
/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod/ui_data(mob/user)
return list(
"docking_status" = docking_program.get_docking_status(),
"override_enabled" = docking_program.override_enabled,
"door_state" = docking_program.memory["door_status"]["state"],
@@ -55,28 +59,21 @@ var/list/escape_pods_by_name = list()
"is_armed" = pod.arming_controller.armed
)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open)
if (!ui)
ui = new(user, src, ui_key, "escape_pod_console.tmpl", name, 470, 290)
ui.set_initial_data(data)
ui.open()
ui.set_auto_update(1)
/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod/Topic(href, href_list)
if(..())
return 1
if(href_list["manual_arm"])
pod.arming_controller.arm()
if(href_list["force_launch"])
if (pod.can_force())
pod.force_launch(src)
else if (evacuation_controller.has_evacuated() && pod.can_launch()) //allow players to manually launch ahead of time if the shuttle leaves
pod.launch(src)
return 0
/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod/ui_act(action, params)
. = ..()
if(.)
return
if(action == "command")
if(params["command"] == "manual_arm")
pod.arming_controller.arm()
return TRUE
if(params["command"] == "force_launch")
if (pod.can_force())
pod.force_launch(src)
else if (evacuation_controller.has_evacuated() && pod.can_launch()) //allow players to manually launch ahead of time if the shuttle leaves
pod.launch(src)
return TRUE
//This controller is for the escape pod berth (station side)
@@ -88,28 +85,24 @@ var/list/escape_pods_by_name = list()
docking_program = new/datum/computer/file/embedded_program/docking/simple/escape_pod(src)
program = docking_program
/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod_berth/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
var/data[0]
/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod_berth/ui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
if(!ui)
ui = new(user, src, "EscapePodBerthConsole", name, ui_x=470, ui_y=200)
ui.open()
var/armed = null
/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod_berth/ui_data(mob/user)
var/armed = FALSE
if (istype(docking_program, /datum/computer/file/embedded_program/docking/simple/escape_pod))
var/datum/computer/file/embedded_program/docking/simple/escape_pod/P = docking_program
armed = P.armed
data = list(
return list(
"docking_status" = docking_program.get_docking_status(),
"override_enabled" = docking_program.override_enabled,
"armed" = armed
)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open)
if (!ui)
ui = new(user, src, ui_key, "escape_pod_berth_console.tmpl", name, 470, 290)
ui.set_initial_data(data)
ui.open()
ui.set_auto_update(1)
/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod_berth/emag_act(var/remaining_charges, var/mob/user)
if (!emagged)
to_chat(user, "<span class='notice'>You emag the [src], arming the escape pod!</span>")