Space Station 13 - Modules - TypesVar Details - Proc Details

turf

Vars

assigned_oranges_earwhat /mob/oranges_ear instance is already assigned to us as there should only ever be one. used for guaranteeing there is only one oranges_ear per turf when assigned, speeds up view() iteration
atmos_environmentThe external environment that this tile is exposed to for ATMOS_MODE_EXPOSED_TO_ENVIRONMENT
atmos_modeThe general behavior of atmos on this tile.
atmos_superconductivitymakes turfs less picky about where they transfer gas. Largely just used in the SM
destination_xThe destination x-coordinate that atoms entering this turf will be automatically moved to.
destination_yThe destination y-coordinate that atoms entering this turf will be automatically moved to.
destination_zThe destination z-level that atoms entering this turf will be automatically moved to.
directional_opacityWhich directions does this turf block the vision of, taking into account both the turf's opacity and the movable opacity_sources.
dynamic_lightingHandles if the lighting should be dynamic. Generally lighting is dynamic if it's not in space
fixed_underlayIcon-smoothing variable to map a diagonal wall corner with a fixed underlay.
lighting_corner_NELighting Corner datums.
lighting_corners_initialisedIf you're curious why these are TMP vars, I don't know! TMP only affects savefiles so this does nothing :) - GDN Is the lighting on this turf inited
lighting_objectThe lighting Object affecting us
opacity_sourcesLazylist of movable atoms providing opacity sources.
oxygenProperties for open tiles (/floor) All the gas vars, on the turf, are meant to be utilized for initializing a gas datum and setting its first gas values; the turf vars are never further modified at runtime; it is never directly used for calculations by the atmospherics system.
pathing_pass_methodHow pathing algorithm will check if this turf is passable by itself (not including content checks). By default it's just density check. WARNING: Currently to use a density shortcircuiting this does not support dense turfs with special allow through function
pressure_differenceThe pressure difference between the turf and it's neighbors. Affects movables by pulling them in the path of least resistance
pressure_directionThe direction movables should travel when affected by pressure. Set to the biggest difference in atmos by turf neighbors
pressure_overlayThe effect used to render a pressure overlay from this tile.
real_layerSet if the turf should appear on a different layer while in-game and map editing, otherwise use normal layer.
rust_resistanceThis turf's resistance to getting rusted
transparent_floorused to check if pipes should be visible under the turf or not

Procs

AdjacentTurfsReturns the adjacent turfs. Can check for density or cardinal directions only instead of all 8, or just dense turfs entirely. dense_only takes precedence over open_only.
LinkBlockedWithAccessFor seeing if we can actually move between 2 given turfs while accounting for our access and the path_caller's pass_flags
add_opacity_sourceProc to add movable sources of opacity on the turf and let it handle lighting code.
blind_release_airBlindly releases air to this tile. Do not use if you care what the tile previously held, implement /datum/milla_safe instead.
can_cross_safelyReturns whether it is safe for an atom to move across this turf TODO: Things like lava will need to have more specialized code but that can wait for when we port basic mobs that may actually encounter lava
get_decalsReturns a list of all attached /datum/element/decal/ for this turf
get_readonly_airGets a read-only version of this tile's air. Do not use if you intend to modify the air later, implement /datum/milla_safe instead.
is_blocked_turfCheck whether we are blocked by something dense in our contents with respect to a specific atom.
private_unsafe_get_airDo not call this directly. Use get_readonly_air or implement /datum/milla_safe.
private_unsafe_recalculate_atmos_connectivityThis method is unsafe to use because it only updates milla_* properties, but does not write them to MILLA. Use recalculate_atmos_connectivity() instead.
recalculate_directional_opacityCalculate on which directions this turfs block view.
remove_opacity_sourceProc to remove movable sources of opacity on the turf and let it handle lighting code.
rust_heretic_actCheck if the heretic is strong enough to rust this turf, and if so, rusts the turf with an added visual effect.

Var Details

assigned_oranges_ear

what /mob/oranges_ear instance is already assigned to us as there should only ever be one. used for guaranteeing there is only one oranges_ear per turf when assigned, speeds up view() iteration

