This converts the machine and mob processes to the SMC. Additionally, it
adds the Atom subsystem, which handles all Initialize() calls in place
of the old gameticker. Due to incompatibility with our atmospherics
(FUCK OUR ATMOSPHERICS FOR FUCKING EVER JESUS CHRIST WHO THE FUCK MADE
THIS PIECE OF GODDAMN SHIT) atmospherics machines do not use
Initialize() as they should, instead opting for a custom atmos_init
proc that the air controller handles.
This commit changes how NanoUI's live data updating system works.
Previously, data for the template was directly gathered in the
ui_interact proc. Now, it is seperated into the proc `ui_data`.
To players, this does absolutely nothing.
To coders, this opens up the potential for a much more complicated and
fancy graphical updating system in the future, because the data is
available on-demand without ever having to call
nanomanager.try_update_ui.
Currently, to_chat is literally just a proc that does user << message.
But it'll let us do output modification in the future, especially for
something like Goon's HTML chat.
Big thanks to PJB for his to_chat script, see
https://github.com/d3athrow/vgstation13/pull/6625 for more details.
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.
Simplifies the mapping of docking controllers by cutting down on the
number of tags needed to be entered.
Conflicts:
code/game/machinery/embedded_controller/simple_docking_controller.dm
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.
Conflicts:
code/controllers/emergency_shuttle_controller.dm
maps/tgstation2.dmm
Replaces the old emergency shuttle control console with a nice new
NanoUI one. Improves the NanoUI for the docking controllers.
Conflicts:
maps/tgstation2.dmm
Server and client now have more consistent responsibilities.
Ferry shuttles will always be forced undocked when moved, even if moved
by admin magic.
Conflicts:
code/game/machinery/embedded_controller/docking_program.dm
Now both server and client will to undock concurrently. It looks much
more natural.
Conflicts:
code/game/machinery/embedded_controller/docking_program.dm
code/game/machinery/embedded_controller/simple_docking_controller.dm
Also adjusted the way undocking signals were used.
Conflicts:
code/game/machinery/doors/airlock_control.dm
code/game/machinery/embedded_controller/docking_program.dm
code/modules/shuttles/shuttle.dm
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.
Conflicts:
code/game/machinery/embedded_controller/docking_program.dm
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.
Conflicts:
code/controllers/master_controller.dm
code/game/machinery/embedded_controller/docking_program.dm
code/game/machinery/embedded_controller/simple_docking_controller.dm
code/modules/shuttles/shuttle.dm
maps/tgstation2.dmm