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

door

Vars

autoclosedoes it automatically close after some time
can_crushWhether or not the door can crush mobs.
can_open_with_handsWhether or not the door can be opened by hand (used for blast doors and shutters)
elevator_modeSpecial operating mode for elevator doors
elevator_statusCurrent elevator status for processing
emergencyEmergency access override
fillerA filler object used to fill the space of multi-tile airlocks
heat_proofFor rglass-windowed airlocks and firedoors
lockedwhether the door is bolted or not.
multi_tileDo we need to keep track of a filler panel with the airlock
opens_with_door_remoteWhether or not this door can be opened through a door remote, ever
real_explosion_blockignore this, just use explosion_block
red_alert_accessif TRUE, this door will always open on red alert
safewhether the door detects things and mobs in its way and reopen or crushes them.
sub_doortrue if it's meant to go under another door.
transport_linked_idWhat specific lift ID do we link with?
unres_sensorChecks to see if this airlock has an unrestricted "sensor" within (will set to TRUE if present).
unres_sidesUnrestricted sides. A bitflag for which direction (if any) can open the door with no access

Procs

check_security_levelSignal handler for checking if we notify our surrounding that access requirements are lifted accordingly to a newly set security level
closePublic proc that simply handles closing the door. Returns TRUE if the door was closed, FALSE otherwise. Use argument "forced" in conjuction with try_to_force_door_shut if you want/need additional checks depending on how sorely you need the door closed.
get_adjusted_dirChecks which way the airlock is facing and adjusts the direction accordingly. For use with multi-tile airlocks.
on_magic_unlockSignal proc for COMSIG_ATOM_MAGICALLY_UNLOCKED. Open up when someone casts knock.
openPublic proc that simply handles opening the door. Returns TRUE if the door was opened, FALSE otherwise. Use argument "forced" in conjunction with try_to_force_door_open if you want/need additional checks depending on how sorely you need the door opened.
set_fillerSets the bounds of the airlock. For use with multi-tile airlocks. If the airlock is multi-tile, it will set the bounds to be the size of the airlock. If the airlock doesn't already have a filler object, it will create one. If the airlock already has a filler object, it will move it to the correct location.
try_remove_sealCalled when attempting to remove the seal from an airlock
try_to_crowbar_secondaryCalled when the user right-clicks on the door with a crowbar.
try_to_force_door_openPrivate proc that runs a series of checks to see if we should forcibly open the door. Returns TRUE if we should open the door, FALSE otherwise. Implemented in child types. In case a specific behavior isn't covered, we should default to TRUE just to be safe (simply put, this proc should have an explicit reason to return FALSE).
try_to_force_door_shutPrivate proc that runs a series of checks to see if we should forcibly shut the door. Returns TRUE if we should shut the door, FALSE otherwise. Implemented in child types. In case a specific behavior isn't covered, we should default to TRUE just to be safe (simply put, this proc should have an explicit reason to return FALSE).
try_to_weld_secondaryCalled when the user right-clicks on the door with a welding tool.

Var Details

autoclose

does it automatically close after some time

can_crush

Whether or not the door can crush mobs.

can_open_with_hands

Whether or not the door can be opened by hand (used for blast doors and shutters)

elevator_mode

Special operating mode for elevator doors

elevator_status

Current elevator status for processing

emergency

Emergency access override

filler

A filler object used to fill the space of multi-tile airlocks

heat_proof

For rglass-windowed airlocks and firedoors

locked

whether the door is bolted or not.

multi_tile

Do we need to keep track of a filler panel with the airlock

opens_with_door_remote

Whether or not this door can be opened through a door remote, ever

real_explosion_block

ignore this, just use explosion_block

red_alert_access

if TRUE, this door will always open on red alert

safe

whether the door detects things and mobs in its way and reopen or crushes them.

sub_door

true if it's meant to go under another door.

transport_linked_id

What specific lift ID do we link with?

unres_sensor

Checks to see if this airlock has an unrestricted "sensor" within (will set to TRUE if present).

unres_sides

Unrestricted sides. A bitflag for which direction (if any) can open the door with no access

Proc Details

check_security_level

Signal handler for checking if we notify our surrounding that access requirements are lifted accordingly to a newly set security level

Arguments:

close

Public proc that simply handles closing the door. Returns TRUE if the door was closed, FALSE otherwise. Use argument "forced" in conjuction with try_to_force_door_shut if you want/need additional checks depending on how sorely you need the door closed.

get_adjusted_dir

Checks which way the airlock is facing and adjusts the direction accordingly. For use with multi-tile airlocks.

@param dir direction to adjust @return adjusted direction

on_magic_unlock

Signal proc for COMSIG_ATOM_MAGICALLY_UNLOCKED. Open up when someone casts knock.

open

Public proc that simply handles opening the door. Returns TRUE if the door was opened, FALSE otherwise. Use argument "forced" in conjunction with try_to_force_door_open if you want/need additional checks depending on how sorely you need the door opened.

set_filler

Sets the bounds of the airlock. For use with multi-tile airlocks. If the airlock is multi-tile, it will set the bounds to be the size of the airlock. If the airlock doesn't already have a filler object, it will create one. If the airlock already has a filler object, it will move it to the correct location.

try_remove_seal

Called when attempting to remove the seal from an airlock

Here because we need to call it and return if there was a seal so we don't try to open the door or try its safety lock while it's sealed Arguments:

try_to_crowbar_secondary

Called when the user right-clicks on the door with a crowbar.

try_to_force_door_open

Private proc that runs a series of checks to see if we should forcibly open the door. Returns TRUE if we should open the door, FALSE otherwise. Implemented in child types. In case a specific behavior isn't covered, we should default to TRUE just to be safe (simply put, this proc should have an explicit reason to return FALSE).

try_to_force_door_shut

Private proc that runs a series of checks to see if we should forcibly shut the door. Returns TRUE if we should shut the door, FALSE otherwise. Implemented in child types. In case a specific behavior isn't covered, we should default to TRUE just to be safe (simply put, this proc should have an explicit reason to return FALSE).

try_to_weld_secondary

Called when the user right-clicks on the door with a welding tool.