mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-10 09:42:29 +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
|
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
|
///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
|
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)
|
/atom/movable/screen/plane_master/proc/Show(override)
|
||||||
alpha = override || show_alpha
|
alpha = override || show_alpha
|
||||||
@@ -66,6 +68,7 @@
|
|||||||
|
|
||||||
/atom/movable/screen/plane_master/game_world/backdrop(mob/mymob)
|
/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))
|
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"))
|
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)
|
/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))
|
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"))
|
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
|
* * relay_plane: plane we are relaying this plane master to
|
||||||
*/
|
*/
|
||||||
/atom/movable/screen/plane_master/proc/relay_render_to_plane(mob/mymob, relay_plane)
|
/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)
|
if(!render_target && generate_render_target)
|
||||||
render_target = "*[name]: AUTOGENERATED RENDER TGT"
|
render_target = "*[name]: AUTOGENERATED RENDER TGT"
|
||||||
var/atom/movable/render_plane_relay/relay = new()
|
relay = new()
|
||||||
relay.render_source = render_target
|
relay.render_source = render_target
|
||||||
relay.plane = relay_plane
|
relay.plane = relay_plane
|
||||||
relay.layer = (plane + abs(LOWEST_EVER_PLANE))*0.5 //layer must be positive but can be a decimal
|
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.mouse_opacity = mouse_opacity
|
||||||
relay.name = render_target
|
relay.name = render_target
|
||||||
mymob.client.screen += relay
|
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
|
blend_mode = BLEND_DEFAULT
|
||||||
|
|||||||
Reference in New Issue
Block a user