Goonstation 13 - Modules - TypesVar Details - Proc Details

/obj/linked_laser

Vars

is_endpointAre we at the very end of the beam, and so watching to see if the next turf becomes free
lengthHow many laser segments are behind us
max_lengthMaximum number of segments in the beam, this exists to prevent nerds from blowing up the server
powerRelative laser power, modified by splitters etc.
sinkA laser sink we're pointing into (null on most beams)

Procs

CrossedNB: the parent is allowed to qdel src here, so child types should handle being qdeled in Crossed
become_endpointCalled on the last laser in the chain to make it watch for changes to the turf blocking it
copy_laserReturns a new segment with all its properties copied over (override on child types)
current_turf_density_changeSomething is changing density in our current turf
current_turf_replaced///////////clusterfuck signal registered procs/////////////// Our turf is being replaced with another
disposingKill any upstream laser objects
extendSet up a new laser on the next turf
is_blockingDoes something block the laser?
next_turf_replacedThe next turf in line is being replaced with another, so check if it's now suitable to put another laser on
next_turf_updatedSomething is crossing into or changing density in the next turf in line
release_endpointCalled when we extend a new laser object and are therefore no longer an endpoint
traverseTraverses all upstream laser segments and calls proc_to_call on each of them
try_propagateAttempt to propagate the laser by extending, interacting with sinks etc. Separated from New to allow setting up properties on a laser object without passing them as New args
turf_checkDoes anything on a turf block the laser?

Var Details

is_endpoint

Are we at the very end of the beam, and so watching to see if the next turf becomes free

length

How many laser segments are behind us

max_length

Maximum number of segments in the beam, this exists to prevent nerds from blowing up the server

power

Relative laser power, modified by splitters etc.

sink

A laser sink we're pointing into (null on most beams)

Proc Details

Crossed

NB: the parent is allowed to qdel src here, so child types should handle being qdeled in Crossed

become_endpoint

Called on the last laser in the chain to make it watch for changes to the turf blocking it

copy_laser

Returns a new segment with all its properties copied over (override on child types)

current_turf_density_change

Something is changing density in our current turf

current_turf_replaced

///////////clusterfuck signal registered procs/////////////// Our turf is being replaced with another

disposing

Kill any upstream laser objects

extend

Set up a new laser on the next turf

is_blocking

Does something block the laser?

next_turf_replaced

The next turf in line is being replaced with another, so check if it's now suitable to put another laser on

next_turf_updated

Something is crossing into or changing density in the next turf in line

release_endpoint

Called when we extend a new laser object and are therefore no longer an endpoint

traverse

Traverses all upstream laser segments and calls proc_to_call on each of them

try_propagate

Attempt to propagate the laser by extending, interacting with sinks etc. Separated from New to allow setting up properties on a laser object without passing them as New args

turf_check

Does anything on a turf block the laser?