mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-21 20:20:33 +01:00
Standardize and improve status display UI's (#68976)
* Standardized and improves status display app, making it share the same UI as the Communication Console's version of it, and moves shared status display screens into global lists instead of vars. Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
This commit is contained in:
co-authored by
John Willard
parent
d0c73f8406
commit
7eef1a5547
@@ -12,28 +12,52 @@
|
||||
usage_flags = PROGRAM_ALL
|
||||
available_on_ntnet = FALSE
|
||||
|
||||
var/upper_text
|
||||
var/lower_text
|
||||
var/upper_text = ""
|
||||
var/lower_text = ""
|
||||
|
||||
/datum/computer_file/program/status/proc/SendSignal()
|
||||
/**
|
||||
* Post status display radio packet.
|
||||
* Arguments:
|
||||
* * command - the status display command
|
||||
* * data1 - the data1 value, as defined by status displays
|
||||
* * data2 - the data2 value, as defined by status displays
|
||||
*/
|
||||
/datum/computer_file/program/status/proc/post_status(command, data1, data2)
|
||||
var/datum/radio_frequency/frequency = SSradio.return_frequency(FREQ_STATUS_DISPLAYS)
|
||||
|
||||
if(!frequency)
|
||||
return
|
||||
|
||||
var/datum/signal/status_signal = new(list("command" = "message"))
|
||||
var/datum/signal/status_signal = new(list("command" = command))
|
||||
switch(command)
|
||||
if("message")
|
||||
status_signal.data["top_text"] = data1
|
||||
status_signal.data["bottom_text"] = data2
|
||||
if("alert")
|
||||
status_signal.data["picture_state"] = data1
|
||||
|
||||
status_signal.data["msg1"] = reject_bad_text(upper_text || "", MAX_STATUS_LINE_LENGTH)
|
||||
status_signal.data["msg2"] = reject_bad_text(lower_text || "", MAX_STATUS_LINE_LENGTH)
|
||||
frequency.post_signal(src, status_signal)
|
||||
|
||||
frequency.post_signal(computer, status_signal)
|
||||
/**
|
||||
* Post a message to status displays
|
||||
* Arguments:
|
||||
* * upper - Top text
|
||||
* * lower - Bottom text
|
||||
*/
|
||||
/datum/computer_file/program/status/proc/post_message(upper, lower)
|
||||
post_status("message", upper, lower)
|
||||
|
||||
/datum/computer_file/program/status/proc/SetText(position, text)
|
||||
switch(position)
|
||||
if("upper")
|
||||
upper_text = text
|
||||
if("lower")
|
||||
lower_text = text
|
||||
/**
|
||||
* Post a picture to status displays
|
||||
* Arguments:
|
||||
* * picture - The picture name
|
||||
*/
|
||||
/datum/computer_file/program/status/proc/post_picture(picture)
|
||||
if (!(picture in GLOB.status_display_approved_pictures))
|
||||
return
|
||||
if(picture in GLOB.status_display_state_pictures)
|
||||
post_status(picture)
|
||||
else
|
||||
post_status("alert", picture)
|
||||
|
||||
/datum/computer_file/program/status/ui_act(action, list/params, datum/tgui/ui)
|
||||
. = ..()
|
||||
@@ -41,15 +65,24 @@
|
||||
return
|
||||
|
||||
switch(action)
|
||||
if("stat_send")
|
||||
SendSignal()
|
||||
if("stat_update")
|
||||
SetText(params["position"], params["text"]) // i hate the player i hate the player
|
||||
if("setStatusMessage")
|
||||
upper_text = reject_bad_text(params["upperText"] || "", MAX_STATUS_LINE_LENGTH)
|
||||
lower_text = reject_bad_text(params["lowerText"] || "", MAX_STATUS_LINE_LENGTH)
|
||||
|
||||
post_message(upper_text, lower_text)
|
||||
if("setStatusPicture")
|
||||
post_picture(params["picture"])
|
||||
|
||||
/datum/computer_file/program/status/ui_static_data(mob/user)
|
||||
var/list/data = list()
|
||||
data["maxStatusLineLength"] = MAX_STATUS_LINE_LENGTH
|
||||
|
||||
return data
|
||||
|
||||
/datum/computer_file/program/status/ui_data(mob/user)
|
||||
var/list/data = get_header_data()
|
||||
|
||||
data["upper"] = upper_text
|
||||
data["lower"] = lower_text
|
||||
data["upperText"] = upper_text
|
||||
data["lowerText"] = lower_text
|
||||
|
||||
return data
|
||||
|
||||
Reference in New Issue
Block a user