diff --git a/_maps/map_files/YogStation/YogStation.dmm b/_maps/map_files/YogStation/YogStation.dmm index 9e968be2484b..1a63f6e988f0 100644 --- a/_maps/map_files/YogStation/YogStation.dmm +++ b/_maps/map_files/YogStation/YogStation.dmm @@ -21633,6 +21633,36 @@ }, /turf/open/floor/plasteel, /area/security/checkpoint/engineering) +"bUA" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/airlock/medical{ + name = "Operating Theatre"; + req_access_txt = "45" + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/holosign/surgery, +/turf/open/floor/plasteel/white, +/area/medical/surgery) "bVa" = ( /obj/machinery/door/firedoor/border_only{ dir = 4 @@ -26746,6 +26776,26 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/central) +"dDo" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/obj/machinery/button/door{ + id = "surgery_shutters"; + name = "Surgery shutters"; + pixel_x = 26; + pixel_y = 6; + req_access_txt = "45"; + req_one_access_txt = null + }, +/obj/machinery/computer/operating, +/obj/machinery/button/holosign{ + id = "surgery"; + pixel_x = 26; + pixel_y = -4 + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) "dDp" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/portable_atmospherics/canister/water_vapor, @@ -32595,21 +32645,6 @@ /obj/item/pen/red, /turf/open/floor/wood, /area/vacant_room) -"gKi" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 5 - }, -/obj/machinery/button/door{ - id = "surgery_shutters"; - name = "Surgery shutters"; - pixel_x = 26; - pixel_y = 6; - req_access_txt = "45"; - req_one_access_txt = null - }, -/obj/machinery/computer/operating, -/turf/open/floor/plasteel/white, -/area/medical/surgery) "gKy" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -45552,6 +45587,26 @@ }, /turf/open/floor/plating, /area/hallway/secondary/exit) +"mYj" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/airlock/medical{ + name = "Operating Theatre"; + req_access_txt = "45" + }, +/obj/machinery/holosign/surgery{ + id = "surgery" + }, +/turf/open/floor/plasteel/white, +/area/medical/surgery) "mYS" = ( /obj/machinery/camera{ c_tag = "Atmospherics South West"; @@ -56967,26 +57022,6 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"sKm" = ( -/obj/machinery/door/airlock/medical{ - name = "Operating Theatre"; - req_access_txt = "45" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) "sKs" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 4 @@ -58814,23 +58849,6 @@ }, /turf/open/floor/plasteel/dark, /area/storage/tech) -"tEa" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/airlock/medical{ - name = "Operating Theatre"; - req_access_txt = "45" - }, -/turf/open/floor/plasteel/white, -/area/medical/surgery) "tEk" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /obj/structure/disposalpipe/segment{ @@ -61908,35 +61926,6 @@ }, /turf/open/floor/plating, /area/crew_quarters/heads/chief) -"vhN" = ( -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/airlock/medical{ - name = "Operating Theatre"; - req_access_txt = "45" - }, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/white, -/area/medical/surgery) "vhP" = ( /obj/structure/sign/poster/contraband/power{ pixel_y = 32 @@ -63806,6 +63795,29 @@ "wkN" = ( /turf/closed/wall, /area/science/nanite) +"wls" = ( +/obj/machinery/door/airlock/medical{ + name = "Operating Theatre"; + req_access_txt = "45" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/holosign/surgery{ + id = "surgery" + }, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) "wlG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 6 @@ -106188,7 +106200,7 @@ bvj bvj bvj shz -sKm +wls bvj tDe tVV @@ -106961,7 +106973,7 @@ urv uMu vYV oQs -tEa +mYj tzM ulL oEY @@ -107470,7 +107482,7 @@ hoP kub hLI iYd -gKi +dDo gQe doF hnj @@ -107730,7 +107742,7 @@ adK adK adK adK -vhN +bUA adK adK jrP diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index 53931fd84e3f..fd9d50c1d6f1 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -302,6 +302,11 @@ /obj/machinery/button/crematorium/indestructible resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF +/obj/machinery/button/holosign + name = "holosign button" + desc = "A remote control switch for a holosign." + device_type = /obj/item/assembly/control/holosign + /obj/item/wallframe/button name = "button frame" desc = "Used for building buttons." diff --git a/code/game/machinery/holosign.dm b/code/game/machinery/holosign.dm new file mode 100644 index 000000000000..70b15d62e138 --- /dev/null +++ b/code/game/machinery/holosign.dm @@ -0,0 +1,35 @@ +////////////////////HOLOSIGN/////////////////////////////////////// +/obj/machinery/holosign + name = "holosign" + desc = "Small wall-mounted holographic projector" + icon = 'icons/obj/holosign.dmi' + icon_state = "sign_off" + layer = 4 + var/lit = FALSE + var/id = null + var/on_icon = "sign_on" + +/obj/machinery/holosign/proc/toggle() + if(!is_operational()) + lit = FALSE + else + lit = !lit + update_icon() + +/obj/machinery/holosign/update_icon() + if(!lit) + icon_state = initial(icon_state) + set_light(0) + else + icon_state = on_icon + set_light(1, 0.5, l_color = COLOR_BLUE_LIGHT) + +/obj/machinery/holosign/power_change() + if(!is_operational()) + lit = FALSE + update_icon() + +/obj/machinery/holosign/surgery + name = "surgery holosign" + desc = "Small wall-mounted holographic projector. This one reads SURGERY." + on_icon = "surgery" diff --git a/code/modules/assembly/doorcontrol.dm b/code/modules/assembly/doorcontrol.dm index e578faa77e43..908c91926919 100644 --- a/code/modules/assembly/doorcontrol.dm +++ b/code/modules/assembly/doorcontrol.dm @@ -145,3 +145,18 @@ C.cremate(usr) addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 50) + + +/obj/item/assembly/control/holosign + name = "holosign controller" + desc = "A remote controller for a holosign." + +/obj/item/assembly/control/holosign/activate() + if(cooldown) + return + cooldown = TRUE + for(var/obj/machinery/holosign/H in GLOB.machines) + if(H.id == id) + H.toggle() + + addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 50) diff --git a/icons/obj/holosign.dmi b/icons/obj/holosign.dmi new file mode 100644 index 000000000000..16236419a38d Binary files /dev/null and b/icons/obj/holosign.dmi differ diff --git a/yogstation.dme b/yogstation.dme index 1b56b2bf3fa7..7d5126d2f699 100644 --- a/yogstation.dme +++ b/yogstation.dme @@ -744,6 +744,7 @@ #include "code\game\machinery\gulag_teleporter.dm" #include "code\game\machinery\harvester.dm" #include "code\game\machinery\hologram.dm" +#include "code\game\machinery\holosign.dm" #include "code\game\machinery\igniter.dm" #include "code\game\machinery\iv_drip.dm" #include "code\game\machinery\launch_pad.dm"