@Override
    default void updateAndPropagate(@Nullable IPropagationPart from, int mode) {
        int mask = getColorMaskFrom(from, mode);
        if (mode == DROPPING && isSignalZero(getSignal(), mask)) return;

        byte[] newSignal = calculateSignal();
        applyChangeMask(getSignal(), newSignal, mask);

        setColorMask(mask);

        if (dropSignalsLessThan(getSignal(), newSignal)) {
            if (!isSignalZero(newSignal, mask)) {
                RedstonePropagator.propagateAnalogDrop(this);
            }
            propagateForward(from, DROPPING);
        } else if (!signalsEqual(getSignal(), newSignal)) {
            setSignal(newSignal);
            if (mode == DROPPING) {
                propagateForward(null, RISING);
            } else {
                propagateForward(from, RISING);
            }
        } else if (mode == FORCE) {
            propagateForward(from, FORCED);
        }  else if (mode == DROPPING) {
            propagateBackward(from, RISING);
        }

        setColorMask(0xFFFF);
    }
Actively calculates current bundled signal based on neighbor emissions
@return new bundled signals
transmission/src/main/java/mrtjp/projectred/transmission/part/IBundledPropagationPart.java