code/__DEFINES/layers.dm
SEETHROUGH_PLANE | Slightly above the game plane but does not catch mouse clicks. Useful for certain visuals that should be clicked through, like seethrough trees |
---|---|
LIGHTING_PLANE | Normal 1 per turf dynamic lighting underlays |
O_LIGHTING_VISUAL_PLANE | Lighting objects that are "free floating" |
EMISSIVE_RENDER_PLATE | This plane masks out lighting to create an "emissive" effect, ie for glowing lights in otherwise dark areas. |
LIGHT_MASK_PLANE | Masks the lighting plane with turfs, so we never light up the void Failing that, masks emissives and the overlay lighting plane |
ABOVE_LIGHTING_PLANE | Things that should render ignoring lighting |
PIPECRAWL_IMAGES_PLANE | ---------------- MISC ----------------------- Pipecrawling images |
CAMERA_STATIC_PLANE | AI Camera Static |
HIGH_GAME_PLANE | Anything that wants to be part of the game plane, but also wants to draw above literally everything else |
RUNECHAT_PLANE | --------------- FULLSCREEN RUNECHAT BUBBLES ------------ Popup Chat Messages |
BALLOON_CHAT_PLANE | Plane for balloon text (text that fades up) |
SPLASHSCREEN_PLANE | Plane of the "splash" icon used that shows on the lobby screen |
RENDER_PLANE_GAME_MASKED | If fov is enabled we'll draw game to this and do shit to it |
RENDER_PLANE_GAME_UNMASKED | The bit of the game plane that is let alone is sent here |
ESCAPE_MENU_PLANE | Plane related to the menu when pressing Escape. Needed so that we can apply a blur effect to EVERYTHING, and guarantee we are above all UI. |
PLANE_RANGE | The range unique planes can be in Try and keep this to a nice whole number, so it's easy to look at a plane var and know what's going on |
CATWALK_LAYER | catwalk overlay of /turf/open/floor/plating/catwalk_floor |
TOPDOWN_WATER_LEVEL_LAYER | Below this level, objects with topdown layers are rendered as if underwater by the immerse element |
TOPDOWN_ABOVE_WATER_LAYER | Above this level, objects with topdown layers are unaffected by the immerse element |
WATER_LEVEL_LAYER | Anything below this layer is to be considered completely (visually) under water by the immerse layer. |
WATER_VISUAL_OVERLAY_LAYER | The layer of the visual overlay used in the submerge element. The vis overlay inherits the planes of the movables it's attached to (that also have KEEP_TOGETHER added) We just have to make sure the visual overlay is rendered above all the other overlays of those movables. |
LIGHTING_MASK_LAYER | Typically overlays, that "hide" portions of the turf underlay layer I'm allotting 100 z levels before this breaks. That'll never happen --Lemon |
LIGHTING_PRIMARY_LAYER | Misc things that draw on the turf lighting plane Space, solar beams, etc |
LIGHTING_ABOVE_ALL | Stuff that needs to draw above everything else on this plane |
EMISSIVE_LAYER_UNBLOCKABLE | The layer you should use if you really don't want an emissive overlay to be blocked. |
FLASH_LAYER | --------------- FULLSCREEN IMAGES ------------ |
TYPING_LAYER | --------------- FULLSCREEN RUNECHAT BUBBLES ------------ Bubble for typing indicators |
RADIAL_CONTENT_LAYER | 1000 is an unimportant number, it's just to normalize copied layers |
SCREENTIP_LAYER | Layer for screentips |
TUTORIAL_INSTRUCTIONS_LAYER | Layer for tutorial instructions |
LIGHT_DEBUG_LAYER | Layer for light overlays |
LOBBY_BELOW_MENU_LAYER | Layer for lobby menu collapse button |
LOBBY_MENU_LAYER | Layer for lobby menu background image and main buttons (Join/Ready, Observe, Character Prefs) |
LOBBY_SHUTTER_LAYER | Layer for lobby menu shutter, which covers up the menu to collapse/expand it |
LOBBY_BOTTOM_BUTTON_LAYER | Layer for lobby menu buttons that are hanging away from and lower than the main panel |
CINEMATIC_LAYER | cinematics are "below" the splash screen |
PLANE_MASTERS_GAME | Plane master controller keys |
PLANE_CRITICAL_DISPLAY | This plane master will not go away if its layer is culled. useful for preserving effects |
PLANE_CRITICAL_NO_RELAY | This plane master will temporarially remove relays to all other planes Allows us to retain the effects of a plane while cutting off the changes it makes |
PLANE_CRITICAL_CUT_RENDER | We assume this plane master has a render target starting with *, it'll be removed, forcing it to render in place |
BLOCKS_PLANE_OFFSETTING | This plane master will not be offset itself, existing only once with an offset of 0 Mostly used for planes that really don't need to be duplicated, like the hud planes |
OFFSET_RELAYS_MATCH_HIGHEST | This plane master will have its relays offset to match the highest rendering plane that matches the target Required for making things like the blind fullscreen not render over runechat |
MULTIZ_PERFORMANCE_DISABLE | A value of /datum/preference/numeric/multiz_performance that disables the option |
MAX_EXPECTED_Z_DEPTH | We expect at most 3 layers of multiz Increment this define if you make a huge map. We unit test for it too just to make it easy for you If you modify this, you'll need to modify the tsx file too |
Define Details
ABOVE_LIGHTING_PLANE
Things that should render ignoring lighting
BALLOON_CHAT_PLANE
Plane for balloon text (text that fades up)
BLOCKS_PLANE_OFFSETTING
This plane master will not be offset itself, existing only once with an offset of 0 Mostly used for planes that really don't need to be duplicated, like the hud planes
CAMERA_STATIC_PLANE
AI Camera Static
CATWALK_LAYER
catwalk overlay of /turf/open/floor/plating/catwalk_floor
CINEMATIC_LAYER
cinematics are "below" the splash screen
EMISSIVE_LAYER_UNBLOCKABLE
The layer you should use if you really don't want an emissive overlay to be blocked.
EMISSIVE_RENDER_PLATE
This plane masks out lighting to create an "emissive" effect, ie for glowing lights in otherwise dark areas.
ESCAPE_MENU_PLANE
Plane related to the menu when pressing Escape. Needed so that we can apply a blur effect to EVERYTHING, and guarantee we are above all UI.
FLASH_LAYER
--------------- FULLSCREEN IMAGES ------------
HIGH_GAME_PLANE
Anything that wants to be part of the game plane, but also wants to draw above literally everything else
LIGHTING_ABOVE_ALL
Stuff that needs to draw above everything else on this plane
LIGHTING_MASK_LAYER
Typically overlays, that "hide" portions of the turf underlay layer I'm allotting 100 z levels before this breaks. That'll never happen --Lemon
LIGHTING_PLANE
Normal 1 per turf dynamic lighting underlays
LIGHTING_PRIMARY_LAYER
Misc things that draw on the turf lighting plane Space, solar beams, etc
LIGHT_DEBUG_LAYER
Layer for light overlays
LIGHT_MASK_PLANE
Masks the lighting plane with turfs, so we never light up the void Failing that, masks emissives and the overlay lighting plane
LOBBY_BELOW_MENU_LAYER
Layer for lobby menu collapse button
LOBBY_BOTTOM_BUTTON_LAYER
Layer for lobby menu buttons that are hanging away from and lower than the main panel
LOBBY_MENU_LAYER
Layer for lobby menu background image and main buttons (Join/Ready, Observe, Character Prefs)
LOBBY_SHUTTER_LAYER
Layer for lobby menu shutter, which covers up the menu to collapse/expand it
MAX_EXPECTED_Z_DEPTH
We expect at most 3 layers of multiz Increment this define if you make a huge map. We unit test for it too just to make it easy for you If you modify this, you'll need to modify the tsx file too
MULTIZ_PERFORMANCE_DISABLE
A value of /datum/preference/numeric/multiz_performance that disables the option
OFFSET_RELAYS_MATCH_HIGHEST
This plane master will have its relays offset to match the highest rendering plane that matches the target Required for making things like the blind fullscreen not render over runechat
O_LIGHTING_VISUAL_PLANE
Lighting objects that are "free floating"
PIPECRAWL_IMAGES_PLANE
---------------- MISC ----------------------- Pipecrawling images
PLANE_CRITICAL_CUT_RENDER
We assume this plane master has a render target starting with *, it'll be removed, forcing it to render in place
PLANE_CRITICAL_DISPLAY
This plane master will not go away if its layer is culled. useful for preserving effects
PLANE_CRITICAL_NO_RELAY
This plane master will temporarially remove relays to all other planes Allows us to retain the effects of a plane while cutting off the changes it makes
PLANE_MASTERS_GAME
Plane master controller keys
PLANE_RANGE
The range unique planes can be in Try and keep this to a nice whole number, so it's easy to look at a plane var and know what's going on
RADIAL_CONTENT_LAYER
1000 is an unimportant number, it's just to normalize copied layers
RENDER_PLANE_GAME_MASKED
If fov is enabled we'll draw game to this and do shit to it
RENDER_PLANE_GAME_UNMASKED
The bit of the game plane that is let alone is sent here
RUNECHAT_PLANE
--------------- FULLSCREEN RUNECHAT BUBBLES ------------ Popup Chat Messages
SCREENTIP_LAYER
Layer for screentips
SEETHROUGH_PLANE
Slightly above the game plane but does not catch mouse clicks. Useful for certain visuals that should be clicked through, like seethrough trees
SPLASHSCREEN_PLANE
Plane of the "splash" icon used that shows on the lobby screen
TOPDOWN_ABOVE_WATER_LAYER
Above this level, objects with topdown layers are unaffected by the immerse element
TOPDOWN_WATER_LEVEL_LAYER
Below this level, objects with topdown layers are rendered as if underwater by the immerse element
TUTORIAL_INSTRUCTIONS_LAYER
Layer for tutorial instructions
TYPING_LAYER
--------------- FULLSCREEN RUNECHAT BUBBLES ------------ Bubble for typing indicators
WATER_LEVEL_LAYER
Anything below this layer is to be considered completely (visually) under water by the immerse layer.
WATER_VISUAL_OVERLAY_LAYER
The layer of the visual overlay used in the submerge element. The vis overlay inherits the planes of the movables it's attached to (that also have KEEP_TOGETHER added) We just have to make sure the visual overlay is rendered above all the other overlays of those movables.