```python
from typing import List

def wave_count(readings: List[int]) -> int:
    """
    Count the number of times a run of readings changes direction.
    A change is defined as a rise followed by a fall or a fall followed by a rise.
    Readings that hold level neither rise nor fall and change nothing are ignored.
    """
    if not readings:
        return 0
    
    count = 0
    for i in range(1, len(readings)):
        if (readings[i] > readings[i-1] and readings[i] > readings[i+1]) or \
           (readings[i] < readings[i-1] and readings[i] < readings[i+1]):
            count += 1
    
    return count
```