atmos_environment

The external environment that this tile is exposed to for ATMOS_MODE_EXPOSED_TO_ENVIRONMENT

atmos_mode

The general behavior of atmos on this tile.

atmos_superconductivity

makes turfs less picky about where they transfer gas. Largely just used in the SM

destination_x

The destination x-coordinate that atoms entering this turf will be automatically moved to.

destination_y

The destination y-coordinate that atoms entering this turf will be automatically moved to.

destination_z

The destination z-level that atoms entering this turf will be automatically moved to.

directional_opacity

Which directions does this turf block the vision of, taking into account both the turf's opacity and the movable opacity_sources.

dynamic_lighting

Handles if the lighting should be dynamic. Generally lighting is dynamic if it's not in space

fixed_underlay

Icon-smoothing variable to map a diagonal wall corner with a fixed underlay.

lighting_corner_NE

Lighting Corner datums.

lighting_corners_initialised

If you're curious why these are TMP vars, I don't know! TMP only affects savefiles so this does nothing :) - GDN Is the lighting on this turf inited

lighting_object

The lighting Object affecting us

opacity_sources

Lazylist of movable atoms providing opacity sources.

oxygen

Properties for open tiles (/floor) All the gas vars, on the turf, are meant to be utilized for initializing a gas datum and setting its first gas values; the turf vars are never further modified at runtime; it is never directly used for calculations by the atmospherics system.

pathing_pass_method

How pathing algorithm will check if this turf is passable by itself (not including content checks). By default it's just density check. WARNING: Currently to use a density shortcircuiting this does not support dense turfs with special allow through function

pressure_difference

The pressure difference between the turf and it's neighbors. Affects movables by pulling them in the path of least resistance

pressure_direction

The direction movables should travel when affected by pressure. Set to the biggest difference in atmos by turf neighbors

pressure_overlay

The effect used to render a pressure overlay from this tile.

real_layer

Set if the turf should appear on a different layer while in-game and map editing, otherwise use normal layer.

rust_resistance

This turf's resistance to getting rusted

transparent_floor

used to check if pipes should be visible under the turf or not

Proc Details

AdjacentTurfs

Returns the adjacent turfs. Can check for density or cardinal directions only instead of all 8, or just dense turfs entirely. dense_only takes precedence over open_only.

LinkBlockedWithAccess

For seeing if we can actually move between 2 given turfs while accounting for our access and the path_caller's pass_flags

Assumes destinantion turf is non-dense - check and shortcircuit in code invoking this proc to avoid overhead. Makes some other assumptions, such as assuming that unless declared, non dense objects will not block movement. It's fragile, but this is VERY much the most expensive part of pathing, so it'd better be fast

Arguments:

add_opacity_source

Proc to add movable sources of opacity on the turf and let it handle lighting code.

blind_release_air

Blindly releases air to this tile. Do not use if you care what the tile previously held, implement /datum/milla_safe instead.

can_cross_safely

Returns whether it is safe for an atom to move across this turf TODO: Things like lava will need to have more specialized code but that can wait for when we port basic mobs that may actually encounter lava

get_decals

Returns a list of all attached /datum/element/decal/ for this turf

get_readonly_air

Gets a read-only version of this tile's air. Do not use if you intend to modify the air later, implement /datum/milla_safe instead.

is_blocked_turf

Check whether we are blocked by something dense in our contents with respect to a specific atom.

Arguments:

private_unsafe_get_air

Do not call this directly. Use get_readonly_air or implement /datum/milla_safe.

private_unsafe_recalculate_atmos_connectivity

This method is unsafe to use because it only updates milla_* properties, but does not write them to MILLA. Use recalculate_atmos_connectivity() instead.

recalculate_directional_opacity

Calculate on which directions this turfs block view.

remove_opacity_source

Proc to remove movable sources of opacity on the turf and let it handle lighting code.

rust_heretic_act

Check if the heretic is strong enough to rust this turf, and if so, rusts the turf with an added visual effect.