listener update
This commit is contained in:
@@ -41,6 +41,8 @@
|
||||
var/upgrades = 0
|
||||
|
||||
var/internal_light = TRUE //Whether it can light up when an AI views it
|
||||
///Represents a signel source of camera alarms about movement or camera tampering
|
||||
var/datum/alarm_handler/alarm_manager
|
||||
|
||||
/obj/machinery/camera/preset/toxins //Bomb test site in space
|
||||
name = "Hardened Bomb-Test Camera"
|
||||
@@ -72,6 +74,8 @@
|
||||
if(mapload && is_station_level(z) && prob(3) && !start_active)
|
||||
toggle_cam()
|
||||
|
||||
alarm_manager = new(src)
|
||||
|
||||
/obj/machinery/camera/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override=FALSE)
|
||||
for(var/i in network)
|
||||
network -= i
|
||||
@@ -83,7 +87,8 @@
|
||||
GLOB.cameranet.cameras -= src
|
||||
cancelCameraAlarm()
|
||||
if(isarea(myarea))
|
||||
myarea.clear_camera(src)
|
||||
LAZYREMOVE(myarea.cameras, src)
|
||||
QDEL_NULL(alarm_manager)
|
||||
QDEL_NULL(assembly)
|
||||
if(bug)
|
||||
bug.bugged_cameras -= c_tag
|
||||
@@ -347,13 +352,11 @@
|
||||
|
||||
/obj/machinery/camera/proc/triggerCameraAlarm()
|
||||
alarm_on = TRUE
|
||||
for(var/mob/living/silicon/S in GLOB.silicon_mobs)
|
||||
S.triggerAlarm("Camera", get_area(src), list(src), src)
|
||||
alarm_manager.send_alarm(ALARM_CAMERA, src, src)
|
||||
|
||||
/obj/machinery/camera/proc/cancelCameraAlarm()
|
||||
alarm_on = FALSE
|
||||
for(var/mob/living/silicon/S in GLOB.silicon_mobs)
|
||||
S.cancelAlarm("Camera", get_area(src), src)
|
||||
alarm_manager.clear_alarm(ALARM_CAMERA)
|
||||
|
||||
/obj/machinery/camera/proc/can_use()
|
||||
if(!status)
|
||||
|
||||
@@ -52,21 +52,17 @@
|
||||
cancelAlarm()
|
||||
|
||||
/obj/machinery/camera/proc/cancelAlarm()
|
||||
if (detectTime == -1)
|
||||
for (var/i in GLOB.silicon_mobs)
|
||||
var/mob/living/silicon/aiPlayer = i
|
||||
if (status)
|
||||
aiPlayer.cancelAlarm("Motion", get_area(src), src)
|
||||
if (detectTime == -1 && status)
|
||||
alarm_manager.clear_alarm(ALARM_MOTION)
|
||||
detectTime = 0
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/camera/proc/triggerAlarm()
|
||||
if (!detectTime)
|
||||
return FALSE
|
||||
for (var/mob/living/silicon/aiPlayer in GLOB.player_list)
|
||||
if (status)
|
||||
aiPlayer.triggerAlarm("Motion", get_area(src), list(src), src)
|
||||
visible_message("<span class='warning'>A red light flashes on the [src]!</span>")
|
||||
if(status)
|
||||
if(alarm_manager.send_alarm(ALARM_MOTION, src, src))
|
||||
visible_message(span_warning("A red light flashes on the [src]!"))
|
||||
detectTime = -1
|
||||
return TRUE
|
||||
|
||||
|
||||
Reference in New Issue
Block a user