mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-29 02:21:44 +00:00
* Refactors plane masters a bit and introduces plane master controllers (#56717) * plane master controllers * small adjustments * bro its a comment CHILL OUT * powerful * Refactors plane masters a bit and introduces plane master controllers Co-authored-by: Qustinnus <Floydje123@hotmail.com>
150 lines
5.4 KiB
Plaintext
150 lines
5.4 KiB
Plaintext
/atom/movable/screen/plane_master
|
|
screen_loc = "CENTER"
|
|
icon_state = "blank"
|
|
appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR
|
|
blend_mode = BLEND_OVERLAY
|
|
var/show_alpha = 255
|
|
var/hide_alpha = 0
|
|
|
|
/atom/movable/screen/plane_master/proc/Show(override)
|
|
alpha = override || show_alpha
|
|
|
|
/atom/movable/screen/plane_master/proc/Hide(override)
|
|
alpha = override || hide_alpha
|
|
|
|
//Why do plane masters need a backdrop sometimes? Read https://secure.byond.com/forum/?post=2141928
|
|
//Trust me, you need one. Period. If you don't think you do, you're doing something extremely wrong.
|
|
/atom/movable/screen/plane_master/proc/backdrop(mob/mymob)
|
|
|
|
///Things rendered on "openspace"; holes in multi-z
|
|
/atom/movable/screen/plane_master/openspace
|
|
name = "open space plane master"
|
|
plane = OPENSPACE_BACKDROP_PLANE
|
|
appearance_flags = PLANE_MASTER
|
|
blend_mode = BLEND_MULTIPLY
|
|
alpha = 255
|
|
|
|
/atom/movable/screen/plane_master/openspace/Initialize()
|
|
. = ..()
|
|
add_filter("first_stage_openspace", 1, drop_shadow_filter(color = "#04080FAA", size = -10))
|
|
add_filter("second_stage_openspace", 2, drop_shadow_filter(color = "#04080FAA", size = -15))
|
|
add_filter("third_stage_openspace", 2, drop_shadow_filter(color = "#04080FAA", size = -20))
|
|
|
|
///Contains just the floor
|
|
/atom/movable/screen/plane_master/floor
|
|
name = "floor plane master"
|
|
plane = FLOOR_PLANE
|
|
appearance_flags = PLANE_MASTER
|
|
blend_mode = BLEND_OVERLAY
|
|
|
|
|
|
///Contains most things in the game world
|
|
/atom/movable/screen/plane_master/game_world
|
|
name = "game world plane master"
|
|
plane = GAME_PLANE
|
|
appearance_flags = PLANE_MASTER //should use client color
|
|
blend_mode = BLEND_OVERLAY
|
|
|
|
/atom/movable/screen/plane_master/game_world/backdrop(mob/mymob)
|
|
if(istype(mymob) && mymob.client && mymob.client.prefs && mymob.client.prefs.ambientocclusion)
|
|
add_filter("AO", 1, drop_shadow_filter(x = 0, y = -2, size = 4, color = "#04080FAA"))
|
|
|
|
///Contains all lighting objects
|
|
/atom/movable/screen/plane_master/lighting
|
|
name = "lighting plane master"
|
|
plane = LIGHTING_PLANE
|
|
blend_mode = BLEND_MULTIPLY
|
|
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
|
|
|
/atom/movable/screen/plane_master/lighting/backdrop(mob/mymob)
|
|
mymob.overlay_fullscreen("lighting_backdrop_lit", /atom/movable/screen/fullscreen/lighting_backdrop/lit)
|
|
mymob.overlay_fullscreen("lighting_backdrop_unlit", /atom/movable/screen/fullscreen/lighting_backdrop/unlit)
|
|
|
|
/atom/movable/screen/plane_master/lighting/Initialize()
|
|
. = ..()
|
|
add_filter("emissives", 1, alpha_mask_filter(render_source = EMISSIVE_RENDER_TARGET, flags = MASK_INVERSE))
|
|
add_filter("unblockable_emissives", 2, alpha_mask_filter(render_source = EMISSIVE_UNBLOCKABLE_RENDER_TARGET, flags = MASK_INVERSE))
|
|
add_filter("object_lighting", 3, alpha_mask_filter(render_source = O_LIGHTING_VISUAL_RENDER_TARGET, flags = MASK_INVERSE))
|
|
|
|
/**
|
|
* Things placed on this mask the lighting plane. Doesn't render directly.
|
|
*
|
|
* Gets masked by blocking plane. Use for things that you want blocked by
|
|
* mobs, items, etc.
|
|
*/
|
|
/atom/movable/screen/plane_master/emissive
|
|
name = "emissive plane master"
|
|
plane = EMISSIVE_PLANE
|
|
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
|
render_target = EMISSIVE_RENDER_TARGET
|
|
|
|
/atom/movable/screen/plane_master/emissive/Initialize()
|
|
. = ..()
|
|
add_filter("emissive_block", 1, alpha_mask_filter(render_source = EMISSIVE_BLOCKER_RENDER_TARGET, flags = MASK_INVERSE))
|
|
|
|
/**
|
|
* Things placed on this always mask the lighting plane. Doesn't render directly.
|
|
*
|
|
* Always masks the light plane, isn't blocked by anything. Use for on mob glows,
|
|
* magic stuff, etc.
|
|
*/
|
|
/atom/movable/screen/plane_master/emissive_unblockable
|
|
name = "unblockable emissive plane master"
|
|
plane = EMISSIVE_UNBLOCKABLE_PLANE
|
|
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
|
render_target = EMISSIVE_UNBLOCKABLE_RENDER_TARGET
|
|
|
|
/**
|
|
* Things placed on this layer mask the emissive layer. Doesn't render directly
|
|
*
|
|
* You really shouldn't be directly using this, use atom helpers instead
|
|
*/
|
|
/atom/movable/screen/plane_master/emissive_blocker
|
|
name = "emissive blocker plane master"
|
|
plane = EMISSIVE_BLOCKER_PLANE
|
|
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
|
render_target = EMISSIVE_BLOCKER_RENDER_TARGET
|
|
|
|
///Contains space parallax
|
|
/atom/movable/screen/plane_master/parallax
|
|
name = "parallax plane master"
|
|
plane = PLANE_SPACE_PARALLAX
|
|
blend_mode = BLEND_MULTIPLY
|
|
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
|
|
|
/atom/movable/screen/plane_master/parallax_white
|
|
name = "parallax whitifier plane master"
|
|
plane = PLANE_SPACE
|
|
|
|
/atom/movable/screen/plane_master/camera_static
|
|
name = "camera static plane master"
|
|
plane = CAMERA_STATIC_PLANE
|
|
appearance_flags = PLANE_MASTER
|
|
blend_mode = BLEND_OVERLAY
|
|
|
|
/atom/movable/screen/plane_master/excited_turfs
|
|
name = "atmos excited turfs"
|
|
plane = ATMOS_GROUP_PLANE
|
|
appearance_flags = PLANE_MASTER
|
|
blend_mode = BLEND_OVERLAY
|
|
alpha = 0
|
|
|
|
/atom/movable/screen/plane_master/o_light_visual
|
|
name = "overlight light visual plane master"
|
|
layer = O_LIGHTING_VISUAL_LAYER
|
|
plane = O_LIGHTING_VISUAL_PLANE
|
|
render_target = O_LIGHTING_VISUAL_RENDER_TARGET
|
|
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
|
blend_mode = BLEND_MULTIPLY
|
|
|
|
/atom/movable/screen/plane_master/runechat
|
|
name = "runechat plane master"
|
|
plane = RUNECHAT_PLANE
|
|
appearance_flags = PLANE_MASTER
|
|
blend_mode = BLEND_OVERLAY
|
|
|
|
/atom/movable/screen/plane_master/runechat/backdrop(mob/mymob)
|
|
filters = list()
|
|
if(istype(mymob) && mymob.client?.prefs?.ambientocclusion)
|
|
add_filter("AO", 1, drop_shadow_filter(x = 0, y = -2, size = 4, color = "#04080FAA"))
|