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.
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.