turf 
Vars | |
| 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 |
Procs | |
| 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 |
| 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. |
| 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. |
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:
- destination_turf - Where are we going from where we are?
- pass_info - Holds all the info about what this path attempt can go through
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:
- exclude_mobs - If TRUE, ignores dense mobs on the turf.
- source_atom - If this is not null, will check whether any contents on the turf can block this atom specifically. Also ignores itself on the turf.
- ignore_atoms - Check will ignore any atoms in this list. Useful to prevent an atom from blocking itself on the turf.
- type_list - are we checking for types of atoms to ignore and not physical atoms
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.