I'm happy to announce the release of version 1.0 of the Minecraft Circuits Mod, thanks to both spm61 and littlegban! The mod is a Forge mod tested on Minecraft 1.10.2, which you may obtain here. To use the "custom combinational circuit" feature, you'll also need an up-to-date version of the JDK (not just the JRE!)
While much of the info below is on our wiki, here's an overview of the functionality of the mod:
The Minecraft Circuits Mod allows the player to downsize real redstone circuits to a single block backed by a Java implementation, provided that they produce a functionally-equivalent circuit. Unlike other mods for Minecraft which add circuitry, there is no special separate interface to learn for circuits built in the mod, and the crafting costs of all circuits depend on the way the player originally constructed them -- every block counts!
Craft yourself a control block out of five diamonds and four smooth stone:
and some frame blocks out of one redstone and one smooth stone each:
Build a testing frame out of frame blocks like the one shown in the first screenshot and put a control block in the corner, give it a right-click, and you're good to go!
Control Block GUI
The Control Block GUI will first show a scrollable list of all the circuits installed with the mod, which'll look something like this:
Clicking on any one of the circuits will display a comprehensive description along with a "Test" button, and a "Craft" button if the circuit has been unlocked.
To test a circuit, place one or more input blocks, one for each input index to the circuit, and one or more output blocks, one for each output index for the circuit, into the testing frame. Then, build your own circuit within the testing frame to have the same function as the one described for the circuit, making sure to properly connect input/output blocks as needed. For example, in the first screenshot, the "And(1)" circuit (a 1-bit AND gate) takes two 1-bit inputs (so an Input(0, 1) and an Input(1, 1) block for testing) and returns a single 1-bit output (an Output(0, 1) block for testing). However, where the "And" circuit appears in that screenshot, you would substitute your own implementation of an And gate in redstone.
When you're ready to test, click the "Test" button, and set the configuration for your series of tests. Make sure to set the "Delay" field higher than the number of redstone ticks it takes for a signal to propagate through your circuit! If the testing succeeds, you'll unlock the circuit, meaning that you can craft it whenever you want from any Control Block. If it fails, you'll be notified of the test case it failed on.
Custom (Recorded) Combinational Circuits
The above process works for any circuit with a backing Java implementation. You can also "record" a custom combinational circuit from inside the testing frame, provided that the input space isn't too big (< 6 bits, but this number is configurable). To do so, go to the "custom" folder at the bottom of the main circuit list. When you click it, a folder will pop up for each player on the server who made a custom circuit and a "Make" button will appear in the bottom-right corner.
Once you click the "Make" button, you'll be taken through a series of screens which let you create your own circuits, which you can give all kinds of ridiculous names and icons, like the one shown:
Once you're done creating a circuit, it will appear within your player folder, where you can test and craft it!
To make it easy for circuits to be compressed to a single block, the mod adds Bus Blocks, which allows multiple digital redstone signals to be carried through a single block position! To craft a 2-bit bus, put two redstone dust right next to each other horizontally:
Every bus after that is constructed by placing three n-bit buses in a horizontal line to obtain two 2n-bit buses, like so:
To pass redstone signals to/from buses, see the circuits "InputBitSelect", "Splitter", "Combiner", and "OutputBitSelect".
Input [Special - used in testing]
Output [Special - used in testing]
The default list of circuits is designed to cover the most common (basic) redstone circuitry, but if the list isn't good enough for your purposes, you can easily build your own circuit implementation by creating your own Implementation.class, Icon.png, and description.txt. Just drag all required components into a subdirectory of [World Save]/config/circuitsMod/circuits/ named after your circuit, restart, and go!
If you create a circuit you want to share, post it to our subreddit, /r/minecraftcircuitsmod! Also post builds and suggestions for the mod there. Any issues/bugs should be posted directly on our Issues Page. And of course, there's this thread for discussion, too!