Bubcat's Blug

More boring history lectures

I honestly cannot remember where the idea originated from, but about a year ago, the Redstone-over-Radio (RoR) system was created. Initially the system only had two components: A transmitter that would read redstone signals (or comparator output, if applicable), and a receiver that would turn radio signals back into redstone. Both components had various settings like polling/state change or an option for mapping redstone to named tags and vice versa, but on a fundamental level the system was only good for sending basic redstone. Later, a counter was added, replacing the simple comparator output with a precise item counter, using up to three filters and three sending frequencies.

Despite only working with redstone, and by extension, simple numbers, the RoR "sending data" system was made to support arbitrary data. This was done for various planned features, most haven't gone anywhere until now. A couple months ago, I received a PR containing a new component, a logic receiver: A receiver component that replaces the simple named mapping system with various logic operations, number comparisons, substrings, inverted operations, etc. Despite its simplicity and the (currently) limited use, this was the final missing part that would allow for all these planned RoR components - INDEX.

INDEX who?

The idea for INDEX is as old as RoR itself, a simple interface allowing machines to produce and receive RoR info using special controller components, allowing automatic control over things that used to only be achievable with manual intervention via GUI, as well as automatic monitoring akin to what OpenComputers can do.

The exact extent to what parts INDEX should have has changed over time and is still not certain, but the current estimate demands four major parts:
  1. A logic receiver that can make sense of many different types of data, allowing things like progress bars, fluid gauges, reactor temperatures to be converted into redstone usable numbers. This part doesn't exactly use the INDEX system (i.e. the Java interfaces), however it is necessary to effectively use most of the other parts.
  2. A reader that can be programmed to monitor values, either via polling or state change, and sends those over the programmed frequencies. This provides a very simple way of extracting information out of machines.
  3. A controller that can be programmed to work on multiple frequencies to receive commands over, and then relay commands to the connected machine. This provides a very simple way of toggling or configuring machines, metaphorically "pulling levers" like one would via a GUI.
  4. A programmer that receives commands which is relayed to the machine, which creates a return value that is being sent over a different frequency. While the practical applications for this are slim, this component alone can in theory do everything the previous two components do, albeit with more setup required. The programmer would be the equivalent to a complete Java method call, sending a command (i.e. the target method) with parameters and producing a return value that can be received and processed as desired.
Strictly speaking, the only of the three components that use the INDEX system that is necessary would be the programmer. However the other two components provide a smaller, but easier to use and quicker to set up, set of operations they can do, effectively making the programmer only really necessary for very special tasks.

So what does this mean for me?

INDEX allows a ton of new avenues:

< i wanna go home