Multitool cloning.
Add a device to a multitool's linking buffer, click on the multitool in your hand, and any other devices of said type will have ID and frequency "cloned".
Currently works for the following things:
* Unary vents.
* DP vents.
* Air injectors.
* Emitters.
* Scrubbers.
See merge request !159
Addresses #2914, adds renaming. Unfortunately does not work properly as it should be readding the vents/scrubbers to the new area as well as renaming all the machinery properly from space.
Vents & scrubbers now have their ID changed on the area's vent & scrubber info, and get removed (and have their name set to "vent Pump"/"Air scrubber") if their frequency gets changed to something not 1439
Removed update_values(). RIP, shine on you CPU diamond.
Removed get_moles_by_id and get_archived_moles_by_id, all moles are now accessed directly to reduce call cost.
Added set_temperature and set_volume procs which recalc pressure when temperature or pressure change.
Heat_capacity is now a var updated when gases update.
Modified adjust_gas to use set_gas, modified set_gas to alter heat_capacity, total_moles, and pressure as needed.
Included:
-The process lists use |= instead of += due to the increased stability of the former against double additions.
-Atmospherics machinery is moved under the pipenet processing.
-Modified the atmospherics processes to return 1 when theyve done something, and 0 if they aint done jack shit. Then called scheck() if they return 1, possibly reducing unnecessary scheck calls while still managing to smooth out the atmospherics processing.
-If a powernet happens to get rebuilt by either powernets or power machinery scheck() is also called
Tanks are now unaries, not pipes.
Portable connectors are now unaries, not their own type.
Valves are now binaries, T-Valves are now trinaries.
Pipes as much as possible now use the general attackby code.
Slight changes to pooling code.
Removed loads of duplicate code that existed for no real reason.
T-Valves now come in manual and digital and mirrored under those types, not the other way around.
Mirrored connecting sprites for T-Valves should show up properly now.
Never again.
+ Now with code import/export (JSON-based)
* Remove script works now
* Correctly interfaces with digital valves
* Yes/No dialogs are less stupid now
* Vents stay on after being disconnected from pipenet.
* Valves no longer removed from machinery list.
* JSON parser fixes.