示例#1
0
        public override void Start()
        {
            base.Start();

            _checkBox.relativePosition   = new Vector3(5, 0);
            _color.relativePosition      = new Vector3(22, 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);

            _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);
            _checkBox.IsChecked = !IsLineHidden;

            _color.normalBgSprite  = "ColorPickerOutline";
            _color.normalFgSprite  = "ColorPickerColor";
            _color.hoveredBgSprite = "ColorPickerOutlineHovered";
            _color.size            = new Vector2(15, 15);
            //_color.triggerButton = _color.AddUIComponent<UIButton>();

            /* // Need to attach the ColorPicker somehow, the Button is being setup by ColorField itself (That's what I believe at least)
             * var panel = UIView.library.Get<PublicTransportWorldInfoPanel>("PublicTransportWorldInfoPanel");
             * var fieldInfo = typeof (PublicTransportWorldInfoPanel).GetField("m_ColorField", BindingFlags.NonPublic | BindingFlags.Instance);
             * var picker = (UIColorField)fieldInfo.GetValue(panel);
             * _color.colorPicker = Instantiate<UIColorPicker>(picker.colorPicker);
             */

            // event handler
            _checkBox.eventClick += (component, param) =>
            {
                _checkBox.IsChecked = !_checkBox.IsChecked;

                if (!_checkBox.IsChecked)
                {
                    TransportUtil.HideTransportLine(LineID);
                }
                else
                {
                    TransportUtil.ShowTransportLine(LineID);
                }
            };

            _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);
            };

            // scale label texts
            _name.textScale       = 0.8f;
            _stops.textScale      = 0.8f;
            _passengers.textScale = 0.8f;
            _trips.textScale      = 0.8f;
            _vehicles.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);
            }
        }
示例#2
0
 public void ShowLine()
 {
     TransportUtil.ShowTransportLine(LineID);
     _checkBox.IsChecked = true;
 }
 public void ShowLine()
 {
     TransportUtil.ShowTransportLine(LineID);
 }
示例#4
0
        private void SetupControls()
        {
            _transportLineLabels = new List <GameObject>();

            _title        = AddUIComponent <UITitleContainer>();
            _title.Parent = this;

            _buttons  = AddUIComponent <UIButtonContainer>();
            _captions = AddUIComponent <UICaptionContainer>();

            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;
            }

            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>();
            _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);
            _deleteButton.relativePosition = new Vector3(435, 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);

            // event handler
            _checkBox.eventClick += (component, param) =>
            {
                _checkBox.IsChecked = !_checkBox.IsChecked;

                if (!_checkBox.IsChecked)
                {
                    TransportUtil.HideTransportLine(LineID);
                }
                else
                {
                    TransportUtil.ShowTransportLine(LineID);
                }
            };

            _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);
            }
        }