/obj/linked_laser
Vars | |
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) |
Procs | |
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? |
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?