protected void CreateCheckbox(StationTrackType type)
        {
            string typeName = GetNameFromStationType(type);
            var    checkBox = AddUIComponent <UICheckBox>();

            CheckboxStationDict[type] = checkBox;
            checkBox.text             = typeName;
            checkBox.size             = new Vector2(width - 16, 16);
            checkBox.relativePosition = new Vector2(8, 200 + (m_CheckboxCount * 20));
            checkBox.isInteractive    = true;
            UISprite cbClicker = checkBox.AddUIComponent <UISprite>();

            cbClicker.atlas             = atlas;
            cbClicker.spriteName        = "check-unchecked";
            cbClicker.relativePosition  = new Vector2(0, 0);
            cbClicker.size              = new Vector2(16, 16);
            cbClicker.isInteractive     = true;
            checkBox.eventCheckChanged += (c, v) =>
            {
                TunnelStationTrackToggleStyles(type);
            };

            UILabel cbLabel = checkBox.AddUIComponent <UILabel>();

            cbLabel.relativePosition = new Vector2(20, 0);
            cbLabel.text             = typeName;
            cbLabel.height           = 16;
            cbLabel.isInteractive    = true;
            m_height += 20;
            m_CheckboxCount++;
        }
 protected UIButton CreateButton(StationTrackType type, int columnCount, MouseEventHandler eventClick, bool sameLine = false)
 {
     return(CreateButton(new UIButtonParamProps()
     {
         Text = GetNameFromStationType(type),
         ColumnCount = columnCount,
         EventClick = eventClick,
         SameLine = sameLine
     }));
 }
 protected void ToggleButtonPairs(StationTrackType activeStationtype)
 {
     foreach (var kvp in buttonStationDict)
     {
         kvp.Value.color          = new Color32(150, 150, 150, 255);
         kvp.Value.normalBgSprite = "ButtonMenu";
         kvp.Value.useDropShadow  = false;
         kvp.Value.opacity        = 95;
     }
     buttonStationDict[activeStationtype].color          = new Color32(163, 255, 16, 255);
     buttonStationDict[activeStationtype].normalBgSprite = "ButtonMenuFocused";
     buttonStationDict[activeStationtype].useDropShadow  = true;
     buttonStationDict[activeStationtype].opacity        = 95;
 }
 protected string GetNameFromStationType(StationTrackType type)
 {
     return(Regex.Replace(type.ToString(), "[a-z][A-Z]", m => m.Value[0] + " " + char.ToLower(m.Value[1])));
 }
 protected virtual void TunnelStationTrackToggleStyles(StationTrackType type)
 {
 }
