Circuits generate a research design datum when the game starts up instead of me having to manually define them every time I make a new circuit. Hopefully this reduces missing circuits due to mistakes. The circuit box also spawns specific circuits using a similar method for similar reasons.
Other things this does:
Splits the reagent related manipulation circuits to their own category, which cleans up a few repeated New()s.
Drone assembly can be made in RnD now.
Adds injector component, which does what it implies, and injects a reagent into someone or something nearby.
Adds reagent pump, similar to the above but meant for moving reagents around different containers, inside or outside of the machine.
Adds adjacent locator, which can find specific objects next to the machine.
Adds two flavors of the reagent storage component, which does what it says. The second variant is a cryo-beaker version.
Ports PsiOmegaDelta's port of integrated circuits, which has several improvements in code quality.
Ports a few small things like the weakref datum and some macros.
Adds Locomotion circuit, which makes the machine move in a given direction.
Adds Signaler circuit, which can send and receive signals from a signaler.
Adds a new tool, the Debugger, which lets one directly set data in a specific pin. It can also pulse activation pins.
Adds ability to define custom cooldown times for each component.
Smoke generator now has a 30 second cooldown.
Cleans up some code somewhat.