door 
Vars | |
| animation | The animation we're currently playing, if any |
|---|---|
| autoclose | does it automatically close after some time |
| can_be_glass | If something isn't a glass door but doesn't have a fill_closed icon (no glass slots), this prevents it from being used |
| 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) |
| delayed_unres_open | Delayed open for unrestricted users. If there is an unrestricted side, we want to know if the door opening should be delayed for a bit to add tension and what-not |
| delayed_unres_time_lower | Lower range for random time to open for unrestricted users |
| delayed_unres_time_upper | Upper range for random time to open for unrestricted users |
| 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 |
| has_access_panel | Whether this door has a panel or not; FALSE also stops the examine blurb about the panel from showing up |
| 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 |
| pressure_push_cooldown | Cooldown tracker to prevent message spam when resisting pressure while opening via unrestricted latch |
| 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_latch | Checks to see if this airlock has an unrestricted "latch" 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 |
Procs | |
| animation_effects | Override this to do misc tasks on animation start |
| animation_length | Returns the delay to use for the passed in animation We'll do our cleanup once the delay runs out |
| animation_segment_delay | Returns the time required to hit particular points in an animation Used to manage delays for opening/closing and such |
| attempt_delayed_unres_open | Initiates a do_after to open the door after a delay for unrestricted openers Returns TRUE if we successfully finished the do_after, FALSE otherwise |
| check_security_level | Signal handler for checking if we notify our surrounding that access requirements are lifted accordingly to a newly set security level |
| 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. |
| deregister_pressure_push_signal | Exists to ensure that we always deregister the pressure push blocking signal. Can be called multiple times safely as we check the trait. |
| get_adjusted_dir | Checks which way the airlock is facing and adjusts the direction accordingly. For use with multi-tile airlocks. |
| 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. |
| run_animation | Used to start a new animation Accepts the animation to start as an arg |
| 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. |
| stop_pressure_during_unres_open | While activating the door, we are able to block pressure pushes since we're "grasping the override handle" or something similar to that. This basically exists to prevent the door's delay from being SUPREMELY annoying when you're trying to escape pressure-based damage during the unrestricted latch do_after. |
| try_remove_seal | Called when attempting to remove the seal from an airlock |
| 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. |
| unrestricted_side | Allows for specific side of airlocks to be unrestricted (IE, can exit maint freely, but need access to enter) |
Var Details
animation 
The animation we're currently playing, if any
autoclose 
does it automatically close after some time
can_be_glass 
If something isn't a glass door but doesn't have a fill_closed icon (no glass slots), this prevents it from being used
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)
delayed_unres_open 
Delayed open for unrestricted users. If there is an unrestricted side, we want to know if the door opening should be delayed for a bit to add tension and what-not
delayed_unres_time_lower 
Lower range for random time to open for unrestricted users
delayed_unres_time_upper 
Upper range for random time to open for unrestricted users
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
has_access_panel 
Whether this door has a panel or not; FALSE also stops the examine blurb about the panel from showing up
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
pressure_push_cooldown 
Cooldown tracker to prevent message spam when resisting pressure while opening via unrestricted latch
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_latch 
Checks to see if this airlock has an unrestricted "latch" 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
animation_effects
Override this to do misc tasks on animation start
animation_length
Returns the delay to use for the passed in animation We'll do our cleanup once the delay runs out
animation_segment_delay
Returns the time required to hit particular points in an animation Used to manage delays for opening/closing and such
attempt_delayed_unres_open
Initiates a do_after to open the door after a delay for unrestricted openers Returns TRUE if we successfully finished the do_after, FALSE otherwise
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:
- source The datum source of the signal
- new_level The new security level that is in effect
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.
deregister_pressure_push_signal
Exists to ensure that we always deregister the pressure push blocking signal. Can be called multiple times safely as we check the trait.
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.
run_animation
Used to start a new animation Accepts the animation to start as an arg
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.
stop_pressure_during_unres_open
While activating the door, we are able to block pressure pushes since we're "grasping the override handle" or something similar to that. This basically exists to prevent the door's delay from being SUPREMELY annoying when you're trying to escape pressure-based damage during the unrestricted latch do_after.
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:
- user - the mob attempting to remove the seal
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.
unrestricted_side
Allows for specific side of airlocks to be unrestricted (IE, can exit maint freely, but need access to enter)