private void addSlider(UIScrollablePanel panel, Vector3 position, float width, OnValueChanged eventCallback, IDifficultyParameter param)
        {
            UISlider slider = panel.AddUIComponent <UISlider>();

            slider.size             = new Vector2(width, 8);
            slider.relativePosition = position;
            slider.minValue         = 0;
            slider.maxValue         = param.MaxIndex;
            slider.stepSize         = 1;
            slider.value            = param.SelectedIndex;
            slider.backgroundSprite = "TextFieldPanel"; // TextFieldPanel, GenericProgressBar

            UISprite thumb = slider.AddUIComponent <UISprite>();

            thumb.size         = new Vector2(16, 16);
            thumb.spriteName   = "InfoIconBaseFocused"; // SliderBudget, InfoIconBaseFocused
            slider.thumbObject = thumb;

            UILabel label = panel.AddUIComponent <UILabel>();

            label.textScale        = textScaleSmall;
            label.text             = param.GetValueStr((int)slider.value);
            label.relativePosition = new Vector3(position.x + width + 10, position.y);

            slider.eventValueChanged += delegate(UIComponent c, float val)
            {
                label.text = param.GetValueStr((int)val);
                eventCallback(val);
            };

            sliders.Add(slider, param);
        }
Example #2
0
        public void OnSettingsUI(UIHelperBase helper)
        {
            _optionsPanel            = ((UIHelper)helper).self as UIScrollablePanel;
            _optionsPanel.autoLayout = false;

            UITabstrip strip = _optionsPanel.AddUIComponent <UITabstrip>();

            strip.relativePosition = new Vector3(0, 0);
            strip.size             = new Vector2(744, 40);

            UITabContainer container = _optionsPanel.AddUIComponent <UITabContainer>();

            container.relativePosition = new Vector3(0, 40);
            container.size             = new Vector3(744, 713);
            strip.tabPages             = container;

            foreach (IModule module in Modules)
            {
                if (module.Name == "Roads")
                {
                    addTab(strip, strip.tabCount, module, "Tiny", "RoadsTiny");
                    addTab(strip, strip.tabCount, module, "Small", "RoadsSmall");
                    addTab(strip, strip.tabCount, module, "Sml Hvy", "RoadsSmallHV");
                    addTab(strip, strip.tabCount, module, "Medium", "RoadsMedium");
                    addTab(strip, strip.tabCount, module, "Large", "RoadsLarge");
                    addTab(strip, strip.tabCount, module, "Highway", "RoadsHighway");
                    addTab(strip, strip.tabCount, module, "Ped", "RoadsPedestrians");
                    addTab(strip, strip.tabCount, module, "Bus", "RoadsBusways");
                }
                else if (module.Name == "Tools")
                {
                    addTab(strip, strip.tabCount, module);
                }
            }
        }
        public void OnSettingsUI(UIHelperBase helper)
        {
            var tabTemplate = Resources
                .FindObjectsOfTypeAll<UITabstrip>()[0]
                .GetComponentInChildren<UIButton>();

            _optionsPanel = ((UIHelper)helper).self as UIScrollablePanel;
            _optionsPanel.autoLayout = false;

            UITabstrip strip = _optionsPanel.AddUIComponent<UITabstrip>();
            strip.relativePosition = new Vector3(0, 0);
            strip.size = new Vector2(744, 40);

            UITabContainer container = _optionsPanel.AddUIComponent<UITabContainer>();
            container.relativePosition = new Vector3(0, 40);
            container.size = new Vector3(744, 713);
            strip.tabPages = container;

            int tabIndex = 0;
            foreach (IModule module in Modules)
            {
                strip.AddTab(module.Name, tabTemplate, true);
                strip.selectedIndex = tabIndex;

                // Get the current container and use the UIHelper to have something in there
                UIPanel stripRoot = strip.tabContainer.components[tabIndex++] as UIPanel;
                stripRoot.autoLayout = true;
                stripRoot.autoLayoutDirection = LayoutDirection.Vertical;
                stripRoot.autoLayoutPadding.top = 5;
                stripRoot.autoLayoutPadding.left = 10;
                UIHelper stripHelper = new UIHelper(stripRoot);
                
                module.OnSettingsUI(stripHelper);
            }
        }
        /// <summary>
        /// Creates a panel representing the mod and adds it to the <paramref name="parent"/> UI component.
        /// </summary>
        ///
        /// <param name="parent">The parent UI component that the panel will be added to.</param>
        /// <param name="modName">The name of the mod, which is displayed to user.</param>
        /// <param name="mod">The <see cref="PluginInfo"/> instance of the incompatible mod.</param>
        private void CreateEntry(ref UIScrollablePanel parent, string modName, PluginInfo mod)
        {
            string caption = mod.publishedFileID.AsUInt64 == LOCAL_MOD
                                 ? Translation.GetString("Delete")
                                 : Translation.GetString("Unsubscribe");

            UIPanel panel = parent.AddUIComponent <UIPanel>();

            panel.size             = new Vector2(560, 50);
            panel.backgroundSprite = "ContentManagerItemBackground";

            UILabel label = panel.AddUIComponent <UILabel>();

            label.text             = modName;
            label.textAlignment    = UIHorizontalAlignment.Left;
            label.relativePosition = new Vector2(10, 15);

            CreateButton(
                panel,
                caption,
                (int)panel.width - 170,
                10,
                delegate(UIComponent component, UIMouseEventParameter param) {
                UnsubscribeClick(component, param, mod);
            });
        }
        private void SetupWorkshopAssetRows()
        {
            var workshopAssetCount = WorkshopAssetMonitor.Instance.GetWorkshopAssetCount();

            ModLogger.Debug("{0} workshop assets found", workshopAssetCount);
            Enumerable.Range(0, workshopAssetCount).ForEach(i => _rows.Add(_scrollablePanel.AddUIComponent <UIWorkshopAssetRow>()));
        }
Example #6
0
        private static UIHelper CreateTab(UIScrollablePanel mainPanel, string name)
        {
            TabStrip.AddTab(name, 1.25f);

            var tabPanel = mainPanel.AddUIComponent <UIPanel>();

            SetTabSize(tabPanel, mainPanel);
            tabPanel.isVisible = false;
            TabPanels.Add(tabPanel);

            var panel = tabPanel.AddUIComponent <UIScrollablePanel>();

            tabPanel.AddScrollbar(panel);
            panel.verticalScrollbar.eventVisibilityChanged += ScrollbarVisibilityChanged;

            panel.size                 = tabPanel.size;
            panel.relativePosition     = Vector2.zero;
            panel.autoLayout           = true;
            panel.autoLayoutDirection  = LayoutDirection.Vertical;
            panel.clipChildren         = true;
            panel.scrollWheelDirection = UIOrientation.Vertical;

            return(new UIHelper(panel));

            void ScrollbarVisibilityChanged(UIComponent component, bool value)
            {
                panel.width = tabPanel.width - (panel.verticalScrollbar.isVisible ? panel.verticalScrollbar.width : 0);
            }
        }
Example #7
0
        private static void CreateTabStrip(UIScrollablePanel mainPanel)
        {
            TabPanels = new List <UIPanel>();

            TabStrip = mainPanel.AddUIComponent <CustomUITabstrip>();
            TabStrip.eventSelectedIndexChanged += TabStripSelectedIndexChanged;
            TabStrip.selectedIndex              = -1;
        }
        private void addLabel(UIScrollablePanel panel, string text, Vector3 position, float scale)
        {
            UILabel label = panel.AddUIComponent <UILabel>();

            label.text             = text;
            label.textScale        = scale;
            label.relativePosition = position;
        }
        public void OnSettingsUI(UIHelperBase helper)
        {
            UIButton tabTemplate = Resources
                                   .FindObjectsOfTypeAll <UITabstrip>()[1]
                                   .GetComponentInChildren <UIButton>();

            _optionsPanel            = ((UIHelper)helper).self as UIScrollablePanel;
            _optionsPanel.autoLayout = false;

            if (IsTAMInstalled)
            {
                UILabel label = _optionsPanel.AddUIComponent <UILabel>();
                label.text = "Transit Addons Mod (TAM) has been detected - Network Extensions 2 have been disabled";
                return;
            }

            UITabstrip strip = _optionsPanel.AddUIComponent <UITabstrip>();

            strip.relativePosition = new Vector3(0, 0);
            strip.size             = new Vector2(744, 40);

            UITabContainer container = _optionsPanel.AddUIComponent <UITabContainer>();

            container.relativePosition = new Vector3(0, 40);
            container.size             = new Vector3(744, 713);
            strip.tabPages             = container;

            foreach (IModule module in Modules)
            {
                if (module.Name == "Roads")
                {
                    addTab(strip, 0, module, tabTemplate, "Tiny", "RoadsTiny");
                    addTab(strip, 1, module, tabTemplate, "Small", "RoadsSmall");
                    addTab(strip, 2, module, tabTemplate, "Sml Hvy", "RoadsSmallHV");
                    addTab(strip, 3, module, tabTemplate, "Medium", "RoadsMedium");
                    addTab(strip, 4, module, tabTemplate, "Large", "RoadsLarge");
                    addTab(strip, 5, module, tabTemplate, "Highway", "RoadsHighway");
                    addTab(strip, 6, module, tabTemplate, "Ped", "RoadsPedestrians");
                    addTab(strip, 7, module, tabTemplate, "Bus", "RoadsBusways");
                }
                else
                {
                    addTab(strip, 8, module, tabTemplate);
                }
            }
        }
Example #10
0
        public void OnSettingsUI(UIHelperBase helper)
        {
            UIButton tabTemplate = Resources.FindObjectsOfTypeAll <OptionsKeymappingPanel>()[0]
                                   .GetComponentInChildren <UITabstrip>()
                                   .GetComponentInChildren <UIButton>();

            _optionsPanel            = ((UIHelper)helper).self as UIScrollablePanel;
            _optionsPanel.autoLayout = false;

            if (IsTAMInstalled)
            {
                UILabel label = _optionsPanel.AddUIComponent <UILabel>();
                label.text = "Transit Addons Mod (TAM) has been detected - Network Extensions have been disabled";
                return;
            }

            UITabstrip strip = _optionsPanel.AddUIComponent <UITabstrip>();

            strip.relativePosition = new Vector3(0, 0);
            strip.size             = new Vector2(744, 40);

            UITabContainer container = _optionsPanel.AddUIComponent <UITabContainer>();

            container.relativePosition = new Vector3(0, 40);
            container.size             = new Vector3(744, 713);
            strip.tabPages             = container;

            int tabIndex = 0;

            foreach (IModule module in Modules)
            {
                strip.AddTab(module.Name, tabTemplate, true);
                strip.selectedIndex = tabIndex;

                // Get the current container and use the UIHelper to have something in there
                UIPanel stripRoot = strip.tabContainer.components[tabIndex++] as UIPanel;
                stripRoot.autoLayout             = true;
                stripRoot.autoLayoutDirection    = LayoutDirection.Vertical;
                stripRoot.autoLayoutPadding.top  = 5;
                stripRoot.autoLayoutPadding.left = 10;
                UIHelper stripHelper = new UIHelper(stripRoot);

                module.OnSettingsUI(stripHelper);
            }
        }
        public static void Postfix(
            object ___m_Target,
            UIScrollablePanel ___m_Container)
        {
            var button = ___m_Container.AddUIComponent <EditorButon>();

            button.text        = "Dump mesh as fbx";
            button.eventClick += (_, __) => Dump2(___m_Target);
        }
Example #12
0
        private static void CreateTabStrip(UIScrollablePanel mainPanel)
        {
            TabPanels = new List <UIPanel>();

            TabStrip = mainPanel.AddUIComponent <TabStrip>();
            TabStrip.SelectedTabChanged += OnSelectedTabChanged;
            TabStrip.SelectedTab         = -1;
            TabStrip.width             = mainPanel.width - mainPanel.autoLayoutPadding.horizontal - mainPanel.scrollPadding.horizontal;
            TabStrip.eventSizeChanged += (UIComponent component, Vector2 value) => TabStripSizeChanged(mainPanel);
        }
Example #13
0
        private void InitializeTabStrip(UIHelperBase helper)
        {
            // https://github.com/Katalyst6/CSL.TransitAddonMod/blob/master/NetworkExtensions/Mod.Settings.cs
            m_TabTemplate = Resources
                            .FindObjectsOfTypeAll <UITabstrip>()[0]
                            .GetComponentInChildren <UIButton>();

            _optionsPanel            = ((UIHelper)helper).self as UIScrollablePanel;
            _optionsPanel.autoLayout = false;

            m_TabStrip = _optionsPanel.AddUIComponent <UITabstrip>();
            m_TabStrip.relativePosition = new Vector3(0, 0);
            m_TabStrip.size             = new Vector2(744, 40);

            m_TabContainer = _optionsPanel.AddUIComponent <UITabContainer>();
            m_TabContainer.relativePosition = new Vector3(0, 40);
            m_TabContainer.size             = new Vector3(744, 713);
            m_TabStrip.tabPages             = m_TabContainer;
        }
Example #14
0
        public void AddItem(ushort ID, Func <ushort, string> func)
        {
            if (_items == null)
            {
                _items = new DropDownRow[0];
            }
            DropDownRow[] dropDownRowArray = new DropDownRow[_items.Length + 1];
            Array.Copy((Array)_items, (Array)dropDownRowArray, _items.Length);
            DropDownRow dropDownRow = _scrollablePanel.AddUIComponent <DropDownRow>();

            if ((UnityEngine.Object)Font != (UnityEngine.Object)null)
            {
                dropDownRow.Font = Font;
            }
            dropDownRow.ID                  = ID;
            dropDownRow.IDToNameFunc        = func;
            dropDownRow.eventClick         += new MouseEventHandler(OnRowClick);
            dropDownRowArray[_items.Length] = dropDownRow;
            _items = dropDownRowArray;
        }
Example #15
0
        private UIPanel CreateEntry(ref UIScrollablePanel parent, string name, ulong steamId)
        {
            UIPanel panel = parent.AddUIComponent <UIPanel>();

            panel.size             = new Vector2(560, 50);
            panel.backgroundSprite = "ContentManagerItemBackground";
            UILabel label = panel.AddUIComponent <UILabel>();

            label.text             = name;
            label.textAlignment    = UIHorizontalAlignment.Left;
            label.relativePosition = new Vector2(10, 15);
            CreateButton(panel, "Unsubscribe", (int)panel.width - 170, 10, delegate(UIComponent component, UIMouseEventParameter param) { UnsubscribeClick(component, param, steamId); });
            return(panel);
        }
        public override void Start()
        {
            LoadResources();

            atlas            = UIUtils.GetAtlas("Ingame");
            backgroundSprite = "MenuPanel";
            color            = new Color32(255, 255, 255, 255);
            isVisible        = false;
            canFocus         = true;
            isInteractive    = true;
            clipChildren     = true;
            width            = 180;
            height           = INITIAL_HEIGHT;
            relativePosition = new Vector3(310, 55);

            // Title Bar
            m_title       = AddUIComponent <UITitleBar>();
            m_title.title = "Mesh Points";

            UIPanel panel = AddUIComponent <UIPanel>();

            panel.relativePosition = new Vector2(20, 55);
            panel.size             = new Vector2(145, 530);
            gridscroll             = UIUtils.CreateScrollBox(panel, m_atlas);
            gridscroll.size        = new Vector2(130, 510);

            UILabel titleLabel = gridscroll.AddUIComponent <UILabel>();

            titleLabel.text             = "   Pos    Height";
            titleLabel.tooltip          = "Position from center of mesh | Height from ground level\n(default height for road surface is -0.3m)";
            titleLabel.textAlignment    = UIHorizontalAlignment.Center;
            titleLabel.autoSize         = false;
            titleLabel.width            = 120f;
            titleLabel.height           = 30f;
            titleLabel.relativePosition = new Vector2(0, 0);
            titleLabel.isVisible        = true; //[textboxNum]

            coordBox = new List <UITextField>();
            //GenerateGrid();
            GetMeshPoints();


            //GetMeshPoints();
        }
Example #17
0
        public void CreateButtons()
        {
            UIView uiView = UIView.GetAView();

            UIComponent refButton = uiView.FindUIComponent("Policies");
            UIComponent tsBar     = uiView.FindUIComponent("TSBar");

            if (btLevel == null)
            {
                terraformPanel = UIView.GetAView().FindUIComponent <UITabContainer>("TSContainer").AddUIComponent <UIScrollablePanel>();
                terraformPanel.backgroundSprite  = "SubcategoriesPanel";
                terraformPanel.isVisible         = false;
                terraformPanel.name              = "TerraformPanel";
                terraformPanel.autoLayoutPadding = new RectOffset(25, 0, 20, 20);
                terraformPanel.autoLayout        = true;

                btToggle = UIView.GetAView().FindUIComponent <UITabstrip>("MainToolstrip").AddUIComponent <UIButton>();

                InitButton(btToggle, "ToolbarIconTerrain", new Vector2(43, 49));
                btToggle.focusedFgSprite = "ToolbarIconGroup6Focused";
                btToggle.hoveredFgSprite = "ToolbarIconGroup6Hovered";
                btToggle.name            = "TerrainButton";

                var btSizeLarge = new Vector2(109, 75);

                btPoint = (UIButton)terraformPanel.AddUIComponent(typeof(UIButton));
                InitButton(btPoint, "TerrainDitch", btSizeLarge);


                btShift = (UIButton)terraformPanel.AddUIComponent(typeof(UIButton));
                InitButton(btShift, "TerrainShift", btSizeLarge);

                btSoften = (UIButton)terraformPanel.AddUIComponent(typeof(UIButton));
                InitButton(btSoften, "TerrainSoften", btSizeLarge);

                btLevel = (UIButton)terraformPanel.AddUIComponent(typeof(UIButton));
                InitButton(btLevel, "TerrainLevel", btSizeLarge);

                btSlope = (UIButton)terraformPanel.AddUIComponent(typeof(UIButton));
                InitButton(btSlope, "TerrainSlope", btSizeLarge);

                btSand = (UIButton)terraformPanel.AddUIComponent(typeof(UIButton));
                InitButton(btSand, "ResourceSand", btSizeLarge);

                terraformPanel.Reset();
            }
        }
        private static bool DrawBuildingButtonOnPanel(BuildingInfo prefab, UIScrollablePanel panel)
        {
            int _UIBaseHeight = 109;

            var BuildingButton = panel.AddUIComponent <UIButton>();

            BuildingButton.size  = new Vector2(_UIBaseHeight, 100);  //apply settings to building buttons.
            BuildingButton.atlas = prefab.m_Atlas;

            BuildingButton.normalFgSprite   = prefab.m_Thumbnail;
            BuildingButton.focusedFgSprite  = prefab.m_Thumbnail + "Focused";
            BuildingButton.hoveredFgSprite  = prefab.m_Thumbnail + "Hovered";
            BuildingButton.pressedFgSprite  = prefab.m_Thumbnail + "Pressed";
            BuildingButton.disabledFgSprite = prefab.m_Thumbnail + "Disabled";

            if (prefab.m_Thumbnail == null || prefab.m_Thumbnail == "")
            {
                BuildingButton.normalFgSprite = "ToolbarIconProps";
            }

            BuildingButton.objectUserData      = prefab;
            BuildingButton.horizontalAlignment = UIHorizontalAlignment.Center;
            BuildingButton.verticalAlignment   = UIVerticalAlignment.Middle;
            BuildingButton.pivot = UIPivotPoint.TopCenter;

            //if ( Category == "education" )
            //    BuildingButton.verticalAlignment = UIVerticalAlignment.Bottom;

            string      localizedTooltip = prefab.GetLocalizedTooltip();
            int         hashCode         = TooltipHelper.GetHashCode(localizedTooltip);
            UIComponent tooltipBox       = GeneratedPanel.GetTooltipBox(hashCode);

            BuildingButton.tooltipAnchor = UITooltipAnchor.Anchored;
            BuildingButton.isEnabled     = true;
            BuildingButton.tooltip       = localizedTooltip;
            BuildingButton.tooltipBox    = tooltipBox;
            BuildingButton.eventClick   += UI.PrefabButtonClicked;
            return(true);
        }
 private void addLabel(UIScrollablePanel panel, string text, Vector3 position, float scale)
 {
     UILabel label = panel.AddUIComponent<UILabel>();
     label.text = text;
     label.textScale = scale;
     label.relativePosition = position;
 }
