Example #1
0
        public void UpdateDistrictLineLabels(string sortFieldName = "Name", bool ascending = true, bool totals = true)
        {
            SortAndAdd(sortFieldName, ascending, totals);

            int counter = 0;

            foreach (var index in DistrictResource.districtResourceList)
            {
                var go  = new GameObject();
                var uic = districtLineLabels[counter].GetComponent <ResourceIndustryDistrictLineRow>();
                SetFields(uic, index, totals);
                counter++;
            }

            foreach (var go in districtLineLabels)
            {
                _scrollablePanel.AttachUIComponent(go);
            }
        }
Example #2
0
        public void PopulateTransportLineLabels(string sortFieldName = "LineName")
        {
            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.LineNameChanged += id =>
                {
                    ClearTransportLineLabels();
                    PopulateTransportLineLabels();
                };
                _transportLineLabels.Add(go);
            }

            _transportLineLabels.Sort(new LineComparer(sortFieldName));

            bool odd = false;

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

            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;

            case TransportInfo.TransportType.Tram:
                _title.TitleText = String.Format("Tram Lines ({0})", _transportLineLabels.Count);
                break;
            }
        }
Example #3
0
        private void AddToList(ushort buildingID, ref int count)
        {
            VMCBuildingInfoItem <T> buildingInfoItem;
            Type implClassBuildingLine = ReflectionUtils.GetImplementationForGenericType(typeof(VMCBuildingInfoItem <>), typeof(T));

            if (count >= mainPanel.components.Count)
            {
                KlyteMonoUtils.CreateUIElement(out UIPanel item, mainPanel.transform);
                mainPanel.AttachUIComponent(item.gameObject);
                buildingInfoItem = (VMCBuildingInfoItem <T>)item.gameObject.AddComponent(implClassBuildingLine);
            }
            else
            {
                buildingInfoItem = (VMCBuildingInfoItem <T>)mainPanel.components[count].GetComponent(implClassBuildingLine);
            }
            buildingInfoItem.buildingId = buildingID;
            buildingInfoItem.RefreshData();
            count++;
        }
Example #4
0
        private void AddToList(ushort lineID, ref int count)
        {
            UVMLineListItem lineInfoItem;
            Type            implClassBuildingLine = ImplClassChildren;

            if (count >= mainPanel.components.Count)
            {
                var temp = new GameObject();
                temp.AddComponent <UIPanel>();
                lineInfoItem = (UVMLineListItem)temp.AddComponent(implClassBuildingLine);
                mainPanel.AttachUIComponent(lineInfoItem.gameObject);
            }
            else
            {
                lineInfoItem = (UVMLineListItem)mainPanel.components[count].GetComponent(implClassBuildingLine);
            }
            lineInfoItem.LineID = lineID;
            lineInfoItem.RefreshData(true, true);
            count++;
        }
        private void AddToList(ushort buildingID, ref int count)
        {
            SVMBuildingInfoItem <T> buildingInfoItem;
            Type implClassBuildingLine = SVMUtils.GetImplementationForGenericType(typeof(SVMBuildingInfoItem <>), typeof(T));

            if (count >= mainPanel.components.Count)
            {
                var temp = UITemplateManager.Get <PublicTransportLineInfo>(kLineTemplate).gameObject;
                GameObject.Destroy(temp.GetComponent <PublicTransportLineInfo>());
                buildingInfoItem = (SVMBuildingInfoItem <T>)temp.AddComponent(implClassBuildingLine);
                mainPanel.AttachUIComponent(buildingInfoItem.gameObject);
            }
            else
            {
                buildingInfoItem = (SVMBuildingInfoItem <T>)mainPanel.components[count].GetComponent(implClassBuildingLine);
            }
            buildingInfoItem.buildingId = buildingID;
            buildingInfoItem.RefreshData();
            count++;
        }
Example #6
0
        private VWVehicleInfoItem AddToList(string infoName, ref int count)
        {
            VWVehicleInfoItem buildingInfoItem;

            if (count >= mainPanel.components.Count)
            {
                var temp = UITemplateManager.Get <PublicTransportLineInfo>(kLineTemplate).gameObject;
                GameObject.Destroy(temp.GetComponent <PublicTransportLineInfo>());
                buildingInfoItem = temp.AddComponent <VWVehicleInfoItem>();
                mainPanel.AttachUIComponent(buildingInfoItem.gameObject);
            }
            else
            {
                buildingInfoItem = mainPanel.components[count].GetComponent <VWVehicleInfoItem>();
            }
            buildingInfoItem.prefabName = infoName;
            buildingInfoItem.RefreshData();
            count++;
            return(buildingInfoItem);
        }
