Area-Based Light Ambience (#31921)

* Basetype and Light init

* Custom Area Vars

* maybe fixes the ~8000 runtimes

* Testing mapchecks

* Maybe fixes the ~8000 runtimes attempt 2

* Contra Suggestions, please dont break the checks

* kills whitespace
This commit is contained in:
MixityMaxity
2026-05-02 00:45:32 +00:00
committed by GitHub
parent 17e33da381
commit e5f570ec11
11 changed files with 42 additions and 3 deletions
+8 -1
View File
@@ -72,6 +72,14 @@
#define LIGHT_COLOR_TUNGSTEN "#FAE1AF" //Extremely diluted yellow, close to skin color (for some reason). rgb(250, 225, 175)
#define LIGHT_COLOR_HALOGEN "#F0FAFA" //Barely visible cyan-ish hue, as the doctor prescribed. rgb(240, 250, 250)
// Station Area Lights
#define LIGHT_COLOR_STATION_HALL "#fafaeb" // Slight warm, for station halls.
#define LIGHT_COLOR_STATION_HALL_NIGHT "#fcf4dc" // ^Ditto^, but warmer.
#define LIGHT_COLOR_STATION_WORK "#fae5c9" // Moderately warm, for standard work environments.
#define LIGHT_COLOR_STATION_WORK_NIGHT "#fcd3b1" // ^Ditto^, but warmer.
#define LIGHT_COLOR_STATION_OFFICE "#fac192" // Quite warm, for offices and private rooms.
#define LIGHT_COLOR_STATION_OFFICE_NIGHT "#e29a5f" // ^Ditto^, but warmer.
#define LIGHT_RANGE_FIRE 3 //How many tiles standard fires glow.
#define LIGHTING_PLANE_ALPHA_VISIBLE 255
@@ -87,7 +95,6 @@
#define DYNAMIC_LIGHTING_IFSTARLIGHT 3 //dynamic lighting enabled only if starlight is.
#define IS_DYNAMIC_LIGHTING(A) A.dynamic_lighting
//code assumes higher numbers override lower numbers.
#define LIGHTING_NO_UPDATE 0
#define LIGHTING_VIS_UPDATE 1
+2
View File
@@ -114,6 +114,8 @@
*/
luminosity = TRUE
var/dynamic_lighting = DYNAMIC_LIGHTING_ENABLED
var/area_light_color = null
var/area_nightlight_color = null
/area/New(loc, ...)
if(!there_can_be_many) // Has to be done in New else the maploader will fuck up and find subtypes for the parent
@@ -3,6 +3,8 @@
/area/station/command
airlock_wires = /datum/wires/airlock/command
area_light_color = LIGHT_COLOR_STATION_WORK
area_nightlight_color = LIGHT_COLOR_STATION_WORK_NIGHT
/area/station/command/bridge
name = "\improper Bridge"
@@ -20,6 +22,10 @@
request_console_name = "Bridge"
request_console_announces = TRUE
/area/station/command/office
area_light_color = LIGHT_COLOR_STATION_OFFICE
area_nightlight_color = LIGHT_COLOR_STATION_OFFICE_NIGHT
/area/station/command/office/captain
name = "\improper Captain's Office"
icon_state = "captainoffice"
@@ -41,6 +41,8 @@
ambientsounds = ENGINEERING_SOUNDS
sound_environment = SOUND_AREA_LARGE_ENCLOSED
airlock_wires = /datum/wires/airlock/engineering
area_light_color = LIGHT_COLOR_STATION_WORK
area_nightlight_color = LIGHT_COLOR_STATION_WORK_NIGHT
/area/station/engineering/smes
name = "\improper Engineering SMES"
+4
View File
@@ -15,6 +15,8 @@
icon_state = "law"
sound_environment = SOUND_AREA_SMALL_SOFTFLOOR
request_console_name = "Internal Affairs Office"
area_light_color = LIGHT_COLOR_STATION_OFFICE
area_nightlight_color = LIGHT_COLOR_STATION_OFFICE_NIGHT
/area/station/legal/magistrate
name = "\improper Magistrate's Office"
@@ -22,3 +24,5 @@
sound_environment = SOUND_AREA_SMALL_SOFTFLOOR
request_console_flags = RC_ASSIST | RC_INFO
request_console_name = "Magistrate"
area_light_color = LIGHT_COLOR_STATION_OFFICE
area_nightlight_color = LIGHT_COLOR_STATION_OFFICE_NIGHT
@@ -2,3 +2,5 @@
name = "\improper Trainer's Office"
icon_state = "procedure_nct"
airlock_wires = /datum/wires/airlock/command // This or security
area_light_color = LIGHT_COLOR_STATION_OFFICE
area_nightlight_color = LIGHT_COLOR_STATION_OFFICE_NIGHT
@@ -6,6 +6,8 @@
/area/station/hallway
valid_territory = FALSE //too many areas with similar/same names, also not very interesting summon spots
sound_environment = SOUND_AREA_STANDARD_STATION
area_light_color = LIGHT_COLOR_STATION_HALL
area_nightlight_color = LIGHT_COLOR_STATION_HALL
/area/station/hallway/primary/fore
name = "\improper Fore Primary Hallway"
@@ -172,6 +174,9 @@
// Other public areas
/area/station/public
area_light_color = LIGHT_COLOR_STATION_HALL
area_nightlight_color = LIGHT_COLOR_STATION_HALL_NIGHT
/area/station/public/dorms
name = "\improper Dormitories"
@@ -3,6 +3,8 @@
ambientsounds = HIGHSEC_SOUNDS
sound_environment = SOUND_AREA_STANDARD_STATION
airlock_wires = /datum/wires/airlock/security
area_light_color = LIGHT_COLOR_STATION_WORK
area_nightlight_color = LIGHT_COLOR_STATION_WORK_NIGHT
/area/station/security/main
name = "\improper Security Office"
@@ -1,5 +1,7 @@
/area/station/service
airlock_wires = /datum/wires/airlock/service
area_light_color = LIGHT_COLOR_STATION_WORK
area_nightlight_color = LIGHT_COLOR_STATION_WORK_NIGHT
/area/station/service/cafeteria
name = "\improper Cafe"
@@ -4,6 +4,8 @@
icon_state = "quart"
sound_environment = SOUND_AREA_STANDARD_STATION
airlock_wires = /datum/wires/airlock/cargo
area_light_color = LIGHT_COLOR_STATION_WORK
area_nightlight_color = LIGHT_COLOR_STATION_WORK_NIGHT
/area/station/supply/lobby
name = "\improper Cargo Lobby"
+7 -2
View File
@@ -299,7 +299,7 @@
/// Light intensity when in night shift mode
var/nightshift_light_power = 0.45
/// The colour of the light while it's in night shift mode
var/nightshift_light_color = "#e0eeff"
var/nightshift_light_color = "#fafaeb"
/// The colour of the light while it's in emergency mode
var/bulb_emergency_colour = "#FF3232"
@@ -320,7 +320,7 @@
exposure_icon_state = "circle"
base_state = "bulb"
brightness_range = 4
brightness_color = "#faca92"
brightness_color = "#fac192"
nightshift_light_range = 4
nightshift_light_color = "#e29a5f" // #a0a080
light_type = /obj/item/light/bulb
@@ -437,6 +437,11 @@
break_light_tube(TRUE)
update(FALSE, TRUE, FALSE)
if(A.area_light_color)
brightness_color = A.area_light_color
if(A.area_nightlight_color)
nightshift_light_color = A.area_nightlight_color
/obj/machinery/light/proc/on_security_level_change_planned(datum/source, previous_level_number, new_level_number)
SIGNAL_HANDLER