Circuit Block

Purpose
Circuit blocks reflectively invoke Java code for the circuit they represent in order to extend the functionality of Minecraft redstone. Every circuit maintains information about the circuit and set of circuit configuration options it represents, and updates its internal state in response to redstone and bus signals at every Circuit Tick.

Appearance/Properties
Circuit blocks are hand-breakable, transparent bottom half-slabs with black bottom/default side faces. Every input/output face is colored according to the width of the corresponding input/output Buses the circuit block can connect to. The top face of the circuit displays the circuit's 16x16 Icon.png and the circuit's configuration options in a corner in small print (may be toggled in the Configs).

Circuit Ticks
Circuit ticks are almost the same as "Redstone ticks", but are globally synchronized to occur on even-numbered world (total time) ticks. This differs from "redstone ticks" because vanilla redstone components in redstone circuitry are typically synchronized with each other by virtue of their lazy update behavior, whereas sequential circuits in the mod must repeatedly update on a fixed timer, possibly with no changing external inputs. Since "redstone ticks" occur every-other game tick, and a core focus of the mod is constructing functionally equivalent circuitry, circuits also update every-other game tick, with global synchronization to ensure internally-consistent update behavior.

A consequence of this necessary design decision is that the behavior of circuits in the mod is 100% consistent with regular redstone circuitry only if they are being tested against each other using updates stemming from circuits of the mod. Updates stemming from more finely-grained or unsynchronized events, such as events which occur on game ticks (placing/removing a redstone torch, stepping on a pressure plate, etc.) will result in subtle timing inconsistencies between the two. To observe this effect yourself and get a feel for how it works, try creating a line of delay circuits with a redstone repeater "oscilloscope" somewhere in the middle, and another, equivalent line of redstone repeaters next to it. Sending a signal from a placed/removed redstone torch will sometimes result in a 1-redstone-tick difference between the signal fronts, but sending a signal from a clock circuit (provided by the mod) will result in perfect synchronization. This difference is also present for signals stemming from a redstone repeater clock started on the wrong game tick.