diff --git a/baystation12.dme b/baystation12.dme index b70cfc3bcb1..cfb209ca273 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1404,6 +1404,7 @@ #include "code\WorkInProgress\Aryn\Lighting\Engine.dm" #include "code\WorkInProgress\Aryn\Lighting\Light.dm" #include "code\WorkInProgress\Aryn\Lighting\Lightpoint.dm" +#include "code\WorkInProgress\Aryn\Lighting\Verbs.dm" #include "code\WorkInProgress\Cael_Aislinn\sculpture.dm" #include "code\WorkInProgress\Cael_Aislinn\Jungle\falsewall.dm" #include "code\WorkInProgress\Cael_Aislinn\Jungle\jungle.dm" diff --git a/code/WorkInProgress/Aryn/Lighting/Compatibility.dm b/code/WorkInProgress/Aryn/Lighting/Compatibility.dm index 1b5b937a528..ad5ca37b047 100644 --- a/code/WorkInProgress/Aryn/Lighting/Compatibility.dm +++ b/code/WorkInProgress/Aryn/Lighting/Compatibility.dm @@ -41,7 +41,7 @@ atom/proc/SetLuminosity(n) n = min(n,10) //Caelcode. if(n > 0) //world << "[name].SetLuminosity([n]) \[[max(1,n>>1)],[n]\]" - SetLight(max(1,n>>1),n) + SetLight(max(1,n),n) else //world << "[name].SetLuminosity(0)" SetLight(0,0) diff --git a/code/WorkInProgress/Aryn/Lighting/Controller.dm b/code/WorkInProgress/Aryn/Lighting/Controller.dm index 1bea76f8ab1..912fde417c5 100644 --- a/code/WorkInProgress/Aryn/Lighting/Controller.dm +++ b/code/WorkInProgress/Aryn/Lighting/Controller.dm @@ -41,11 +41,8 @@ var/list/lit_z_levels = list(1,5) /datum/controller/lighting - var/starlight = 4 + var/starlight = LIGHT_STATES var/list/icon_updates = list() - - var/list/light_border = list() - var/started = 0 //var/icon/border = icon('Icons/Test.dmi', "border") @@ -92,18 +89,12 @@ var/list/lit_z_levels = list(1,5) if(T.light_overlay) T.ResetValue() - T.light_overlay.icon_state = "[MAX_VALUE(T.lightSE)][MAX_VALUE(T.lightSW)][MAX_VALUE(T.lightNW)][MAX_VALUE(T.lightNE)]" + T.light_overlay.set_state(MAX_VALUE(T.lightSE), MAX_VALUE(T.lightSW), MAX_VALUE(T.lightNW), MAX_VALUE(T.lightNE)) world << "Lighting initialization took [(world.timeofday-start_time)/world.fps] seconds." world << "Updated [turfs_updated] turfs." -/datum/controller/lighting/proc/AddBorder(turf/T) - if(!T.is_border) - light_border.Add(T) - T.is_border = 1 - //T.overlays.Add(border) - -/datum/controller/lighting/proc/RemoveBorder(turf/T) - if(T.is_border) - light_border.Remove(T) - T.is_border = 0 +/datum/controller/lighting/proc/GetLightIcon(a,b,c,d) + if(a <= 1) return LIGHT_ICON_1 + else if(a <= 3) return LIGHT_ICON_2 + else return LIGHT_ICON_3 \ No newline at end of file diff --git a/code/WorkInProgress/Aryn/Lighting/Engine.dm b/code/WorkInProgress/Aryn/Lighting/Engine.dm index 1483e8066b8..fc94b09c6a4 100644 --- a/code/WorkInProgress/Aryn/Lighting/Engine.dm +++ b/code/WorkInProgress/Aryn/Lighting/Engine.dm @@ -55,10 +55,12 @@ atom/movable/lighting_overlay anchored = 1 layer = 9 mouse_opacity = 0 - icon = 'icons/effects/ArynLights.dmi' - icon_state = "0000" invisibility = INVISIBILITY_LIGHTING +atom/movable/lighting_overlay/proc/set_state(a,b,c,d) + icon_state = "[a][b][c][d]" + icon = lighting_controller.GetLightIcon(a,b,c,d) + atom/var/light/light turf/var/atom/movable/lighting_overlay/light_overlay @@ -172,7 +174,7 @@ turf/proc/AddLight(light/light, brightness) for(var/turf/T in range(1,src)) if(T.light_overlay) - T.light_overlay.icon_state = "[MAX_VALUE(T.lightSE)][MAX_VALUE(T.lightSW)][MAX_VALUE(T.lightNW)][MAX_VALUE(T.lightNE)]" + T.light_overlay.set_state(MAX_VALUE(T.lightSE), MAX_VALUE(T.lightSW), MAX_VALUE(T.lightNW), MAX_VALUE(T.lightNE)) turf/proc/RemoveLight(light/light) if(lit_by) @@ -218,7 +220,7 @@ turf/proc/ResetValue() if(lightSW) lightSW.cached_value = -1 for(var/turf/T in range(1,src)) if(T.light_overlay) - T.light_overlay.icon_state = "[MAX_VALUE(T.lightSE)][MAX_VALUE(T.lightSW)][MAX_VALUE(T.lightNW)][MAX_VALUE(T.lightNE)]" + T.light_overlay.set_state(MAX_VALUE(T.lightSE), MAX_VALUE(T.lightSW), MAX_VALUE(T.lightNW), MAX_VALUE(T.lightNE)) turf/proc/CheckForOpaqueObjects() has_opaque = opacity diff --git a/code/WorkInProgress/Aryn/Lighting/Verbs.dm b/code/WorkInProgress/Aryn/Lighting/Verbs.dm index bf1b40f1ba1..f9e4d7c688f 100644 --- a/code/WorkInProgress/Aryn/Lighting/Verbs.dm +++ b/code/WorkInProgress/Aryn/Lighting/Verbs.dm @@ -21,6 +21,7 @@ turf/verb/ShowData() set src in world usr << "[src]" + usr << "[MAX_VALUE(lightSE)][MAX_VALUE(lightSW)][MAX_VALUE(lightNW)][MAX_VALUE(lightNE)]" usr << "Lit Value: [lit_value]" usr << "Max Brightness: [max_brightness]" diff --git a/code/WorkInProgress/Aryn/Lighting/_Defs.dm b/code/WorkInProgress/Aryn/Lighting/_Defs.dm index a0a667573a9..5aa1fdb3962 100644 --- a/code/WorkInProgress/Aryn/Lighting/_Defs.dm +++ b/code/WorkInProgress/Aryn/Lighting/_Defs.dm @@ -1,9 +1,14 @@ +#define LIGHT_ICON_1 'icons/effects/lights/lighting1.dmi' +#define LIGHT_ICON_2 'icons/effects/lights/lighting2.dmi' +#define LIGHT_ICON_3 'icons/effects/lights/lighting3.dmi' +#define LIGHT_STATES 5 + #define SQ(X) ((X)*(X)) #define DISTSQ3(A,B,C) (SQ(A)+SQ(B)+SQ(C)) #define FSQRT(X) (X >= fastroot.len ? new_fsqrt(X) : fastroot[(X)+1]) #define MAX_VALUE(X) (X.cached_value < 0 ? X.max_value() : X.cached_value) #define VALUE_OF(X) ( !X ? 0 : ( X.is_outside ? LIGHTCLAMP(lighting_controller.starlight) : X.lit_value ) ) -#define LIGHTCLAMP(x) ( max(0,min(3,round(x,1))) ) +#define LIGHTCLAMP(x) ( max(0,min(LIGHT_STATES,round(x,1))) ) var/list/fastroot = list(0, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, diff --git a/icons/effects/ArynLights.dmi b/icons/effects/ArynLights.dmi deleted file mode 100644 index f3d21402a33..00000000000 Binary files a/icons/effects/ArynLights.dmi and /dev/null differ diff --git a/icons/effects/lights/lighting1.dmi b/icons/effects/lights/lighting1.dmi new file mode 100644 index 00000000000..66787a12857 Binary files /dev/null and b/icons/effects/lights/lighting1.dmi differ diff --git a/icons/effects/lights/lighting2.dmi b/icons/effects/lights/lighting2.dmi new file mode 100644 index 00000000000..a80e436c18b Binary files /dev/null and b/icons/effects/lights/lighting2.dmi differ diff --git a/icons/effects/lights/lighting3.dmi b/icons/effects/lights/lighting3.dmi new file mode 100644 index 00000000000..023d4252896 Binary files /dev/null and b/icons/effects/lights/lighting3.dmi differ