Напишите объект светофор с методами toRed, toGreen, toYellow и state.
Методы to\* переводят светофор в определённое состояние.
Метод state возвращает состояние светофора.
Для задания интервалом горения цветов используется конфиг произвольного формата.
Светофор должен подписаться на событие tram, которое говорит о том, что не раньше чем через 3000 мс подъедет трамвай и необходимо к этому времени переключить светофор на зеленый.
При приближении трамвая светофор должен гореть зеленым не менее 10000 мс, чтобы трамвай успел проехать.
После проезда трамвая необходимо вернуть светофор обратно в исходное состояние.
Бонусные задания:
- Вернуть светофор в исходное состояние так, как будто бы трамвай не проезжал
- Адекватный возврат в исходное состояние: например, если исходное состояние было "красный" и осталось гореть 5 секунд, то возвращаться в него не стоит