diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 8472cc81ce7..7cb0048c9ab 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -214,17 +214,26 @@ name = "entertainment monitor" desc = "Damn, they better have Paradise TV on these things." icon_state = "entertainment_console" - icon_screen = "entertainment" + icon_screen = "entertainment_off" light_color = "#FFEEDB" light_range_on = 0 network = list("news") luminosity = 0 circuit = null + /// Used to detect how many video cameras are active + var/feeds_on = 0 /obj/machinery/computer/security/telescreen/entertainment/Initialize() . = ..() set_light(1, LIGHTING_MINIMUM_POWER) //so byond doesnt cull, and we get an emissive appearance +/obj/machinery/computer/security/telescreen/entertainment/update_overlays() + if(feeds_on) + icon_screen = "entertainment" + else + icon_screen = "entertainment_off" + return ..() + /obj/machinery/computer/security/telescreen/entertainment/power_change() ..() if(stat & NOPOWER) diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index 2cb8c4fc265..6a1b0e22cff 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -543,6 +543,7 @@ GLOBAL_LIST_INIT(SpookyGhosts, list("ghost","shade","shade2","ghost-narsie","hor /************** *video camera * ***************/ +#define CAMERA_STATE_COOLDOWN 2 SECONDS /obj/item/videocam name = "video camera" @@ -553,6 +554,7 @@ GLOBAL_LIST_INIT(SpookyGhosts, list("ghost","shade","shade2","ghost-narsie","hor w_class = WEIGHT_CLASS_NORMAL materials = list(MAT_METAL = 1000, MAT_GLASS = 500) var/on = FALSE + var/video_cooldown = 0 var/obj/machinery/camera/camera var/icon_on = "videocam_on" var/icon_off = "videocam" @@ -571,8 +573,18 @@ GLOBAL_LIST_INIT(SpookyGhosts, list("ghost","shade","shade2","ghost-narsie","hor camera.c_tag = null QDEL_NULL(camera) visible_message("The video camera has been turned [on ? "on" : "off"].") + for(var/obj/machinery/computer/security/telescreen/entertainment/TV in GLOB.machines) + if(on) + TV.feeds_on++ + else + TV.feeds_on-- + TV.update_icon(UPDATE_OVERLAYS) + video_cooldown = world.time + CAMERA_STATE_COOLDOWN /obj/item/videocam/attack_self(mob/user) + if(world.time < video_cooldown) + to_chat(user, "[src] is overheating, give it some time.") + return camera_state(user) /obj/item/videocam/dropped() @@ -606,6 +618,8 @@ GLOBAL_LIST_INIT(SpookyGhosts, list("ghost","shade","shade2","ghost-narsie","hor desc = "This video camera allows you to send live feeds even when attached to a belt." slot_flags = SLOT_BELT +#undef CAMERA_STATE_COOLDOWN + ///hauntings, like hallucinations but more spooky /obj/item/camera/proc/handle_haunt(mob/user as mob) diff --git a/icons/obj/computer.dmi b/icons/obj/computer.dmi index 787d8524708..442c1b42693 100644 Binary files a/icons/obj/computer.dmi and b/icons/obj/computer.dmi differ