/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/layers.dm

SEETHROUGH_PLANESlightly above the game plane but does not catch mouse clicks. Useful for certain visuals that should be clicked through, like seethrough trees
LIGHTING_PLANENormal 1 per turf dynamic lighting underlays
O_LIGHTING_VISUAL_PLANELighting objects that are "free floating"
EMISSIVE_RENDER_PLATEThis plane masks out lighting to create an "emissive" effect, ie for glowing lights in otherwise dark areas.
LIGHT_MASK_PLANEMasks the lighting plane with turfs, so we never light up the void Failing that, masks emissives and the overlay lighting plane
ABOVE_LIGHTING_PLANEThings that should render ignoring lighting
PIPECRAWL_IMAGES_PLANE---------------- MISC ----------------------- Pipecrawling images
CAMERA_STATIC_PLANEAI Camera Static
HIGH_GAME_PLANEAnything 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_PLANEPlane for balloon text (text that fades up)
SPLASHSCREEN_PLANEPlane of the "splash" icon used that shows on the lobby screen
RENDER_PLANE_GAME_MASKEDIf fov is enabled we'll draw game to this and do shit to it
RENDER_PLANE_GAME_UNMASKEDThe bit of the game plane that is let alone is sent here
ESCAPE_MENU_PLANEPlane 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_RANGEThe 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_LAYERcatwalk overlay of /turf/open/floor/plating/catwalk_floor
WATER_LEVEL_LAYERAnything below this layer is to be considered completely (visually) under water by the immerse layer.
WATER_VISUAL_OVERLAY_LAYERThe 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_LAYERTypically 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_LAYERMisc things that draw on the turf lighting plane Space, solar beams, etc
LIGHTING_ABOVE_ALLStuff that needs to draw above everything else on this plane
EMISSIVE_LAYER_UNBLOCKABLEThe 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_LAYER1000 is an unimportant number, it's just to normalize copied layers
SCREENTIP_LAYERLayer for screentips
TUTORIAL_INSTRUCTIONS_LAYERLayer for tutorial instructions
LIGHT_DEBUG_LAYERLayer for light overlays
LOBBY_BELOW_MENU_LAYERLayer for lobby menu collapse button
LOBBY_MENU_LAYERLayer for lobby menu background image and main buttons (Join/Ready, Observe, Charater Prefs)
LOBBY_SHUTTER_LAYERLayer for lobby menu shutter, which covers up the menu to collapse/expand it
LOBBY_BOTTOM_BUTTON_LAYERLayer for lobby menu buttons that are hanging away from and lower than the main panel
CINEMATIC_LAYERcinematics are "below" the splash screen
PLANE_MASTERS_GAMEPlane master controller keys
PLANE_CRITICAL_DISPLAYThis plane master will not go away if its layer is culled. useful for preserving effects
PLANE_CRITICAL_NO_RELAYThis 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_RENDERWe assume this plane master has a render target starting with *, it'll be removed, forcing it to render in place
MULTIZ_PERFORMANCE_DISABLEA value of /datum/preference/numeric/multiz_performance that disables the option
MAX_EXPECTED_Z_DEPTHWe 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)

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, Charater 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

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

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.