mirror of
https://github.com/quotefox/Hyper-Station-13.git
synced 2026-07-10 23:33:00 +01:00
Light bloom
This commit is contained in:
@@ -104,6 +104,8 @@
|
||||
var/icon_update_needed = FALSE
|
||||
var/obj/machinery/computer/apc_control/remote_control = null
|
||||
|
||||
var/obj/effect/light/lighteffect //light effect
|
||||
|
||||
/obj/machinery/power/apc/unlocked
|
||||
locked = FALSE
|
||||
|
||||
@@ -185,6 +187,8 @@
|
||||
addtimer(CALLBACK(src, .proc/update), 5)
|
||||
|
||||
/obj/machinery/power/apc/Destroy()
|
||||
if(lighteffect)
|
||||
lighteffect.Del()
|
||||
GLOB.apcs_list -= src
|
||||
|
||||
if(malfai && operating)
|
||||
@@ -320,6 +324,13 @@
|
||||
|
||||
// And now, separately for cleanness, the lighting changing
|
||||
if(update_state & UPSTATE_ALLGOOD)
|
||||
if(!lighteffect)//make the light
|
||||
lighteffect = new/obj/effect/light
|
||||
lighteffect.loc = src.loc
|
||||
lighteffect.alpha = 50
|
||||
lighteffect.pixel_x = pixel_x
|
||||
lighteffect.pixel_y = pixel_y
|
||||
|
||||
switch(charging)
|
||||
if(APC_NOT_CHARGING)
|
||||
light_color = LIGHT_COLOR_RED
|
||||
@@ -328,6 +339,7 @@
|
||||
if(APC_FULLY_CHARGED)
|
||||
light_color = LIGHT_COLOR_GREEN
|
||||
set_light(lon_range)
|
||||
lighteffect.color = light_color
|
||||
else if(update_state & UPSTATE_BLUESCREEN)
|
||||
light_color = LIGHT_COLOR_BLUE
|
||||
set_light(lon_range)
|
||||
@@ -336,6 +348,10 @@
|
||||
|
||||
icon_update_needed = FALSE
|
||||
|
||||
/obj/machinery/power/apc/Move()
|
||||
if(lighteffect)
|
||||
lighteffect.loc = src.loc //move the light overlay
|
||||
|
||||
/obj/machinery/power/apc/proc/check_updates()
|
||||
var/last_update_state = update_state
|
||||
var/last_update_overlay = update_overlay
|
||||
|
||||
@@ -223,6 +223,9 @@
|
||||
var/bulb_emergency_pow_mul = 0.75 // the multiplier for determining the light's power in emergency mode
|
||||
var/bulb_emergency_pow_min = 0.5 // the minimum value for the light's power in emergency mode
|
||||
|
||||
var/obj/effect/light/lighteffect //light effect
|
||||
|
||||
|
||||
/obj/machinery/light/broken
|
||||
status = LIGHT_BROKEN
|
||||
icon_state = "tube-broken"
|
||||
@@ -242,6 +245,8 @@
|
||||
icon_state = "bulb-broken"
|
||||
|
||||
/obj/machinery/light/Move()
|
||||
if(lighteffect)
|
||||
lighteffect.loc = src.loc
|
||||
if(status != LIGHT_BROKEN)
|
||||
break_light_tube(1)
|
||||
return ..()
|
||||
@@ -285,6 +290,8 @@
|
||||
|
||||
/obj/machinery/light/Destroy()
|
||||
var/area/A = get_area(src)
|
||||
if(lighteffect)
|
||||
lighteffect.Del()
|
||||
if(A)
|
||||
on = FALSE
|
||||
// A.update_lights()
|
||||
@@ -292,6 +299,8 @@
|
||||
return ..()
|
||||
|
||||
/obj/machinery/light/update_icon()
|
||||
if(lighteffect)
|
||||
lighteffect.Del()
|
||||
cut_overlays()
|
||||
switch(status) // set icon_states
|
||||
if(LIGHT_OK)
|
||||
@@ -301,6 +310,10 @@
|
||||
else
|
||||
icon_state = "[base_state]"
|
||||
if(on)
|
||||
lighteffect = new/obj/effect/light/large
|
||||
lighteffect.loc = src.loc
|
||||
lighteffect.alpha = CLAMP(light_power*33, 5, 100)
|
||||
lighteffect.color = light_color
|
||||
var/mutable_appearance/glowybit = mutable_appearance(overlayicon, base_state, ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE)
|
||||
glowybit.alpha = CLAMP(light_power*250, 30, 200)
|
||||
add_overlay(glowybit)
|
||||
|
||||
Reference in New Issue
Block a user