Merge pull request #14367 from Kyep/tgui_firealarm

Replaces firealarm interface
This commit is contained in:
AffectedArc07
2020-09-19 14:11:18 +01:00
committed by GitHub
5 changed files with 13 additions and 917 deletions
+13 -63
View File
@@ -30,7 +30,6 @@ FIRE ALARM
light_range = 7
light_color = "#ff3232"
var/last_process = 0
var/wiresexposed = 0
var/buildstage = 2 // 2 = complete, 1 = no wires, 0 = circuit gone
var/enabled = FALSE
@@ -85,7 +84,8 @@ FIRE ALARM
return attack_hand(user)
/obj/machinery/firealarm/attack_ghost(mob/user)
ui_interact(user)
if(user.can_admin_interact())
toggle_alarm(user)
/obj/machinery/firealarm/emp_act(severity)
if(prob(50/severity))
@@ -218,21 +218,6 @@ FIRE ALARM
else
set_light(l_power = 0)
/obj/machinery/firealarm/process()//Note: this processing was mostly phased out due to other code, and only runs when needed
if(stat & (NOPOWER|BROKEN))
return
if(timing)
if(time > 0)
time = time - ((world.timeofday - last_process)/10)
else
alarm()
time = 0
timing = 0
STOP_PROCESSING(SSobj, src)
updateDialog()
last_process = world.timeofday
/obj/machinery/firealarm/power_change()
if(powered(ENVIRON))
stat &= ~NOPOWER
@@ -249,56 +234,21 @@ FIRE ALARM
if(user.incapacitated())
return 1
ui_interact(user)
toggle_alarm(user)
/obj/machinery/firealarm/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, var/master_ui = null, var/datum/topic_state/state = GLOB.default_state)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "firealarm.tmpl", name, 400, 400, state = state)
ui.open()
ui.set_auto_update(1)
/obj/machinery/firealarm/ui_data(mob/user, ui_key = "main", datum/topic_state/state = GLOB.default_state)
var/data[0]
/obj/machinery/firealarm/proc/toggle_alarm(mob/user)
var/area/A = get_area(src)
data["fire"] = A.fire
data["timing"] = timing
if(istype(A))
add_fingerprint(user)
if(A.fire)
reset()
else
alarm()
data["sec_level"] = get_security_level()
var/second = round(time % 60)
var/minute = round(time / 60)
data["time_left"] = "[minute ? "[minute]:" : ""][add_zero(num2text(second), 2)]"
return data
/obj/machinery/firealarm/Topic(href, href_list)
if(..())
return 1
if(buildstage != 2)
return 1
add_fingerprint(usr)
if(href_list["reset"])
reset()
else if(href_list["alarm"])
alarm()
else if(href_list["time"])
var/oldTiming = timing
timing = text2num(href_list["time"])
last_process = world.timeofday
if(oldTiming != timing)
if(timing)
START_PROCESSING(SSobj, src)
else
STOP_PROCESSING(SSobj, src)
else if(href_list["tp"])
var/tp = text2num(href_list["tp"])
time += tp
time = min(max(round(time), 0), 120)
/obj/machinery/firealarm/examine(mob/user)
. = ..()
. += "It shows the alert level as: <B><U>[capitalize(get_security_level())]</U></B>."
/obj/machinery/firealarm/proc/reset()
if(!working || !report_fire_alarms)