Example #20
0
        public override void Start()
        {
            // Generates the following UI:
            // /NAME-----------\ <-- UIDragHandle
            // |---------------|-|
            // |               | |<-- _messageBox, _getscrollablepanel
            // |               | |
            // |---------------| |
            // |               | |<-- _chatText
            // |---------------|-|
            //                 |-|<-- _resize
            //                  ^
            //                  ¦-- _scrollbar, _trackingsprite, _trackingthumb

            backgroundSprite = "GenericPanel";
            name             = "ChatLogPanel";
            color            = new Color32(22, 22, 22, 240);

            // Activates the dragging of the window
            _draghandle      = AddUIComponent <UIDragHandle>();
            _draghandle.name = "ChatLogPanelDragHandle";

            // Grab the view for calculating width and height of game
            UIView view = UIView.GetAView();

            // Center this window in the game
            relativePosition = new Vector3(10.0f, view.fixedHeight - 440.0f);

            width       = 500;
            height      = 310;
            minimumSize = new Vector2(300, 310);

            // Add resize component
            _resize                  = AddUIComponent <UIResizeHandle>();
            _resize.position         = new Vector2((width - 20), (-height + 10));
            _resize.width            = 20f;
            _resize.height           = 20f;
            _resize.color            = new Color32(255, 255, 255, 255);
            _resize.backgroundSprite = "GenericTabPressed";
            _resize.name             = "ChatLogPanelResize";

            // Add scrollable panel component
            _scrollablepanel              = AddUIComponent <UIScrollablePanel>();
            _scrollablepanel.width        = 490;
            _scrollablepanel.height       = 240;
            _scrollablepanel.position     = new Vector2(10, -30);
            _scrollablepanel.clipChildren = true;
            _scrollablepanel.name         = "ChatLogPanelScrollablePanel";

            // Add title
            _title           = AddUIComponent <UILabel>();
            _title.position  = new Vector2(10, -5);
            _title.text      = "Multiplayer Chat";
            _title.textScale = 0.8f;
            _title.autoSize  = true;
            _title.name      = "ChatLogPanelTitle";

            // Add messagebox component
            _messageBox            = _scrollablepanel.AddUIComponent <UILabel>();
            _messageBox.isVisible  = true;
            _messageBox.isEnabled  = true;
            _messageBox.autoSize   = false;
            _messageBox.autoHeight = true;
            _messageBox.width      = 470;
            _messageBox.height     = 240;
            _messageBox.position   = new Vector2(10, -30);
            _messageBox.textScale  = 0.8f;
            _messageBox.wordWrap   = true;
            _messageBox.name       = "ChatLogPanelMessageBox";

            // Add scrollbar component
            _scrollbar                 = AddUIComponent <UIScrollbar>();
            _scrollbar.name            = "Scrollbar";
            _scrollbar.width           = 20f;
            _scrollbar.height          = _scrollablepanel.height;
            _scrollbar.orientation     = UIOrientation.Vertical;
            _scrollbar.pivot           = UIPivotPoint.TopLeft;
            _scrollbar.position        = new Vector2(480, -30);
            _scrollbar.minValue        = 0;
            _scrollbar.value           = 0;
            _scrollbar.incrementAmount = 50;
            _scrollbar.name            = "ChatLogPanelScrollBar";

            // Add scrollbar background sprite component
            _trackingsprite               = _scrollbar.AddUIComponent <UISlicedSprite>();
            _trackingsprite.position      = new Vector2(0, 0);
            _trackingsprite.autoSize      = true;
            _trackingsprite.size          = _trackingsprite.parent.size;
            _trackingsprite.fillDirection = UIFillDirection.Vertical;
            _trackingsprite.spriteName    = "ScrollbarTrack";
            _trackingsprite.name          = "ChatLogPanelTrack";
            _scrollbar.trackObject        = _trackingsprite;
            _scrollbar.trackObject.height = _scrollbar.height;

            // Add scrollbar thumb component
            _trackingthumb               = _scrollbar.AddUIComponent <UISlicedSprite>();
            _trackingthumb.position      = new Vector2(0, 0);
            _trackingthumb.fillDirection = UIFillDirection.Vertical;
            _trackingthumb.autoSize      = true;
            _trackingthumb.width         = _trackingthumb.parent.width - 8;
            _trackingthumb.spriteName    = "ScrollbarThumb";
            _trackingthumb.name          = "ChatLogPanelThumb";

            _scrollbar.thumbObject             = _trackingthumb;
            _scrollbar.isVisible               = true;
            _scrollbar.isEnabled               = true;
            _scrollablepanel.verticalScrollbar = _scrollbar;

            // Add text field component (used for inputting)
            _chatText                      = (UITextField)AddUIComponent(typeof(UITextField));
            _chatText.width                = width;
            _chatText.height               = 30;
            _chatText.position             = new Vector2(0, -280);
            _chatText.atlas                = UiHelpers.GetAtlas("Ingame");
            _chatText.normalBgSprite       = "TextFieldPanelHovered";
            _chatText.builtinKeyNavigation = true;
            _chatText.isInteractive        = true;
            _chatText.readOnly             = false;
            _chatText.horizontalAlignment  = UIHorizontalAlignment.Left;
            _chatText.eventKeyDown        += OnChatKeyDown;
            _chatText.textColor            = new Color32(0, 0, 0, 255);
            _chatText.padding              = new RectOffset(6, 6, 6, 6);
            _chatText.selectionSprite      = "EmptySprite";
            _chatText.name                 = "ChatLogPanelChatText";

            WelcomeChatMessage();

            // Add resizable adjustments
            eventSizeChanged += (component, param) =>
            {
                _scrollablepanel.width  = (width - 30);
                _scrollablepanel.height = (height - 70);
                _messageBox.width       = (width - 30);
                _chatText.width         = width;
                _scrollbar.height       = _scrollablepanel.height;
                _trackingsprite.size    = _trackingsprite.parent.size;
                _chatText.position      = new Vector3(0, (-height + 30));
                _resize.position        = new Vector2((width - 20), (-height + 10));
                _scrollbar.position     = new Vector2((width - 20), (-30));
            };

            base.Start();
        }
Example #21
0
        void drawstatsconfig()
        {
            UIScrollablePanel p = this.AddUIComponent <UIScrollablePanel>();

            p.autoLayoutDirection = LayoutDirection.Horizontal;
            p.autoLayout          = true;
            p.backgroundSprite    = "GenericPanel";

            refreshIntervalLabel      = p.AddUIComponent <UILabel>();
            refreshIntervalLabel.text = "Refresh Interval (sec): ";
            refreshInterval           = p.AddUIComponent <UITextField>();
            refreshInterval.Enable();
            refreshInterval.text             = CSLStatsPanelConfigSettings.PanelRefreshRate.ToString();
            refreshInterval.numericalOnly    = true;
            refreshInterval.eventLeaveFocus += new FocusEventHandler(refreshInterval_eventLeaveFocus);

            UIButton decrementLabel = p.AddUIComponent <UIButton>();

            setcommonbuttonprops(decrementLabel);
            decrementLabel.width       = 5;
            decrementLabel.text        = "-";
            decrementLabel.eventClick += new MouseEventHandler(decrementLabel_eventClick);
            UIButton incrementLabel = p.AddUIComponent <UIButton>();

            setcommonbuttonprops(incrementLabel);
            incrementLabel.width       = 5;
            incrementLabel.text        = "+";
            incrementLabel.eventClick += new MouseEventHandler(incrementLabel_eventClick);


            p.FitChildrenHorizontally();
            p.FitToContents();

            UIPanel pOptions = this.AddUIComponent <UIPanel>();

            catpanels.Add(pOptions);

            pOptions.autoLayout          = true;
            pOptions.wrapLayout          = true;
            pOptions.autoLayoutDirection = LayoutDirection.Horizontal;
            pOptions.width             = this.width - 5;
            pOptions.autoLayoutPadding = new RectOffset(3, 3, 3, 3);

            useColors = pOptions.AddUIComponent <UIButton>();
            setcommonbuttonprops(useColors);
            useColors.text        = "Use Panel Colors";
            useColors.tooltip     = "Think colors are over-rated?  Toggle them on/off";
            useColors.eventClick += new MouseEventHandler(useColors_eventClick);
            useColors.textColor   = (CSLStatsPanelConfigSettings.m_EnablePanelColors.value) ? selectedcolor : deselectedcolor;

            UIButton displaySummaries = pOptions.AddUIComponent <UIButton>();

            setcommonbuttonprops(displaySummaries);
            displaySummaries.text        = "% Summaries";
            displaySummaries.tooltip     = "Toggle display of % summaries in expanded mode.";
            displaySummaries.textColor   = (CSLStatsPanelConfigSettings.m_EnablePanelSummaries.value) ? selectedcolor : deselectedcolor;
            displaySummaries.eventClick += new MouseEventHandler(displaySummaries_eventClick);

            UIButton miniMode = pOptions.AddUIComponent <UIButton>();

            setcommonbuttonprops(miniMode);
            miniMode.text        = "Mini-Mode";
            miniMode.textColor   = (CSLStatsPanelConfigSettings.m_MiniMode.value) ? selectedcolor : deselectedcolor;
            miniMode.eventClick += new MouseEventHandler(miniMode_eventClick);

            UIButton showLabelsInMiniMode = pOptions.AddUIComponent <UIButton>();

            setcommonbuttonprops(showLabelsInMiniMode);
            showLabelsInMiniMode.text        = "Labels in Mini-Mode";
            showLabelsInMiniMode.tooltip     = "Show service description labels while in mini-mode, turn this off to see only the icons";
            showLabelsInMiniMode.autoSize    = true;
            showLabelsInMiniMode.textColor   = (CSLStatsPanelConfigSettings.m_ShowLabelsInMiniMode.value) ? selectedcolor : deselectedcolor;
            showLabelsInMiniMode.eventClick += new MouseEventHandler(showLabelsInMiniMode_eventClick);

            UIButton enableTransparency = pOptions.AddUIComponent <UIButton>();

            setcommonbuttonprops(enableTransparency);
            enableTransparency.text        = "Transparency";
            enableTransparency.textColor   = (CSLStatsPanelConfigSettings.m_EnableTransparency.value) ? selectedcolor : deselectedcolor;
            enableTransparency.eventClick += new MouseEventHandler(enableTransparency_eventClick);

            UIButton useVehicleStatsInSummaries = pOptions.AddUIComponent <UIButton>();

            setcommonbuttonprops(useVehicleStatsInSummaries);
            useVehicleStatsInSummaries.text        = "Vehicle Usage";
            useVehicleStatsInSummaries.tooltip     = "Use vehicle inuse/total on Summary % when it is higher than default used/capacity (excludes police)";
            useVehicleStatsInSummaries.textColor   = (CSLStatsPanelConfigSettings.m_UseVechileStatsForSummaries.value) ? selectedcolor : deselectedcolor;
            useVehicleStatsInSummaries.eventClick += new MouseEventHandler(useVehicleStatsInSummaries_eventClick);

            UIButton resetConfig = pOptions.AddUIComponent <UIButton>();

            setcommonbuttonprops(resetConfig);
            resetConfig.text        = "Reset Config";
            resetConfig.textColor   = resetConfig.focusedTextColor;
            resetConfig.eventClick += new MouseEventHandler(resetConfig_eventClick);


            UIButton customizeXMLConfig = pOptions.AddUIComponent <UIButton>();

            setcommonbuttonprops(customizeXMLConfig);
            customizeXMLConfig.text        = "Custom XML Config";
            customizeXMLConfig.tooltip     = "Creates or opens a copy config file for you to customize stats further.";
            customizeXMLConfig.autoSize    = true;
            customizeXMLConfig.textColor   = customizeXMLConfig.focusedTextColor;
            customizeXMLConfig.eventClick += customizeXMLConfig_eventClick;

            UIButton reloadXMLConfig = pOptions.AddUIComponent <UIButton>();

            setcommonbuttonprops(reloadXMLConfig);
            reloadXMLConfig.text        = "Reload XML Config";
            reloadXMLConfig.tooltip     = "Reload your custom XML config without having to reload your game.";
            reloadXMLConfig.autoSize    = true;
            reloadXMLConfig.textColor   = customizeXMLConfig.focusedTextColor;
            reloadXMLConfig.eventClick += reloadXMLConfig_eventClick;

            pOptions.autoSize = true;
            pOptions.FitChildrenVertically();

            if (ThreadingCSLStatsMod.xmlconfigerror)
            {
                UIPanel pConfigError = this.AddUIComponent <UIPanel>();
                //catpanels.Add(pWarning);

                pConfigError.autoLayout          = true;
                pConfigError.wrapLayout          = true;
                pConfigError.autoLayoutDirection = LayoutDirection.Horizontal;
                pConfigError.width = this.width - 5;

                pConfigError.autoLayoutPadding = new RectOffset(3, 3, 3, 3);
                UILabel customXmlConfigVersionWarning = pConfigError.AddUIComponent <UILabel>();
                customXmlConfigVersionWarning.text = ""
                                                     + "Error: Unable to load your custom configuration file.  Please check the file for errors, or Reset Config to defaults.";
                customXmlConfigVersionWarning.textColor = customizeXMLConfig.focusedTextColor;
                pConfigError.autoSize = true;
                pConfigError.FitChildrenVertically();
            }

            if (ThreadingCSLStatsMod.loadedXMLConfigVersion != ThreadingCSLStatsMod.defaultXMLConfigVersion)
            {
                UIPanel pWarning = this.AddUIComponent <UIPanel>();
                //catpanels.Add(pWarning);

                pWarning.autoLayout          = true;
                pWarning.wrapLayout          = true;
                pWarning.autoLayoutDirection = LayoutDirection.Horizontal;
                pWarning.width = this.width - 5;

                pWarning.autoLayoutPadding = new RectOffset(3, 3, 3, 3);
                UILabel customXmlConfigVersionWarning = pWarning.AddUIComponent <UILabel>();
                customXmlConfigVersionWarning.text = ""
                                                     + "Warning: Your config file is version \"" + ThreadingCSLStatsMod.loadedXMLConfigVersion + "\""
                                                     + " a new version is available: \"" + ThreadingCSLStatsMod.defaultXMLConfigVersion + "\".";
                customXmlConfigVersionWarning.textColor = customizeXMLConfig.focusedTextColor;
                customXmlConfigVersionWarning           = pWarning.AddUIComponent <UILabel>();
                customXmlConfigVersionWarning.text      = ""
                                                          + " You may be missing new stats / features that have been added, but reseting will remove your customizations";
                customXmlConfigVersionWarning.textColor = customizeXMLConfig.focusedTextColor;
                pWarning.autoSize = true;
                pWarning.FitChildrenVertically();
            }



            List <StatisticsCategoryWrapper> scw = CSLStatsPanelConfigSettings.Categories(false);

            for (int i = 0; i < scw.Count(); i++)
            {
                drawstatsconfigpanel(scw[i]);
            }
        }
