mirror of
https://github.com/Sandstorm-Station/Sandstorm-Station-13.git
synced 2026-08-23 05:08:54 +01:00
ya guys like wiring?
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
#define WIRE_FIRE_TOGGLE "Alarm toggle"
|
||||
#define WIRE_FIRE_DETECT "Fire detection"
|
||||
#define WIRE_FIRE_TRIGGER "Alarm trigger"
|
||||
@@ -0,0 +1,61 @@
|
||||
/datum/wires/firealarm
|
||||
holder_type = /obj/machinery/firealarm
|
||||
proper_name = "Fire alarm's"
|
||||
req_knowledge = JOB_SKILL_MASTER
|
||||
|
||||
/datum/wires/firealarm/New(atom/holder)
|
||||
wires = list(
|
||||
WIRE_FIRE_TOGGLE,
|
||||
WIRE_FIRE_DETECT,
|
||||
WIRE_FIRE_TRIGGER
|
||||
)
|
||||
add_duds(2)
|
||||
..()
|
||||
|
||||
/datum/wires/firealarm/interactable(mob/user)
|
||||
var/obj/machinery/firealarm/A = holder
|
||||
if(A.panel_open)
|
||||
return TRUE
|
||||
|
||||
/datum/wires/firealarm/get_status()
|
||||
var/obj/machinery/firealarm/A = holder
|
||||
var/list/status = list()
|
||||
status += "The alarm light is [A.alarm_active ? "blinking red" : "green"]."
|
||||
status += "The fire detection light is [A.detecting ? "on" : "off"]."
|
||||
status += "The button wire is [A.button_wire_cut ? "cut" : "connected"]."
|
||||
return status
|
||||
|
||||
/datum/wires/firealarm/on_pulse(wire)
|
||||
var/obj/machinery/firealarm/A = holder
|
||||
switch(wire)
|
||||
if(WIRE_FIRE_TOGGLE) // ohno, fire!
|
||||
if(A.alarm_active && !A.wire_override)
|
||||
A.reset()
|
||||
else if(!A.alarm_active)
|
||||
A.alarm() //no wire_override here, it's just a pulse.
|
||||
if(WIRE_FIRE_DETECT)
|
||||
A.detecting = !A.detecting
|
||||
if(WIRE_FIRE_TRIGGER)
|
||||
A.alarm()
|
||||
addtimer(CALLBACK(A, /obj/machinery/firealarm.proc/reset, wire), 1000)
|
||||
|
||||
/datum/wires/firealarm/on_cut(index, mend)
|
||||
var/obj/machinery/firealarm/A = holder
|
||||
switch(index)
|
||||
if(WIRE_FIRE_TOGGLE)
|
||||
if(mend)
|
||||
A.wire_override = FALSE
|
||||
A.reset()
|
||||
else
|
||||
A.wire_override = TRUE
|
||||
A.alarm()
|
||||
if(WIRE_FIRE_DETECT)
|
||||
if(mend)
|
||||
A.detecting = TRUE
|
||||
else
|
||||
A.detecting = FALSE
|
||||
if(WIRE_FIRE_TRIGGER)
|
||||
if(mend)
|
||||
A.button_wire_cut = FALSE
|
||||
else
|
||||
A.button_wire_cut = TRUE
|
||||
Reference in New Issue
Block a user