mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-09 16:05:07 +00:00
[MIRROR] Fix ambient occlusion stacking [MDB IGNORE] (#8664)
* Fix ambient occlusion stacking (#61822) Fixes filter not being removed and relays stacking up * Fix ambient occlusion stacking Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
This commit is contained in:
@@ -13,6 +13,8 @@
|
||||
var/generate_render_target = TRUE
|
||||
///integer: blend mode to apply to the render relay in case you dont want to use the plane_masters blend_mode
|
||||
var/blend_mode_override
|
||||
///reference: current relay this plane is utilizing to render
|
||||
var/atom/movable/render_plane_relay/relay
|
||||
|
||||
/atom/movable/screen/plane_master/proc/Show(override)
|
||||
alpha = override || show_alpha
|
||||
@@ -66,6 +68,7 @@
|
||||
|
||||
/atom/movable/screen/plane_master/game_world/backdrop(mob/mymob)
|
||||
. = ..()
|
||||
remove_filter("AO")
|
||||
if(istype(mymob) && mymob.client?.prefs?.read_preference(/datum/preference/toggle/ambient_occlusion))
|
||||
add_filter("AO", 1, drop_shadow_filter(x = 0, y = -2, size = 4, color = "#04080FAA"))
|
||||
|
||||
@@ -201,6 +204,7 @@
|
||||
|
||||
/atom/movable/screen/plane_master/runechat/backdrop(mob/mymob)
|
||||
. = ..()
|
||||
remove_filter("AO")
|
||||
if(istype(mymob) && mymob.client?.prefs?.read_preference(/datum/preference/toggle/ambient_occlusion))
|
||||
add_filter("AO", 1, drop_shadow_filter(x = 0, y = -2, size = 4, color = "#04080FAA"))
|
||||
|
||||
|
||||
@@ -65,9 +65,11 @@
|
||||
* * relay_plane: plane we are relaying this plane master to
|
||||
*/
|
||||
/atom/movable/screen/plane_master/proc/relay_render_to_plane(mob/mymob, relay_plane)
|
||||
if(relay in mymob.client.screen) //backdrop can be called multiple times
|
||||
return
|
||||
if(!render_target && generate_render_target)
|
||||
render_target = "*[name]: AUTOGENERATED RENDER TGT"
|
||||
var/atom/movable/render_plane_relay/relay = new()
|
||||
relay = new()
|
||||
relay.render_source = render_target
|
||||
relay.plane = relay_plane
|
||||
relay.layer = (plane + abs(LOWEST_EVER_PLANE))*0.5 //layer must be positive but can be a decimal
|
||||
@@ -78,5 +80,5 @@
|
||||
relay.mouse_opacity = mouse_opacity
|
||||
relay.name = render_target
|
||||
mymob.client.screen += relay
|
||||
if(plane != BLACKNESS_PLANE) //intenral snowflake do not touch
|
||||
if(plane != BLACKNESS_PLANE) //internal snowflake do not touch
|
||||
blend_mode = BLEND_DEFAULT
|
||||
|
||||
Reference in New Issue
Block a user