Airlock controllers now use a signal_mech_sensor() proc to send commands
to mech sensors. Docking controllers don't appear to store the mech
sensor tag anywhere so the mech sensor code was left commented out.
The undocking conditions for multidocking ports (used by the escape
shuttle) were overly strict, failing if any door was open/unlocked.
Changed to allow undocking if at least one of the inner or outer doors
can close and lock.
Docking ports still don't use filters though, as it would mess with the
docking ports that are also airlocks. Docking is infrequent though so it
should be fine.
If enabled, detects mechs/trains and blocks their movement if they are coming from any of the directions set by dir. Can currently only be enabled/disabled by radio command and airlocks are updated to utilize this.
The current setup allows mechs to move through airlocks during normal cycles, which for example lets Odysseus out to save lives.
Once a shuttle docks however, the sensors are enabled to prevent boarding.
If blocked, players receive a simple message stating that their command has been overridden.
Escape pods now no longer launch automatically during regular crew
transfers. However they can be set to launch during a regular crew
transfer by emagging the escape pod controller.
Also fixes emergency shuttle arrival announcement having the wrong ETD.
Originally the purpose of the docking override was to allow the shuttle
to move even if it couldn't undock properly (e.g. the doors were stuck
open), however it makes more sense just to have the shuttle take care of
that. This commit now makes the behaviour of the docking overrides line
up with it's new purpose.
Squashes 3 commits:
Shuttles now dock on arrival and departure
Adds docking controller to outpost, tweaks
Finishes off shuttle_console
Could use some cleanup, though.
Commented out the debug stuff.
Squashes 3 commits:
Adds a controller for single door based docks
Adds a docking controller to the research shuttle
Adds override control to airlock dock nano-ui
Squashed 10 commits:
Adds simple docking controllers
Adds docking_controllers.dm
Moves docking handshake code into its own type
Keeps docking code separate from the code for messing with airlocks and
doors.
Improves handling of invalid states
Adds docking controller to research shuttle dock
Also adds the start of a nano-ui template.
Resetting the dock controller resets the override
Adds debug verbs
Adds support for overriding docking checks
Less confusing name for the docking program