public void Switch() { LightTransitionConfig nextTransition = GetNextTransition(); if (nextTransition != null) { ChangeState(nextTransition.TargetState, nextTransition); } }
private void ChangeState(LightColorRulesConfig newState, LightTransitionConfig transition = null) { foreach (var t in _view.Lights) { t.TurnOff(); } if (transition != null && !transition.SwitchOffCurrentStateOnEnter) { _rulesAndViews[_currentState].TurnOn(); } _rulesAndViews[newState].TurnOn(); _previousState = _currentState; _currentState = newState; }