public void HideLine() { TransportUtil.HideTransportLine(LineID); }
private void SetupControls() { _transportLineLabels = new List <GameObject>(); _title = AddUIComponent <UITitleContainer>(); _title.Parent = this; _buttons = AddUIComponent <UIButtonContainer>(); _captions = AddUIComponent <UICaptionContainer>(); _captions.SortDelegate = SortTransportLinesMethod; switch (Type) { case TransportInfo.TransportType.Bus: _title.IconSprite = "SubBarPublicTransportBus"; _title.TitleText = "Bus Lines"; break; case TransportInfo.TransportType.Metro: _title.IconSprite = "SubBarPublicTransportMetro"; _title.TitleText = "Metro Lines"; break; case TransportInfo.TransportType.Train: _title.IconSprite = "SubBarPublicTransportTrain"; _title.TitleText = "Train Lines"; break; case TransportInfo.TransportType.Tram: _title.IconSprite = "SubBarPublicTransportTram"; _title.TitleText = "Tram Lines"; break; } eventVisibilityChanged += (component, visible) => { if (visible) { foreach (var index in TransportUtil.GetUsedTransportLineIndices()) { if (TransportUtil.GetTransportLineType(index) != Type) { TransportUtil.HideTransportLine(index); } } } else { foreach (var index in TransportUtil.GetUsedTransportLineIndices()) { TransportUtil.ShowTransportLine(index); } } }; // update if lines added or deleted TransportObserver.LineCountChanged += count => { ClearTransportLineLabels(); PopulateTransportLineLabels(); }; _buttons.SelectAll.eventClick += (component, param) => { foreach (var go in _transportLineLabels) { var row = go.GetComponent <UITransportLineRow>(); row.ShowLine(); } }; _buttons.SelectNone.eventClick += (component, param) => { foreach (var go in _transportLineLabels) { var row = go.GetComponent <UITransportLineRow>(); row.HideLine(); } }; }
public override void Start() { base.Start(); _checkBox = AddUIComponent <UICustomCheckbox>(); _colorFieldPanel = AddUIComponent <UIPanel>(); _colorFieldPanel.size = new Vector2(17, 17); _colorFieldPanel.relativePosition = new Vector3(22, 0); _color = Instantiate(FindObjectOfType <UIColorField>().gameObject).GetComponent <UIColorField>(); _colorFieldPanel.AttachUIComponent(_color.gameObject); _color.name = "ColorPickerLine" + LineID; _color.size = new Vector2(17, 17); _color.relativePosition = new Vector3(0, 0); _color.pickerPosition = UIColorField.ColorPickerPosition.RightAbove; _color.eventSelectedColorChanged += (component, value) => TransportUtil.SetLineColor(LineID, value); _name = AddUIComponent <UILabel>(); _stops = AddUIComponent <UILabel>(); _passengers = AddUIComponent <UILabel>(); _trips = AddUIComponent <UILabel>(); _vehicles = AddUIComponent <UILabel>(); _dayOnly = AddUIComponent <UICustomCheckbox>(); _nightOnly = AddUIComponent <UICustomCheckbox>(); _deleteButton = AddUIComponent <UIButton>(); _deleteButton.size = new Vector2(17, 17); _deleteButton.tooltip = "Delete line"; _deleteButton.normalFgSprite = "buttonclose"; _deleteButton.pressedFgSprite = "buttonclosepressed"; _deleteButton.hoveredFgSprite = "buttonclosehover"; _deleteButton.isVisible = true; _checkBox.relativePosition = new Vector3(5, 0); _name.relativePosition = new Vector3(43, 0); _stops.relativePosition = new Vector3(170, 0); _passengers.relativePosition = new Vector3(225, 0); _trips.relativePosition = new Vector3(320, 0); _vehicles.relativePosition = new Vector3(401, 0); _dayOnly.relativePosition = new Vector3(455, 0); _nightOnly.relativePosition = new Vector3(490, 0); _deleteButton.relativePosition = new Vector3(515, 0); _name.textColor = new Color32(185, 221, 254, 255); _stops.textColor = new Color32(185, 221, 254, 255); _passengers.textColor = new Color32(185, 221, 254, 255); _trips.textColor = new Color32(185, 221, 254, 255); _vehicles.textColor = new Color32(185, 221, 254, 255); _checkBox.size = new Vector2(12, 12); _dayOnly.size = new Vector2(12, 12); _nightOnly.size = new Vector2(12, 12); //init the day/night checkboxes _dayOnly.IsChecked = TransportUtil.GetDay(LineID); _nightOnly.IsChecked = TransportUtil.GetNight(LineID); // event handler for on/off of the line _checkBox.eventClick += (component, param) => { _checkBox.IsChecked = !_checkBox.IsChecked; if (!_checkBox.IsChecked) { TransportUtil.HideTransportLine(LineID); } else { TransportUtil.ShowTransportLine(LineID); } }; // event handler for on/off of day _dayOnly.eventClick += (component, param) => { _dayOnly.IsChecked = !_dayOnly.IsChecked; TransportUtil.SetDay(LineID, _dayOnly.IsChecked); }; // event handler for on/off of night _nightOnly.eventClick += (component, param) => { _nightOnly.IsChecked = !_nightOnly.IsChecked; TransportUtil.SetNight(LineID, _nightOnly.IsChecked); }; _name.eventClick += (component, param) => WorldInfoPanel.Show <PublicTransportWorldInfoPanel>(TransportUtil.GetFirstLineStop(LineID), InstanceID); _name.eventMouseHover += (component, param) => { TransportUtil.SelectTransportLine(LineID); _name.textColor = TransportUtil.GetLineColor(LineID); }; _name.eventMouseLeave += (component, param) => { TransportUtil.DeselectTransportLine(LineID); _name.textColor = new Color32(185, 221, 254, 255); }; _deleteButton.eventClick += (component, param) => Singleton <TransportManager> .instance.ReleaseLine(LineID); // scale label texts _name.textScale = 0.8f; _stops.textScale = 0.8f; _passengers.textScale = 0.8f; _trips.textScale = 0.8f; _vehicles.textScale = 0.8f; _deleteButton.textScale = 0.8f; // zebra stripes background backgroundSprite = "GenericPanelLight"; if (IsOdd) { color = new Color32(150, 150, 150, 255); } else { color = new Color32(130, 130, 130, 255); } // center elements in row UIComponent[] children = GetComponentsInChildren <UIComponent>(); foreach (UIComponent child in children) { if (child == this) { continue; } child.pivot = UIPivotPoint.MiddleLeft; child.transformPosition = new Vector3(child.transformPosition.x, GetBounds().center.y, 0); } }