mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-19 19:13:30 +01:00
Merge pull request #14367 from Kyep/tgui_firealarm
Replaces firealarm interface
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user