/tg/ Station 13 - Modules - TypesVar Details - Proc Details

turf

Any floor or wall. What makes up the station and the rest of the map.

Vars

affecting_lightsList of light sources affecting this turf.
atmos_adjacent_turfslist of turfs adjacent to us that air can flow onto
atmos_supeconductivitybitfield of dirs in which we are superconducitng
directional_opacityWhich directions does this turf block the vision of, taking into account both the turf's opacity and the movable opacity_sources.
dynamic_lumcountLumcount added by sources other than lighting datum objects, such as the overlay lighting component.
fixed_underlayIcon-smoothing variable to map a diagonal wall corner with a fixed underlay.
holodeck_compatiblethe holodeck can load onto this turf if TRUE
lighting_objectOur lighting object.
opacity_sourcesLazylist of movable atoms providing opacity sources.
rcd_memoryIf this turf contained an RCD'able object (or IS one, for walls) but is now destroyed, this will preserve the value. See _DEFINES/construction.dm for RCD_MEMORY*.
turf_flagsTurf bitflags, see code/__DEFINES/flags.dm

Procs

InitializeTurf Initialize
LinkBlockedWithAccessFor seeing if we can actually move between 2 given turfs while accounting for our access and the caller's pass_flags
ScrapeAwayTake off the top layer turf and replace it with the next baseturf down
add_opacity_sourceProc to add movable sources of opacity on the turf and let it handle lighting code.
air_update_turfA helper proc for dealing with atmos changes
conductivity_directionsSUPERCONDUCTIVITY ALLLLLLLLLLLLLLLLLLLLRIGHT HERE WE GOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
consider_superconductivityShould we attempt to superconduct?
expose_reagentsHandles exposing a turf to reagents.
fromShuttleMoveBase procs
is_blocked_turfCheck whether the specified turf is blocked by something dense inside it with respect to a specific atom.
is_nearby_planetary_atmosRuns through all adjacent open turfs and checks if any are planetary_atmos returns true if even one passes.
neighbor_conduct_with_srcThese two procs are a bit of a web, I belive in you
reachableAdjacentTurfsReturns adjacent turfs to this turf that are reachable, in all cardinal directions
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.
return_turf_delta_pFinds the greatest difference in pressure across a turf, only considers open turfs.
washCalled 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.

rcd_memory

If this turf contained an RCD'able object (or IS one, for walls) but is now destroyed, this will preserve the value. See _DEFINES/construction.dm for RCD_MEMORY*.

turf_flags

Turf bitflags, see code/__DEFINES/flags.dm

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:

ScrapeAway

Take off the top layer turf and replace it with the next baseturf down

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:

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:

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:

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