Exemple #6
0
        private void CreateUI()
        {
#if DEBUG
            Next.Debug.Log("MOM UNDERGROUND STATION TRACK GUI Created");
#endif
            Action stationMechanicsTask = DoStationMechanics;
            Task   t = Task.Create(stationMechanicsTask);
            m_T = t;
            backgroundSprite = "GenericPanel";
            color            = new Color32(68, 84, 68, 170);
            width            = 280;
            height           = 270;
            opacity          = 60;
            position         = Vector2.zero;
            isVisible        = false;
            isInteractive    = true;
            padding          = new RectOffset()
            {
                bottom = 8, left = 8, right = 8, top = 8
            };

            UIPanel dragHandlePanel = AddUIComponent <UIPanel>();
            dragHandlePanel.atlas            = atlas;
            dragHandlePanel.backgroundSprite = "GenericPanel";
            dragHandlePanel.width            = width;
            dragHandlePanel.height           = 30;
            dragHandlePanel.opacity          = 100;
            dragHandlePanel.color            = new Color32(21, 140, 34, 255);
            dragHandlePanel.relativePosition = Vector3.zero;

            UIDragHandle dragHandle = dragHandlePanel.AddUIComponent <UIDragHandle>();
            dragHandle.width            = width;
            dragHandle.height           = dragHandle.parent.height;
            dragHandle.relativePosition = Vector3.zero;
            dragHandle.target           = this;

            UILabel titleLabel = dragHandlePanel.AddUIComponent <UILabel>();
            titleLabel.relativePosition = new Vector3()
            {
                x = 5, y = 5, z = 0
            };
            titleLabel.textAlignment = UIHorizontalAlignment.Center;
            titleLabel.text          = "Subway Station Options";
            titleLabel.isInteractive = false;

            SliderDataDict = new Dictionary <ToggleType, SliderData>();
            SliderDataDict.Add(ToggleType.Depth, new SliderData()
            {
                Def    = SetStationCustomizations.DEF_DEPTH,
                Max    = SetStationCustomizations.MAX_DEPTH,
                Min    = SetStationCustomizations.MIN_DEPTH,
                SetVal = SetStationCustomizations.DEF_DEPTH,
                Step   = DEPTH_STEP
            });
            SliderDataDict.Add(ToggleType.Length, new SliderData()
            {
                Def    = SetStationCustomizations.DEF_LENGTH,
                Max    = SetStationCustomizations.MAX_LENGTH,
                Min    = SetStationCustomizations.MIN_LENGTH,
                SetVal = SetStationCustomizations.DEF_LENGTH,
                Step   = LENGTH_STEP
            });
            SliderDataDict.Add(ToggleType.Angle, new SliderData()
            {
                Def    = SetStationCustomizations.DEF_ANGLE,
                Max    = SetStationCustomizations.MAX_ANGLE,
                Min    = SetStationCustomizations.MIN_ANGLE,
                SetVal = SetStationCustomizations.DEF_ANGLE,
                Step   = ANGLE_STEP
            });
            SliderDataDict.Add(ToggleType.Bend, new SliderData()
            {
                Def    = SetStationCustomizations.DEF_BEND_STRENGTH,
                Max    = SetStationCustomizations.MAX_BEND_STRENGTH,
                Min    = SetStationCustomizations.MIN_BEND_STRENGTH,
                SetVal = SetStationCustomizations.DEF_BEND_STRENGTH,
                Step   = BEND_STRENGTH_STEP
            });
            SliderDict = new Dictionary <ToggleType, UISlider>();
            PanelDict  = new Dictionary <ToggleType, UIPanel>();

            CreateSlider(ToggleType.Length);
            CreateSlider(ToggleType.Depth);
            CreateSlider(ToggleType.Angle);
            CreateSlider(ToggleType.Bend);

            UICheckBox useIslandPlatformCheckBox = AddUIComponent <UICheckBox>();
            UICheckBox UseSidePlatformCheckBox   = AddUIComponent <UICheckBox>();
            UICheckBox UseSingleTrackCheckBox    = AddUIComponent <UICheckBox>();

            UseSidePlatformCheckBox.text               = "Side Platform";
            UseSidePlatformCheckBox.size               = new Vector2(width - 16, 16);
            UseSidePlatformCheckBox.relativePosition   = new Vector2(8, 200);
            UseSidePlatformCheckBox.isInteractive      = true;
            UseSidePlatformCheckBox.eventCheckChanged += (c, v) =>
            {
                if (UseSidePlatformCheckBox.isChecked)
                {
                    m_PrevTrackType = m_TrackType;
                    m_TrackType     = StationTrackType.SidePlatform;
                    useIslandPlatformCheckBox.isChecked = false;
                    UseSingleTrackCheckBox.isChecked    = false;
                    TunnelStationTrackToggleStyles(m_currentBuilding);
                    t.Run();
                }
                else
                {
                    if (useIslandPlatformCheckBox.isChecked == false && UseSingleTrackCheckBox.isChecked == false)
                    {
                        UseSidePlatformCheckBox.isChecked = true;
                    }
                }
            };

            m_UseSidePlatformCheckBoxClicker                  = UseSidePlatformCheckBox.AddUIComponent <UISprite>();
            m_UseSidePlatformCheckBoxClicker.atlas            = atlas;
            m_UseSidePlatformCheckBoxClicker.spriteName       = "check-unchecked";
            m_UseSidePlatformCheckBoxClicker.relativePosition = new Vector2(0, 0);
            m_UseSidePlatformCheckBoxClicker.size             = new Vector2(16, 16);
            m_UseSidePlatformCheckBoxClicker.isInteractive    = true;

            UILabel UseSidePlatformLabel = UseSidePlatformCheckBox.AddUIComponent <UILabel>();
            UseSidePlatformLabel.relativePosition = new Vector2(20, 0);
            UseSidePlatformLabel.text             = "Side Platform";
            UseSidePlatformLabel.height           = 16;
            UseSidePlatformLabel.isInteractive    = true;


            useIslandPlatformCheckBox.text               = "Island Platform";
            useIslandPlatformCheckBox.size               = new Vector2(width - 16, 16);
            useIslandPlatformCheckBox.relativePosition   = new Vector2(8, 220);
            useIslandPlatformCheckBox.isInteractive      = true;
            useIslandPlatformCheckBox.eventCheckChanged += (c, v) =>
            {
                if (useIslandPlatformCheckBox.isChecked)
                {
                    m_PrevTrackType = m_TrackType;
                    m_TrackType     = StationTrackType.IslandPlatform;
                    UseSingleTrackCheckBox.isChecked  = false;
                    UseSidePlatformCheckBox.isChecked = false;
                    TunnelStationTrackToggleStyles(m_currentBuilding);
                    t.Run();
                }
                else
                {
                    if (UseSidePlatformCheckBox.isChecked == false && UseSingleTrackCheckBox.isChecked == false)
                    {
                        useIslandPlatformCheckBox.isChecked = true;
                    }
                }
            };

            m_UseIslandPlatformCheckBoxClicker                  = useIslandPlatformCheckBox.AddUIComponent <UISprite>();
            m_UseIslandPlatformCheckBoxClicker.atlas            = atlas;
            m_UseIslandPlatformCheckBoxClicker.spriteName       = "check-unchecked";
            m_UseIslandPlatformCheckBoxClicker.relativePosition = new Vector2(0, 0);
            m_UseIslandPlatformCheckBoxClicker.size             = new Vector2(16, 16);
            m_UseIslandPlatformCheckBoxClicker.isInteractive    = true;

            UILabel useIslandPlatformLabel = useIslandPlatformCheckBox.AddUIComponent <UILabel>();
            useIslandPlatformLabel.relativePosition = new Vector2(20, 0);
            useIslandPlatformLabel.text             = "Island Platform";
            useIslandPlatformLabel.height           = 16;
            useIslandPlatformLabel.isInteractive    = true;

            UseSingleTrackCheckBox.text               = "Single Track";
            UseSingleTrackCheckBox.size               = new Vector2(width - 16, 16);
            UseSingleTrackCheckBox.relativePosition   = new Vector2(8, 240);
            UseSingleTrackCheckBox.isInteractive      = true;
            UseSingleTrackCheckBox.eventCheckChanged += (c, v) =>
            {
                if (UseSingleTrackCheckBox.isChecked)
                {
                    m_PrevTrackType = m_TrackType;
                    m_TrackType     = StationTrackType.SingleTrack;
                    useIslandPlatformCheckBox.isChecked = false;
                    UseSidePlatformCheckBox.isChecked   = false;
                    TunnelStationTrackToggleStyles(m_currentBuilding);
                    t.Run();
                }
                else
                {
                    if (UseSidePlatformCheckBox.isChecked == false && useIslandPlatformCheckBox.isChecked == false)
                    {
                        UseSingleTrackCheckBox.isChecked = true;
                    }
                }
            };

            m_UseSingleTrackCheckBoxClicker                  = UseSingleTrackCheckBox.AddUIComponent <UISprite>();
            m_UseSingleTrackCheckBoxClicker.atlas            = atlas;
            m_UseSingleTrackCheckBoxClicker.spriteName       = "check-unchecked";
            m_UseSingleTrackCheckBoxClicker.relativePosition = new Vector2(0, 0);
            m_UseSingleTrackCheckBoxClicker.size             = new Vector2(16, 16);
            m_UseSingleTrackCheckBoxClicker.isInteractive    = true;

            UILabel UseSingleTrackLabel = UseSingleTrackCheckBox.AddUIComponent <UILabel>();
            UseSingleTrackLabel.relativePosition = new Vector2(20, 0);
            UseSingleTrackLabel.text             = "Single Track";
            UseSingleTrackLabel.height           = 16;
            UseSingleTrackLabel.isInteractive    = true;
        }