Example #22
0
        public void updateText(List <StatisticsCategoryWrapper> categorydata)
        {
            if (!initialized)
            {
                init();
            }
            if (!initialized)
            {
                return;
            }
            if (running)
            {
                return;
            }
            running = true;

            foreach (KeyValuePair <string, CSLStatusWindowSubPanel> p in m_categories)
            {
                p.Value.m_stringbuilder = new List <string>();
                p.Value.tooltip         = "";
            }

            for (int i = 0; i < categorydata.Count(); i++)
            {
                if (categorydata[i].m_scwlist.Count() == 0)
                {
                    continue;
                }
                string currentcat = categorydata[i].m_category;
                if (string.IsNullOrEmpty(currentcat))
                {
                    currentcat = "default";
                }

                if (!m_categories.Keys.Contains(currentcat))
                {
                    m_categories.Add(currentcat, (CSLStatusWindowSubPanel)this.AddUIComponent(typeof(CSLStatusWindowSubPanel)));
                    if (!string.IsNullOrEmpty(categorydata[i].m_sprite))
                    {
                        UIScrollablePanel spritepanel = m_categories[currentcat].AddUIComponent <UIScrollablePanel>();

                        UISprite p = spritepanel.AddUIComponent <UISprite>();
                        spritepanel.autoSize = true;
                        p.color      = new Color32(255, 255, 255, 255);
                        p.spriteName = categorydata[i].m_sprite;
                        p.opacity    = 1;

                        p.width = 20; p.height = 20;

                        spritepanel.autoLayoutDirection = LayoutDirection.Horizontal;
                        //spritepanel.autoLayoutPadding = new RectOffset(1, 1, 1, 1);
                        CSLStatsPanelLabel l = (CSLStatsPanelLabel)spritepanel.AddUIComponent(typeof(CSLStatsPanelLabel));
                        m_categories[currentcat].m_textfields.Add(l);
                        m_categories[currentcat].spritepanel = spritepanel;

                        l.padding = new RectOffset(20, 1, 1, 1);
                    }
                }

                if (categorydata[i].capacityUsage > -1 && CSLStatsPanelConfigSettings.m_EnablePanelColors.value)
                {
                    if (categorydata[i].capacityUsage > categorydata[i].m_targetred)
                    {
                        m_categories[currentcat].color = CSLStatsPanelConfigSettings.DefaultPanelColor_CriticalStatus; //new Color32(255, 0, 0, 255); //red
                    }
                    else if (categorydata[i].capacityUsage > categorydata[i].m_targetyellow)
                    {
                        m_categories[currentcat].color = CSLStatsPanelConfigSettings.DefaultPanelColor_WarningStatus;//new Color32(255, 255, 0, 255); //yellow
                    }
                    else
                    {
                        m_categories[currentcat].color = CSLStatsPanelConfigSettings.DefaultPanelColor_NormalStatus; //new Color32(0, 255, 0, 255); //green
                    }
                }

                List <StatisticsClassWrapper> myscwlist = categorydata[i].activeStats;
                for (int c = 0; c < myscwlist.Count(); c++)
                {
                    if (!CSLStatsPanelConfigSettings.m_MiniMode.value)
                    {
                        if (m_categories[currentcat].m_stringbuilder.Count() == 0)
                        {
                            m_categories[currentcat].m_stringbuilder.Add(currentcat
                                                                         + ((CSLStatsPanelConfigSettings.m_EnablePanelSummaries.value && categorydata[i].m_showstatsummary && categorydata[i].capacityUsage > -1) ? " - " + Math.Round(categorydata[i].capacityUsage * 100, 0).ToString() + "%" : ""));
                        }


                        m_categories[currentcat].m_stringbuilder.Add(myscwlist[c].statstring);
                    }
                    else
                    {
                        if (m_categories[currentcat].m_stringbuilder.Count() == 0)
                        {
                            if (CSLStatsPanelConfigSettings.m_MiniMode.value &&
                                !CSLStatsPanelConfigSettings.m_ShowLabelsInMiniMode.value)
                            {
                                if (categorydata[i].m_showstatsummary && categorydata[i].capacityUsage > -1)
                                {
                                    m_categories[currentcat].m_stringbuilder.Add(
                                        (
                                            (categorydata[i].m_showstatsummary && categorydata[i].capacityUsage > -1) ? Math.Round(categorydata[i].capacityUsage * 100, 0).ToString() + "%" : ""));
                                }
                                else if (myscwlist.Count() > 0)
                                {
                                    m_categories[currentcat].m_stringbuilder.Add(
                                        Math.Round(myscwlist[0].m_finalvalue, 0) + myscwlist[0].m_scaledesc);
                                }
                            }
                            else
                            {
                                if (categorydata[i].m_showstatsummary && categorydata[i].capacityUsage > -1)
                                {
                                    m_categories[currentcat].m_stringbuilder.Add(currentcat
                                                                                 + ((categorydata[i].m_showstatsummary && categorydata[i].capacityUsage > -1) ? " - " + Math.Round(categorydata[i].capacityUsage * 100, 0).ToString() + "%" : ""));
                                }
                                else if (myscwlist.Count() > 0)
                                {
                                    m_categories[currentcat].m_stringbuilder.Add(currentcat
                                                                                 + " - " + Math.Round(myscwlist[0].m_finalvalue, 0) + myscwlist[0].m_scaledesc);
                                }
                            }
                        }
                        if (CSLStatsPanelConfigSettings.m_MiniMode.value)
                        {
                            m_categories[currentcat].tooltip += (string.IsNullOrEmpty(m_categories[currentcat].tooltip)) ? myscwlist[c].statstring : "\n" + myscwlist[c].statstring;
                        }
                    }
                }
            }



            foreach (KeyValuePair <string, CSLStatusWindowSubPanel> p in m_categories)
            {
                p.Value.updateText(p.Value.m_stringbuilder);
                p.Value.m_stringbuilder = new List <string>();
            }
            if (firstrun && !m_issubpanel)
            {
                this.FitChildrenVertically();
                this.FitChildrenHorizontally();
                this.FitToContents();
            }

            firstrun = false;
            running  = false;
        }
        //public void ButtonEnabler(UITextureSprite sPrite) {

        //if (sPrite == FavCimsCBMenuSprite) {

        //FavCimsCBMenuSprite.texture = FavCimsCBETexture;
        //FavCimsBBMenuSprite.texture = FavCimsBBDTexture;
        //FavCimsSBMenuSprite.texture = FavCimsSBDTexture;

        //} else if (sPrite == FavCimsBBMenuSprite) {

        //FavCimsCBMenuSprite.texture = FavCimsCBDTexture;
        //FavCimsBBMenuSprite.texture = FavCimsBBETexture;
        //FavCimsSBMenuSprite.texture = FavCimsSBDTexture;

        //} else if (sPrite == FavCimsSBMenuSprite) {

        //FavCimsCBMenuSprite.texture = FavCimsCBDTexture;
        //FavCimsBBMenuSprite.texture = FavCimsBBDTexture;
        //FavCimsSBMenuSprite.texture = FavCimsSBETexture;

        //}
        //return;
        //}

        public override void Start()
        {
            var uiView = UIView.GetAView();

            this.name    = "FavCimsPanel";
            this.width   = 1200;
            this.height  = 700;
            this.opacity = 0.95f;
            this.eventVisibilityChanged += (component, value) => change_visibility_event();

            //Main Panel BG Texture
            Texture FavCimsMainBGTexture = ResourceLoader.loadTexture((int)this.width, (int)this.height, "UIMainPanel.mainbg.png");

            FavCimsMainBGTexture.wrapMode   = TextureWrapMode.Clamp;
            FavCimsMainBGTexture.filterMode = FilterMode.Bilinear;
            //FavCimsMainBGTexture.anisoLevel = 9; Set 1 Bad to 9 Very God
            FavCimsMainBGTexture.name = "FavCimsMainBGTexture";
            UITextureSprite FavCimsMainBGSprite;

            FavCimsMainBGSprite                  = this.AddUIComponent <UITextureSprite> ();
            FavCimsMainBGSprite.name             = "FavCimsMainBGSprite";
            FavCimsMainBGSprite.texture          = FavCimsMainBGTexture;
            FavCimsMainBGSprite.relativePosition = new Vector3(0, 0);

            FavCimsMainBGSprite.eventMouseDown += delegate {
                if (Input.GetMouseButton(0))
                {
                    if (this.GetComponentInChildren <WindowController> () != null)
                    {
                        this.PanelMover = this.GetComponentInChildren <WindowController> ();
                        this.PanelMover.ComponentToMove = this;
                        this.PanelMover.Stop            = false;
                        this.PanelMover.Start();
                    }
                    else
                    {
                        this.PanelMover = this.AddUIComponent(typeof(WindowController)) as WindowController;
                        this.PanelMover.ComponentToMove = this;
                    }
                    this.opacity = 0.5f;
                }
            };

            FavCimsMainBGSprite.eventMouseUp += delegate {
                if (this.PanelMover != null)
                {
                    this.PanelMover.Stop            = true;
                    this.PanelMover.ComponentToMove = null;
                    this.PanelMover = null;
                }
                this.opacity = 1f;
            };

            //Main Panel Title Texture
            Texture FavCimsTitleTexture;

            FavCimsTitleTexture = ResourceLoader.loadTexture((int)this.width, 58, "UIMainPanel.favcimstitle.png");

            FavCimsTitleTexture.wrapMode   = TextureWrapMode.Clamp;
            FavCimsTitleTexture.filterMode = FilterMode.Bilinear;
            FavCimsTitleTexture.mipMapBias = -0.5f;
            //FavCimsTitleTexture.anisoLevel = 9; // Set 1 Bad to 9 Very God

            FavCimsTitleTexture.name   = "FavCimsTitleTexture";
            FavCimsTitleSprite         = FavCimsMainBGSprite.AddUIComponent <UITextureSprite> ();
            FavCimsTitleSprite.name    = "FavCimsTitleSprite";
            FavCimsTitleSprite.texture = FavCimsTitleTexture;
            float FavCimsTitleSpriteRelPosX = ((this.width / 2) - (float)FavCimsTitleTexture.width / 2);

            FavCimsTitleSprite.relativePosition = new Vector3(FavCimsTitleSpriteRelPosX, 0);

            ///////////////////////////////////////////////
            //Game Default Close Button
            //////////////////////////////////////////////

            UIButton FavCimsMenuCloseButton = this.AddUIComponent <UIButton> ();

            FavCimsMenuCloseButton.name            = "FavCimsMenuCloseButton";
            FavCimsMenuCloseButton.width           = 32;
            FavCimsMenuCloseButton.height          = 32;
            FavCimsMenuCloseButton.normalBgSprite  = "buttonclose";
            FavCimsMenuCloseButton.hoveredBgSprite = "buttonclosehover";
            FavCimsMenuCloseButton.pressedBgSprite = "buttonclosepressed";
            FavCimsMenuCloseButton.opacity         = 1;
            FavCimsMenuCloseButton.useOutline      = true;
            FavCimsMenuCloseButton.playAudioEvents = true;

            FavCimsMenuCloseButton.eventClick += (component, eventParam) => FavoritesCimsButton.FavCimsPanelToggle();

            //Printing
            FavCimsMenuCloseButton.relativePosition = new Vector3(this.width - (FavCimsMenuCloseButton.width * 1.5f), ((float)FavCimsTitleTexture.height / 2) - FavCimsMenuCloseButton.height / 2);

            ///////////////////////////////////////////////
            //Main Panel Menu Background Texture
            ///////////////////////////////////////////////

            Texture FavCimsBGMenuTexture;

            FavCimsBGMenuTexture = ResourceLoader.loadTexture((int)this.width - 10, 70, "UIMainPanel.submenubar.png");

            FavCimsBGMenuTexture.wrapMode   = TextureWrapMode.Clamp;
            FavCimsBGMenuTexture.filterMode = FilterMode.Bilinear;
            FavCimsBGMenuTexture.name       = "FavCimsBGMenuTexture";
            UITextureSprite FavCimsBGMenuSprite = FavCimsMainBGSprite.AddUIComponent <UITextureSprite> ();

            FavCimsBGMenuSprite.name    = "FavCimsBGMenuSprite";
            FavCimsBGMenuSprite.texture = FavCimsBGMenuTexture;
            float FavCimsBGMenuSpriteRelPosX = ((this.width / 2) - (float)FavCimsBGMenuTexture.width / 2);

            FavCimsBGMenuSprite.relativePosition = new Vector3(FavCimsBGMenuSpriteRelPosX, 58);

            //Citizen Button Texture (Enabled & Disabled)
            FavCimsCBETexture = ResourceLoader.loadTexture(200, 59, "UIMainPanel.citizenbuttonenabled.png");
            FavCimsCBDTexture = ResourceLoader.loadTexture(200, 59, "UIMainPanel.citizenbuttondisabled.png");

            FavCimsCBETexture.wrapMode   = TextureWrapMode.Clamp;
            FavCimsCBETexture.filterMode = FilterMode.Bilinear;
            FavCimsCBETexture.name       = "FavCimsCBETexture";
            FavCimsCBETexture.mipMapBias = -0.5f;
            FavCimsCBDTexture.wrapMode   = TextureWrapMode.Clamp;
            FavCimsCBDTexture.filterMode = FilterMode.Bilinear;
            FavCimsCBDTexture.name       = "FavCimsCBDTexture";
            FavCimsCBDTexture.mipMapBias = -0.5f;

            FavCimsCBMenuSprite         = FavCimsMainBGSprite.AddUIComponent <UITextureSprite> ();
            FavCimsCBMenuSprite.name    = "FavCimsBGMenuSprite";
            FavCimsCBMenuSprite.texture = FavCimsCBETexture;

            //Citizens Transparent Button (For Easy Text Change)
            FavCimsBCMenuButton                  = this.AddUIComponent <UIButton> ();
            FavCimsBCMenuButton.name             = "FavCimsBCMenuButton";
            FavCimsBCMenuButton.width            = FavCimsCBMenuSprite.width;
            FavCimsBCMenuButton.height           = FavCimsCBMenuSprite.height;
            FavCimsBCMenuButton.useOutline       = true;
            FavCimsBCMenuButton.playAudioEvents  = true;
            FavCimsBCMenuButton.font             = UIDynamicFont.FindByName("OpenSans-Regular");
            FavCimsBCMenuButton.textScale        = 1.8f;
            FavCimsBCMenuButton.textColor        = new Color32(204, 204, 51, 40);       //r,g,b,a
            FavCimsBCMenuButton.hoveredTextColor = new Color32(204, 102, 0, 20);
            FavCimsBCMenuButton.pressedTextColor = new Color32(153, 0, 0, 0);
            FavCimsBCMenuButton.focusedTextColor = new Color32(102, 153, 255, 147);
            FavCimsBCMenuButton.textPadding.left = 15;
            FavCimsBCMenuButton.useDropShadow    = true;
            FavCimsBCMenuButton.tooltipBox       = uiView.defaultTooltipBox;

            //Printing
            FavCimsCBMenuSprite.relativePosition = new Vector3(27, 69);
            FavCimsBCMenuButton.relativePosition = new Vector3(27, 69);

            ///////////////////////////////////////////////
            //Buildings Button Texture (Enabled & Disabled)
            //////////////////////////////////////////////

            /*
             * FavCimsBBETexture = ResourceLoader.loadTexture (200, 59, "UIMainPanel.buildingsbuttonenabled.png");
             * FavCimsBBDTexture = ResourceLoader.loadTexture (200, 59, "UIMainPanel.buildingsbuttondisabled.png");
             *
             * FavCimsBBETexture.wrapMode = TextureWrapMode.Clamp;
             * FavCimsBBETexture.filterMode = FilterMode.Bilinear;
             * FavCimsBBETexture.name = "FavCimsBBETexture";
             * FavCimsBBETexture.mipMapBias = -0.5f;
             * FavCimsBBDTexture.wrapMode = TextureWrapMode.Clamp;
             * FavCimsBBDTexture.filterMode = FilterMode.Bilinear;
             * FavCimsBBDTexture.name = "FavCimsBBETexture";
             * FavCimsBBDTexture.mipMapBias = -0.5f;
             * FavCimsBBMenuSprite = FavCimsMainBGSprite.AddUIComponent<UITextureSprite> ();
             * FavCimsBBMenuSprite.name = "FavCimsBBMenuSprite";
             * FavCimsBBMenuSprite.texture = FavCimsBBDTexture;
             *
             * //Buildings Transparent Button (For Easy Text Change)
             * FavCimsBBMenuButton = this.AddUIComponent<UIButton> ();
             * FavCimsBBMenuButton.name = "FavCimsBBMenuButton";
             * FavCimsBBMenuButton.width = FavCimsBBETexture.width;
             * FavCimsBBMenuButton.height = FavCimsBBETexture.height;
             * FavCimsBBMenuButton.useOutline = true;
             * FavCimsBBMenuButton.playAudioEvents = true;
             * FavCimsBBMenuButton.font = UIDynamicFont.FindByName ("OpenSans-Regular");
             * FavCimsBBMenuButton.textScale = 1.8f;
             * FavCimsBBMenuButton.textColor = new Color32 (204, 204, 51, 40); //r,g,b,a
             * FavCimsBBMenuButton.hoveredTextColor = new Color32 (204, 102, 0, 20);
             * FavCimsBBMenuButton.pressedTextColor = new Color32 (153, 0, 0, 0);
             * FavCimsBBMenuButton.focusedTextColor = new Color32 (102, 153, 255, 147);
             * FavCimsBBMenuButton.textPadding.left = 20;
             * FavCimsBBMenuButton.useDropShadow = true;
             * FavCimsBBMenuButton.tooltipBox = uiView.defaultTooltipBox;
             *
             * //Printing
             * //FavCimsBBMenuSprite.relativePosition = new Vector3 (FavCimsCBMenuSprite.position.x + FavCimsBBMenuSprite.width + 21, 69); //html => margin-left:21px;
             * //FavCimsBBMenuButton.relativePosition = new Vector3 (FavCimsBCMenuButton.position.x + FavCimsBBMenuButton.width + 35, 69);
             *
             * ///////////////////////////////////////////////
             * //Stats Button Texture (Enabled & Disabled)
             * //////////////////////////////////////////////
             *
             * FavCimsSBETexture = ResourceLoader.loadTexture (200, 59, "UIMainPanel.statsbuttonenabled.png");
             * FavCimsSBDTexture = ResourceLoader.loadTexture (200, 59, "UIMainPanel.statsbuttondisabled.png");
             *
             * FavCimsSBETexture.wrapMode = TextureWrapMode.Clamp;
             * FavCimsSBETexture.filterMode = FilterMode.Bilinear;
             * FavCimsSBETexture.name = "FavCimsSBETexture";
             * FavCimsSBETexture.mipMapBias = -0.5f;
             * FavCimsSBDTexture.wrapMode = TextureWrapMode.Clamp;
             * FavCimsSBDTexture.filterMode = FilterMode.Bilinear;
             * FavCimsSBDTexture.name = "FavCimsSBETexture";
             * FavCimsSBDTexture.mipMapBias = -0.5f;
             * FavCimsSBMenuSprite = FavCimsMainBGSprite.AddUIComponent<UITextureSprite> ();
             * FavCimsSBMenuSprite.name = "FavCimsSBMenuSprite";
             * FavCimsSBMenuSprite.texture = FavCimsSBDTexture;
             *
             * //Stats Transparent Button (For Easy Text Change)
             * FavCimsBSMenuButton = this.AddUIComponent<UIButton> ();
             * FavCimsBSMenuButton.name = "FavCimsBSMenuButton";
             * FavCimsBSMenuButton.width = FavCimsSBETexture.width;
             * FavCimsBSMenuButton.height = FavCimsSBETexture.height;
             * FavCimsBSMenuButton.useOutline = true;
             * FavCimsBSMenuButton.playAudioEvents = true;
             * FavCimsBSMenuButton.font = UIDynamicFont.FindByName ("OpenSans-Regular");
             * FavCimsBSMenuButton.textScale = 1.8f;
             * FavCimsBSMenuButton.textColor = new Color32 (204, 204, 51, 40); //r,g,b,a
             * FavCimsBSMenuButton.hoveredTextColor = new Color32 (204, 102, 0, 20);
             * FavCimsBSMenuButton.pressedTextColor = new Color32 (153, 0, 0, 0);
             * FavCimsBSMenuButton.focusedTextColor = new Color32 (102, 153, 255, 147);
             * FavCimsBSMenuButton.textPadding.left = 0;
             * FavCimsBSMenuButton.useDropShadow = true;
             * FavCimsBSMenuButton.tooltipBox = uiView.defaultTooltipBox;
             *
             * //Printing
             * //FavCimsSBMenuSprite.relativePosition = new Vector3 (FavCimsBBMenuSprite.position.x + FavCimsSBMenuSprite.width + 21, 69); //html => margin-left:21px;
             * //FavCimsBSMenuButton.relativePosition = new Vector3 (FavCimsBBMenuButton.position.x + FavCimsBSMenuButton.width + 21, 69); //html => margin-left:21px;
             *
             * ///////////////////////////////////////////////
             * //Click Operation for Main Buttons
             * //////////////////////////////////////////////
             *
             * //FavCimsBCMenuButton.eventClick += (component, eventParam) => ButtonEnabler (FavCimsCBMenuSprite);
             * //FavCimsBBMenuButton.eventClick += (component, eventParam) => ButtonEnabler (FavCimsBBMenuSprite);
             * //FavCimsBSMenuButton.eventClick += (component, eventParam) => ButtonEnabler (FavCimsSBMenuSprite);
             */

            ///////////////////////////////////////////////
            //Citizens Panel
            //////////////////////////////////////////////

            CitizensPanel                  = this.AddUIComponent <UIPanel> ();
            CitizensPanel.name             = "CitizensPanel";
            CitizensPanel.width            = 1190;
            CitizensPanel.height           = 558;
            CitizensPanel.relativePosition = new Vector3(((this.width / 2) - (float)CitizensPanel.width / 2), 128);

            ///////////////////////////////////////////////
            //Citizens Panel Body Background
            //////////////////////////////////////////////

            FavCimsMainBodyTexture = ResourceLoader.loadTexture(1190, 558, "UIMainPanel.bodybg.png");

            FavCimsMainBodyTexture.wrapMode   = TextureWrapMode.Clamp;
            FavCimsMainBodyTexture.filterMode = FilterMode.Bilinear;
            FavCimsMainBodyTexture.name       = "FavCimsMainBodyTexture";

            FavCimsBodySprite         = CitizensPanel.AddUIComponent <UITextureSprite> ();
            FavCimsBodySprite.name    = "FavCimsCBGBodySprite";
            FavCimsBodySprite.texture = FavCimsMainBodyTexture;
            //Printing
            FavCimsBodySprite.relativePosition = Vector3.zero;

            ///////////////////////////////////////////////
            //Index Column Background
            //////////////////////////////////////////////

            Texture FavCimsIndexBgBar = ResourceLoader.loadTexture(1146, 26, "UIMainPanel.indexerbgbar.png");

            FavCimsIndexBgBar.wrapMode   = TextureWrapMode.Clamp;
            FavCimsIndexBgBar.filterMode = FilterMode.Bilinear;
            FavCimsIndexBgBar.name       = "FavCimsIndexBgBar";
            FavCimsIndexBgBar.mipMapBias = -0.5f;
            UITextureSprite FavCimsIndexBgBarSprite = CitizensPanel.AddUIComponent <UITextureSprite> ();

            FavCimsIndexBgBarSprite.name    = "FavCimsIndexBgBarSprite";
            FavCimsIndexBgBarSprite.texture = FavCimsIndexBgBar;

            //Printing
            FavCimsIndexBgBarSprite.relativePosition = new Vector3(21, 7);

            ////////////////////////////////////////////////
            //Index Columns (Button for future sort order...)
            ////////////////////////////////////////////////

            //Status
            FavCimsHappinesColText        = CitizensPanel.AddUIComponent <UIButton> ();
            FavCimsHappinesColText.name   = "FavCimsHappinesColText";
            FavCimsHappinesColText.width  = 60;
            FavCimsHappinesColText.height = FavCimsIndexBgBar.height;
            FavCimsHappinesColText.textVerticalAlignment   = UIVerticalAlignment.Middle;
            FavCimsHappinesColText.textHorizontalAlignment = UIHorizontalAlignment.Center;
            FavCimsHappinesColText.playAudioEvents         = true;
            FavCimsHappinesColText.font             = UIDynamicFont.FindByName("OpenSans-Regular");
            FavCimsHappinesColText.textScale        = 0.7f;
            FavCimsHappinesColText.textColor        = new Color32(204, 204, 51, 40);       //r,g,b,a
            FavCimsHappinesColText.hoveredTextColor = new Color32(204, 102, 0, 20);
            FavCimsHappinesColText.pressedTextColor = new Color32(153, 0, 0, 0);
            FavCimsHappinesColText.focusedTextColor = new Color32(102, 153, 255, 147);
            FavCimsHappinesColText.textPadding.left = 0;
            FavCimsHappinesColText.tooltipBox       = uiView.defaultTooltipBox;

            //Printing Status
            FavCimsHappinesColText.relativePosition = new Vector3(FavCimsIndexBgBarSprite.relativePosition.x + 6, FavCimsIndexBgBarSprite.relativePosition.y + 1);

            //Name
            FavCimsNameColText        = CitizensPanel.AddUIComponent <UIButton> ();
            FavCimsNameColText.name   = "FavCimsNameColText";
            FavCimsNameColText.width  = 180;
            FavCimsNameColText.height = FavCimsIndexBgBar.height;
            FavCimsNameColText.textVerticalAlignment   = UIVerticalAlignment.Middle;
            FavCimsNameColText.textHorizontalAlignment = UIHorizontalAlignment.Center;
            FavCimsNameColText.playAudioEvents         = true;
            FavCimsNameColText.font             = UIDynamicFont.FindByName("OpenSans-Regular");
            FavCimsNameColText.textScale        = 0.7f;
            FavCimsNameColText.textColor        = new Color32(204, 204, 51, 40);       //r,g,b,a
            FavCimsNameColText.hoveredTextColor = new Color32(204, 102, 0, 20);
            FavCimsNameColText.pressedTextColor = new Color32(153, 0, 0, 0);
            FavCimsNameColText.focusedTextColor = new Color32(102, 153, 255, 147);
            FavCimsNameColText.textPadding.left = 0;
            FavCimsNameColText.tooltipBox       = uiView.defaultTooltipBox;

            //Printing Name
            FavCimsNameColText.relativePosition = new Vector3(FavCimsHappinesColText.relativePosition.x + FavCimsHappinesColText.width, FavCimsIndexBgBarSprite.relativePosition.y + 1);

            //Age Phase
            FavCimsAgePhaseColText        = CitizensPanel.AddUIComponent <UIButton> ();
            FavCimsAgePhaseColText.name   = "FavCimsAgePhaseColText";
            FavCimsAgePhaseColText.width  = 120;
            FavCimsAgePhaseColText.height = FavCimsIndexBgBar.height;
            FavCimsAgePhaseColText.textVerticalAlignment   = UIVerticalAlignment.Middle;
            FavCimsAgePhaseColText.textHorizontalAlignment = UIHorizontalAlignment.Center;
            FavCimsAgePhaseColText.playAudioEvents         = true;
            FavCimsAgePhaseColText.font             = UIDynamicFont.FindByName("OpenSans-Regular");
            FavCimsAgePhaseColText.textScale        = 0.7f;
            FavCimsAgePhaseColText.textColor        = new Color32(204, 204, 51, 40);       //r,g,b,a
            FavCimsAgePhaseColText.hoveredTextColor = new Color32(204, 102, 0, 20);
            FavCimsAgePhaseColText.pressedTextColor = new Color32(153, 0, 0, 0);
            FavCimsAgePhaseColText.focusedTextColor = new Color32(102, 153, 255, 147);
            FavCimsAgePhaseColText.textPadding.left = 0;
            FavCimsAgePhaseColText.tooltipBox       = uiView.defaultTooltipBox;

            //Printing Age Phase
            FavCimsAgePhaseColText.relativePosition = new Vector3(FavCimsNameColText.relativePosition.x + FavCimsNameColText.width, FavCimsIndexBgBarSprite.relativePosition.y + 1);

            //Age
            FavCimsAgeColText        = CitizensPanel.AddUIComponent <UIButton> ();
            FavCimsAgeColText.name   = "FavCimsAgeColText";
            FavCimsAgeColText.width  = 40;
            FavCimsAgeColText.height = FavCimsIndexBgBar.height;
            FavCimsAgeColText.textVerticalAlignment   = UIVerticalAlignment.Middle;
            FavCimsAgeColText.textHorizontalAlignment = UIHorizontalAlignment.Center;
            FavCimsAgeColText.playAudioEvents         = true;
            FavCimsAgeColText.font             = UIDynamicFont.FindByName("OpenSans-Regular");
            FavCimsAgeColText.textScale        = 0.7f;
            FavCimsAgeColText.textColor        = new Color32(204, 204, 51, 40);       //r,g,b,a
            FavCimsAgeColText.hoveredTextColor = new Color32(204, 102, 0, 20);
            FavCimsAgeColText.pressedTextColor = new Color32(153, 0, 0, 0);
            FavCimsAgeColText.focusedTextColor = new Color32(102, 153, 255, 147);
            FavCimsAgeColText.textPadding.left = 0;
            FavCimsAgeColText.tooltipBox       = uiView.defaultTooltipBox;

            //Printing Age
            FavCimsAgeColText.relativePosition = new Vector3(FavCimsAgePhaseColText.relativePosition.x + FavCimsAgePhaseColText.width, FavCimsIndexBgBarSprite.relativePosition.y + 1);

            //Education
            FavCimsEduColText        = CitizensPanel.AddUIComponent <UIButton> ();
            FavCimsEduColText.name   = "FavCimsEduColText";
            FavCimsEduColText.width  = 140;
            FavCimsEduColText.height = FavCimsIndexBgBar.height;
            FavCimsEduColText.textVerticalAlignment   = UIVerticalAlignment.Middle;
            FavCimsEduColText.textHorizontalAlignment = UIHorizontalAlignment.Center;
            FavCimsEduColText.playAudioEvents         = true;
            FavCimsEduColText.font             = UIDynamicFont.FindByName("OpenSans-Regular");
            FavCimsEduColText.textScale        = 0.7f;
            FavCimsEduColText.textColor        = new Color32(204, 204, 51, 40);       //r,g,b,a
            FavCimsEduColText.hoveredTextColor = new Color32(204, 102, 0, 20);
            FavCimsEduColText.pressedTextColor = new Color32(153, 0, 0, 0);
            FavCimsEduColText.focusedTextColor = new Color32(102, 153, 255, 147);
            FavCimsEduColText.textPadding.left = 0;
            FavCimsEduColText.tooltipBox       = uiView.defaultTooltipBox;

            //Printing Education
            FavCimsEduColText.relativePosition = new Vector3(FavCimsAgeColText.relativePosition.x + FavCimsAgeColText.width, FavCimsIndexBgBarSprite.relativePosition.y + 1);

            //Home
            FavCimsHomeColText        = CitizensPanel.AddUIComponent <UIButton> ();
            FavCimsHomeColText.name   = "FavCimsHomeColText";
            FavCimsHomeColText.width  = 184;
            FavCimsHomeColText.height = FavCimsIndexBgBar.height;
            FavCimsHomeColText.textVerticalAlignment   = UIVerticalAlignment.Middle;
            FavCimsHomeColText.textHorizontalAlignment = UIHorizontalAlignment.Center;
            FavCimsHomeColText.playAudioEvents         = true;
            FavCimsHomeColText.font             = UIDynamicFont.FindByName("OpenSans-Regular");
            FavCimsHomeColText.textScale        = 0.7f;
            FavCimsHomeColText.textColor        = new Color32(204, 204, 51, 40);       //r,g,b,a
            FavCimsHomeColText.hoveredTextColor = new Color32(204, 102, 0, 20);
            FavCimsHomeColText.pressedTextColor = new Color32(153, 0, 0, 0);
            FavCimsHomeColText.focusedTextColor = new Color32(102, 153, 255, 147);
            FavCimsHomeColText.textPadding.left = 0;
            FavCimsHomeColText.tooltipBox       = uiView.defaultTooltipBox;

            //Printing Home
            FavCimsHomeColText.relativePosition = new Vector3(FavCimsEduColText.relativePosition.x + FavCimsEduColText.width, FavCimsIndexBgBarSprite.relativePosition.y + 1);

            //Working Place
            FavCimsWorkingPlaceColText        = CitizensPanel.AddUIComponent <UIButton> ();
            FavCimsWorkingPlaceColText.name   = "FavCimsWorkingPlaceColText";
            FavCimsWorkingPlaceColText.width  = 180;
            FavCimsWorkingPlaceColText.height = FavCimsIndexBgBar.height;
            FavCimsWorkingPlaceColText.textVerticalAlignment   = UIVerticalAlignment.Middle;
            FavCimsWorkingPlaceColText.textHorizontalAlignment = UIHorizontalAlignment.Center;
            FavCimsWorkingPlaceColText.playAudioEvents         = true;
            FavCimsWorkingPlaceColText.font             = UIDynamicFont.FindByName("OpenSans-Regular");
            FavCimsWorkingPlaceColText.textScale        = 0.7f;
            FavCimsWorkingPlaceColText.textColor        = new Color32(204, 204, 51, 40);       //r,g,b,a
            FavCimsWorkingPlaceColText.hoveredTextColor = new Color32(204, 102, 0, 20);
            FavCimsWorkingPlaceColText.pressedTextColor = new Color32(153, 0, 0, 0);
            FavCimsWorkingPlaceColText.focusedTextColor = new Color32(102, 153, 255, 147);
            FavCimsWorkingPlaceColText.textPadding.left = 0;
            FavCimsWorkingPlaceColText.tooltipBox       = uiView.defaultTooltipBox;

            //Printing Working Place
            FavCimsWorkingPlaceColText.relativePosition = new Vector3(FavCimsHomeColText.relativePosition.x + FavCimsHomeColText.width, FavCimsIndexBgBarSprite.relativePosition.y + 1);

            //Last Activity
            FavCimsLastActColText        = CitizensPanel.AddUIComponent <UIButton> ();
            FavCimsLastActColText.name   = "FavCimsLastActColText";
            FavCimsLastActColText.width  = 180;
            FavCimsLastActColText.height = FavCimsIndexBgBar.height;
            FavCimsLastActColText.textVerticalAlignment   = UIVerticalAlignment.Middle;
            FavCimsLastActColText.textHorizontalAlignment = UIHorizontalAlignment.Center;
            FavCimsLastActColText.playAudioEvents         = true;
            FavCimsLastActColText.font             = UIDynamicFont.FindByName("OpenSans-Regular");
            FavCimsLastActColText.textScale        = 0.7f;
            FavCimsLastActColText.textColor        = new Color32(204, 204, 51, 40);       //r,g,b,a
            FavCimsLastActColText.hoveredTextColor = new Color32(204, 102, 0, 20);
            FavCimsLastActColText.pressedTextColor = new Color32(153, 0, 0, 0);
            FavCimsLastActColText.focusedTextColor = new Color32(102, 153, 255, 147);
            FavCimsLastActColText.textPadding.left = 0;
            FavCimsLastActColText.tooltipBox       = uiView.defaultTooltipBox;

            //Printing Last Activity
            FavCimsLastActColText.relativePosition = new Vector3(FavCimsWorkingPlaceColText.relativePosition.x + FavCimsWorkingPlaceColText.width, FavCimsIndexBgBarSprite.relativePosition.y + 1);

            //Close Button
            FavCimsCloseButtonCol        = CitizensPanel.AddUIComponent <UIButton> ();
            FavCimsCloseButtonCol.name   = "FavCimsCloseButtonCol";
            FavCimsCloseButtonCol.width  = 50;
            FavCimsCloseButtonCol.height = FavCimsIndexBgBar.height;
            FavCimsCloseButtonCol.textVerticalAlignment   = UIVerticalAlignment.Middle;
            FavCimsCloseButtonCol.textHorizontalAlignment = UIHorizontalAlignment.Center;
            FavCimsCloseButtonCol.playAudioEvents         = true;
            FavCimsCloseButtonCol.font              = UIDynamicFont.FindByName("OpenSans-Regular");
            FavCimsCloseButtonCol.textScale         = 0.7f;
            FavCimsCloseButtonCol.textColor         = new Color32(204, 204, 51, 40);      //r,g,b,a
            FavCimsCloseButtonCol.hoveredTextColor  = new Color32(204, 102, 0, 20);
            FavCimsCloseButtonCol.pressedTextColor  = new Color32(153, 0, 0, 0);
            FavCimsCloseButtonCol.focusedTextColor  = new Color32(102, 153, 255, 147);
            FavCimsCloseButtonCol.textPadding.right = 6;
            FavCimsCloseButtonCol.tooltipBox        = uiView.defaultTooltipBox;

            //Printing Close Button
            FavCimsCloseButtonCol.relativePosition = new Vector3(FavCimsLastActColText.relativePosition.x + FavCimsLastActColText.width, FavCimsIndexBgBarSprite.relativePosition.y + 1);

            ///////////////////////////////////////////////
            /////Rows Panel Body
            ///////////////////////////////////////////////

            FavCimsCitizenRowsPanel        = CitizensPanel.AddUIComponent <UIScrollablePanel> ();
            FavCimsCitizenRowsPanel.name   = "FavCimsCitizenRowsPanel";
            FavCimsCitizenRowsPanel.width  = FavCimsIndexBgBarSprite.width - 12;
            FavCimsCitizenRowsPanel.height = 500;

            FavCimsCitizenRowsPanel.autoLayoutDirection = LayoutDirection.Vertical;
            FavCimsCitizenRowsPanel.autoLayout          = true;
            FavCimsCitizenRowsPanel.clipChildren        = true;
            FavCimsCitizenRowsPanel.autoLayoutPadding   = new RectOffset(0, 0, 0, 0);
            FavCimsCitizenRowsPanel.relativePosition    = new Vector3(FavCimsIndexBgBarSprite.relativePosition.x + 6, FavCimsIndexBgBarSprite.relativePosition.y + FavCimsIndexBgBarSprite.height);

            //Damn ScrollBar
            UIScrollablePanel FavCimsCitizenRowsPanelScrollBar = CitizensPanel.AddUIComponent <UIScrollablePanel> ();

            FavCimsCitizenRowsPanelScrollBar.name             = "FavCimsCitizenRowsPanelScrollBar";
            FavCimsCitizenRowsPanelScrollBar.width            = 10;
            FavCimsCitizenRowsPanelScrollBar.height           = 500;
            FavCimsCitizenRowsPanelScrollBar.relativePosition = new Vector3(FavCimsIndexBgBarSprite.relativePosition.x + FavCimsIndexBgBarSprite.width, FavCimsCitizenRowsPanel.relativePosition.y);

            UIScrollbar FavCimsMainPanelScrollBar = FavCimsCitizenRowsPanelScrollBar.AddUIComponent <UIScrollbar> ();

            FavCimsMainPanelScrollBar.width       = 10;
            FavCimsMainPanelScrollBar.height      = FavCimsCitizenRowsPanel.height;
            FavCimsMainPanelScrollBar.orientation = UIOrientation.Vertical;
            FavCimsMainPanelScrollBar.pivot       = UIPivotPoint.TopRight;
            FavCimsMainPanelScrollBar.AlignTo(FavCimsMainPanelScrollBar.parent, UIAlignAnchor.TopRight);
            FavCimsMainPanelScrollBar.minValue        = 0;
            FavCimsMainPanelScrollBar.value           = 0;
            FavCimsMainPanelScrollBar.incrementAmount = 40;

            UISlicedSprite FavCimsMainPanelTrackSprite = FavCimsMainPanelScrollBar.AddUIComponent <UISlicedSprite> ();

            FavCimsMainPanelTrackSprite.relativePosition = FavCimsMainPanelScrollBar.relativePosition;
            FavCimsMainPanelTrackSprite.autoSize         = true;
            FavCimsMainPanelTrackSprite.size             = FavCimsMainPanelTrackSprite.parent.size;
            FavCimsMainPanelTrackSprite.fillDirection    = UIFillDirection.Vertical;
            FavCimsMainPanelTrackSprite.spriteName       = "ScrollbarTrack";

            FavCimsMainPanelScrollBar.trackObject = FavCimsMainPanelTrackSprite;

            UISlicedSprite thumbSprite = FavCimsMainPanelScrollBar.AddUIComponent <UISlicedSprite> ();

            thumbSprite.relativePosition              = FavCimsMainPanelScrollBar.relativePosition;
            thumbSprite.autoSize                      = true;
            thumbSprite.width                         = thumbSprite.parent.width;
            thumbSprite.fillDirection                 = UIFillDirection.Vertical;
            thumbSprite.spriteName                    = "ScrollbarThumb";
            FavCimsMainPanelScrollBar.thumbObject     = thumbSprite;
            FavCimsCitizenRowsPanel.verticalScrollbar = FavCimsMainPanelScrollBar;

            /* Thx to CNightwing for this piece of code */
            FavCimsCitizenRowsPanel.eventMouseWheel += (component, eventParam) => {
                var sign = Math.Sign(eventParam.wheelDelta);
                FavCimsCitizenRowsPanel.scrollPosition += new Vector2(0, sign * (-1) * FavCimsMainPanelScrollBar.incrementAmount);
            };
            /* End */

            FavCimsCitizenRowsPanel.eventComponentAdded   += (component, eventParam) => ReorderRowsBackgrounds();
            FavCimsCitizenRowsPanel.eventComponentRemoved += (component, eventParam) => ReorderRowsBackgrounds();

            ///////////////////////////////////////////////
            /////Rows Panel Footer
            ///////////////////////////////////////////////

            UITextureSprite FavCimsFooterBgBarSprite = CitizensPanel.AddUIComponent <UITextureSprite> ();

            FavCimsFooterBgBarSprite.name    = "FavCimsFooterBgBarSprite";
            FavCimsFooterBgBarSprite.width   = FavCimsIndexBgBarSprite.width;
            FavCimsFooterBgBarSprite.height  = 15;
            FavCimsFooterBgBarSprite.texture = FavCimsIndexBgBar;

            //Printing
            FavCimsFooterBgBarSprite.relativePosition = new Vector3(21, FavCimsCitizenRowsPanel.relativePosition.y + FavCimsCitizenRowsPanel.height);
            //Row End

            //Load Initial Row (People Renamed)
            foreach (KeyValuePair <InstanceID, string> FavCitizen in FavCimsCore.FavoriteCimsList())
            {
                if (FavCitizen.Key.Type == InstanceType.Citizen)                  // || FavCitizen.Key.Type == InstanceType.CitizenInstance
                {
                    CitizenRow FavCimsCitizenSingleRowPanel = FavCimsCitizenRowsPanel.AddUIComponent(typeof(CitizenRow)) as CitizenRow;
                    FavCimsCitizenSingleRowPanel.MyInstanceID    = FavCitizen.Key;
                    FavCimsCitizenSingleRowPanel.MyInstancedName = FavCitizen.Value;
                }
            }
        }