Example #7
0
        private void RefreshOutsideConnections()
        {
            if (!OutsideConnectionSettingsManager.exists || !m_Initialized)
            {
                return;
            }

            OutsideConnectionSettingsManager.instance.SyncWithBuildingManager();

            var outsideConnectionCount = 0;

            foreach (var element in OutsideConnectionSettingsManager.instance.SettingsDict)
            {
                OutsideConnectionInfo outsideConnectionInfo;
                if (outsideConnectionCount >= m_ScrollablePanel.components.Count)
                {
                    var gameObject = new GameObject("AOCOutsideConnectionInfo", new System.Type[] { typeof(OutsideConnectionInfo) });
                    outsideConnectionInfo = gameObject.GetComponent <OutsideConnectionInfo>();
                    outsideConnectionInfo.component.width   = m_ScrollablePanel.width - 2;
                    outsideConnectionInfo.eventDetailsOpen += OnDetailsOpened;
                    outsideConnectionInfo.eventNameChanged += OnConnectionNameChanged;
                    m_ScrollablePanel.AttachUIComponent(gameObject);
                }
                else
                {
                    outsideConnectionInfo = m_ScrollablePanel.components[outsideConnectionCount].GetComponent <OutsideConnectionInfo>();
                }
                outsideConnectionInfo.buildingID = element.Key;
                ++outsideConnectionCount;
            }

            m_OutsideConnectionCountLabel.text = m_ScrollablePanel.components.Count.ToString();

            m_CurSortCriterion = SortCriterion.DEFAULT;
            OnTransportTypeSort();
        }
Example #8
0
        new protected UIButton CreateButton(string name, string tooltip, string baseIconName, int index, UITextureAtlas atlas, UIComponent tooltipBox, bool enabled)
        {
            UIScrollablePanel m_ScrollablePanel  = (UIScrollablePanel)typeof(GeneratedScrollPanel).GetField("m_ScrollablePanel", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(this);
            FieldInfo         m_ObjectIndexField = typeof(GeneratedScrollPanel).GetField("m_ObjectIndex", BindingFlags.Instance | BindingFlags.NonPublic);
            int m_ObjectIndex = (int)m_ObjectIndexField.GetValue(this);

            UIButton uIButton;

            if (m_ScrollablePanel.childCount > m_ObjectIndex)
            {
                uIButton = (m_ScrollablePanel.components[m_ObjectIndex] as UIButton);
            }
            else
            {
                GameObject asGameObject = UITemplateManager.GetAsGameObject("PlaceableItemTemplate");
                uIButton = (m_ScrollablePanel.AttachUIComponent(asGameObject) as UIButton);
            }
            uIButton.gameObject.GetComponent <TutorialUITag>().tutorialTag = name;
            uIButton.text                = string.Empty;
            uIButton.name                = name;
            uIButton.tooltipAnchor       = UITooltipAnchor.Anchored;
            uIButton.tabStrip            = true;
            uIButton.horizontalAlignment = UIHorizontalAlignment.Center;
            uIButton.verticalAlignment   = UIVerticalAlignment.Middle;
            uIButton.pivot               = UIPivotPoint.TopCenter;
            if (atlas != null)
            {
                uIButton.atlas = atlas;
            }
            if (index != -1)
            {
                uIButton.zOrder = index;
            }
            uIButton.verticalAlignment    = this.buttonsAlignment;
            uIButton.foregroundSpriteMode = UIForegroundSpriteMode.Fill;
            uIButton.normalFgSprite       = baseIconName;
            uIButton.focusedFgSprite      = baseIconName + "Focused";
            uIButton.hoveredFgSprite      = baseIconName + "Hovered";
            uIButton.pressedFgSprite      = baseIconName + "Pressed";
            uIButton.disabledFgSprite     = baseIconName + "Disabled";
            UIComponent uIComponent = (uIButton.childCount <= 0) ? null : uIButton.components[0];

            if (uIComponent != null)
            {
                uIComponent.isVisible = false;
            }
            uIButton.isEnabled  = enabled;
            uIButton.tooltip    = tooltip;
            uIButton.tooltipBox = tooltipBox;
            uIButton.group      = base.component;
            m_ObjectIndexField.SetValue(this, m_ObjectIndex + 1);

            // Start mod

            uIButton.eventVisibilityChanged += new PropertyChangedEventHandler <bool>(Init);

            GeneratedScrollPanel panel = this;

            SimulationManager.instance.AddAction(() =>
            {
                if (uIButton.objectUserData is PrefabInfo prefab)
                {
                    string key = Asset.GetName(prefab);
                    if (AssetTagList.instance.assets.ContainsKey(key))
                    {
                        if (AssetTagList.instance.assets[key].onButtonClicked == null)
                        {
                            MethodInfo onButtonClicked = panel.GetType().GetMethod("OnButtonClicked", BindingFlags.NonPublic | BindingFlags.Instance);
                            AssetTagList.instance.assets[key].onButtonClicked = Delegate.CreateDelegate(typeof(Asset.OnButtonClicked), panel, onButtonClicked, false) as Asset.OnButtonClicked;
                        }
                    }
                }
            });

            // End mod

            return(uIButton);
        }