from typing import List


def generate_rule_patterns(rule_id: int) -> List[List[int]]:
    """
    For a given rule ID generates a list of patterns
    that correspond to 1's as new cell state.

    Example:
        >>> generate_rule_patterns(rule_id=110)
        [[0, 0, 1], [0, 1, 0], [0, 1, 1], [1, 0, 1], [1, 1, 0]]
    """
    binary_rule_id = f"{rule_id:08b}"
    patterns = [f"{i:03b}" for i, c in enumerate(binary_rule_id[::-1]) if int(c) == 1]
    patterns = [[int(c) for c in pattern] for pattern in patterns]
    return patterns