Example #24
0
        public static void BuildSettingsMenu(ref UIHelperBase helper)
        {
            try
            {
                UIHelper hp = (UIHelper)helper;
                panel = (UIScrollablePanel)hp.self;
                if (panel != null)
                {
                    panel.eventVisibilityChanged += SettingsEventVisibilityChanged;
                }
                UIHelperBase group = helper.AddGroup(Mod.MOD_NAME); //Title of your settings options panel, keep it short.
                group.AddSpace(10);
                sliderFireRateValue           = (UISlider)group.AddSlider("Tree Fire Spread Rate", 0.0f, 100.0f, 5.0f, (float)Mod.config.TreeFireSpreadRate, OnFireRateChanged);
                m_FireSettingTxtUIref         = (UITextField)group.AddTextfield("Rate", Mod.config.TreeFireSpreadRate.ToString(), delegate(string str) { }, delegate(string str) { });
                m_FireSettingTxtUIref.text    = sliderFireRateValue.value.ToString();
                m_FireSettingTxtUIref.tooltip = "Current setting of the tree fire rate relative to the base game";
                group.AddSpace(16);

                sliderFireRateDisasterValue = (UISlider)group.AddSlider("Tree Fire Spread Rate (Disasters)", 0.0f, 100.0f, 5.0f, (float)Mod.config.TreeFireSpreadRate, OnFireRateChangedDisaster);
                group.AddSpace(10);
                m_FireSettingDisasterTxtUIref         = (UITextField)group.AddTextfield("Rate", Mod.config.TreeFireDisasterSpreadRate.ToString(), delegate(string str) { }, delegate(string str) { });
                m_FireSettingDisasterTxtUIref.text    = sliderFireRateDisasterValue.value.ToString();
                m_FireSettingDisasterTxtUIref.tooltip = "Current setting of the tree fire rate when part of disaster relative to the base game";
                if ((int)Mod.config.TreeFireSpreadRate <= 0)
                {
                    m_FireSettingTxtUIref.text = "Disabled";
                }
                if ((int)Mod.config.TreeFireSpreadRate > 99)
                {
                    m_FireSettingTxtUIref.text = "Original";
                }
                if ((int)Mod.config.TreeFireDisasterSpreadRate <= 0)
                {
                    m_FireSettingDisasterTxtUIref.text = "Disabled";
                }
                if ((int)Mod.config.TreeFireDisasterSpreadRate > 99)
                {
                    m_FireSettingDisasterTxtUIref.text = "Original";
                }
                group.AddSpace(12);
                UICheckBox chkDisableBuildingFires = (UICheckBox)group.AddCheckbox("Disable normal building fires", Mod.config.DisableBuildingFires, OnDisableFires);
                chkDisableBuildingFires.tooltip = "Will disable buildings from catching fire via normal methods, existing fires will continue till they burn out\n Does not effect disaster trigged building fires.\nThis was only included for convenience for people using no-fire mods to not have to have 2 mods";
                group.AddSpace(10);
                UICheckBox chkEnableLogging = (UICheckBox)group.AddCheckbox("Enable Logging", Mod.DEBUG_LOG_ON, OnLoggingChecked);
                chkEnableLogging.tooltip = "Enables logging of debug data to your log file.";
                group.AddSpace(20);
                UIButton btnResetAllTrees = (UIButton)group.AddButton("Extinguish All Tree Fires", ResetAllBurningTrees);
                btnResetAllTrees.tooltip = "Resets the flags on all trees to mark them not burned or damaged,\n then wipes the burningtree list, ground is not touched however.";
                group.AddSpace(12);
                UILabel txtMessage;
                txtMessage      = panel.AddUIComponent <UILabel>();
                txtMessage.text = "Note all options can be changed during game play, and are effective immediately.\nYou must be in game obviously to use the Extinguish button.";
                group.AddSpace(10);
                UILabel txtMessage2;
                txtMessage2      = panel.AddUIComponent <UILabel>();
                txtMessage2.text = "Version: " + Mod.MOD_VERSIONSTRING;
                group.AddSpace(12);
                txtMessageState = panel.AddUIComponent <UILabel>();
                object[] tmpvars = new object[] { isInGame.ToString(), Detours.isActive.ToString(), TreeFireControl_Loader.FireStats.totalburncalls.ToString(), TreeFireControl_Loader.FireStats.totalburncallsnormal.ToString(), TreeFireControl_Loader.FireStats.totalburncallsdisaster.ToString(), TreeFireControl_Loader.FireStats.totalburncallsblockednormal.ToString(), TreeFireControl_Loader.FireStats.totalburncallsblockeddisaster.ToString() };
                txtMessageState.text = string.Format("StateInfo: isInGame:{0} DetoursActive:{1}\n Total:{2} Totalnorm:{3} Totaldist:{4}\n Totalnormskipped:{5} Totaldistskipped:{6}", tmpvars);
                txtMessageState.Hide();
                //               panel.autoLayout = false;
//                btnClearStats = (UIButton)group.AddButton("Clear Stats", ClearStats_Clicked);
                btnClearStats                  = (UIButton)panel.AddUIComponent <UIButton>();
                btnClearStats.autoSize         = false;
                btnClearStats.size             = new Vector2(130, 28);
                btnClearStats.normalBgSprite   = "ButtonMenu";
                btnClearStats.hoveredTextColor = new Color32(7, 137, 255, 255);
                btnClearStats.pressedTextColor = new Color32(30, 30, 44, 255);
                btnClearStats.playAudioEvents  = true;
//                panel.AddUIComponent<UIButton>();
                btnClearStats.text        = "ClearStats";
                btnClearStats.eventClick += ClearStats_Clicked;
//                btnClearStats.relativePosition = new Vector3(txtMessageState.relativePosition.x, txtMessageState.relativePosition.y + 42f);
                btnClearStats.Hide();
                if (Mod.DEBUG_LOG_ON)
                {
                    txtMessage.Show(); btnClearStats.Show();
                }
                if (Mod.DEBUG_LOG_ON)
                {
                    Logger.dbgLog("UI setup completed");
                }
            }
            catch (Exception ex)
            { Logger.dbgLog("Error ", ex); }

            //group.AddCheckbox("Auto Show On Map Load", config.UseAlternateKeyBinding, OnUseAlternateKeyBinding); //<-- last part is function you want called when clicked\unclicked.
            //group.AddCheckbox("Use Alternate Keybinding", config.UseAlternateKeyBinding, OnUseAlternateKeyBinding); //<-- last part is function you want called when clicked\unclicked.
            //group.AddCheckbox("Enable Verbose Logging", DEBUG_LOG_ON, OnLoggingChecked); //<-- last part is function you want called when clicked\unclicked.
        }
        private void addSlider(UIScrollablePanel panel, Vector3 position, float width, OnValueChanged eventCallback, IDifficultyParameter param)
        {
            UISlider slider = panel.AddUIComponent<UISlider>();
            slider.size = new Vector2(width, 8);
            slider.relativePosition = position;
            slider.minValue = 0;
            slider.maxValue = param.MaxIndex;
            slider.stepSize = 1;
            slider.value = param.SelectedIndex;
            slider.backgroundSprite = "TextFieldPanel"; // TextFieldPanel, GenericProgressBar

            UISprite thumb = slider.AddUIComponent<UISprite>();
            thumb.size = new Vector2(16, 16);
            thumb.spriteName = "InfoIconBaseFocused"; // SliderBudget, InfoIconBaseFocused
            slider.thumbObject = thumb;

            UILabel label = panel.AddUIComponent<UILabel>();
            label.textScale = textScaleSmall;
            label.text = param.GetValueStr((int)slider.value);
            label.relativePosition = new Vector3(position.x + width + 10, position.y);

            slider.eventValueChanged += delegate (UIComponent c, float val)
            {
                label.text = param.GetValueStr((int)val);
                eventCallback(val);
            };

            sliders.Add(slider, param);
        }
        public void CreateButtons()
        {
            UIView uiView = UIView.GetAView();

            UIComponent refButton = uiView.FindUIComponent("Policies");
            UIComponent tsBar = uiView.FindUIComponent("TSBar");
            if (btLevel == null)
            {
                terraformPanel = UIView.GetAView().FindUIComponent<UITabContainer>("TSContainer").AddUIComponent<UIScrollablePanel>();
                terraformPanel.backgroundSprite = "SubcategoriesPanel";
                terraformPanel.isVisible = false;
                terraformPanel.name = "TerraformPanel";
                terraformPanel.autoLayoutPadding = new RectOffset(25, 0, 20, 20);
                terraformPanel.autoLayout = true;

                btToggle = UIView.GetAView().FindUIComponent<UITabstrip>("MainToolstrip").AddUIComponent<UIButton>();

                InitButton(btToggle, "ToolbarIconTerrain", new Vector2(43, 49));
                btToggle.focusedFgSprite = "ToolbarIconGroup6Focused";
                btToggle.hoveredFgSprite = "ToolbarIconGroup6Hovered";
                btToggle.name = "TerrainButton";

                var btSizeLarge = new Vector2(109, 75);

                btPoint = (UIButton)terraformPanel.AddUIComponent(typeof(UIButton));
                InitButton(btPoint, "TerrainDitch", btSizeLarge);

                btShift = (UIButton)terraformPanel.AddUIComponent(typeof(UIButton));
                InitButton(btShift, "TerrainShift", btSizeLarge);

                btSoften = (UIButton)terraformPanel.AddUIComponent(typeof(UIButton));
                InitButton(btSoften, "TerrainSoften", btSizeLarge);

                btLevel = (UIButton)terraformPanel.AddUIComponent(typeof(UIButton));
                InitButton(btLevel, "TerrainLevel", btSizeLarge);

                btSlope = (UIButton)terraformPanel.AddUIComponent(typeof(UIButton));
                InitButton(btSlope, "TerrainSlope", btSizeLarge);

                btSand = (UIButton)terraformPanel.AddUIComponent(typeof(UIButton));
                InitButton(btSand, "ResourceSand", btSizeLarge);

                terraformPanel.Reset();

            }
        }
        //public void ButtonEnabler(UITextureSprite sPrite) {
        //if (sPrite == FavCimsCBMenuSprite) {
        //FavCimsCBMenuSprite.texture = FavCimsCBETexture;
        //FavCimsBBMenuSprite.texture = FavCimsBBDTexture;
        //FavCimsSBMenuSprite.texture = FavCimsSBDTexture;
        //} else if (sPrite == FavCimsBBMenuSprite) {
        //FavCimsCBMenuSprite.texture = FavCimsCBDTexture;
        //FavCimsBBMenuSprite.texture = FavCimsBBETexture;
        //FavCimsSBMenuSprite.texture = FavCimsSBDTexture;
        //} else if (sPrite == FavCimsSBMenuSprite) {
        //FavCimsCBMenuSprite.texture = FavCimsCBDTexture;
        //FavCimsBBMenuSprite.texture = FavCimsBBDTexture;
        //FavCimsSBMenuSprite.texture = FavCimsSBETexture;
        //}
        //return;
        //}
        public override void Start()
        {
            var uiView = UIView.GetAView();

            this.name = "FavCimsPanel";
            this.width = 1200;
            this.height = 700;
            this.opacity = 0.95f;
            this.eventVisibilityChanged += (component, value) => change_visibility_event ();

            //Main Panel BG Texture
            Texture FavCimsMainBGTexture = ResourceLoader.loadTexture ((int)this.width, (int)this.height, "UIMainPanel.mainbg.png");
            FavCimsMainBGTexture.wrapMode = TextureWrapMode.Clamp;
            FavCimsMainBGTexture.filterMode = FilterMode.Bilinear;
            //FavCimsMainBGTexture.anisoLevel = 9; Set 1 Bad to 9 Very God
            FavCimsMainBGTexture.name = "FavCimsMainBGTexture";
            UITextureSprite FavCimsMainBGSprite;
            FavCimsMainBGSprite = this.AddUIComponent<UITextureSprite> ();
            FavCimsMainBGSprite.name = "FavCimsMainBGSprite";
            FavCimsMainBGSprite.texture = FavCimsMainBGTexture;
            FavCimsMainBGSprite.relativePosition = new Vector3 (0, 0);

            FavCimsMainBGSprite.eventMouseDown += delegate {
                if (Input.GetMouseButton (0)) {
                    if (this.GetComponentInChildren<WindowController> () != null) {
                        this.PanelMover = this.GetComponentInChildren<WindowController> ();
                        this.PanelMover.ComponentToMove = this;
                        this.PanelMover.Stop = false;
                        this.PanelMover.Start ();
                    } else {
                        this.PanelMover = this.AddUIComponent (typeof(WindowController)) as WindowController;
                        this.PanelMover.ComponentToMove = this;
                    }
                    this.opacity = 0.5f;
                }
            };

            FavCimsMainBGSprite.eventMouseUp += delegate {
                if (this.PanelMover != null) {
                    this.PanelMover.Stop = true;
                    this.PanelMover.ComponentToMove = null;
                    this.PanelMover = null;
                }
                this.opacity = 1f;
            };

            //Main Panel Title Texture
            Texture FavCimsTitleTexture;
            FavCimsTitleTexture = ResourceLoader.loadTexture ((int)this.width, 58, "UIMainPanel.favcimstitle.png");

            FavCimsTitleTexture.wrapMode = TextureWrapMode.Clamp;
            FavCimsTitleTexture.filterMode = FilterMode.Bilinear;
            FavCimsTitleTexture.mipMapBias = -0.5f;
            //FavCimsTitleTexture.anisoLevel = 9; // Set 1 Bad to 9 Very God

            FavCimsTitleTexture.name = "FavCimsTitleTexture";
            FavCimsTitleSprite = FavCimsMainBGSprite.AddUIComponent<UITextureSprite> ();
            FavCimsTitleSprite.name = "FavCimsTitleSprite";
            FavCimsTitleSprite.texture = FavCimsTitleTexture;
            float FavCimsTitleSpriteRelPosX = ((this.width / 2) - (float)FavCimsTitleTexture.width / 2);
            FavCimsTitleSprite.relativePosition = new Vector3 (FavCimsTitleSpriteRelPosX, 0);

            ///////////////////////////////////////////////
            //Game Default Close Button
            //////////////////////////////////////////////

            UIButton FavCimsMenuCloseButton = this.AddUIComponent<UIButton> ();
            FavCimsMenuCloseButton.name = "FavCimsMenuCloseButton";
            FavCimsMenuCloseButton.width = 32;
            FavCimsMenuCloseButton.height = 32;
            FavCimsMenuCloseButton.normalBgSprite = "buttonclose";
            FavCimsMenuCloseButton.hoveredBgSprite = "buttonclosehover";
            FavCimsMenuCloseButton.pressedBgSprite = "buttonclosepressed";
            FavCimsMenuCloseButton.opacity = 1;
            FavCimsMenuCloseButton.useOutline = true;
            FavCimsMenuCloseButton.playAudioEvents = true;

            FavCimsMenuCloseButton.eventClick += (component, eventParam) => FavoritesCimsButton.FavCimsPanelToggle ();

            //Printing
            FavCimsMenuCloseButton.relativePosition = new Vector3 (this.width - (FavCimsMenuCloseButton.width * 1.5f), ((float)FavCimsTitleTexture.height / 2) - FavCimsMenuCloseButton.height / 2);

            ///////////////////////////////////////////////
            //Main Panel Menu Background Texture
            ///////////////////////////////////////////////

            Texture FavCimsBGMenuTexture;
            FavCimsBGMenuTexture = ResourceLoader.loadTexture ((int)this.width - 10, 70, "UIMainPanel.submenubar.png");

            FavCimsBGMenuTexture.wrapMode = TextureWrapMode.Clamp;
            FavCimsBGMenuTexture.filterMode = FilterMode.Bilinear;
            FavCimsBGMenuTexture.name = "FavCimsBGMenuTexture";
            UITextureSprite FavCimsBGMenuSprite = FavCimsMainBGSprite.AddUIComponent<UITextureSprite> ();
            FavCimsBGMenuSprite.name = "FavCimsBGMenuSprite";
            FavCimsBGMenuSprite.texture = FavCimsBGMenuTexture;
            float FavCimsBGMenuSpriteRelPosX = ((this.width / 2) - (float)FavCimsBGMenuTexture.width / 2);
            FavCimsBGMenuSprite.relativePosition = new Vector3 (FavCimsBGMenuSpriteRelPosX, 58);

            //Citizen Button Texture (Enabled & Disabled)
            FavCimsCBETexture = ResourceLoader.loadTexture (200, 59, "UIMainPanel.citizenbuttonenabled.png");
            FavCimsCBDTexture = ResourceLoader.loadTexture (200, 59, "UIMainPanel.citizenbuttondisabled.png");

            FavCimsCBETexture.wrapMode = TextureWrapMode.Clamp;
            FavCimsCBETexture.filterMode = FilterMode.Bilinear;
            FavCimsCBETexture.name = "FavCimsCBETexture";
            FavCimsCBETexture.mipMapBias = -0.5f;
            FavCimsCBDTexture.wrapMode = TextureWrapMode.Clamp;
            FavCimsCBDTexture.filterMode = FilterMode.Bilinear;
            FavCimsCBDTexture.name = "FavCimsCBDTexture";
            FavCimsCBDTexture.mipMapBias = -0.5f;

            FavCimsCBMenuSprite = FavCimsMainBGSprite.AddUIComponent<UITextureSprite> ();
            FavCimsCBMenuSprite.name = "FavCimsBGMenuSprite";
            FavCimsCBMenuSprite.texture = FavCimsCBETexture;

            //Citizens Transparent Button (For Easy Text Change)
            FavCimsBCMenuButton = this.AddUIComponent<UIButton> ();
            FavCimsBCMenuButton.name = "FavCimsBCMenuButton";
            FavCimsBCMenuButton.width = FavCimsCBMenuSprite.width;
            FavCimsBCMenuButton.height = FavCimsCBMenuSprite.height;
            FavCimsBCMenuButton.useOutline = true;
            FavCimsBCMenuButton.playAudioEvents = true;
            FavCimsBCMenuButton.font = UIDynamicFont.FindByName ("OpenSans-Regular");
            FavCimsBCMenuButton.textScale = 1.8f;
            FavCimsBCMenuButton.textColor = new Color32 (204, 204, 51, 40); //r,g,b,a
            FavCimsBCMenuButton.hoveredTextColor = new Color32 (204, 102, 0, 20);
            FavCimsBCMenuButton.pressedTextColor = new Color32 (153, 0, 0, 0);
            FavCimsBCMenuButton.focusedTextColor = new Color32 (102, 153, 255, 147);
            FavCimsBCMenuButton.textPadding.left = 15;
            FavCimsBCMenuButton.useDropShadow = true;
            FavCimsBCMenuButton.tooltipBox = uiView.defaultTooltipBox;

            //Printing
            FavCimsCBMenuSprite.relativePosition = new Vector3 (27, 69);
            FavCimsBCMenuButton.relativePosition = new Vector3 (27, 69);

            ///////////////////////////////////////////////
            //Buildings Button Texture (Enabled & Disabled)
            //////////////////////////////////////////////
            /*
            FavCimsBBETexture = ResourceLoader.loadTexture (200, 59, "UIMainPanel.buildingsbuttonenabled.png");
            FavCimsBBDTexture = ResourceLoader.loadTexture (200, 59, "UIMainPanel.buildingsbuttondisabled.png");

            FavCimsBBETexture.wrapMode = TextureWrapMode.Clamp;
            FavCimsBBETexture.filterMode = FilterMode.Bilinear;
            FavCimsBBETexture.name = "FavCimsBBETexture";
            FavCimsBBETexture.mipMapBias = -0.5f;
            FavCimsBBDTexture.wrapMode = TextureWrapMode.Clamp;
            FavCimsBBDTexture.filterMode = FilterMode.Bilinear;
            FavCimsBBDTexture.name = "FavCimsBBETexture";
            FavCimsBBDTexture.mipMapBias = -0.5f;
            FavCimsBBMenuSprite = FavCimsMainBGSprite.AddUIComponent<UITextureSprite> ();
            FavCimsBBMenuSprite.name = "FavCimsBBMenuSprite";
            FavCimsBBMenuSprite.texture = FavCimsBBDTexture;

            //Buildings Transparent Button (For Easy Text Change)
            FavCimsBBMenuButton = this.AddUIComponent<UIButton> ();
            FavCimsBBMenuButton.name = "FavCimsBBMenuButton";
            FavCimsBBMenuButton.width = FavCimsBBETexture.width;
            FavCimsBBMenuButton.height = FavCimsBBETexture.height;
            FavCimsBBMenuButton.useOutline = true;
            FavCimsBBMenuButton.playAudioEvents = true;
            FavCimsBBMenuButton.font = UIDynamicFont.FindByName ("OpenSans-Regular");
            FavCimsBBMenuButton.textScale = 1.8f;
            FavCimsBBMenuButton.textColor = new Color32 (204, 204, 51, 40); //r,g,b,a
            FavCimsBBMenuButton.hoveredTextColor = new Color32 (204, 102, 0, 20);
            FavCimsBBMenuButton.pressedTextColor = new Color32 (153, 0, 0, 0);
            FavCimsBBMenuButton.focusedTextColor = new Color32 (102, 153, 255, 147);
            FavCimsBBMenuButton.textPadding.left = 20;
            FavCimsBBMenuButton.useDropShadow = true;
            FavCimsBBMenuButton.tooltipBox = uiView.defaultTooltipBox;

            //Printing
            //FavCimsBBMenuSprite.relativePosition = new Vector3 (FavCimsCBMenuSprite.position.x + FavCimsBBMenuSprite.width + 21, 69); //html => margin-left:21px;
            //FavCimsBBMenuButton.relativePosition = new Vector3 (FavCimsBCMenuButton.position.x + FavCimsBBMenuButton.width + 35, 69);

            ///////////////////////////////////////////////
            //Stats Button Texture (Enabled & Disabled)
            //////////////////////////////////////////////

            FavCimsSBETexture = ResourceLoader.loadTexture (200, 59, "UIMainPanel.statsbuttonenabled.png");
            FavCimsSBDTexture = ResourceLoader.loadTexture (200, 59, "UIMainPanel.statsbuttondisabled.png");

            FavCimsSBETexture.wrapMode = TextureWrapMode.Clamp;
            FavCimsSBETexture.filterMode = FilterMode.Bilinear;
            FavCimsSBETexture.name = "FavCimsSBETexture";
            FavCimsSBETexture.mipMapBias = -0.5f;
            FavCimsSBDTexture.wrapMode = TextureWrapMode.Clamp;
            FavCimsSBDTexture.filterMode = FilterMode.Bilinear;
            FavCimsSBDTexture.name = "FavCimsSBETexture";
            FavCimsSBDTexture.mipMapBias = -0.5f;
            FavCimsSBMenuSprite = FavCimsMainBGSprite.AddUIComponent<UITextureSprite> ();
            FavCimsSBMenuSprite.name = "FavCimsSBMenuSprite";
            FavCimsSBMenuSprite.texture = FavCimsSBDTexture;

            //Stats Transparent Button (For Easy Text Change)
            FavCimsBSMenuButton = this.AddUIComponent<UIButton> ();
            FavCimsBSMenuButton.name = "FavCimsBSMenuButton";
            FavCimsBSMenuButton.width = FavCimsSBETexture.width;
            FavCimsBSMenuButton.height = FavCimsSBETexture.height;
            FavCimsBSMenuButton.useOutline = true;
            FavCimsBSMenuButton.playAudioEvents = true;
            FavCimsBSMenuButton.font = UIDynamicFont.FindByName ("OpenSans-Regular");
            FavCimsBSMenuButton.textScale = 1.8f;
            FavCimsBSMenuButton.textColor = new Color32 (204, 204, 51, 40); //r,g,b,a
            FavCimsBSMenuButton.hoveredTextColor = new Color32 (204, 102, 0, 20);
            FavCimsBSMenuButton.pressedTextColor = new Color32 (153, 0, 0, 0);
            FavCimsBSMenuButton.focusedTextColor = new Color32 (102, 153, 255, 147);
            FavCimsBSMenuButton.textPadding.left = 0;
            FavCimsBSMenuButton.useDropShadow = true;
            FavCimsBSMenuButton.tooltipBox = uiView.defaultTooltipBox;

            //Printing
            //FavCimsSBMenuSprite.relativePosition = new Vector3 (FavCimsBBMenuSprite.position.x + FavCimsSBMenuSprite.width + 21, 69); //html => margin-left:21px;
            //FavCimsBSMenuButton.relativePosition = new Vector3 (FavCimsBBMenuButton.position.x + FavCimsBSMenuButton.width + 21, 69); //html => margin-left:21px;

            ///////////////////////////////////////////////
            //Click Operation for Main Buttons
            //////////////////////////////////////////////

            //FavCimsBCMenuButton.eventClick += (component, eventParam) => ButtonEnabler (FavCimsCBMenuSprite);
            //FavCimsBBMenuButton.eventClick += (component, eventParam) => ButtonEnabler (FavCimsBBMenuSprite);
            //FavCimsBSMenuButton.eventClick += (component, eventParam) => ButtonEnabler (FavCimsSBMenuSprite);
            */

            ///////////////////////////////////////////////
            //Citizens Panel
            //////////////////////////////////////////////

            CitizensPanel = this.AddUIComponent<UIPanel> ();
            CitizensPanel.name = "CitizensPanel";
            CitizensPanel.width = 1190;
            CitizensPanel.height = 558;
            CitizensPanel.relativePosition = new Vector3 (((this.width / 2) - (float)CitizensPanel.width / 2), 128);

            ///////////////////////////////////////////////
            //Citizens Panel Body Background
            //////////////////////////////////////////////

            FavCimsMainBodyTexture = ResourceLoader.loadTexture (1190, 558, "UIMainPanel.bodybg.png");

            FavCimsMainBodyTexture.wrapMode = TextureWrapMode.Clamp;
            FavCimsMainBodyTexture.filterMode = FilterMode.Bilinear;
            FavCimsMainBodyTexture.name = "FavCimsMainBodyTexture";

            FavCimsBodySprite = CitizensPanel.AddUIComponent<UITextureSprite> ();
            FavCimsBodySprite.name = "FavCimsCBGBodySprite";
            FavCimsBodySprite.texture = FavCimsMainBodyTexture;
            //Printing
            FavCimsBodySprite.relativePosition = Vector3.zero;

            ///////////////////////////////////////////////
            //Index Column Background
            //////////////////////////////////////////////

            Texture FavCimsIndexBgBar = ResourceLoader.loadTexture (1146, 26, "UIMainPanel.indexerbgbar.png");

            FavCimsIndexBgBar.wrapMode = TextureWrapMode.Clamp;
            FavCimsIndexBgBar.filterMode = FilterMode.Bilinear;
            FavCimsIndexBgBar.name = "FavCimsIndexBgBar";
            FavCimsIndexBgBar.mipMapBias = -0.5f;
            UITextureSprite FavCimsIndexBgBarSprite = CitizensPanel.AddUIComponent<UITextureSprite> ();
            FavCimsIndexBgBarSprite.name = "FavCimsIndexBgBarSprite";
            FavCimsIndexBgBarSprite.texture = FavCimsIndexBgBar;

            //Printing
            FavCimsIndexBgBarSprite.relativePosition = new Vector3 (21, 7);

            ////////////////////////////////////////////////
            //Index Columns (Button for future sort order...)
            ////////////////////////////////////////////////

            //Status
            FavCimsHappinesColText = CitizensPanel.AddUIComponent<UIButton> ();
            FavCimsHappinesColText.name = "FavCimsHappinesColText";
            FavCimsHappinesColText.width = 60;
            FavCimsHappinesColText.height = FavCimsIndexBgBar.height;
            FavCimsHappinesColText.textVerticalAlignment = UIVerticalAlignment.Middle;
            FavCimsHappinesColText.textHorizontalAlignment = UIHorizontalAlignment.Center;
            FavCimsHappinesColText.playAudioEvents = true;
            FavCimsHappinesColText.font = UIDynamicFont.FindByName ("OpenSans-Regular");
            FavCimsHappinesColText.textScale = 0.7f;
            FavCimsHappinesColText.textColor = new Color32 (204, 204, 51, 40); //r,g,b,a
            FavCimsHappinesColText.hoveredTextColor = new Color32 (204, 102, 0, 20);
            FavCimsHappinesColText.pressedTextColor = new Color32 (153, 0, 0, 0);
            FavCimsHappinesColText.focusedTextColor = new Color32 (102, 153, 255, 147);
            FavCimsHappinesColText.textPadding.left = 0;
            FavCimsHappinesColText.tooltipBox = uiView.defaultTooltipBox;

            //Printing Status
            FavCimsHappinesColText.relativePosition = new Vector3 (FavCimsIndexBgBarSprite.relativePosition.x + 6, FavCimsIndexBgBarSprite.relativePosition.y + 1);

            //Name
            FavCimsNameColText = CitizensPanel.AddUIComponent<UIButton> ();
            FavCimsNameColText.name = "FavCimsNameColText";
            FavCimsNameColText.width = 180;
            FavCimsNameColText.height = FavCimsIndexBgBar.height;
            FavCimsNameColText.textVerticalAlignment = UIVerticalAlignment.Middle;
            FavCimsNameColText.textHorizontalAlignment = UIHorizontalAlignment.Center;
            FavCimsNameColText.playAudioEvents = true;
            FavCimsNameColText.font = UIDynamicFont.FindByName ("OpenSans-Regular");
            FavCimsNameColText.textScale = 0.7f;
            FavCimsNameColText.textColor = new Color32 (204, 204, 51, 40); //r,g,b,a
            FavCimsNameColText.hoveredTextColor = new Color32 (204, 102, 0, 20);
            FavCimsNameColText.pressedTextColor = new Color32 (153, 0, 0, 0);
            FavCimsNameColText.focusedTextColor = new Color32 (102, 153, 255, 147);
            FavCimsNameColText.textPadding.left = 0;
            FavCimsNameColText.tooltipBox = uiView.defaultTooltipBox;

            //Printing Name
            FavCimsNameColText.relativePosition = new Vector3 (FavCimsHappinesColText.relativePosition.x + FavCimsHappinesColText.width, FavCimsIndexBgBarSprite.relativePosition.y + 1);

            //Age Phase
            FavCimsAgePhaseColText = CitizensPanel.AddUIComponent<UIButton> ();
            FavCimsAgePhaseColText.name = "FavCimsAgePhaseColText";
            FavCimsAgePhaseColText.width = 120;
            FavCimsAgePhaseColText.height = FavCimsIndexBgBar.height;
            FavCimsAgePhaseColText.textVerticalAlignment = UIVerticalAlignment.Middle;
            FavCimsAgePhaseColText.textHorizontalAlignment = UIHorizontalAlignment.Center;
            FavCimsAgePhaseColText.playAudioEvents = true;
            FavCimsAgePhaseColText.font = UIDynamicFont.FindByName ("OpenSans-Regular");
            FavCimsAgePhaseColText.textScale = 0.7f;
            FavCimsAgePhaseColText.textColor = new Color32 (204, 204, 51, 40); //r,g,b,a
            FavCimsAgePhaseColText.hoveredTextColor = new Color32 (204, 102, 0, 20);
            FavCimsAgePhaseColText.pressedTextColor = new Color32 (153, 0, 0, 0);
            FavCimsAgePhaseColText.focusedTextColor = new Color32 (102, 153, 255, 147);
            FavCimsAgePhaseColText.textPadding.left = 0;
            FavCimsAgePhaseColText.tooltipBox = uiView.defaultTooltipBox;

            //Printing Age Phase
            FavCimsAgePhaseColText.relativePosition = new Vector3 (FavCimsNameColText.relativePosition.x + FavCimsNameColText.width, FavCimsIndexBgBarSprite.relativePosition.y + 1);

            //Age
            FavCimsAgeColText = CitizensPanel.AddUIComponent<UIButton> ();
            FavCimsAgeColText.name = "FavCimsAgeColText";
            FavCimsAgeColText.width = 40;
            FavCimsAgeColText.height = FavCimsIndexBgBar.height;
            FavCimsAgeColText.textVerticalAlignment = UIVerticalAlignment.Middle;
            FavCimsAgeColText.textHorizontalAlignment = UIHorizontalAlignment.Center;
            FavCimsAgeColText.playAudioEvents = true;
            FavCimsAgeColText.font = UIDynamicFont.FindByName ("OpenSans-Regular");
            FavCimsAgeColText.textScale = 0.7f;
            FavCimsAgeColText.textColor = new Color32 (204, 204, 51, 40); //r,g,b,a
            FavCimsAgeColText.hoveredTextColor = new Color32 (204, 102, 0, 20);
            FavCimsAgeColText.pressedTextColor = new Color32 (153, 0, 0, 0);
            FavCimsAgeColText.focusedTextColor = new Color32 (102, 153, 255, 147);
            FavCimsAgeColText.textPadding.left = 0;
            FavCimsAgeColText.tooltipBox = uiView.defaultTooltipBox;

            //Printing Age
            FavCimsAgeColText.relativePosition = new Vector3 (FavCimsAgePhaseColText.relativePosition.x + FavCimsAgePhaseColText.width, FavCimsIndexBgBarSprite.relativePosition.y + 1);

            //Education
            FavCimsEduColText = CitizensPanel.AddUIComponent<UIButton> ();
            FavCimsEduColText.name = "FavCimsEduColText";
            FavCimsEduColText.width = 140;
            FavCimsEduColText.height = FavCimsIndexBgBar.height;
            FavCimsEduColText.textVerticalAlignment = UIVerticalAlignment.Middle;
            FavCimsEduColText.textHorizontalAlignment = UIHorizontalAlignment.Center;
            FavCimsEduColText.playAudioEvents = true;
            FavCimsEduColText.font = UIDynamicFont.FindByName ("OpenSans-Regular");
            FavCimsEduColText.textScale = 0.7f;
            FavCimsEduColText.textColor = new Color32 (204, 204, 51, 40); //r,g,b,a
            FavCimsEduColText.hoveredTextColor = new Color32 (204, 102, 0, 20);
            FavCimsEduColText.pressedTextColor = new Color32 (153, 0, 0, 0);
            FavCimsEduColText.focusedTextColor = new Color32 (102, 153, 255, 147);
            FavCimsEduColText.textPadding.left = 0;
            FavCimsEduColText.tooltipBox = uiView.defaultTooltipBox;

            //Printing Education
            FavCimsEduColText.relativePosition = new Vector3 (FavCimsAgeColText.relativePosition.x + FavCimsAgeColText.width, FavCimsIndexBgBarSprite.relativePosition.y + 1);

            //Home
            FavCimsHomeColText = CitizensPanel.AddUIComponent<UIButton> ();
            FavCimsHomeColText.name = "FavCimsHomeColText";
            FavCimsHomeColText.width = 184;
            FavCimsHomeColText.height = FavCimsIndexBgBar.height;
            FavCimsHomeColText.textVerticalAlignment = UIVerticalAlignment.Middle;
            FavCimsHomeColText.textHorizontalAlignment = UIHorizontalAlignment.Center;
            FavCimsHomeColText.playAudioEvents = true;
            FavCimsHomeColText.font = UIDynamicFont.FindByName ("OpenSans-Regular");
            FavCimsHomeColText.textScale = 0.7f;
            FavCimsHomeColText.textColor = new Color32 (204, 204, 51, 40); //r,g,b,a
            FavCimsHomeColText.hoveredTextColor = new Color32 (204, 102, 0, 20);
            FavCimsHomeColText.pressedTextColor = new Color32 (153, 0, 0, 0);
            FavCimsHomeColText.focusedTextColor = new Color32 (102, 153, 255, 147);
            FavCimsHomeColText.textPadding.left = 0;
            FavCimsHomeColText.tooltipBox = uiView.defaultTooltipBox;

            //Printing Home
            FavCimsHomeColText.relativePosition = new Vector3 (FavCimsEduColText.relativePosition.x + FavCimsEduColText.width, FavCimsIndexBgBarSprite.relativePosition.y + 1);

            //Working Place
            FavCimsWorkingPlaceColText = CitizensPanel.AddUIComponent<UIButton> ();
            FavCimsWorkingPlaceColText.name = "FavCimsWorkingPlaceColText";
            FavCimsWorkingPlaceColText.width = 180;
            FavCimsWorkingPlaceColText.height = FavCimsIndexBgBar.height;
            FavCimsWorkingPlaceColText.textVerticalAlignment = UIVerticalAlignment.Middle;
            FavCimsWorkingPlaceColText.textHorizontalAlignment = UIHorizontalAlignment.Center;
            FavCimsWorkingPlaceColText.playAudioEvents = true;
            FavCimsWorkingPlaceColText.font = UIDynamicFont.FindByName ("OpenSans-Regular");
            FavCimsWorkingPlaceColText.textScale = 0.7f;
            FavCimsWorkingPlaceColText.textColor = new Color32 (204, 204, 51, 40); //r,g,b,a
            FavCimsWorkingPlaceColText.hoveredTextColor = new Color32 (204, 102, 0, 20);
            FavCimsWorkingPlaceColText.pressedTextColor = new Color32 (153, 0, 0, 0);
            FavCimsWorkingPlaceColText.focusedTextColor = new Color32 (102, 153, 255, 147);
            FavCimsWorkingPlaceColText.textPadding.left = 0;
            FavCimsWorkingPlaceColText.tooltipBox = uiView.defaultTooltipBox;

            //Printing Working Place
            FavCimsWorkingPlaceColText.relativePosition = new Vector3 (FavCimsHomeColText.relativePosition.x + FavCimsHomeColText.width, FavCimsIndexBgBarSprite.relativePosition.y + 1);

            //Last Activity
            FavCimsLastActColText = CitizensPanel.AddUIComponent<UIButton> ();
            FavCimsLastActColText.name = "FavCimsLastActColText";
            FavCimsLastActColText.width = 180;
            FavCimsLastActColText.height = FavCimsIndexBgBar.height;
            FavCimsLastActColText.textVerticalAlignment = UIVerticalAlignment.Middle;
            FavCimsLastActColText.textHorizontalAlignment = UIHorizontalAlignment.Center;
            FavCimsLastActColText.playAudioEvents = true;
            FavCimsLastActColText.font = UIDynamicFont.FindByName ("OpenSans-Regular");
            FavCimsLastActColText.textScale = 0.7f;
            FavCimsLastActColText.textColor = new Color32 (204, 204, 51, 40); //r,g,b,a
            FavCimsLastActColText.hoveredTextColor = new Color32 (204, 102, 0, 20);
            FavCimsLastActColText.pressedTextColor = new Color32 (153, 0, 0, 0);
            FavCimsLastActColText.focusedTextColor = new Color32 (102, 153, 255, 147);
            FavCimsLastActColText.textPadding.left = 0;
            FavCimsLastActColText.tooltipBox = uiView.defaultTooltipBox;

            //Printing Last Activity
            FavCimsLastActColText.relativePosition = new Vector3 (FavCimsWorkingPlaceColText.relativePosition.x + FavCimsWorkingPlaceColText.width, FavCimsIndexBgBarSprite.relativePosition.y + 1);

            //Close Button
            FavCimsCloseButtonCol = CitizensPanel.AddUIComponent<UIButton> ();
            FavCimsCloseButtonCol.name = "FavCimsCloseButtonCol";
            FavCimsCloseButtonCol.width = 50;
            FavCimsCloseButtonCol.height = FavCimsIndexBgBar.height;
            FavCimsCloseButtonCol.textVerticalAlignment = UIVerticalAlignment.Middle;
            FavCimsCloseButtonCol.textHorizontalAlignment = UIHorizontalAlignment.Center;
            FavCimsCloseButtonCol.playAudioEvents = true;
            FavCimsCloseButtonCol.font = UIDynamicFont.FindByName ("OpenSans-Regular");
            FavCimsCloseButtonCol.textScale = 0.7f;
            FavCimsCloseButtonCol.textColor = new Color32 (204, 204, 51, 40); //r,g,b,a
            FavCimsCloseButtonCol.hoveredTextColor = new Color32 (204, 102, 0, 20);
            FavCimsCloseButtonCol.pressedTextColor = new Color32 (153, 0, 0, 0);
            FavCimsCloseButtonCol.focusedTextColor = new Color32 (102, 153, 255, 147);
            FavCimsCloseButtonCol.textPadding.right = 6;
            FavCimsCloseButtonCol.tooltipBox = uiView.defaultTooltipBox;

            //Printing Close Button
            FavCimsCloseButtonCol.relativePosition = new Vector3 (FavCimsLastActColText.relativePosition.x + FavCimsLastActColText.width, FavCimsIndexBgBarSprite.relativePosition.y + 1);

            ///////////////////////////////////////////////
            /////Rows Panel Body
            ///////////////////////////////////////////////

            FavCimsCitizenRowsPanel = CitizensPanel.AddUIComponent<UIScrollablePanel> ();
            FavCimsCitizenRowsPanel.name = "FavCimsCitizenRowsPanel";
            FavCimsCitizenRowsPanel.width = FavCimsIndexBgBarSprite.width - 12;
            FavCimsCitizenRowsPanel.height = 500;

            FavCimsCitizenRowsPanel.autoLayoutDirection = LayoutDirection.Vertical;
            FavCimsCitizenRowsPanel.autoLayout = true;
            FavCimsCitizenRowsPanel.clipChildren = true;
            FavCimsCitizenRowsPanel.autoLayoutPadding = new RectOffset (0, 0, 0, 0);
            FavCimsCitizenRowsPanel.relativePosition = new Vector3 (FavCimsIndexBgBarSprite.relativePosition.x + 6, FavCimsIndexBgBarSprite.relativePosition.y + FavCimsIndexBgBarSprite.height);

            //Damn ScrollBar
            UIScrollablePanel FavCimsCitizenRowsPanelScrollBar = CitizensPanel.AddUIComponent<UIScrollablePanel> ();
            FavCimsCitizenRowsPanelScrollBar.name = "FavCimsCitizenRowsPanelScrollBar";
            FavCimsCitizenRowsPanelScrollBar.width = 10;
            FavCimsCitizenRowsPanelScrollBar.height = 500;
            FavCimsCitizenRowsPanelScrollBar.relativePosition = new Vector3 (FavCimsIndexBgBarSprite.relativePosition.x + FavCimsIndexBgBarSprite.width, FavCimsCitizenRowsPanel.relativePosition.y);

            UIScrollbar FavCimsMainPanelScrollBar = FavCimsCitizenRowsPanelScrollBar.AddUIComponent<UIScrollbar> ();
            FavCimsMainPanelScrollBar.width = 10;
            FavCimsMainPanelScrollBar.height = FavCimsCitizenRowsPanel.height;
            FavCimsMainPanelScrollBar.orientation = UIOrientation.Vertical;
            FavCimsMainPanelScrollBar.pivot = UIPivotPoint.TopRight;
            FavCimsMainPanelScrollBar.AlignTo (FavCimsMainPanelScrollBar.parent, UIAlignAnchor.TopRight);
            FavCimsMainPanelScrollBar.minValue = 0;
            FavCimsMainPanelScrollBar.value = 0;
            FavCimsMainPanelScrollBar.incrementAmount = 40;

            UISlicedSprite FavCimsMainPanelTrackSprite = FavCimsMainPanelScrollBar.AddUIComponent<UISlicedSprite> ();
            FavCimsMainPanelTrackSprite.relativePosition = FavCimsMainPanelScrollBar.relativePosition;
            FavCimsMainPanelTrackSprite.autoSize = true;
            FavCimsMainPanelTrackSprite.size = FavCimsMainPanelTrackSprite.parent.size;
            FavCimsMainPanelTrackSprite.fillDirection = UIFillDirection.Vertical;
            FavCimsMainPanelTrackSprite.spriteName = "ScrollbarTrack";

            FavCimsMainPanelScrollBar.trackObject = FavCimsMainPanelTrackSprite;

            UISlicedSprite thumbSprite = FavCimsMainPanelScrollBar.AddUIComponent<UISlicedSprite> ();
            thumbSprite.relativePosition = FavCimsMainPanelScrollBar.relativePosition;
            thumbSprite.autoSize = true;
            thumbSprite.width = thumbSprite.parent.width;
            thumbSprite.fillDirection = UIFillDirection.Vertical;
            thumbSprite.spriteName = "ScrollbarThumb";
            FavCimsMainPanelScrollBar.thumbObject = thumbSprite;
            FavCimsCitizenRowsPanel.verticalScrollbar = FavCimsMainPanelScrollBar;

            /* Thx to CNightwing for this piece of code */
            FavCimsCitizenRowsPanel.eventMouseWheel += (component, eventParam) => {
                var sign = Math.Sign (eventParam.wheelDelta);
                FavCimsCitizenRowsPanel.scrollPosition += new Vector2 (0, sign * (-1) * FavCimsMainPanelScrollBar.incrementAmount);
            };
            /* End */

            FavCimsCitizenRowsPanel.eventComponentAdded += (component, eventParam) => ReorderRowsBackgrounds ();
            FavCimsCitizenRowsPanel.eventComponentRemoved += (component, eventParam) => ReorderRowsBackgrounds ();

            ///////////////////////////////////////////////
            /////Rows Panel Footer
            ///////////////////////////////////////////////

            UITextureSprite FavCimsFooterBgBarSprite = CitizensPanel.AddUIComponent<UITextureSprite> ();
            FavCimsFooterBgBarSprite.name = "FavCimsFooterBgBarSprite";
            FavCimsFooterBgBarSprite.width = FavCimsIndexBgBarSprite.width;
            FavCimsFooterBgBarSprite.height = 15;
            FavCimsFooterBgBarSprite.texture = FavCimsIndexBgBar;

            //Printing
            FavCimsFooterBgBarSprite.relativePosition = new Vector3 (21, FavCimsCitizenRowsPanel.relativePosition.y + FavCimsCitizenRowsPanel.height);
            //Row End

            //Load Initial Row (People Renamed)
            foreach(KeyValuePair<InstanceID, string> FavCitizen in FavCimsCore.FavoriteCimsList())
            {
                if(FavCitizen.Key.Type == InstanceType.Citizen) { // || FavCitizen.Key.Type == InstanceType.CitizenInstance
                    CitizenRow FavCimsCitizenSingleRowPanel = FavCimsCitizenRowsPanel.AddUIComponent(typeof(CitizenRow)) as CitizenRow;
                    FavCimsCitizenSingleRowPanel.MyInstanceID = FavCitizen.Key;
                    FavCimsCitizenSingleRowPanel.MyInstancedName = FavCitizen.Value;
                }
            }
        }
        public void OnSettingsUI(UIHelperBase helper)
        {
            LoadSettings();
            UIDropDown uIDropDown = (UIDropDown)helper.AddDropdown("Select Preset", EmergencyLightPresets, SelectedPreset, delegate(int sel)
            {
                if (sel == 1)
                {
                    CustomSettingsVisibility = true;
                }
                else
                {
                    CustomSettingsVisibility = false;
                }
                SelectedPreset = sel;
                if (loaded)
                {
                    Apply();
                }
            });
            UIScrollablePanel uIScrollablePanel = ((UIHelper)helper).self as UIScrollablePanel;

            uIScrollablePanel.autoLayout = false;
            int num  = 100;
            int num2 = 10;
            int num3 = 40;

            strip = uIScrollablePanel.AddUIComponent <UITabstrip>();
            strip.relativePosition = new Vector3(num2, num);
            strip.size             = new Vector2(744 - num2, num3);
            container = uIScrollablePanel.AddUIComponent <UITabContainer>();
            container.relativePosition = new Vector3(num2, num3 + num);
            container.size             = new Vector3(744 - num2, 713 - num);
            strip.tabPages             = container;
            UIButton uIButton  = (UIButton)UITemplateManager.Peek("OptionsButtonTemplate");
            UIButton uIButton2 = strip.AddTab("Police Car", uIButton, fillText: true);

            uIButton2.textColor         = uIButton.textColor;
            uIButton2.pressedTextColor  = uIButton.pressedTextColor;
            uIButton2.hoveredTextColor  = uIButton.hoveredTextColor;
            uIButton2.focusedTextColor  = uIButton.hoveredTextColor;
            uIButton2.disabledTextColor = uIButton.hoveredTextColor;
            UIPanel uIPanel = strip.tabContainer.components[0] as UIPanel;

            uIPanel.autoLayout          = true;
            uIPanel.wrapLayout          = true;
            uIPanel.autoLayoutDirection = LayoutDirection.Horizontal;
            UIHelper uIHelper = new UIHelper(uIPanel);

            uIHelper.AddSpace(15);
            uIHelper.AddDropdown("Left", ColorNames, Array.IndexOf(ColorNames, settings[Setting.PoliceLeft]), delegate(int sel)
            {
                settings[Setting.PoliceLeft] = ColorNames[sel];
                ExportSettings();
                if (loaded)
                {
                    Apply();
                }
            });
            uIHelper.AddDropdown("Right", ColorNames, Array.IndexOf(ColorNames, settings[Setting.PoliceRight]), delegate(int sel)
            {
                settings[Setting.PoliceRight] = ColorNames[sel];
                ExportSettings();
                if (loaded)
                {
                    Apply();
                }
            });
            uIButton2                   = strip.AddTab("Fire Truck");
            uIButton2.textColor         = uIButton.textColor;
            uIButton2.pressedTextColor  = uIButton.pressedTextColor;
            uIButton2.hoveredTextColor  = uIButton.hoveredTextColor;
            uIButton2.focusedTextColor  = uIButton.hoveredTextColor;
            uIButton2.disabledTextColor = uIButton.hoveredTextColor;
            uIPanel                     = (strip.tabContainer.components[1] as UIPanel);
            uIPanel.autoLayout          = true;
            uIPanel.wrapLayout          = true;
            uIPanel.autoLayoutDirection = LayoutDirection.Horizontal;
            uIHelper                    = new UIHelper(uIPanel);
            uIHelper.AddSpace(15);
            uIHelper.AddDropdown("Left", ColorNames, Array.IndexOf(ColorNames, settings[Setting.FireLeft]), delegate(int sel)
            {
                settings[Setting.FireLeft] = ColorNames[sel];
                ExportSettings();
                if (loaded)
                {
                    Apply();
                }
            });
            uIHelper.AddDropdown("Right", ColorNames, Array.IndexOf(ColorNames, settings[Setting.FireRight]), delegate(int sel)
            {
                settings[Setting.FireRight] = ColorNames[sel];
                ExportSettings();
                if (loaded)
                {
                    Apply();
                }
            });
            uIHelper.AddSpace(15);
            chkManualRearFire = (uIHelper.AddCheckbox("Configure Rear Lights Separately", Convert.ToBoolean(settings[Setting.ManualRearFire]), delegate(bool chkd)
            {
                settings[Setting.ManualRearFire] = chkd.ToString();
                ExportSettings();
                RearFireVisibility(chkd);
                if (loaded)
                {
                    Apply();
                }
            }) as UICheckBox);
            chkManualRearFire.width = 744f;
            uIHelper.AddSpace(15);
            ddFireLeftRear = (UIDropDown)uIHelper.AddDropdown("Left", ColorNames, Array.IndexOf(ColorNames, settings[Setting.FireLeftRear]), delegate(int sel)
            {
                settings[Setting.FireLeftRear] = ColorNames[sel];
                ExportSettings();
                if (loaded)
                {
                    Apply();
                }
            });
            ddFireRightRear = (UIDropDown)uIHelper.AddDropdown("Right", ColorNames, Array.IndexOf(ColorNames, settings[Setting.FireRightRear]), delegate(int sel)
            {
                settings[Setting.FireRightRear] = ColorNames[sel];
                ExportSettings();
                if (loaded)
                {
                    Apply();
                }
            });
            RearFireVisibility(Convert.ToBoolean(settings[Setting.ManualRearFire]));
            uIButton2                   = strip.AddTab("Ambulance");
            uIButton2.textColor         = uIButton.textColor;
            uIButton2.pressedTextColor  = uIButton.pressedTextColor;
            uIButton2.hoveredTextColor  = uIButton.hoveredTextColor;
            uIButton2.focusedTextColor  = uIButton.hoveredTextColor;
            uIButton2.disabledTextColor = uIButton.hoveredTextColor;
            uIPanel                     = (strip.tabContainer.components[2] as UIPanel);
            uIPanel.autoLayout          = true;
            uIPanel.wrapLayout          = true;
            uIPanel.autoLayoutDirection = LayoutDirection.Horizontal;
            uIHelper                    = new UIHelper(uIPanel);
            uIHelper.AddSpace(15);
            uIHelper.AddDropdown("Left", ColorNames, Array.IndexOf(ColorNames, settings[Setting.AmbulanceLeft]), delegate(int sel)
            {
                settings[Setting.AmbulanceLeft] = ColorNames[sel];
                ExportSettings();
                if (loaded)
                {
                    Apply();
                }
            });
            uIHelper.AddDropdown("Right", ColorNames, Array.IndexOf(ColorNames, settings[Setting.AmbulanceRight]), delegate(int sel)
            {
                settings[Setting.AmbulanceRight] = ColorNames[sel];
                ExportSettings();
                if (loaded)
                {
                    Apply();
                }
            });
            uIHelper.AddSpace(15);
            chkManualRearAmbulance = (uIHelper.AddCheckbox("Configure Rear Lights Separately", Convert.ToBoolean(settings[Setting.ManualRearAmbulance]), delegate(bool chkd)
            {
                settings[Setting.ManualRearAmbulance] = chkd.ToString();
                ExportSettings();
                RearAmbulanceVisibility(chkd);
                if (loaded)
                {
                    Apply();
                }
            }) as UICheckBox);
            chkManualRearAmbulance.width = 744f;
            uIHelper.AddSpace(15);
            ddAmbulanceLeftRear = (UIDropDown)uIHelper.AddDropdown("Left", ColorNames, Array.IndexOf(ColorNames, settings[Setting.AmbulanceLeftRear]), delegate(int sel)
            {
                settings[Setting.AmbulanceLeftRear] = ColorNames[sel];
                ExportSettings();
                if (loaded)
                {
                    Apply();
                }
            });
            ddAmbulanceRightRear = (UIDropDown)uIHelper.AddDropdown("Right", ColorNames, Array.IndexOf(ColorNames, settings[Setting.AmbulanceRightRear]), delegate(int sel)
            {
                settings[Setting.AmbulanceRightRear] = ColorNames[sel];
                ExportSettings();
                if (loaded)
                {
                    Apply();
                }
            });
            RearAmbulanceVisibility(Convert.ToBoolean(settings[Setting.ManualRearAmbulance]));

            uIButton2                   = strip.AddTab("Rotary (e.g. Snow Plow)", uIButton, fillText: true);
            uIButton2.textColor         = uIButton.textColor;
            uIButton2.pressedTextColor  = uIButton.pressedTextColor;
            uIButton2.hoveredTextColor  = uIButton.hoveredTextColor;
            uIButton2.focusedTextColor  = uIButton.hoveredTextColor;
            uIButton2.disabledTextColor = uIButton.hoveredTextColor;
            uIPanel                     = strip.tabContainer.components[3] as UIPanel;
            uIPanel.autoLayout          = true;
            uIPanel.wrapLayout          = true;
            uIPanel.autoLayoutDirection = LayoutDirection.Horizontal;
            uIHelper                    = new UIHelper(uIPanel);
            uIHelper.AddSpace(15);
            uIHelper.AddDropdown("Left", ColorNames, Array.IndexOf(ColorNames, settings[Setting.SnowPlowLeft]), delegate(int sel)
            {
                settings[Setting.SnowPlowLeft] = ColorNames[sel];
                ExportSettings();
                if (loaded)
                {
                    Apply();
                }
            });
            uIHelper.AddDropdown("Right", ColorNames, Array.IndexOf(ColorNames, settings[Setting.SnowPlowRight]), delegate(int sel)
            {
                settings[Setting.SnowPlowRight] = ColorNames[sel];
                ExportSettings();
                if (loaded)
                {
                    Apply();
                }
            });

            strip.selectedIndex = -1;
            strip.selectedIndex = 0;
            int selectedIndex = uIDropDown.selectedIndex;

            uIDropDown.selectedIndex = -1;
            uIDropDown.selectedIndex = selectedIndex;
        }
        public void InitSavesListUI(UIScrollablePanel panel)
        {
            if (panel == null)
            {
                return;
            }

            // clear panel
            List <UIComponent> workingChildren = new List <UIComponent>(panel.components);

            foreach (UIComponent child in workingChildren)
            {
                if (child.name == "BetterLoadRowPanel" && child is UIPanel)
                {
                    panel.RemoveUIComponent(child);

                    UnityEngine.Object.Destroy(child);
                }
            }
            //panel.Reset();

            if (GamesList == null || GamesList.Count <= 0)
            {
                return;
            }

            float thirds = panel.width / 3f;

            //
            foreach (SaveGameRowStruct row in GamesList)
            {
                UIPanel rowPanel = panel.AddUIComponent <UIPanel>();

                row.RowPanel            = rowPanel;
                rowPanel.objectUserData = row;

                rowPanel.name     = "BetterLoadRowPanel";
                rowPanel.autoSize = false;

                rowPanel.eventMouseEnter += (component, param) => // was eventMouseHover
                {
                    if ((component as UIPanel).backgroundSprite != "ListItemHighlight")
                    {
                        (component as UIPanel).backgroundSprite = "ListItemHover";
                    }
                };

                rowPanel.eventMouseLeave += (component, param) =>
                {
                    if ((component as UIPanel).backgroundSprite != "ListItemHighlight")
                    {
                        (component as UIPanel).backgroundSprite = "";
                    }
                };

                rowPanel.eventMouseDown += (component, param) =>
                {
                    this.SelectRowObject(component);
                };

                rowPanel.eventDoubleClick += (component, param) =>
                {
                    this.LaunchRowObject(component);
                };

                row.SaveLabel                  = rowPanel.AddUIComponent <UILabel>();
                row.SaveLabel.text             = row.SaveName;
                row.SaveLabel.autoSize         = false;
                row.SaveLabel.relativePosition = Vector3.zero;
                row.SaveLabel.width            = thirds;
                row.SaveLabel.padding          = new RectOffset(3, 3, 0, 0);

                if (row.IsSteam)
                {
                    row.SaveLabel.processMarkup = true;
                    row.SaveLabel.text          = "<sprite SteamCloud> " + row.SaveLabel.text;
                }

                row.CityLabel                  = rowPanel.AddUIComponent <UILabel>();
                row.CityLabel.text             = row.CityName;
                row.CityLabel.autoSize         = false;
                row.CityLabel.relativePosition = new Vector3(thirds, 0, 0);
                row.CityLabel.width            = thirds;
                row.CityLabel.padding          = new RectOffset(3, 3, 0, 0);

                row.TimestampLabel                  = rowPanel.AddUIComponent <UILabel>();
                row.TimestampLabel.text             = row.SaveTimestamp.ToString();
                row.TimestampLabel.autoSize         = false;
                row.TimestampLabel.relativePosition = new Vector3(thirds + thirds, 0, 0);
                row.TimestampLabel.width            = thirds;
                row.TimestampLabel.padding          = new RectOffset(3, 3, 0, 0);

                rowPanel.width  = panel.width;
                rowPanel.height = row.SaveLabel.height;//?
            }
        }
