Assemblies update - import/export, pointer values, QoL stuff
Created by: unid15
- Updated assembly frames with a lot of quality of life stuff:
- Added a LOCK/UNLOCK button. When the assembly frame is locked, assemblies can't be ejected (because accidentally clicking [X] and ejecting an assembly with 20 connections sucks basketballs)
- Added a M button to assemblies. It lets you move assemblies to another index (moving important stuff to the top for easier access, etc)
- Included #7478 functionality into assembly frames: added an EXPORT button that saves your contraption to a blank sheet of paper. Inserting a paper such exported data into an empty assembly frame will instantly build the contraption (as long as all the required assemblies are nearby). Thank you @Exxion for coding this!
- Copying the exported data with a pen works, so you can copy assemblies between rounds. What could go wrong?
- Comparison circuits can work with strings now.
- Added new pointer values to W/R and comparison circuits. Pointers contain information about other devices connected to an assembly.
- Comparison circuits, for example, have four pointers - "Device 1", "Device 2", "Pulse if true" and "Pulse if false". If a comparison circuit is comparing Math Circuit A (with index 5) and Math Circuit B (with index 10), reading "Device 1" will return A's position in the assembly frame (5) and reading "Device 2" will return B's position in the assembly frame (10).
- You can write numbers to pointer values using W/R circuits. Writing a number will make the assembly attempt to connect to the assembly at that index. In the above example, writing 10 to "Device 1" will cause the first device to be Math Circuit B, instead of Math Circuit A.
- Also fixed assembly frames and some assemblies being usable at distance