protected void UpdateVehicleToCurrentStage() { PatternStageType type = currentStageData.Stage.Type; if (type == PatternStageType.None) { LeftHeadlight.SetActive(false); RightHeadlight.SetActive(false); LeftTailLight.SetActive(false); RightTailLight.SetActive(false); LeftBrakeLight.SetActive(false); RightBrakeLight.SetActive(false); MiddleBrakeLight.SetActive(false); return; } LeftHeadlight.SetActive((type & PatternStageType.LeftHeadlight) == PatternStageType.LeftHeadlight); RightHeadlight.SetActive((type & PatternStageType.RightHeadlight) == PatternStageType.RightHeadlight); LeftTailLight.SetActive((type & PatternStageType.LeftTailLight) == PatternStageType.LeftTailLight); RightTailLight.SetActive((type & PatternStageType.RightTailLight) == PatternStageType.RightTailLight); LeftBrakeLight.SetActive((type & PatternStageType.LeftBrakeLight) == PatternStageType.LeftBrakeLight); RightBrakeLight.SetActive((type & PatternStageType.RightBrakeLight) == PatternStageType.RightBrakeLight); MiddleBrakeLight.SetActive(false); }
private static bool ShouldEnableVehicleBrakeLightsForStage(Pattern.Stage stage) { PatternStageType t = stage.Type; if ((t & PatternStageType.LeftTailLight) == PatternStageType.LeftTailLight || (t & PatternStageType.RightTailLight) == PatternStageType.RightTailLight || (t & PatternStageType.LeftBrakeLight) == PatternStageType.LeftBrakeLight || (t & PatternStageType.RightBrakeLight) == PatternStageType.RightBrakeLight) { return(true); } return(false); }
protected PatternStageType GetSelectedStageTypeFromCheckBoxes() { PatternStageType type = PatternStageType.None; foreach (var item in checkBoxesByStageType) { if (item.Value.IsChecked.GetValueOrDefault()) { type |= item.Key; } } return(type); }
private void RenderStage() { PatternStageType type = currentStage.Type; LeftHeadlightEllipse.Visibility = ((type & PatternStageType.LeftHeadlight) == PatternStageType.LeftHeadlight) ? Visibility.Visible : Visibility.Hidden; RightHeadlightEllipse.Visibility = ((type & PatternStageType.RightHeadlight) == PatternStageType.RightHeadlight) ? Visibility.Visible : Visibility.Hidden; LeftTailLightEllipse.Visibility = ((type & PatternStageType.LeftTailLight) == PatternStageType.LeftTailLight) ? Visibility.Visible : Visibility.Hidden; RightTailLightEllipse.Visibility = ((type & PatternStageType.RightTailLight) == PatternStageType.RightTailLight) ? Visibility.Visible : Visibility.Hidden; LeftBrakeLightEllipse.Visibility = ((type & PatternStageType.LeftBrakeLight) == PatternStageType.LeftBrakeLight) ? Visibility.Visible : Visibility.Hidden; RightBrakeLightEllipse.Visibility = ((type & PatternStageType.RightBrakeLight) == PatternStageType.RightBrakeLight) ? Visibility.Visible : Visibility.Hidden; }
protected void OnStageTypeCheckBoxChecked(object sender, RoutedEventArgs e) { CheckBox cb = sender as CheckBox; if (cb != null) { PatternStageType type = (PatternStageType)cb.Content; if (type == PatternStageType.All) { bool isChecked = cb.IsChecked.GetValueOrDefault(); foreach (var item in checkBoxesByStageType) { if (item.Key != PatternStageType.All) { item.Value.IsChecked = isChecked; } } } else { bool isChecked = cb.IsChecked.GetValueOrDefault(); if (!isChecked && (PatternStageType)cb.Content != PatternStageType.All) { checkBoxesByStageType[PatternStageType.All].Unchecked -= OnStageTypeCheckBoxChecked; checkBoxesByStageType[PatternStageType.All].IsChecked = false; checkBoxesByStageType[PatternStageType.All].Unchecked += OnStageTypeCheckBoxChecked; } else if (checkBoxesByStageType.Where(i => i.Key != PatternStageType.All).All(i => i.Value.IsChecked.GetValueOrDefault())) { checkBoxesByStageType[PatternStageType.All].IsChecked = true; } } PatternStageType types = GetSelectedStageTypeFromCheckBoxes(); Type = types; } }
public Stage(PatternStageType type, uint milliseconds) { Type = type; Milliseconds = milliseconds; }