* Switch a bunch of /obj/machinery from /New to /Initialize
This is an easy and uncontroversial batch.
No globs, no late init, and stuff.
* Move more machinery to Initialize
This time the ones dealing with GLOB vars,
as well as some simpler ones i missed previously.
* More tricky New -> Initialize migrations
* The last of machinery Initialize conversion
* fixups
* Newscaster armor fix
* styling
* Comment on armor handling
* Move newscaster armor definition back to datum
* farie82 review
* kill extra .=
Co-authored-by: Farie82 <farie82@users.noreply.github.com>
* farie's review part 2
Co-authored-by: Farie82 <farie82@users.noreply.github.com>
Co-authored-by: Farie82 <farie82@users.noreply.github.com>
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.
Allows mass driver buttons to send logic signals
- They send LOGIC_FLICKER, since they are only on when pressed, then
turn off when released
- Can send logic signals to a different ID tag than their associated
driver/door ID tag, configurable from the multitool menu
Allows light switches to send logic signals
- Will send LOGIC_ON or LOGIC_OFF signals to match their current state
- Send both when toggled and on the process() cycle
- Light control can be toggled via the multitool menu, so you can use
them as purely light switches, purely logic switches, or as dual
switches
Allows light switches to be made from metal sheets, just like mass
driver buttons (1 sheet per button)
- Fixes a resource duplication bug where driver buttons can be
disassembled for more metal than it takes to build them
Begins to move some code for various button types into the buttons.dm
file, rather than being scattered across multiple files
- Driver buttons code moved from door_control.dm
- Ignition switch code moved from igniter.dm
Renames driver_button.dm to buttons_switches.dm
- This is the file that contained the mountable frames for driver
buttons, and now also contains the frame for light switches.
- Fixes signal Del() messages
- Allows driver buttons to send logic signals
- Moves a driver button var into the buttons.dm file
- Need to move the procs there for organization still
This commit overhauls mass drivers.
Every component of mass drivers are now buildable.
This means:
- Mass Drivers
- Mass Driver Control Computers
- Mass Driver Buttons
Mass driver control computers now support multiple mass drivers.
You can link mass-drivers to buttons via multitool.
Buttons have a range of 7 for their mass driver link.
Computers have infinite range.