Example #30
0
        private void Setup()
        {
            width                = parent.width;
            height               = 122f;
            autoLayout           = true;
            autoLayoutDirection  = LayoutDirection.Horizontal;
            padding              = new RectOffset(10, 0, 0, 0);
            autoLayoutPadding    = new RectOffset(0, 0, 0, 0);
            isInteractive        = true;
            builtinKeyNavigation = true;
            relativePosition     = new Vector2(410.0f, 0.0f);

            ScrollablePanel                      = AddUIComponent <UIScrollablePanel>();
            ScrollablePanel.zOrder               = 0;
            ScrollablePanel.width                = 366f;
            ScrollablePanel.height               = height;
            ScrollablePanel.autoLayout           = true;
            ScrollablePanel.wrapLayout           = true;
            ScrollablePanel.clipChildren         = true;
            ScrollablePanel.backgroundSprite     = "TextFieldPanel";
            ScrollablePanel.autoLayoutDirection  = LayoutDirection.Horizontal;
            ScrollablePanel.autoLayoutPadding    = new RectOffset(2, 2, 2, 2);
            ScrollablePanel.color                = new Color32(255, 255, 255, 255);
            ScrollablePanel.isInteractive        = true;
            ScrollablePanel.builtinKeyNavigation = true;
            ScrollablePanel.scrollWheelDirection = UIOrientation.Vertical;
            ScrollablePanel.scrollWithArrowKeys  = true;
            Dictionary <string, Texture2D> brushes = ForestBrush.Instance.GetBrushBitmaps();

            foreach (KeyValuePair <string, Texture2D> brush in brushes)
            {
                UIButton button = ScrollablePanel.AddUIComponent <UIButton>();
                button.atlas          = ResourceLoader.Atlas;
                button.normalBgSprite = ResourceLoader.GenericPanel;
                if (UserMod.Settings.SelectedBrush != null &&
                    UserMod.Settings.SelectedBrush.Options != null &&
                    UserMod.Settings.SelectedBrush.Options.BitmapID == brush.Key)
                {
                    button.normalBgSprite = string.Empty;
                }
                button.color        = new Color32(170, 170, 170, 255);
                button.hoveredColor = new Color32(210, 210, 210, 255);
                button.focusedColor = Color.white;
                button.pressedColor = Color.white;
                button.size         = new Vector2(57.0f, 57.0f);
                UITextureSprite sprite = button.AddUIComponent <UITextureSprite>();
                sprite.size             = button.size - new Vector2(4.0f, 4.0f);
                sprite.relativePosition = new Vector2(2.0f, 2.0f);
                sprite.texture          = brush.Value;
                button.objectUserData   = brush.Key;
                button.eventClicked    += Button_eventClicked;
                BrushButtons.Add(brush.Key, button);
            }

            UIScrollbar scrollbar = AddUIComponent <UIScrollbar>();

            scrollbar.zOrder          = 1;
            scrollbar.width           = 13f;
            scrollbar.height          = ScrollablePanel.height;
            scrollbar.orientation     = UIOrientation.Vertical;
            scrollbar.minValue        = 0;
            scrollbar.value           = 0;
            scrollbar.incrementAmount = 61;

            UISlicedSprite tracSprite = scrollbar.AddUIComponent <UISlicedSprite>();

            tracSprite.atlas            = ResourceLoader.Atlas;
            tracSprite.relativePosition = new Vector3(0, 0);
            tracSprite.autoSize         = true;
            tracSprite.size             = tracSprite.parent.size;
            tracSprite.fillDirection    = UIFillDirection.Vertical;
            tracSprite.spriteName       = ResourceLoader.LevelBarBackground;

            scrollbar.trackObject = tracSprite;

            UISlicedSprite thumbSprite = tracSprite.AddUIComponent <UISlicedSprite>();

            thumbSprite.atlas            = ResourceLoader.Atlas;
            thumbSprite.relativePosition = Vector2.zero;
            thumbSprite.fillDirection    = UIFillDirection.Vertical;
            thumbSprite.autoSize         = true;
            thumbSprite.width            = 13f;
            thumbSprite.spriteName       = ResourceLoader.LevelBarForeground;

            scrollbar.thumbObject = thumbSprite;

            ScrollablePanel.verticalScrollbar = scrollbar;

            owner = (ForestBrushPanel)parent;
        }
