From 0f5e7db2d0d416786221f445e31f78aeba1df8f6 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Fri, 25 Jun 2021 13:10:13 -0400 Subject: [PATCH] set_luminosity helper --- code/game/turfs/turf.dm | 2 +- code/modules/lighting/lighting_overlay.dm | 6 +++--- code/modules/lighting/lighting_turf.dm | 7 +++++++ code/modules/planet/sun.dm | 2 ++ 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index c6a2728108..467cc6cf34 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -40,7 +40,7 @@ Entered(AM) //Lighting related - luminosity = !(dynamic_lighting) + set_luminosity(!(dynamic_lighting)) if(opacity) directional_opacity = ALL_CARDINALS diff --git a/code/modules/lighting/lighting_overlay.dm b/code/modules/lighting/lighting_overlay.dm index abf3c39ba6..45d4004dd9 100644 --- a/code/modules/lighting/lighting_overlay.dm +++ b/code/modules/lighting/lighting_overlay.dm @@ -26,7 +26,7 @@ stack_trace("a lighting object was assigned to a turf that already had a lighting object!") affected_turf.lighting_object = src - affected_turf.luminosity = 0 + affected_turf.set_luminosity(0) for(var/turf/space/space_tile in RANGE_TURFS(1, affected_turf)) space_tile.update_starlight() @@ -40,7 +40,7 @@ SSlighting.objects_queue -= src if (isturf(affected_turf)) affected_turf.lighting_object = null - affected_turf.luminosity = 1 + affected_turf.set_luminosity(1) affected_turf.underlays -= current_underlay affected_turf = null return ..() @@ -112,7 +112,7 @@ affected_turf.underlays += current_underlay - affected_turf.luminosity = set_luminosity + affected_turf.set_luminosity(set_luminosity) /datum/lighting_object/proc/removefromturf() affected_turf.underlays -= current_underlay diff --git a/code/modules/lighting/lighting_turf.dm b/code/modules/lighting/lighting_turf.dm index 59732b5d60..d59a4d5315 100644 --- a/code/modules/lighting/lighting_turf.dm +++ b/code/modules/lighting/lighting_turf.dm @@ -93,6 +93,13 @@ return recalculate_directional_opacity() +///Setter for the byond luminosity var +/turf/proc/set_luminosity(new_luminosity, force) + // SSplanets handles outdoor turfs + if(outdoors && !force) + return + + luminosity = new_luminosity ///Calculate on which directions this turfs block view. /turf/proc/recalculate_directional_opacity() diff --git a/code/modules/planet/sun.dm b/code/modules/planet/sun.dm index d2b61a389e..52172d4d5a 100644 --- a/code/modules/planet/sun.dm +++ b/code/modules/planet/sun.dm @@ -39,6 +39,7 @@ return T.vis_contents += sun T.dynamic_lumcount += our_brightness + T.set_luminosity(1, TRUE) /datum/sun_holder/proc/remove_from_turf(turf/T) if(!(sun in T.vis_contents)) @@ -46,6 +47,7 @@ return T.vis_contents -= sun T.dynamic_lumcount -= our_brightness + T.set_luminosity(!IS_DYNAMIC_LIGHTING(T), TRUE) /datum/sun_holder/proc/rainbow() var/end = world.time + 30 SECONDS