turf

Any floor or wall. What makes up the station and the rest of the map.
Vars | |
affecting_lights | List of light sources affecting this turf. |
---|---|
atmos_adjacent_turfs | list of turfs adjacent to us that air can flow onto |
atmos_supeconductivity | bitfield of dirs in which we are superconducitng |
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_lumcount | Lumcount added by sources other than lighting datum objects, such as the overlay lighting component. |
fixed_underlay | Icon-smoothing variable to map a diagonal wall corner with a fixed underlay. |
holodeck_compatible | the holodeck can load onto this turf if TRUE |
lighting_object | Our lighting object. |
opacity_sources | Lazylist of movable atoms providing opacity sources. |
Procs | |
Initialize | Turf Initialize |
LinkBlockedWithAccess | For seeing if we can actually move between 2 given turfs while accounting for our access and the caller's pass_flags |
add_opacity_source | Proc to add movable sources of opacity on the turf and let it handle lighting code. |
air_update_turf | A helper proc for dealing with atmos changes |
conductivity_directions | SUPERCONDUCTIVITY ALLLLLLLLLLLLLLLLLLLLRIGHT HERE WE GOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO |
consider_superconductivity | Should we attempt to superconduct? |
expose_reagents | Handles exposing a turf to reagents. |
fromShuttleMove | Base procs |
is_blocked_turf | Check whether the specified turf is blocked by something dense inside it with respect to a specific atom. |
is_nearby_planetary_atmos | Runs through all adjacent open turfs and checks if any are planetary_atmos returns true if even one passes. |
neighbor_conduct_with_src | These two procs are a bit of a web, I belive in you |
reachableAdjacentTurfs | Returns adjacent turfs to this turf that are reachable, in all cardinal directions |
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. |
return_turf_delta_p | Finds the greatest difference in pressure across a turf, only considers open turfs. |
wash | Called when this turf is being washed. Washing a turf will also wash any mopable floor decals |
Var Details
affecting_lights

List of light sources affecting this turf.
atmos_adjacent_turfs

list of turfs adjacent to us that air can flow onto
atmos_supeconductivity

bitfield of dirs in which we are superconducitng
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_lumcount

Lumcount added by sources other than lighting datum objects, such as the overlay lighting component.
fixed_underlay

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

the holodeck can load onto this turf if TRUE
lighting_object

Our lighting object.
opacity_sources

Lazylist of movable atoms providing opacity sources.
Proc Details
Initialize
Turf Initialize
Doesn't call parent, see /atom/proc/Initialize
LinkBlockedWithAccess
For seeing if we can actually move between 2 given turfs while accounting for our access and the caller's pass_flags
Arguments:
- caller: The movable, if one exists, being used for mobility checks to see what tiles it can reach
- ID: An ID card that decides if we can gain access to doors that would otherwise block a turf
- simulated_only: Do we only worry about turfs with simulated atmos, most notably things that aren't space?
add_opacity_source
Proc to add movable sources of opacity on the turf and let it handle lighting code.
air_update_turf
A helper proc for dealing with atmos changes
Ok so this thing is pretty much used as a catch all for all the situations someone might wanna change something About a turfs atmos. It's real clunky, and someone needs to clean it up, but not today. Arguments:
- update - Has the state of the structures in the world changed? If so, update our adjacent atmos turf list, if not, don't.
- remove - Are you removing an active turf (Read wall), or adding one
conductivity_directions
SUPERCONDUCTIVITY ALLLLLLLLLLLLLLLLLLLLRIGHT HERE WE GOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
Read the code for more details, but first, a brief concept discussion/area
Our goal here is to "model" heat moving through solid objects, so walls, windows, and sometimes doors. We do this by heating up the floor itself with the heat of the gasmix ontop of it, this is what the coeffs are for here, they slow that movement Then we go through the process below.
If an active turf is fitting, we add it to processing, conduct with any covered tiles, (read windows and sometimes walls) Then we space some of our heat, and think about if we should stop conducting.
consider_superconductivity
Should we attempt to superconduct?
expose_reagents
Handles exposing a turf to reagents.
fromShuttleMove
Base procs
is_blocked_turf
Check whether the specified turf is blocked by something dense inside it with respect to a specific atom.
Returns truthy value TURF_BLOCKED_TURF_DENSE if the turf is blocked because the turf itself is dense. Returns truthy value TURF_BLOCKED_CONTENT_DENSE if one of the turf's contents is dense and would block a source atom's movement. Returns falsey value TURF_NOT_BLOCKED if the turf is not blocked.
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.
is_nearby_planetary_atmos
Runs through all adjacent open turfs and checks if any are planetary_atmos returns true if even one passes.
neighbor_conduct_with_src
These two procs are a bit of a web, I belive in you
reachableAdjacentTurfs
Returns adjacent turfs to this turf that are reachable, in all cardinal directions
Arguments:
- caller: The movable, if one exists, being used for mobility checks to see what tiles it can reach
- ID: An ID card that decides if we can gain access to doors that would otherwise block a turf
- simulated_only: Do we only worry about turfs with simulated atmos, most notably things that aren't space?
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.
return_turf_delta_p
Finds the greatest difference in pressure across a turf, only considers open turfs.
wash
Called when this turf is being washed. Washing a turf will also wash any mopable floor decals