Exemple #1
0
        public void PopulateTransportLineLabels()
        {
            foreach (var index in TransportUtil.GetUsedTransportLineIndices())
            {
                if (TransportUtil.GetTransportLineType(index) != Type)
                {
                    continue;
                }

                var go  = new GameObject(Enum.GetName(typeof(TransportInfo.TransportType), Type) + "LineRow");
                var uic = go.AddComponent <UITransportLineRow>();
                uic.LineID       = index;
                uic.IsLineHidden = TransportUtil.IsTransportLineHidden(index);
                _transportLineLabels.Add(go);
            }

            _transportLineLabels.Sort(
                (left, right) =>
                String.Compare(left.GetComponent <UITransportLineRow>()
                               .LineName, right.GetComponent <UITransportLineRow>().LineName, StringComparison.OrdinalIgnoreCase)
                );

            bool odd = false;

            foreach (var go in _transportLineLabels)
            {
                AttachUIComponent(go);
                go.GetComponent <UITransportLineRow>().IsOdd = odd;
                odd = !odd;
            }

            var neededHeight = _transportLineLabels.Count * (16 + 2) + 95;

            height = Mathf.Clamp(neededHeight, 347, 1000);

            switch (Type)
            {
            case TransportInfo.TransportType.Bus:
                _title.TitleText = String.Format("Bus Lines ({0})", _transportLineLabels.Count);
                break;

            case TransportInfo.TransportType.Metro:
                _title.TitleText = String.Format("Metro Lines ({0})", _transportLineLabels.Count);
                break;

            case TransportInfo.TransportType.Train:
                _title.TitleText = String.Format("Train Lines ({0})", _transportLineLabels.Count);
                break;
            }
        }
        public override void Update()
        {
            base.Update();

            var residents = TransportUtil.GetResidentPassengerCount(LineID);
            var tourists  = TransportUtil.GetTouristPassengerCount(LineID);

            var lineName = TransportUtil.GetLineName(LineID);

            if (lineName != LineName)
            {
                var handlers = LineNameChanged;
                if (handlers != null)
                {
                    handlers(LineID);
                }
            }
            LineName = lineName;

            _name.text = LineName.Trim();

            /*bool clipped = false;
             * while (_name.width > 110)
             * {
             *  _name.text = _name.text.Remove(_name.text.Length - 1);
             *  clipped = true;
             * }
             * if (clipped)
             *  _name.text = _name.text.Trim() + "...";*/

            _stops.text      = Stops.ToString();
            _passengers.text = String.Format("{0}/{1}", residents, tourists);
            _trips.text      = String.Format("{0}%", Trips);
            _vehicles.text   = Vehicles.ToString();

            _color.selectedColor = TransportUtil.GetLineColor(LineID);
            IsChecked            = !TransportUtil.IsTransportLineHidden(LineID);
        }