public int pullOutputs() {

        short[] newOutputs = new short[4];
        for (int r = 0; r < 4; r++) {
            for (int i = 0; i < 16; i++) {
                int regId = PRFabricationEngine.outputRegisterId(r, i);
                int value = simulation.getRegByteVal(regId) != 0 ? 1 : 0;
                newOutputs[r] |= value << i;
            }
        }

        int changeMask = 0;
        for (int r = 0; r < 4; r++) {
            if (outputs[r] != newOutputs[r]) {
                outputs[r] = newOutputs[r];
                changeMask |= (1 << r);
            }
        }
        return changeMask;
    }
Outputs from the simulation indexed by rotation (0-3).
fabrication/src/main/java/mrtjp/projectred/fabrication/engine/ICSimulationContainer.java