Example #31
0
        public UIMultiStateButton AddAToggleButton(ToggleModRegistrationInfo mri)
        {
            if (mri == null || mri.SpriteInfo == null || mri.SpriteInfo_state2 == null)
            {
                Log.Error("AddaToggleButton() - invalid parameters.");
                return(null);
            }

            UIMultiStateButton retval = ScrollPanel.AddUIComponent <UIMultiStateButton>();

            string uniquename = string.Format("{0}_{1}", mri.ModName, mri.ButtonText);

            retval.name       = uniquename;
            retval.cachedName = uniquename;

            if (mri.SpriteInfo.NormalFgTexture != null) // this triggers use of all textures
            {
                string[] spritenames =
                {
                    mri.SpriteInfo.NormalFgSpritename,        mri.SpriteInfo.NormalBgSpritename,        mri.SpriteInfo.HoveredFgSpritename,        mri.SpriteInfo.HoveredBgSpritename,        mri.SpriteInfo.PressedFgSpritename,        mri.SpriteInfo.PressedBgSpritename,
                    mri.SpriteInfo_state2.NormalFgSpritename, mri.SpriteInfo_state2.NormalBgSpritename, mri.SpriteInfo_state2.HoveredFgSpritename, mri.SpriteInfo_state2.HoveredBgSpritename, mri.SpriteInfo_state2.PressedFgSpritename, mri.SpriteInfo_state2.PressedBgSpritename
                };
                Texture2D[] textures =
                {
                    mri.SpriteInfo.NormalFgTexture,        mri.SpriteInfo.NormalBgTexture,        mri.SpriteInfo.HoveredFgTexture,        mri.SpriteInfo.HoveredBgTexture,        mri.SpriteInfo.PressedFgTexture,        mri.SpriteInfo.PressedBgTexture,
                    mri.SpriteInfo_state2.NormalFgTexture, mri.SpriteInfo_state2.NormalBgTexture, mri.SpriteInfo_state2.HoveredFgTexture, mri.SpriteInfo_state2.HoveredBgTexture, mri.SpriteInfo_state2.PressedFgTexture, mri.SpriteInfo_state2.PressedBgTexture
                };

                retval.atlas = CreateAtlas(uniquename, spritenames, textures);
            }

            // we only support sprite image or texture buttons, no text-only (doesn't work properly for some reason)
            UIMultiStateButton.SpriteSetState fgSpriteSetState = retval.foregroundSprites;
            UIMultiStateButton.SpriteSetState bgSpriteSetState = retval.backgroundSprites;

            // these should never be null, and should start with one (empty) sprite set each, we'll need to add one more
            if (fgSpriteSetState == null || bgSpriteSetState == null)
            {
                Log.Error("AddaToggleButton() - UIMultiStateButton missing SpriteSetState.");
                RemoveAButton(retval.name);

                return(null);
            }

            UIMultiStateButton.SpriteSet fgSpriteSet = fgSpriteSetState[0];
            UIMultiStateButton.SpriteSet bgSpriteSet = bgSpriteSetState[0];

            if (fgSpriteSet == null)
            {
                fgSpriteSetState.AddState();
                fgSpriteSet = fgSpriteSetState[0];
            }

            if (bgSpriteSet == null)
            {
                bgSpriteSetState.AddState();
                bgSpriteSet = bgSpriteSetState[0];
            }

            // add state '0'
            fgSpriteSet.normal  = mri.SpriteInfo.NormalFgSpritename;
            fgSpriteSet.hovered = mri.SpriteInfo.HoveredFgSpritename;
            fgSpriteSet.pressed = mri.SpriteInfo.PressedFgSpritename;

            bgSpriteSet.normal  = mri.SpriteInfo.NormalBgSpritename;
            bgSpriteSet.hovered = mri.SpriteInfo.HoveredBgSpritename;
            bgSpriteSet.pressed = mri.SpriteInfo.PressedBgSpritename;

            // now add state '1'
            fgSpriteSetState.AddState();
            bgSpriteSetState.AddState();

            UIMultiStateButton.SpriteSet fgSpriteSet1 = fgSpriteSetState[1];
            UIMultiStateButton.SpriteSet bgSpriteSet1 = bgSpriteSetState[1];

            fgSpriteSet1.normal  = mri.SpriteInfo_state2.NormalFgSpritename;
            fgSpriteSet1.hovered = mri.SpriteInfo_state2.HoveredFgSpritename;
            fgSpriteSet1.pressed = mri.SpriteInfo_state2.PressedFgSpritename;

            bgSpriteSet1.normal  = mri.SpriteInfo_state2.NormalBgSpritename;
            bgSpriteSet1.hovered = mri.SpriteInfo_state2.HoveredBgSpritename;
            bgSpriteSet1.pressed = mri.SpriteInfo_state2.PressedBgSpritename;

            retval.state                = UIMultiStateButton.ButtonState.Normal; // initial value
            retval.activeStateIndex     = 0;
            retval.foregroundSpriteMode = UIForegroundSpriteMode.Scale;
            retval.spritePadding        = new RectOffset(2, 2, 2, 2);

            retval.tooltip           = mri.HoverText;
            retval.tooltipAnchor     = UITooltipAnchor.Floating;
            retval.eventTooltipShow += (component, param) => { param.tooltip.relativePosition = new Vector3(param.tooltip.relativePosition.x + 25, param.tooltip.relativePosition.y, param.tooltip.relativePosition.z); };

            retval.autoSize = false;
            retval.height   = 50;
            retval.width    = 50;

            retval.canFocus      = false;
            retval.enabled       = true;
            retval.isInteractive = true;
            retval.isVisible     = true;

            retval.eventClick +=
                (component, param) =>
            {
                try
                {
                    UIMultiStateButton compbutt = component as UIMultiStateButton;

                    if (compbutt == null)
                    {
                        Log.Error(string.Format("Problem in callback handler for Mod: {0}", component.name));

                        return;
                    }

                    if (mri.ToggleCallback != null)
                    {
                        mri.ToggleCallback(component.name, compbutt.activeStateIndex);
                    }
                }
                catch (Exception ex)
                {
                    Log.Error(string.Format("Exception in callback to Mod: {0}. Exception: {1}", component.name, ex.Message));
                }
            };

            return(retval);
        }