From f631f478fae34c8bb8fb4f17f5e0aecdc5db208d Mon Sep 17 00:00:00 2001 From: Geeves Date: Wed, 7 Apr 2021 04:12:53 +0200 Subject: [PATCH] Radial Floodlight (#11120) --- aurorastation.dme | 1 + code/modules/power/radial_floodlight.dm | 63 +++++++++++++++++++ html/changelogs/geeves-radial_floodlight.yml | 6 ++ icons/obj/machines/floodlight.dmi | Bin 1925 -> 5318 bytes maps/aurora/aurora-4_mainlevel.dmm | 19 +++++- 5 files changed, 86 insertions(+), 3 deletions(-) create mode 100644 code/modules/power/radial_floodlight.dm create mode 100644 html/changelogs/geeves-radial_floodlight.yml diff --git a/aurorastation.dme b/aurorastation.dme index d174ffd98cd..e2027aadcd7 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -2407,6 +2407,7 @@ #include "code\modules\power\port_gen.dm" #include "code\modules\power\power.dm" #include "code\modules\power\powernet.dm" +#include "code\modules\power\radial_floodlight.dm" #include "code\modules\power\rtg.dm" #include "code\modules\power\smes.dm" #include "code\modules\power\smes_construction.dm" diff --git a/code/modules/power/radial_floodlight.dm b/code/modules/power/radial_floodlight.dm new file mode 100644 index 00000000000..e2356146a9e --- /dev/null +++ b/code/modules/power/radial_floodlight.dm @@ -0,0 +1,63 @@ +/obj/machinery/power/radial_floodlight + name = "radial floodlight" + desc = "A floodlight that illuminates a wide area around it. It has to be wrenched down on top of a knot to work." + icon = 'icons/obj/machines/floodlight.dmi' + icon_state = "radial_floodlight" + anchored = FALSE + density = TRUE + active_power_usage = 800 + light_color = LIGHT_COLOR_TUNGSTEN + + var/on = FALSE + var/brightness_on = 12 + +/obj/machinery/power/radial_floodlight/proc/toggle_active(var/force_state) + if(!isnull(force_state)) + if(force_state == on) + return + on = force_state + else + on = !on + if(on) + set_light(brightness_on, 1) + START_PROCESSING(SSprocessing, src) + else + set_light(0) + STOP_PROCESSING(SSprocessing, src) + update_icon() + +/obj/machinery/power/radial_floodlight/machinery_process() + var/actual_load = draw_power(active_power_usage) + if(!on || !anchored || (stat & BROKEN) || !powernet || actual_load < active_power_usage) + toggle_active(FALSE) + return + +/obj/machinery/power/radial_floodlight/attackby(obj/item/W, mob/user) + if(W.iswrench()) + anchored = !anchored + user.visible_message(SPAN_NOTICE("\The [user] [anchored ? "" : "un"]secures \the [src] [anchored ? "to" : "from"] the floor."), SPAN_NOTICE("You [anchored ? "" : "un"]secure \the [src] [anchored ? "to" : "from"] the floor."), SPAN_WARNING("You hear a ratcheting noise.")) + if(!anchored) + toggle_active(FALSE) + else + connect_to_network() + playsound(get_turf(src), W.usesound, 75, TRUE) + return + return ..() + +/obj/machinery/power/radial_floodlight/attack_hand(mob/user) + if(!anchored) + to_chat(user, SPAN_WARNING("\The [src] isn't anchored.")) + return + if(!powernet) + to_chat(user, SPAN_WARNING("\The [src] isn't connected to a power network.")) + return + if(avail() < active_power_usage) + to_chat(user, SPAN_WARNING("\The [src]'s power network doesn't have enough power.")) + return + toggle_active() + update_icon() + +/obj/machinery/power/radial_floodlight/update_icon() + cut_overlays() + if(on) + add_overlay(image(icon, src, "[icon_state]-light", EFFECTS_ABOVE_LIGHTING_LAYER)) \ No newline at end of file diff --git a/html/changelogs/geeves-radial_floodlight.yml b/html/changelogs/geeves-radial_floodlight.yml new file mode 100644 index 00000000000..c0e23a9e0fc --- /dev/null +++ b/html/changelogs/geeves-radial_floodlight.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "Added radial floodlights, 360 degree floodlights. Needs to be placed on a knot to work. Mapped two into engineering hard storage." \ No newline at end of file diff --git a/icons/obj/machines/floodlight.dmi b/icons/obj/machines/floodlight.dmi index 5a479625c26f04008c9ab147bd0db38ceb0588e0..32232e267ea9bbf2913cb500dbd92e1b433b1173 100644 GIT binary patch literal 5318 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 diff --git a/maps/aurora/aurora-4_mainlevel.dmm b/maps/aurora/aurora-4_mainlevel.dmm index 389062f1f45..1e95eeb1511 100644 --- a/maps/aurora/aurora-4_mainlevel.dmm +++ b/maps/aurora/aurora-4_mainlevel.dmm @@ -6853,7 +6853,6 @@ /obj/machinery/light{ dir = 4 }, -/obj/machinery/power/port_gen/pacman, /turf/simulated/floor/plating, /area/engineering/storage_hard) "anI" = ( @@ -8202,6 +8201,7 @@ d2 = 8; icon_state = "1-8" }, +/obj/machinery/power/radial_floodlight, /turf/simulated/floor/plating, /area/engineering/storage_hard) "apZ" = ( @@ -65594,6 +65594,10 @@ }, /turf/simulated/floor/wood, /area/maintenance/bar) +"pam" = ( +/obj/machinery/power/port_gen/pacman, +/turf/simulated/floor/plating, +/area/engineering/storage_hard) "pch" = ( /turf/simulated/floor/plating, /area/maintenance/workshop) @@ -69873,6 +69877,15 @@ }, /turf/simulated/floor/plating, /area/maintenance/vault) +"wdB" = ( +/obj/structure/cable/green{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/power/radial_floodlight, +/turf/simulated/floor/plating, +/area/engineering/storage_hard) "wee" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -87470,7 +87483,7 @@ akz akz amu anF -anF +wdB apY anE asA @@ -87726,7 +87739,7 @@ ajL akz akz amv -anE +pam gaR apZ arm