```python
from typing import List

def wave_count(readings: List[int]) -> int:
    """
    Count how many times a run of readings changes direction.
    
    A change is defined as a rise that follows a fall or a fall that follows a rise.
    Readings without any change are considered to be unchanged.
    
    :param readings: A list of integers representing the current state of the readings.
    :return: The number of times the readings change direction.
    """
    if not readings:
        return 0
    
    count = 0
    for i in range(1, len(readings)):
        if (readings[i] > readings[i - 1]) != (readings[i + 1] < readings[i]):
            count += 1
            
    return count
```